OpenGL is very simple to use, so you are not gonna need something "less daunting". The principles of 3D rendering are the most important and you will need to grasp these things no matter which API you choose to work with, so get some good books.
"Real-Time Rendering" by Thomas Möller will get you up to speed quickly. "Computer Graphics: Principles and Practice" By Foley, van Dam, Feiner and Hughes is *the* classic reference - get it too, if you want to understand the basics to the core.
Good luck - 3D real-time rendering is a fascinating and fast moving field:-)
When will people figure out that xml is perfect for machines but only tolerable for humans. Programming is for humans, not for machines. So what if it is a bit harder to write a parser/compiler for the programming language, if only it is easier on the programmer? XSLT sucks, because it is itself defined in XML. Now these guys are making the same mistake.
Actually programming in XML takes away the clarity of expression that you would ideally have in a programming language - it is not terse, and the syntax is way too noisy. Take a look at ruby, if you are at all interested in a terse language, where it is easy to write code that actually communicate intent.
I wonder how hard it would be to hack xnest to allow the server to open a new window on a new display and close the old one. This would solve the problem.
Re:Advocacy, we never knew thee.
on
Qt vs MFC
·
· Score: 2
Also telling is the fact that he has nothing positive to say about MFC. I've run across some VERY talented developers, and while I haven't heard them singing MFC's praises, they do have some nice things to say. Advocacy really needs to show balance. Acknowledging MFC's strong points is important.
Actually I totally agree with you - the author of the article is completely biased. None-the-less it is extremely interesting to note the number of applications Microsoft itself has released that uses MFC.
According to Don Box (COM guy, now works at Microsoft) the number is 0 - zero! nil! (He mentioned it in his keynote address at Microsoft Developer Days 2001 in Copenhagen)
Can you tell the difference between the real world and the simulated virtual world, in terms of visual fidelity? I sure can, and as long as there is a noticable difference, the graphics industry will rocket on.
I predict the curve won't break until realtime computer graphics are far more convincing than the computer graphics we see in movies today.
* Nobody can rival the ease of deployment MS has with Messenger. Now I don't know the competing IM offers, but they'll have to be substantially better than MS Messenger for people to install them. * Microsoft doesn't want to share, so it has no commercial interest in interoperability with other IM services * Microsoft is almost forcing MS Messenger on you, if you use Outlook 2000/XP. If I don't have MS Messenger running Outlook will start its own instance, but it will not be signed in. In this mode Outlook is noticably slower than if I have MS Messenger started and signed in. Something like a second or so to show a message in the preview pane.
I have never received a single spam e-mail for a legitimate product - not one - it's all about herbs, life-insurance, penis enlargement, crap like that. On the other hand the paper junk mail I get are from the local stores and are full of relevant offers.
I bet the difference is that the cost of paper junk mail is high enough, that you cannot market pure junk and earn enough on the fools.
Excuse me, but I disagree violently with you. Certification is a clever "feed-back loop"-scheme created by big corporations, which want to *mentally* tie engineers, or professionals in general, to their products.
I think certifications can be a plus on your CV, what it is no substitute for a degree. A proven history of execution, on the other hand, is!
Some compilers have introduced certain #pragmas to compensate for the aliasing problem. The SGI MipsPro 7.3 compiler, for instance. The programmer can simply declare whether a pointer is aliased. Of course, if you lie, the compiler will generate incorrect code.
* The tone is almost always a bit whining * The "facts" are presented by one of the parties only, and I bet they have been coloured by personal views most of the time
Interestingly enough, though, the high number of post about evil and/or stupid managers lead me to believe that the power distance between manager and knowledge workers might be a bit too large in the posters countries.
I'm a developer myself, and I find that my managers listen to me, and I can't recall a situation where I have explicitly been told to do something. I things were different I'd find another job - simple.
In all likelihood they were just trying to convey just how much water there is. If they simply stated that there is evidence of at least XX billion gallons of water, that would mean very little to most people, so they chose to convey the amount of water in the context of the size of the planet, to make it more comprehensible.
Are you any good as a programmer? Good enough to solve real world business problems on your own? Maybe you should start your own business.
You say you've written small utilities and tools to help out at work. Could these utilities be evolved into fully grown solutions? If you have a nine-to-five job at a help desk, it could be an opportunity for you to start your own company in your own time. All you stand to loose is a bit of your spare time. You could combine your passion for programming with your help desk experience and solve the business problems you have experience with. Turn your desire to scratch your own itches (your small tools and utilities) into a lucrative software business:-)
First realize that what you ask is borderline impossible - You would have to handle
* IP's out of their subnet ** The LAN side of the NAT router would have to have a subnet mask of 0.0.0.0 to catch all possible client configurations * Colliding IP's * Guessing where to route packages based on port numbers alone (e.g. for local DNS servers and http proxy servers)
It can't be done at the IP level, you'd have to get below that level, and you'd have to keep all machines on separate VLANs (to avoid clients detecting IP address collisions). And the problems don't stop there, I bet.
THEN realize that especially laptops will very often be configured for DHCP.
In my opinion it would be much more interesting to accept that clients will need their computers to be configured for DHCP and ask: How can I offer wireless LAN support without risking abuse from neighbours, ensuring that people are charged etc.
Ruby is dynamically typed, so if you have no means of automatically exercise most lines of code in your program, you cannot be reasonably sure you wont get runtime errors, because e.g
* you pass the wrong number of arguments to functions * objects do not respond to the messages that are send to them * etc etc
I haven't been a fan of dynamically typed languages like ruby until about 5 months ago, but the combination of
* a terse syntax * True object orientation * dynamic typing * and *unit tests*
is a winning combination. The first three allows you to write well-factored, compact and flexible code. With a comprehensive test suite you have much more confidence in your code than you get from static typing, so it effectively voids that issue.
Another thing I really like about Ruby is that you can reopen classes. This means that you can add features to existing classes, if that is where they really belong. When you do that every object of that type automagically gets the new features. Along with the fact that a lot of built-in features in ruby are methods, and the fact that you can rename and redefine existing methods means that ruby itself can be extended in very interesting ways! E.g, lets say you want to load ruby modules from zip files! Simple, just redefine Kernel.require to access zip files as well as directories.
Most of all, though, I just like the ease of expression you get with ruby.
I don't think you have actually tried XP. I have and while I *do* think that XP has some flaws, it is not just hacking. XP is intended as a way of producing high quality (but not guaranteed correctness, space-shuttle grade) code that solves the business problem. I think it does a good job at that; almost certainly better than traditional waterfall processes, for most business problems.
Dave Thomas described two problems with XP that I agree whole-heartedly with:
* YAGNI principle doesn't hold. According to XP you must always use the simplest design. However, sometimes experienced developers know the right solution from the start and doesn't have to get there by evolving the design. * XP puts too much responsibility back on the customer. In my experience this is very true; Too much choice is almost as bad as only being able to make decisions up front when you have little experience to base your decisions upon (analysis phase in waterfall process).
The pros on the other hand is:
* Higher quality * Tunable quality (you can turn the knob up and down as you go, not very far down though, or the process will stop working) * Fast pace * Solves the business problem - doesn't just deliver on a requirement spec (which describe a system that may or may not actually solve the business problem) * Happier and more productive developers
I tried TradeServer - an earlier product from Bynari, which was intended as an Exchange server replacement. It was composed of openldap, cygnus imapd and a webserver for publishing free/busy information. It was less than smooth to set up, and the user experience not on par with Exchange.
InsightConnector looks like a much better product though. From what I just read it appears to use IMAP as a substitute for MAPI, which is what Outlook otherwise uses in corporate mode.
Another alternative you might consider is HP OpenMail. It includes a MAPI service provider and should thus integrate tightly with Outlook, which is what most end-users (unfortunately) want.
XML is a useful technology - very useful, and simple too. That does not mean that it is right for every purpose, though. The XML folks, believing their own hype, simply forgot that and decided that the syntax for XSLT should be XML-based. Bad Idea! Use XML for communication between machines, not for machine - human communication! While made to be readable for people, it is verbose and there is waaay to much line noise.
It's like that everytime something is hyped - people will use technology where it just doesn't make any sense.
All good and well but we need an excellent browser
on
GNOME 2.0 Desktop Alpha
·
· Score: -1, Offtopic
A good web browser is of paramount importance for any desktop today, and the sad truth is that there is no browser that provides the same smooth user experience as Internet Explorer.
I could get by with emacs, x-terms, evolution and Internet Explorer.
Honestly, I think Perl is the ultimate light weight language, as it is not (in my opinion) suited for anything but lightweight tasks. Use perl for the things that you used to do with sed, awk and bash, and perhaps a few things that you didn't bother doing with those tools because it is too messy.
Joking aside, I really recommend developers who care about efficiency (not runtime:-)) to learn ruby. Its extremely expressive and very maintainable. Too bad it got so little attention at that conference.
OpenGL is very simple to use, so you are not gonna need something "less daunting". The principles of 3D rendering are the most important and you will need to grasp these things no matter which API you choose to work with, so get some good books.
:-)
"Real-Time Rendering" by Thomas Möller will get you up to speed quickly. "Computer Graphics: Principles and Practice" By Foley, van Dam, Feiner and Hughes is *the* classic reference - get it too, if you want to understand the basics to the core.
Good luck - 3D real-time rendering is a fascinating and fast moving field
When will people figure out that xml is perfect for machines but only tolerable for humans. Programming is for humans, not for machines. So what if it is a bit harder to write a parser/compiler for the programming language, if only it is easier on the programmer? XSLT sucks, because it is itself defined in XML. Now these guys are making the same mistake.
Actually programming in XML takes away the clarity of expression that you would ideally have in a programming language - it is not terse, and the syntax is way too noisy. Take a look at ruby, if you are at all interested in a terse language, where it is easy to write code that actually communicate intent.
Yeah! Soup nazi!
:-)
An old time favorite
I wonder how hard it would be to hack xnest to allow the server to open a new window on a new display and close the old one. This would solve the problem.
For those who don't know xnest
According to Don Box (COM guy, now works at Microsoft) the number is 0 - zero! nil! (He mentioned it in his keynote address at Microsoft Developer Days 2001 in Copenhagen)
Food for thought!
Can you tell the difference between the real world and the simulated virtual world, in terms of visual fidelity? I sure can, and as long as there is a noticable difference, the graphics industry will rocket on.
...
I predict the curve won't break until realtime computer graphics are far more convincing than the computer graphics we see in movies today.
That will be a short while
I stand corrected then!
* Nobody can rival the ease of deployment MS has with Messenger. Now I don't know the competing IM offers, but they'll have to be substantially better than MS Messenger for people to install them.
* Microsoft doesn't want to share, so it has no commercial interest in interoperability with other IM services
* Microsoft is almost forcing MS Messenger on you, if you use Outlook 2000/XP. If I don't have MS Messenger running Outlook will start its own instance, but it will not be signed in. In this mode Outlook is noticably slower than if I have MS Messenger started and signed in. Something like a second or so to show a message in the preview pane.
QED
I have never received a single spam e-mail for a legitimate product - not one - it's all about herbs, life-insurance, penis enlargement, crap like that. On the other hand the paper junk mail I get are from the local stores and are full of relevant offers.
I bet the difference is that the cost of paper junk mail is high enough, that you cannot market pure junk and earn enough on the fools.
Excuse me, but I disagree violently with you. Certification is a clever "feed-back loop"-scheme created by big corporations, which want to *mentally* tie engineers, or professionals in general, to their products.
I think certifications can be a plus on your CV, what it is no substitute for a degree. A proven history of execution, on the other hand, is!
Just my $0.2
Some compilers have introduced certain #pragmas to compensate for the aliasing problem. The SGI MipsPro 7.3 compiler, for instance. The programmer can simply declare whether a pointer is aliased. Of course, if you lie, the compiler will generate incorrect code.
I'm tired of these questions.
* The tone is almost always a bit whining
* The "facts" are presented by one of the parties only, and I bet they have been coloured by personal views most of the time
Interestingly enough, though, the high number of post about evil and/or stupid managers lead me to believe that the power distance between manager and knowledge workers might be a bit too large in the posters countries.
I'm a developer myself, and I find that my managers listen to me, and I can't recall a situation where I have explicitly been told to do something. I things were different I'd find another job - simple.
In all likelihood they were just trying to convey just how much water there is. If they simply stated that there is evidence of at least XX billion gallons of water, that would mean very little to most people, so they chose to convey the amount of water in the context of the size of the planet, to make it more comprehensible.
:-)
Quite sensible, really
Are you any good as a programmer? Good enough to solve real world business problems on your own? Maybe you should start your own business.
:-)
You say you've written small utilities and tools to help out at work. Could these utilities be evolved into fully grown solutions? If you have a nine-to-five job at a help desk, it could be an opportunity for you to start your own company in your own time. All you stand to loose is a bit of your spare time. You could combine your passion for programming with your help desk experience and solve the business problems you have experience with. Turn your desire to scratch your own itches (your small tools and utilities) into a lucrative software business
First realize that what you ask is borderline impossible - You would have to handle
* IP's out of their subnet
** The LAN side of the NAT router would have to have a subnet mask of 0.0.0.0 to catch all possible client configurations
* Colliding IP's
* Guessing where to route packages based on port numbers alone (e.g. for local DNS servers and http proxy servers)
It can't be done at the IP level, you'd have to get below that level, and you'd have to keep all machines on separate VLANs (to avoid clients detecting IP address collisions). And the problems don't stop there, I bet.
THEN realize that especially laptops will very often be configured for DHCP.
In my opinion it would be much more interesting to accept that clients will need their computers to be configured for DHCP and ask: How can I offer wireless LAN support without risking abuse from neighbours, ensuring that people are charged etc.
I mean:
Ruby is dynamically typed, so if you have no means of automatically exercise most lines of code in your program, you cannot be reasonably sure you wont get runtime errors, because e.g
* you pass the wrong number of arguments to functions
* objects do not respond to the messages that are send to them
* etc etc
I haven't been a fan of dynamically typed languages like ruby until about 5 months ago, but the combination of
* a terse syntax
* True object orientation
* dynamic typing
* and *unit tests*
is a winning combination. The first three allows you to write well-factored, compact and flexible code. With a comprehensive test suite you have much more confidence in your code than you get from static typing, so it effectively voids that issue.
Another thing I really like about Ruby is that you can reopen classes. This means that you can add features to existing classes, if that is where they really belong. When you do that every object of that type automagically gets the new features. Along with the fact that a lot of built-in features in ruby are methods, and the fact that you can rename and redefine existing methods means that ruby itself can be extended in very interesting ways! E.g, lets say you want to load ruby modules from zip files! Simple, just redefine Kernel.require to access zip files as well as directories.
Most of all, though, I just like the ease of expression you get with ruby.
I don't think you have actually tried XP. I have and while I *do* think that XP has some flaws, it is not just hacking. XP is intended as a way of producing high quality (but not guaranteed correctness, space-shuttle grade) code that solves the business problem. I think it does a good job at that; almost certainly better than traditional waterfall processes, for most business problems.
Dave Thomas described two problems with XP that I agree whole-heartedly with:
* YAGNI principle doesn't hold. According to XP you must always use the simplest design. However, sometimes experienced developers know the right solution from the start and doesn't have to get there by evolving the design.
* XP puts too much responsibility back on the customer. In my experience this is very true; Too much choice is almost as bad as only being able to make decisions up front when you have little experience to base your decisions upon (analysis phase in waterfall process).
The pros on the other hand is:
* Higher quality
* Tunable quality (you can turn the knob up and down as you go, not very far down though, or the process will stop working)
* Fast pace
* Solves the business problem - doesn't just deliver on a requirement spec (which describe a system that may or may not actually solve the business problem)
* Happier and more productive developers
I tried TradeServer - an earlier product from Bynari, which was intended as an Exchange server replacement. It was composed of openldap, cygnus imapd and a webserver for publishing free/busy information. It was less than smooth to set up, and the user experience not on par with Exchange.
InsightConnector looks like a much better product though. From what I just read it appears to use IMAP as a substitute for MAPI, which is what Outlook otherwise uses in corporate mode.
Another alternative you might consider is HP OpenMail. It includes a MAPI service provider and should thus integrate tightly with Outlook, which is what most end-users (unfortunately) want.
XML is a useful technology - very useful, and simple too. That does not mean that it is right for every purpose, though. The XML folks, believing their own hype, simply forgot that and decided that the syntax for XSLT should be XML-based. Bad Idea! Use XML for communication between machines, not for machine - human communication! While made to be readable for people, it is verbose and there is waaay to much line noise.
It's like that everytime something is hyped - people will use technology where it just doesn't make any sense.
I just submitted a request to have Ruby/Google added to the list of implementations. Until then you can find it at http://www.caliban.org/ruby/
'nuff said
A good web browser is of paramount importance for any desktop today, and the sad truth is that there is no browser that provides the same smooth user experience as Internet Explorer.
I could get by with emacs, x-terms, evolution and Internet Explorer.
Sounds to me that
1. You are not very sensitive to the users needs
2. You give up to fast analyzing your users requests
Maybe you should be doing something else with your time?
Honestly, I think Perl is the ultimate light weight language, as it is not (in my opinion) suited for anything but lightweight tasks. Use perl for the things that you used to do with sed, awk and bash, and perhaps a few things that you didn't bother doing with those tools because it is too messy.
:-)) to learn ruby. Its extremely expressive and very maintainable. Too bad it got so little attention at that conference.
Joking aside, I really recommend developers who care about efficiency (not runtime