There's also a little something to do with Circadian rhythms. Many programmers are night owls. Corporate policies are based on on what's defined as a "Normal" work day schedule. For type A executives, HR reps and others, this means 8 AM to 5 PM. So naturally, that's when you're expected to be there. In my company, we had a "flexible" arrangement where you could start your day anywhere between 7 and 9 AM. It didn't seem to matter to HR whether you were at your most productive at that hour, they just wanted an arse warming the chair at that time.
That's still too early for me. So I'd drag myself in usually closer to 9:30, sit in my chair and drink coffee and surf the web to try and stay awake until my brain came online. The earliest that would happen was around 10:30 where I could start to manage some feeble output. I didn't really kick into gear until 2 or so, and maximum productivity was from 4-7 PM. It actually went from 4-11, but staying that late wasn't approved by the other policy maker, my wife. Fortunately, my productivity late in the day more than made up for the farting around in the morning and I generally had far better and higher quality output than my morning people peers. I'd also often log in from home later and put in a few tweaks thanks to creative thinking during the drive home. These days I telecommute 100% and set my own schedule and generally disregard the concept of "office hours" but it takes demonstrated performance to your employer to get to that point.
I recall an interesting concept from Larry Niven's book Ringworld in which the main characters were traveling through space and turned on a feature that either turned the walls of their vessle invisible or did some form of projection to achieve a similar effect. The end result was that to the travelers, it appeared as though they were cruising through space in just their chairs on a deck, enjoying the starscape.
I can imagine this type of technology eventually being used in some form of tourism or entertainment capacity.
I've got an old PII 200 here with 160 MB of RAM. It was tolerable under RH 7.3, but then I made the mistake of upgrading to RH 9. The computer was so slow as to be almost unusable. I then decided to try SuSE 9.0. Again unbearably slow. This was using KDE and Gnome. I can make the machine run reasonably well if all I want is to have a bunch of xterms under Enlightenment or WindowMaker. However, if I try to bring up Mozilla or Konqueror, the system starts digging into swap and down goes the performance again.
So every time I optimistically try and fail to be impressed, I switch back to the standby OS on my other HD, OS/2. Yes it is ancient, but when you consider that I typically run Mozilla, a Citrix Terminal Server client, XFree86OS2 3.3.6 with Enlightenment 0.16.4 as a WM, and a host of Xterms and ssh sessions and still have 50-60 MB free RAM and haven't even touched swap, it makes sense for this box.
My point isn't to advocate OS/2 here (it is hard to even find these days), but rather to point out that older hardware, which used to be a nice place on which to run Linux, is no longer a viable option. Many Linux users got their start on older, secondary hardware as they needed their best machine for Windows applications. Persuading someone to experiment with an alternate operating system on an older, secondary system isn't too hard to do. Asking them to take that chance with what is likely their primary system isn't likely to fly as well.
I used to do the same on a 1084. Now both my 1084 and 1084S are back in service as monitors, the 1084 for my Amiga 1000 (the kids play games on it) and the 1084S on my Amiga 2000 when I'm in the mood to do some music composing using MED or walk down memory lane and play the Civilization, Rocket Ranger, or the Zork series.
Between the forecasting of National Weather Service and real time spotting by trained SKYWARN spotters, there's a lot of information available to help the public know when to head to a sheltered location. The trick is in getting the information. TV and Radio are great if you're watching or listening, but by far the best solution is a quality weather radio.
Another option is to have severe weather warnings and watches sent to your pager or mobile phone so it can catch you when you're notin front of the TV. A lot of news and weather web sites offer these services. Another option is an open source program called StormSiren which scans the text data from the National Weather Service's Interactive Weather Information Network. The important thing is to be aware of severe weather so you'll know when to head to shelter.
I just finished reading ESR's "take on the case". He presents a well written statement with some good historical information about both Unix development and prior legal issues. Regardless of your opinion of him, he writes well and this is a reasonably concise assessment of the historical facts.
Agreed, totally bunk. If you're actually doing what they suggest, cutting and pasting blocks of someone else's html into your code and/or mixing static pages and code sections, then yeah, you might be inefficient. However, most intelligent CGI programmers will write functions/methods to output the majority of the content, and then supply the data to those functions. If you write your presentation code in this manner, you can put it in a library and call that function again and again from different programs to get a consistent look and feel.
Of course, as the previous poster implies, there are a lot of pre-written libraries out there as well, and not only in C but in Perl, Python, Ruby, and every other langauge that someone has used for building CGI programs. Templating is fine for those who really need to separate the presentation from the business logic, but if you're doing both parts it is far easier to maintain one pure CGI code base that handles the presentation through well thought out functions.
"Like so many others in the IT industry, all three of us [Conway, Sugalski and Wall] have been looking for work," he noted.
In fact, this bothers me a lot. The company I work for, along with an extremely huge number of other corporations, have benefitted imensely from Perl. Oracle and many other products have custom Perl builds integrated with their products. Why is it that Larry Wall should have to be looking for work? Shouldn't he and the others be quite well off from the enormous benefit that he has provided the technology industry?
This is the biggest thing that scares me about open source. I don't want to sound anti-capitalistic here, but how many companies are reaping the benefits of the hard work Larry and other open source developers put into their excellent projects, but don't give a dime to those developers? How many members of the contributing Perl Foundation were corporate sponsors?
I advocate open source languages and products all the time, but I can see a danger. That danger comes from folks like those at Lindows. They take stuff that others have freely contributed, sell it, retire early in the Bahamas, and the developers who made it possible wind up serving lattes in a second job to support their families.
I can see open sourcing and donating useful utilities (I'm in the process of doing so this week), but I can't see myself putting in the time and energy into designing something as complex as an operating system kernel or programming language for free. Yes, the potential for peer recognition and hero status among geeks is tremendous, but the frustration of seeing someone else profit from my selfless contribution would take away the sweetness. Sorry, I'd rather devote those free hours to my kids or to a worthwhile charity. The rewards from those activities are even more valuable than alpha geek status.
The only problem with that idea is that you'd need to have someone do that for every language used for web development. The top ten document is actually a much better approach, because it is not language specific. It important to understand the problem, no just follow a checklist. By becoming educated on these particular vulnerabilities, you'll gain a better understanding of web security in general, and may be able to recognize other potential security flaws when you stumble across them.
I use it on a a spare P200 in my office as a utility box and backup workstation. The system is running OS/3 Warp Connect 3.0 fully patched with the latest fixpacks.
The box runs an Apache 1.3.26 server where co-workers can download utilities I've written and where I test new CGI programs to give them a real cross platform shakedown. It also runs a Python tool of mine via Cron/2 that scans the National Weather Service every five minutes and pages me when there are severe weather watches and warnings for my area. The darned thing is rock solid, never crashes (I can't even say that about my Redhat 7.3 system), and just plain works.
It also functions as a backup workstation, with Mozilla 1.l, openssh and a Citrix client so I can get my work done when my Win2K laptop goes in the tank, which happens all too frequently. With a P200 and 160 mb RAM, it is too old and slow to run even Windows 95 once you patch it up with all the security updates, and you can forget about running KDE or Gnome on it if you want responsiveness (though enlightenment runs pretty smoothly). OS/2 on the other hand is delighted with the processor and RAM. Sometimes it is more efficient to use an older OS on an older box.
I couldn't agree more. I'm a big advocate of open source tools and languages, but I'm also a big fan of food, clothing and shelter for my family.
Let's say you spend 40+ hours a week pouring your creativity and experience into a project, When the project is done, you get paid for the time put into the project. However, every developer who's actually earned a living as such knows that the vast majority of their time will be spent in maintaining, supporting and extending code, not writing new stuff. Normally, you get paid for that too. But if you give away the source, your services may no longer be necessary. Another individual with less experience may be able to make simple changes and bugfixes to your blood, sweat and tears without needing to fully understand the scope and complexities of the project. So much for all your hard work.
Unless I'm greatly mistaken, the typical mortgage lasts 30 years (at least mine does). Companies aren't paying for brand new whiz bang programs every couple of weeks, especially not since the dot bust. They pay for the initial development and then long term MAINTENANCE of software that will be deployed and used for hopefully several years. This may not be as true for shrinkwrapped applications, but it certainly is for special purpose business software.
What's wrong with wanting to make a living doing something you enjoy by keeping some source closed? When it comes down to choosing between some whiny l337 slashdotters living in their parents basements who want everything for free versus being able to feed my children, the choice is a no brainer.
I disagree with this, and I've been programming Perl in an enterprise business context for more than five years now. Perl is the lingua franca of our operation, and we use it for everything from CGI scripting to client server applications.
As is typical in any business, we've had a number of coders come and go over the years. These programmers, myself included, may come from different backgrounds and have styles that reflect this (I.E. a C programmer vs a sysadmin with an awk background, etc.) I'm frequently tasked to repair or extend software that was written by someone who has left the company, with the assumption that it will be easy since I'm a Perl programmer. If the previous programmer's style and background is different than mine, that slows down my analysis while I hit the camel book to figure out what they were doing.
If it was written/maintained by a single coder, I can usually adapt to their style pretty quickly. However, if the program was maintained by multiple coders over the life of the software, suddenly TMTOWTDI becomes much more of a burden than a benefit. The mental context switching I have to do to handle the inconsistencies becomes a real slowdown, and I sometimes wind up rewriting significant parts of the program just to make it easier to maintain in the future.
I want expressiveness and flexibility in a spoken language, so I can communicate effectively to both my children and to my knowledgeable co-workers, and so I can write a creative work of fiction, a poem, or a detailed technical document. I don't need that kind of flexibility when I am solving business problems. I need an engineering tool that will allow me to precisely instruct a CPU to perform specific tasks, and to do so in a consistent manner so that both I and my colleagues can effectively maintain the software.
I wouldn't trade Perl for anything when it comes to doing quick system admin tasks or parsing log files, but for complex tool development, I much prefer a language that promotes readability and maintainability like Python.
There's also a little something to do with Circadian rhythms. Many programmers are night owls. Corporate policies are based on on what's defined as a "Normal" work day schedule. For type A executives, HR reps and others, this means 8 AM to 5 PM. So naturally, that's when you're expected to be there. In my company, we had a "flexible" arrangement where you could start your day anywhere between 7 and 9 AM. It didn't seem to matter to HR whether you were at your most productive at that hour, they just wanted an arse warming the chair at that time.
That's still too early for me. So I'd drag myself in usually closer to 9:30, sit in my chair and drink coffee and surf the web to try and stay awake until my brain came online. The earliest that would happen was around 10:30 where I could start to manage some feeble output. I didn't really kick into gear until 2 or so, and maximum productivity was from 4-7 PM. It actually went from 4-11, but staying that late wasn't approved by the other policy maker, my wife. Fortunately, my productivity late in the day more than made up for the farting around in the morning and I generally had far better and higher quality output than my morning people peers. I'd also often log in from home later and put in a few tweaks thanks to creative thinking during the drive home. These days I telecommute 100% and set my own schedule and generally disregard the concept of "office hours" but it takes demonstrated performance to your employer to get to that point.
I recall an interesting concept from Larry Niven's book Ringworld in which the main characters were traveling through space and turned on a feature that either turned the walls of their vessle invisible or did some form of projection to achieve a similar effect. The end result was that to the travelers, it appeared as though they were cruising through space in just their chairs on a deck, enjoying the starscape.
I can imagine this type of technology eventually being used in some form of tourism or entertainment capacity.
I've got an old PII 200 here with 160 MB of RAM. It was tolerable under RH 7.3, but then I made the mistake of upgrading to RH 9. The computer was so slow as to be almost unusable. I then decided to try SuSE 9.0. Again unbearably slow. This was using KDE and Gnome. I can make the machine run reasonably well if all I want is to have a bunch of xterms under Enlightenment or WindowMaker. However, if I try to bring up Mozilla or Konqueror, the system starts digging into swap and down goes the performance again.
So every time I optimistically try and fail to be impressed, I switch back to the standby OS on my other HD, OS/2. Yes it is ancient, but when you consider that I typically run Mozilla, a Citrix Terminal Server client, XFree86OS2 3.3.6 with Enlightenment 0.16.4 as a WM, and a host of Xterms and ssh sessions and still have 50-60 MB free RAM and haven't even touched swap, it makes sense for this box.
My point isn't to advocate OS/2 here (it is hard to even find these days), but rather to point out that older hardware, which used to be a nice place on which to run Linux, is no longer a viable option. Many Linux users got their start on older, secondary hardware as they needed their best machine for Windows applications. Persuading someone to experiment with an alternate operating system on an older, secondary system isn't too hard to do. Asking them to take that chance with what is likely their primary system isn't likely to fly as well.
Slorf
Of course, if you're applying for a job involving Python programming, remember that whitespace is significant!
*Duck*
SlorfI used to do the same on a 1084. Now both my 1084 and 1084S are back in service as monitors, the 1084 for my Amiga 1000 (the kids play games on it) and the 1084S on my Amiga 2000 when I'm in the mood to do some music composing using MED or walk down memory lane and play the Civilization, Rocket Ranger, or the Zork series.
These things just don't wear out!
Slorf
Between the forecasting of National Weather Service and real time spotting by trained SKYWARN spotters, there's a lot of information available to help the public know when to head to a sheltered location. The trick is in getting the information. TV and Radio are great if you're watching or listening, but by far the best solution is a quality weather radio.
Another option is to have severe weather warnings and watches sent to your pager or mobile phone so it can catch you when you're notin front of the TV. A lot of news and weather web sites offer these services. Another option is an open source program called StormSiren which scans the text data from the National Weather Service's Interactive Weather Information Network. The important thing is to be aware of severe weather so you'll know when to head to shelter.
I just finished reading ESR's "take on the case". He presents a well written statement with some good historical information about both Unix development and prior legal issues. Regardless of your opinion of him, he writes well and this is a reasonably concise assessment of the historical facts.
Agreed, totally bunk. If you're actually doing what they suggest, cutting and pasting blocks of someone else's html into your code and/or mixing static pages and code sections, then yeah, you might be inefficient. However, most intelligent CGI programmers will write functions/methods to output the majority of the content, and then supply the data to those functions. If you write your presentation code in this manner, you can put it in a library and call that function again and again from different programs to get a consistent look and feel.
Of course, as the previous poster implies, there are a lot of pre-written libraries out there as well, and not only in C but in Perl, Python, Ruby, and every other langauge that someone has used for building CGI programs. Templating is fine for those who really need to separate the presentation from the business logic, but if you're doing both parts it is far easier to maintain one pure CGI code base that handles the presentation through well thought out functions.
This quote surprised me a little bit.
"Like so many others in the IT industry, all three of us [Conway, Sugalski and Wall] have been looking for work," he noted.
In fact, this bothers me a lot. The company I work for, along with an extremely huge number of other corporations, have benefitted imensely from Perl. Oracle and many other products have custom Perl builds integrated with their products. Why is it that Larry Wall should have to be looking for work? Shouldn't he and the others be quite well off from the enormous benefit that he has provided the technology industry?
This is the biggest thing that scares me about open source. I don't want to sound anti-capitalistic here, but how many companies are reaping the benefits of the hard work Larry and other open source developers put into their excellent projects, but don't give a dime to those developers? How many members of the contributing Perl Foundation were corporate sponsors?
I advocate open source languages and products all the time, but I can see a danger. That danger comes from folks like those at Lindows. They take stuff that others have freely contributed, sell it, retire early in the Bahamas, and the developers who made it possible wind up serving lattes in a second job to support their families.
I can see open sourcing and donating useful utilities (I'm in the process of doing so this week), but I can't see myself putting in the time and energy into designing something as complex as an operating system kernel or programming language for free. Yes, the potential for peer recognition and hero status among geeks is tremendous, but the frustration of seeing someone else profit from my selfless contribution would take away the sweetness. Sorry, I'd rather devote those free hours to my kids or to a worthwhile charity. The rewards from those activities are even more valuable than alpha geek status.
The only problem with that idea is that you'd need to have someone do that for every language used for web development. The top ten document is actually a much better approach, because it is not language specific. It important to understand the problem, no just follow a checklist. By becoming educated on these particular vulnerabilities, you'll gain a better understanding of web security in general, and may be able to recognize other potential security flaws when you stumble across them.
I use it on a a spare P200 in my office as a utility box and backup workstation. The system is running OS/3 Warp Connect 3.0 fully patched with the latest fixpacks.
The box runs an Apache 1.3.26 server where co-workers can download utilities I've written and where I test new CGI programs to give them a real cross platform shakedown. It also runs a Python tool of mine via Cron/2 that scans the National Weather Service every five minutes and pages me when there are severe weather watches and warnings for my area. The darned thing is rock solid, never crashes (I can't even say that about my Redhat 7.3 system), and just plain works.
It also functions as a backup workstation, with Mozilla 1.l, openssh and a Citrix client so I can get my work done when my Win2K laptop goes in the tank, which happens all too frequently. With a P200 and 160 mb RAM, it is too old and slow to run even Windows 95 once you patch it up with all the security updates, and you can forget about running KDE or Gnome on it if you want responsiveness (though enlightenment runs pretty smoothly). OS/2 on the other hand is delighted with the processor and RAM. Sometimes it is more efficient to use an older OS on an older box.
I couldn't agree more. I'm a big advocate of open source tools and languages, but I'm also a big fan of food, clothing and shelter for my family.
Let's say you spend 40+ hours a week pouring your creativity and experience into a project, When the project is done, you get paid for the time put into the project. However, every developer who's actually earned a living as such knows that the vast majority of their time will be spent in maintaining, supporting and extending code, not writing new stuff. Normally, you get paid for that too. But if you give away the source, your services may no longer be necessary. Another individual with less experience may be able to make simple changes and bugfixes to your blood, sweat and tears without needing to fully understand the scope and complexities of the project. So much for all your hard work.
Unless I'm greatly mistaken, the typical mortgage lasts 30 years (at least mine does). Companies aren't paying for brand new whiz bang programs every couple of weeks, especially not since the dot bust. They pay for the initial development and then long term MAINTENANCE of software that will be deployed and used for hopefully several years. This may not be as true for shrinkwrapped applications, but it certainly is for special purpose business software.
What's wrong with wanting to make a living doing something you enjoy by keeping some source closed? When it comes down to choosing between some whiny l337 slashdotters living in their parents basements who want everything for free versus being able to feed my children, the choice is a no brainer.
I disagree with this, and I've been programming Perl in an enterprise business context for more than five years now. Perl is the lingua franca of our operation, and we use it for everything from CGI scripting to client server applications.
As is typical in any business, we've had a number of coders come and go over the years. These programmers, myself included, may come from different backgrounds and have styles that reflect this (I.E. a C programmer vs a sysadmin with an awk background, etc.) I'm frequently tasked to repair or extend software that was written by someone who has left the company, with the assumption that it will be easy since I'm a Perl programmer. If the previous programmer's style and background is different than mine, that slows down my analysis while I hit the camel book to figure out what they were doing.
If it was written/maintained by a single coder, I can usually adapt to their style pretty quickly. However, if the program was maintained by multiple coders over the life of the software, suddenly TMTOWTDI becomes much more of a burden than a benefit. The mental context switching I have to do to handle the inconsistencies becomes a real slowdown, and I sometimes wind up rewriting significant parts of the program just to make it easier to maintain in the future.
I want expressiveness and flexibility in a spoken language, so I can communicate effectively to both my children and to my knowledgeable co-workers, and so I can write a creative work of fiction, a poem, or a detailed technical document. I don't need that kind of flexibility when I am solving business problems. I need an engineering tool that will allow me to precisely instruct a CPU to perform specific tasks, and to do so in a consistent manner so that both I and my colleagues can effectively maintain the software.
I wouldn't trade Perl for anything when it comes to doing quick system admin tasks or parsing log files, but for complex tool development, I much prefer a language that promotes readability and maintainability like Python.
Slorf