Always keep in mind that your job is to reduce and manage complexity - not to increase complexity or let it run wild.
Seek out ways to make your code simple and elegant.
A large part of complexity management is making sure that your code can be read easily, and that it's function is obvious from a quick scan.
Find good code (this may be difficult), and read it. You'll notice things including:
- short functions / methods
- each function / method does one thing, and it's name clearly tells you what it does.
- simplicity and understandibility is favored of 'trickiness'.
- in the words of the "Pragmatic Programmer" folks, the "Don't Repeat Yourself" (DRY) rule is followed.
One more thing - don't fall into the bad habit of "I'll do it this crappy / complex way now, and refactor it / comment it later". In practice, "later" rarely happens.
Yeah, but what I find equally amazing is that the U.S. military commonly uses MS Windows and both commercial and Open Source software. Just google 'U.S. Military COTS Software' - COTS means 'Common Off The Shelf' - yeah, the gub'ment has an acronym for everything:-)
Ok, admittedly, I'm a professional 'gearhead' - but I use Ubuntu as my primary desktop OS at home, and have for over 2 years now.
For 'basic email and web surfing', I can't imagine what advantage a Windows environment would have.
The only 'missing' must-have application that I see out there that causes me to retain a Windows box (or at least a Windows VM) is QuickBooks.
If either Intuit or someone else would come up with a usable, feature-complete version of QuickBooks or something equivalent, as an on-line application, with the ability download the data in an "open" format, I'd ditch the last vestiges of Windows in a huge hurry, and I think that a lot of other folks would as well.
Similar thing happened to me. I work for a mid-sized telecom. The Cisco VPN is set up to only allow it's Windows client to connect. The reasoning - the Linux version of the client isn't secure enough:-) So - I'm reduced to running Windows XP on VMWare, so that I can connect to the VPN and then run RDP....
I work for a second-tier telecom. Just came back from several days observing our call center operations, and talking to the customer service reps and their supervisors.
The most surprising thing that I encountered was a customer service rep being severely reprimanded for having an average call duration that was too short.
Obviously, an average call duration that's too long is bad too, but the managers here figure that a short average call duration means that you're not really helping the customers.
Indeed, I've always considered this a must for production applications - particulary intranet applications
The overhead of retreiving the DTD from the web is simply unacceptable in many situations.
Having alternatives is nice, and I'm all for breaking MS's near-monopoly in this area, but the big question is about quality: do these products do the job, and do it well?
Is that really a requirement? Microsoft's products are not what I'd call 'quality', nor do they tend to do the job well...they just have a lot of 'features'.
While I agree that the IDE should not be the only way to access version control (it's blasphemous, I know, but I don't use an IDE for everything), it is helpful to have access from the IDE when I am working it - no need to task-switch.
The one thing that I find really helpful in the Eclipse integration with subversion is the display of diffs of Java source files.
The diff is displayed in terms of language artifacts (such as showing that a particular method was added or modified), instead of simply simply as a textual diff. I've been wanting to see something like this for years, and the implementation (not sure if it is part of Eclipse's 'team' environment, or the plug-in) is as good as I could possibly hope for.
Always keep in mind that your job is to reduce and manage complexity - not to increase complexity or let it run wild.
Seek out ways to make your code simple and elegant.
A large part of complexity management is making sure that your code can be read easily, and that it's function is obvious from a quick scan.
Find good code (this may be difficult), and read it. You'll notice things including:
- short functions / methods
- each function / method does one thing, and it's name clearly tells you what it does.
- simplicity and understandibility is favored of 'trickiness'.
- in the words of the "Pragmatic Programmer" folks, the "Don't Repeat Yourself" (DRY) rule is followed.
One more thing - don't fall into the bad habit of "I'll do it this crappy / complex way now, and refactor it / comment it later". In practice, "later" rarely happens.
Yeah, but what I find equally amazing is that the U.S. military commonly uses MS Windows and both commercial and Open Source software. Just google 'U.S. Military COTS Software' - COTS means 'Common Off The Shelf' - yeah, the gub'ment has an acronym for everything :-)
The images on the uspto site are tiffs with an tag? wtf?
It's not a dedicated uploader, but I've been using F-Spot http://f-spot.org/Features/ to upload to Picasa, and it works very well for me.
Ok, admittedly, I'm a professional 'gearhead' - but I use Ubuntu as my primary desktop OS at home, and have for over 2 years now.
The only 'missing' must-have application that I see out there that causes me to retain a Windows box (or at least a Windows VM) is QuickBooks.For 'basic email and web surfing', I can't imagine what advantage a Windows environment would have.
If either Intuit or someone else would come up with a usable, feature-complete version of QuickBooks or something equivalent, as an on-line application, with the ability download the data in an "open" format, I'd ditch the last vestiges of Windows in a huge hurry, and I think that a lot of other folks would as well.
Assume that turkey T is a frictionless turkey.........
Come, now. We know that nothing is really stable until Service Pack 3.
Similar thing happened to me. :-)
I work for a mid-sized telecom.
The Cisco VPN is set up to only allow it's Windows client to connect.
The reasoning - the Linux version of the client isn't secure enough
So - I'm reduced to running Windows XP on VMWare, so that I can connect to the VPN and then run RDP....
Hmmmm.... apparently for Windows XP only :-(
I work for a second-tier telecom. Just came back from several days observing our call center operations, and talking to the customer service reps and their supervisors.
The most surprising thing that I encountered was a customer service rep being severely reprimanded for having an average call duration that was too short.
Obviously, an average call duration that's too long is bad too, but the managers here figure that a short average call duration means that you're not really helping the customers.
Indeed, I've always considered this a must for production applications - particulary intranet applications The overhead of retreiving the DTD from the web is simply unacceptable in many situations.
Having alternatives is nice, and I'm all for breaking MS's near-monopoly in this area, but the big question is about quality: do these products do the job, and do it well?
Is that really a requirement? Microsoft's products are not what I'd call 'quality', nor do they tend to do the job well...they just have a lot of 'features'.
While I agree that the IDE should not be the only way to access version control (it's blasphemous, I know, but I don't use an IDE for everything), it is helpful to have access from the IDE when I am working it - no need to task-switch.
The one thing that I find really helpful in the Eclipse integration with subversion is the display of diffs of Java source files. The diff is displayed in terms of language artifacts (such as showing that a particular method was added or modified), instead of simply simply as a textual diff. I've been wanting to see something like this for years, and the implementation (not sure if it is part of Eclipse's 'team' environment, or the plug-in) is as good as I could possibly hope for.