I heard on an NPR report that the primary reason that Johnson didn't make it public was because it all came from illegally wiretapping the South Vietnamese Embassy.
But our parents and grandparents had jobs back then. Now that all factory workers are unionized, they're kids and grandkids out of a jobs because the factory moved to places less expensive and less complainy.
Your parents and grandparents lived in a time when that factory job paid a wage that made it possible to actually live and build for the future. Unionization rates were in the 30%-40% range.
Now that unionization has been driven down to less than 10% of the workforce, those jobs - particularly the ones that "can't be moved" are low paying with an active illegal component in the workforce due to complete lack of labor law enforcement.
The same people who complain about the "unions" are also the first to complain about "The Mexicans", while never connecting the dots.
Now the rights unions fought for are enshrined in law.... and God Forbid that you might actually need to have those laws enforced. The complete lack of labor law enforcement has directly lead to the 'lawsuit culture'. No more can I expect reasonable justice from mediation or regulatory agencies - if I am mistreated by my employer the only recourse I have is to run into court screeching for damages.
The amazing thing about hitting 'almost 30' - when you start to get a little bit older, your priorities start to change.
Working that 'extra bit of overtime to get the project done' (which no one ever gets actually paid for) competes directly with 'having dinner with my kids'. Certain things didn't bother me when I was 22, but after a number of years and having to deal with the dual combination of an employer who demands rafts of unpaid overtime ("You can work from home!") and a neverending turnover problem because all of those people who wanted new priorities were replaced with 22 year olds who need to be hand-held through nearly everything and often need to be taught why re-writing the entire code base from scratch is a Bad Idea.
Not to mention the women who decide it's time to start a family - and end up trapped in long hours with young children because one needs to work for a full calendar year before qualifying for the unpaid time off guaranteed by the Family Medical Leave Act.
Now, let's talk about insurance and retirement plans....
Brilliant post. That's what most of the "lone gunmen" don't realize: someday, sometime, you are going to need representation. Sometimes being able to negotiate is a good thing.
"The University" won't have the only input into the selection of vendors: both of these projects are intended for a national audience as part of the NSF's Cyberinfrastructure program.
Of particular interest: the NSF "Track 2" machine is built to complement the capabilities of TeraGrid, and is also being built in a location (Oak Ridge Laboratory) that the DOE is using to build their own Petascale machine.
There are also real projects from the NSA and other government branches that need fast computers. Why not a specific grant to develop a computer for a specific application rather than just a "make a fast supercomputer"?
Because specific projects usually have a very finite lifetime, and supercomputing resources are terrifically expensive: that's why the NSF has "Cyberinfrastructure" as a major project. Researchers will apply for computer time as part of the normal grant process: current facilities are already being heavily used, and with the TeraGrid project (and the science gateways) it's hoped that use will increase for a broader range of scientific inquiry.
Re:Correct me if I'm wrong...
on
Space Music
·
· Score: 2
A little history:
The sounds on the tape were actually first heard as "sounds", when the Allied Air Forces were monitoring the airwaves for German radio signals. Turns out what they were hearing were 'whistler' waves being generated from lighting strikes in the Southern Hemisphere.
The point that Dr. Gurnett has made with transcribing the sounds is to explain that space is not nearly as "empty" as we all think, but is a very dynamic (and noisy) environment.
This is becoming even more important as we become a satellite-dependent society; the interactions of earth's magnetic field and the space plasma environment create these sounds, the northern lights, and have been known to interrupt satellite signals.
How these discoveries were made is also a fascinating subject: the first scientific discovery in outer space was the discovery of a large plasma 'belt' surrounding the earth, which was made by Dr. Gurnett's teacher and mentor at the U. of Iowa; Dr. James Van Allen.
Well, a couple of years ago I was on a project where I was assigned the informal (at the time) job of 'build engineer'. I started off with Make, and adopted and 'fell in love' with Ant (so to speak). Here's why:
On the project, we had a large number of objects (near 500, if I recall correctly), including GUI, EJB, and 'normal' object classes. Just maintaining manifest files was beginning to be a problem.
Unfortunately, we had cross-platform issues. The 'main' builds were being done on a Solaris machine, but most development was being done on Windows machines. (JBuilder at the time was a Windows-only toy.) Installing versions of 'make' (even cygwin/gnumake) was not going to be practical. Any other version cost $$$.
I soon found out the true strength of ANT: it is extremely flexible and extensible to make 'hard' tasks very simple. Automated deployment to servers, unit testing, and release management can be done without knowing sometimes cryptic Makefile commands.)
Ant is initially geared towards Java, but can be used to compile anything that has a command line compiler. (I saw a talk given by Martin Fowler where he joked about annoying a Microsoft engineer by creating an Ant process that would automate builds and tests of Visual C++ files!)
Ant isn't really 'reinventing' the wheel, but making the wheel easier to manage (one file) and extend (ant tasks). It's a neat tool to have in the arsenal; I personally have found it easier and more intuative than Make for more 'complicated' projects. (Now, if I could just create an Ant script to automate and test builds of Oracle Pro*C programs...)
Ah... this is an entirely different problem set than what XP attempts to solve.
I like to think of XP and agile methodologies as applying a more scientific-research model to programming. ("Experimental Programming")
Engineering approaches focus on very well known, defined problems. The shuttle is a good example: the design of the craft itself has been known since the early 70s, the behavior of its systems are already well known through simulation and experiment years before anything is installed or implemented. (The unknowns, or 'poorly knowns' can result in disaster, ala 1986) Mechanical engineering of any type follows the same process. Behaviors, requirements, and designs are known far in advance of attempting to build or implement.
However, business software is really not like that. Requirements are never that well known, and subject to change, even while the 'engineering' is being done. In chemical manufacturing, the unknown and changing conditions are tested constantly and adjusted as the process continues. (i.e. change concentrations, temperatures, etc. until you get the desired result.)
Business software development, with changing requirements and scope, is more of an empirical process than bridge building (or 'engineering software' for things like space shuttles.) I don't imagine shuttle software ever needs to be refactored. Of course, most companies cannot afford to measure ship times in terms of 5 or 6 years, either.
That's what XP is about. Design, Measure, and Adjust. How you implement XP is largely up to you.
See: Ward's Wiki (The Portland Pattern Repository) I'd post a link, but I want to make you do a little work before hammering the server!
Agreed. I didn't quite spend that much on my road bike (~$2500), but I look at it this way: spending money on this hobby (which I really like, BTW), goes toward preventing me from the 'perils' of working with computers. (i.e. the 'slob-effect')
Even though the pay is higher working as a programmer, there is another hidden 'price' that I am trying to avoid! (And I *hate* going to the gym. Spending all that energy to go nowhere?)
If you make a quick trip to your Local Bike Shop, you're pretty likely to find a titanium bike.
Titanium is typically only used on a few brands of higher-end bikes, though. (For example, I took a Lemond 'Tete de Course' or somesuch for a test ride last weekend. Great ride, light, but about $3500.) I'm not sure how the 'ride' of titanium would compare to the ride of steel or aluminum on longer rides, though.
Oh, and a kickstand implies that you are actually going to stop. We all know that all serious riders *never* stop.;-)
Hrm. That's odd: usually there is a stop in Memphis...
I ordered a new Powerbook in Dec., which took the same route. Seems some of Apple's products are assembled in Taiwan, then routed via FedEx to Anchorage (customs), then the main FedEx hub in Memphis (ala 'Cast Away'), then to destination.
Basically, you're tracking how a Fed Ex package comes into the US from Taiwan! The Apple rep explained to me in December that that was the way direct orders were routed to speed shipping: no need for the Apple middleman.
While it does matter in the aesthetic that Sun is restricting certification of open-source J2EE platforms, fortunately Sun has not taken drastic positions of 'shutting down' JBoss or anything like that. This letter from Marc Fleury seems to clarify the exact issue with JBoss.
This seeming 'rivalry' between Sun & Apache is not as clear-cut; Many of the Jakarta contributors are Sun employees and engineers. (Tomcat/Catalina is used as the 'reference implementation' for the Servlet/JSP specifications.) For more on this, check out the former 'open source guy' at Sun: James Duncan Davidson
... not really. I haven't known any large learning curve. (I've run MySQL and Oracle) The only learning curve is in learning how to use Oracle *well*. Oracle comes with its own programming language (PL/SQL) and a bunch of really nifty tools like Pro*C, SQLJ, etc. that allow you to write pretty simple, yet complex database programs. Plus, you might also wish to become aquainted with the constraints, etc. that Oracle supports.
Quick question: are you accessing entity beans directly from a client app? I've never used entity beans outside of representing "large" objects (like a shopping cart) and accessing that via stateless session beans.
There are also plenty of times where you need to do something as simple as "get a list", where our teams have just accessed the database 'directly' (through a connection pool) as it were...
The only really bad thing about EJBs is that you lose a lot of object-oriented features by using them. (Like polymorphism, inheritance, etc.)
You can get around this with some design tricks (using Entities as 'wrappers', etc.) but it would be nice if I could represent a heirarchy of related EJB "objects". (Usually, I've used EJBs as very course-grained objects..)
I've used entity beans pretty successfully. They take care of a lot of database-persistance issues.
The only thing I do tend to stay away from is container-managed persistance. In dealing with relational databases, sometimes the table structure is a little more complicated than a simple table-to-bean like a lot of the current AppServers are set up to handle. (Even the Raefel-Monson book has pretty simplified business scenarios)
Some of the newer app servers seem to be incorporating more complicated container managed queries, etc.
You need to be careful of how you address "hype" I suppose.
When Sun released the J2EE along with all of the various specifications (i.e. the EJB spec), it was largely left up to the vendors as to *how* those specifications were met.
Business code is largely portable across vendor products, as long as you follow the specifications yourself. That is, keep your naming standards consistent with Java RMI, etc. I have seen a lot of cases where a developer tried to be "clever" and screwed themselves in the end. Good design saves the day.
Vendor-specific protocols are typically implemented during deployments, etc. For example, the Inprise Application Server has an Inprise-Specific XML descriptor file that specifies the JNDI names for object naming. Not a big deal, but a slight headache nonetheless.
If you choose the same application server across different platforms (ex. IAS running on NT, Linux, and Solaris), you should have no problems with code portability whatsoever. (Again, as long as you avoid platform-specific bugaboos)
In the end, here's the deal: Do not jump into writing server systems in Java if platform independence is your only goal. Use Java if you are willing to invest the time in designing and developing a clean, object-oriented middle tier that is understandable and flexible. If you can accomplish this, platform independence is a great secondary feature. Java also contains many features that are great for quickly developing complicated systems. (Java Network Programming *rocks*)
If you just want to slap code together and gripe when it doesn't deploy on FooBar app server, just give up and start writing your whole transactional system in Python. Enjoy maintaining *that* system for a few years....
The history of USENET would be a great book for someone to write. I jumped on the USENET bandwagon shortly after the move from 'NET' to the current alt., rec., etc. heirarchy.
Ahh... a few chapters:
1) alt.binaries: Not just for fractals anymore
2) alt.sex.bondage.particle-physics: Quarks turn you on?
3) AOL Sucks, the formative years.
I still really like USENET, though. You just have to be a little more selective about the groups you frequent. ('sci.physics' ain't what it used to be...)
I was a big B5/JMS fan back in the day, but the Spider-Man "One More Day" bit ruined it all for me...
I heard on an NPR report that the primary reason that Johnson didn't make it public was because it all came from illegally wiretapping the South Vietnamese Embassy.
... just to cheer this post on. SciFi stopped being about, well, Science Fiction (even good, 'cheap' science fiction) a long time ago.
You know, I feel rather fortunate that a vast majority of people don't base their view of reality on the latest South Park episode.
You might actually want to get out a bit more and experience this country as it really is - it is a fascinating place.
But our parents and grandparents had jobs back then. Now that all factory workers are unionized, they're kids and grandkids out of a jobs because the factory moved to places less expensive and less complainy.
Your parents and grandparents lived in a time when that factory job paid a wage that made it possible to actually live and build for the future. Unionization rates were in the 30%-40% range.
Now that unionization has been driven down to less than 10% of the workforce, those jobs - particularly the ones that "can't be moved" are low paying with an active illegal component in the workforce due to complete lack of labor law enforcement.
The same people who complain about the "unions" are also the first to complain about "The Mexicans", while never connecting the dots.
Now the rights unions fought for are enshrined in law. ... and God Forbid that you might actually need to have those laws enforced. The complete lack of labor law enforcement has directly lead to the 'lawsuit culture'. No more can I expect reasonable justice from mediation or regulatory agencies - if I am mistreated by my employer the only recourse I have is to run into court screeching for damages.
The amazing thing about hitting 'almost 30' - when you start to get a little bit older, your priorities start to change.
Working that 'extra bit of overtime to get the project done' (which no one ever gets actually paid for) competes directly with 'having dinner with my kids'. Certain things didn't bother me when I was 22, but after a number of years and having to deal with the dual combination of an employer who demands rafts of unpaid overtime ("You can work from home!") and a neverending turnover problem because all of those people who wanted new priorities were replaced with 22 year olds who need to be hand-held through nearly everything and often need to be taught why re-writing the entire code base from scratch is a Bad Idea.
Not to mention the women who decide it's time to start a family - and end up trapped in long hours with young children because one needs to work for a full calendar year before qualifying for the unpaid time off guaranteed by the Family Medical Leave Act.
Now, let's talk about insurance and retirement plans....
Brilliant post. That's what most of the "lone gunmen" don't realize: someday, sometime, you are going to need representation. Sometimes being able to negotiate is a good thing.
"The University" won't have the only input into the selection of vendors: both of these projects are intended for a national audience as part of the NSF's Cyberinfrastructure program.
Of particular interest: the NSF "Track 2" machine is built to complement the capabilities of TeraGrid, and is also being built in a location (Oak Ridge Laboratory) that the DOE is using to build their own Petascale machine.
http://www.gcn.com/online/vol1_no1/40250-1.html
(Both will rely on the readily available, federally administered Tennessee Valley Authority power system, interestingly enough.)
There are also real projects from the NSA and other government branches that need fast computers. Why not a specific grant to develop a computer for a specific application rather than just a "make a fast supercomputer"?
Because specific projects usually have a very finite lifetime, and supercomputing resources are terrifically expensive: that's why the NSF has "Cyberinfrastructure" as a major project. Researchers will apply for computer time as part of the normal grant process: current facilities are already being heavily used, and with the TeraGrid project (and the science gateways) it's hoped that use will increase for a broader range of scientific inquiry.
If that's "good PR", Wal-Mart needs to hire better PR folks to write material that is actually believable.
Of course, the guy who put up the Wal-Mart PR also likes to threaten lawsuits for anyone using 'his material'. Evidently, those corporate PR posts are copyrighted, dammit!
The sounds on the tape were actually first heard as "sounds", when the Allied Air Forces were monitoring the airwaves for German radio signals. Turns out what they were hearing were 'whistler' waves being generated from lighting strikes in the Southern Hemisphere.
The point that Dr. Gurnett has made with transcribing the sounds is to explain that space is not nearly as "empty" as we all think, but is a very dynamic (and noisy) environment.
This is becoming even more important as we become a satellite-dependent society; the interactions of earth's magnetic field and the space plasma environment create these sounds, the northern lights, and have been known to interrupt satellite signals.
How these discoveries were made is also a fascinating subject: the first scientific discovery in outer space was the discovery of a large plasma 'belt' surrounding the earth, which was made by Dr. Gurnett's teacher and mentor at the U. of Iowa; Dr. James Van Allen.
- A former physics student at the U. of Iowa.
Ant isn't really 'reinventing' the wheel, but making the wheel easier to manage (one file) and extend (ant tasks). It's a neat tool to have in the arsenal; I personally have found it easier and more intuative than Make for more 'complicated' projects. (Now, if I could just create an Ant script to automate and test builds of Oracle Pro*C programs...)
I like to think of XP and agile methodologies as applying a more scientific-research model to programming. ("Experimental Programming")
Engineering approaches focus on very well known, defined problems. The shuttle is a good example: the design of the craft itself has been known since the early 70s, the behavior of its systems are already well known through simulation and experiment years before anything is installed or implemented. (The unknowns, or 'poorly knowns' can result in disaster, ala 1986) Mechanical engineering of any type follows the same process. Behaviors, requirements, and designs are known far in advance of attempting to build or implement.
However, business software is really not like that. Requirements are never that well known, and subject to change, even while the 'engineering' is being done. In chemical manufacturing, the unknown and changing conditions are tested constantly and adjusted as the process continues. (i.e. change concentrations, temperatures, etc. until you get the desired result.)
Business software development, with changing requirements and scope, is more of an empirical process than bridge building (or 'engineering software' for things like space shuttles.) I don't imagine shuttle software ever needs to be refactored. Of course, most companies cannot afford to measure ship times in terms of 5 or 6 years, either.
That's what XP is about. Design, Measure, and Adjust. How you implement XP is largely up to you.
See: Ward's Wiki (The Portland Pattern Repository) I'd post a link, but I want to make you do a little work before hammering the server!
Agreed. I didn't quite spend that much on my road bike (~$2500), but I look at it this way: spending money on this hobby (which I really like, BTW), goes toward preventing me from the 'perils' of working with computers. (i.e. the 'slob-effect')
Even though the pay is higher working as a programmer, there is another hidden 'price' that I am trying to avoid! (And I *hate* going to the gym. Spending all that energy to go nowhere?)
Titanium is typically only used on a few brands of higher-end bikes, though. (For example, I took a Lemond 'Tete de Course' or somesuch for a test ride last weekend. Great ride, light, but about $3500.) I'm not sure how the 'ride' of titanium would compare to the ride of steel or aluminum on longer rides, though.
Oh, and a kickstand implies that you are actually going to stop. We all know that all serious riders *never* stop.
I ordered a new Powerbook in Dec., which took the same route. Seems some of Apple's products are assembled in Taiwan, then routed via FedEx to Anchorage (customs), then the main FedEx hub in Memphis (ala 'Cast Away'), then to destination.
Basically, you're tracking how a Fed Ex package comes into the US from Taiwan! The Apple rep explained to me in December that that was the way direct orders were routed to speed shipping: no need for the Apple middleman.
While it does matter in the aesthetic that Sun is restricting certification of open-source J2EE platforms, fortunately Sun has not taken drastic positions of 'shutting down' JBoss or anything like that. This letter from Marc Fleury seems to clarify the exact issue with JBoss.
This seeming 'rivalry' between Sun & Apache is not as clear-cut; Many of the Jakarta contributors are Sun employees and engineers. (Tomcat/Catalina is used as the 'reference implementation' for the Servlet/JSP specifications.) For more on this, check out the former 'open source guy' at Sun: James Duncan Davidson
It's pretty obvious that the experiment in employee loyalty failed.
... not really. I haven't known any large learning curve. (I've run MySQL and Oracle) The only learning curve is in learning how to use Oracle *well*. Oracle comes with its own programming language (PL/SQL) and a bunch of really nifty tools like Pro*C, SQLJ, etc. that allow you to write pretty simple, yet complex database programs. Plus, you might also wish to become aquainted with the constraints, etc. that Oracle supports.
There are also plenty of times where you need to do something as simple as "get a list", where our teams have just accessed the database 'directly' (through a connection pool) as it were...
The only really bad thing about EJBs is that you lose a lot of object-oriented features by using them. (Like polymorphism, inheritance, etc.) You can get around this with some design tricks (using Entities as 'wrappers', etc.) but it would be nice if I could represent a heirarchy of related EJB "objects". (Usually, I've used EJBs as very course-grained objects..)
The only thing I do tend to stay away from is container-managed persistance. In dealing with relational databases, sometimes the table structure is a little more complicated than a simple table-to-bean like a lot of the current AppServers are set up to handle. (Even the Raefel-Monson book has pretty simplified business scenarios)
Some of the newer app servers seem to be incorporating more complicated container managed queries, etc.
When Sun released the J2EE along with all of the various specifications (i.e. the EJB spec), it was largely left up to the vendors as to *how* those specifications were met.
Business code is largely portable across vendor products, as long as you follow the specifications yourself. That is, keep your naming standards consistent with Java RMI, etc. I have seen a lot of cases where a developer tried to be "clever" and screwed themselves in the end. Good design saves the day.
Vendor-specific protocols are typically implemented during deployments, etc. For example, the Inprise Application Server has an Inprise-Specific XML descriptor file that specifies the JNDI names for object naming. Not a big deal, but a slight headache nonetheless.
If you choose the same application server across different platforms (ex. IAS running on NT, Linux, and Solaris), you should have no problems with code portability whatsoever. (Again, as long as you avoid platform-specific bugaboos)
In the end, here's the deal: Do not jump into writing server systems in Java if platform independence is your only goal. Use Java if you are willing to invest the time in designing and developing a clean, object-oriented middle tier that is understandable and flexible. If you can accomplish this, platform independence is a great secondary feature. Java also contains many features that are great for quickly developing complicated systems. (Java Network Programming *rocks*)
If you just want to slap code together and gripe when it doesn't deploy on FooBar app server, just give up and start writing your whole transactional system in Python. Enjoy maintaining *that* system for a few years....
Ahh... a few chapters:
1) alt.binaries: Not just for fractals anymore
2) alt.sex.bondage.particle-physics: Quarks turn you on?
3) AOL Sucks, the formative years.
I still really like USENET, though. You just have to be a little more selective about the groups you frequent. ('sci.physics' ain't what it used to be...)