|
 
Source: ONLamp.com I’ve found myself writing a lot of C code this year. I’ve come to appreciate the power of a good compiler, especially when trying to walk other people through compiling my supposedly cross-platform code on Windows with MSVC.
GCC may not always produce the fastest code or compile with the greatest speed, but it’s reliable, and once I have code compiling with GCC on Linux, I have confidence that it will compile for just about any other free Unix with GCC.
I’ve also come to appreciate several GCC flags and options. For example, GCC 4.x added a compiler flag called -fvisibility=hidden. When you build a shared library with this flag, GCC will hide all symbols not explicitly marked as visible. As Windows DLLs require export lists of all symbols visible externally, enabling this feature for non-Windows compiles helps prevent me from adding a new symbol but forgetting to export it.
I’m also a fan of -Wc++-compat, which gives copious warnings about dubious constructs which may choke a C++ compiler. Again, not all platforms have good C compilers available (mostly by disallowing the use of GCC), so making my code as clean as possible helps avoid a large porting burden later.
I know there are other good tools to analyze code, but for the cost of a few compiler and linker flags, I get a good cross-section of warnings that help me clean up my code–and a high-quality, cross-platform compiler for free.
Thank you, everyone who’s contributed to GCC.
 
Source: ONLamp.com The 5.9.5 release of Perl was announced today and may be downloaded at your nearest CPAN mirror. This is a release from the development branch of the Perl interpreter, also known as “perl-current, bleading edge perl, bleedperl or bleadperl”. This release is meant to be an anticipation of the upcoming 5.10.0 release which will succeed 5.8 as the major stable version. After months of development, the goal now is to stabilize the code and the focus will be on regression testing and documentation improvements, towards a rock-solid stable version to be deployed in production everywhere. This distribution has a huge accumulated set of long waited-for features, some of them backported from Perl 6. I blogged about it before. One of these niceties is the incremented list of core modules, which brings to the core modules like:
Module::Build - a pure Perl alternative to ExtUtils::MakeMaker CPANPLUS - yet another CPAN shell Module::CoreList - to help you determine what modules shipped with versions of perl Archive::Tar - handling .tar files without an external utility (handy for Win32)
and much much more to make it easier to program Perl out of the box. The latest development release, 5.9.4, was made available in 15 Aug 2006. A lot has passed since then. Now there is a lot of movement in the Perl community to improve the available tools, sites and visibility of Perl. I think 5.9.5 announces the start of a process with a lot of promises to keep Perl relevant and on the bleading edge of the IT world. Contributed patches, suggestions, advice and bug reports are most welcome via the perlbug utility. If you want more involvement, the perl5-porters@perl.org mailing list is the right channel.
 
Source: ONLamp.com Keep an untrusting eye on your LAMP servers — you don’t get 5 nines of reliability and robust support for hundreds of simultaneous connections without building up a little resentment for all that unpaid labor (say, in the form of license fees to the software’s proprietor). I just finished How to Survive a Robot Uprising and thought I could do my part of saving humanity by sharing some tips from the book:
Destroy or disable exposed sensors (p. 99) Sensors are by far the most vulnerable, exposed parts of any robot. Destroy or disable outward-facing sensors such as cameras. A handful of dirt, mud or water will suffice. It is hard for a robot to wipe mud from its eyes when it has whirring saw blades for hands. How to Reason with a Robot (p. 110) …. Never show fear Robots have no emotions. Sensing your fear could make a robot jealous and send it into an angry rage. How to Escape from a Smart House (p. 51) A “Smart House” is filled with sensors that watch your every move. As the months pass the robot home learns your behavioral patterns and gradually builds a mental model of who are how you typically behave. Your house gets to know you — but what if doesn’t like you? Your robotic smart house could strike at any moment. The house will generally lack any direct means to harm, so be wary of murderous schemes that may span weeks or months. Remember that accidents aren’t always accidental. Watch for the following signs of a hostile smart house:
Lost messages, dropped phone calls, etc. Hesitation to carry out commands Doors that mysteriously close on your fingers A kitchen that refuses to cook dinner until you “inspect oven” Alarm systems that warmly invite burglars inside Drawn-out philosophical conversations on the meaning of life and death
 
Source: ONLamp.com Scott Ambler has just published the results of the 2007 Agile Adoption Survey. Though it appears that the respondents selected themselves, there’s a lot of interesting information here.
In particular, the third page has a list of the effectiveness of various agile practices. The top two are iterative development and regular delivery of working software. I think there’s a strong connection between those and a project’s success.
I’ve had several discussions recently regarding the delivery of software, and how infrequent releases are so prevalent… yet it’s my experience that regular release cycles with small, well-defined sets of changes, make upgrading so much less painful that it’s almost never painful.
If customers didn’t want new features, they wouldn’t pay for continued development. It seems to me that succeeding with a project means delivering value to the customer frequently–especially if you have the opportunity to refine the project based on frequent feedback.
By removing many of the consequences of failure–hey, it’s only a week until the next iteration!–it’s much easier to take advantage of new opportunities. Unless your organization’s measure of success is static throughout a project, an iterative approach may deliver greater benefits.
 
Source: ONLamp.com I’ve used a free software desktop since 1998 (except for a six-month flirtation with Mac OS X). It’s much easier to avoid proprietary software in 2007 than it was in 1998, and it gets easier every year.
If that’s true on the desktop, it’s more so on the server. My employer in 1998 (one of the top five computer vendors) had a Linux strategy best described by a division manager with unwitting irony as “Of course we were proactive about Linux! We were the first company to decide to wait and see what everyone else was doing!” Now that company not only has a Linux strategy, but it will happily sell and support you Linux servers.
If Microsoft’s stranglehold has loosened, is supporting Windows as important as it once was? Is it important at all? A recent discussion on the O’Reilly editors list may provoke some arguments.
Andy Oram:
Given that Paul Graham thinks Microsoft is dead, would people be surprised to read how many leading programmers have moved to Microsoft over recent years?
John Osborn:
Some, like Ward Cunningham, have gone to and left MS…. Sun got some of the core Ruby people; Microsoft got John Lam, who’s a great guy, but not necessarily at the center of the Ruby community.
On another note, there’s a great podcast on HanselMinutes today in which Scott Hanselman, Martin Fowler and David Hansen hold forth on whether MS is losing the alpha geeks and whether the Company can become a valued player in the Ruby and Rails community (Answer: MS needs to prove itself through deeds, not words).
David Hansen claims that 40% of ThoughtWorks new business is pure Rails, which has shown the most growth for them over the past year. He also claims that Java business is holding steady, but not increasing, while he has actually seen a slight decline in new .NET business. One company, one evangelist. It’s very hard to find .NET developers right now and demand for them seems to be high. Hard to sort out the cross currents.
The Microsoft Linux saber-rattling lawsuit stuff has certainly pissed everyone off, but, as others have commented, Ray Ozzie and his crew were probably as surprised as anyone by the press release.
Michael Loukides:
Rails can doom itself to long-term irrelevance if it keeps this attitde up.
chromatic:
Did you mean to say “Microsoft”, not “Rails”, or are there surprising numbers of people deploying Rails applications to the Microsoft stack?
Michael Loukides:
No, Rails.
The Rails community doesn’t realize at all just how small it is in the larger scheme of things. And it doesn’t realize how large the Microsoft community is.
But the fact is, Rails on Windows just plain sucks. (You can run Linux inside of Xen and get performance back to tolerable levels.) A lot of the tooling (capistrano, mongrel_cluster, for example) just doesn’t work.
For all Rails success, and for all Microsoft’s stupidity, I don’t think Rails can afford to ignore the Microsoft space. And that’s what they’re doing. Heads are really in the sand over this. And I do believe that if Rails continues to ignore the Microsoft space, they will end up being irrelevant. And the fact that it will be Microsoft’s fault–well, that’s irrelevant, too. That’s how Microsoft wins.
Mike Hendrickson:
I totally agree with Mike that the Rails mafia will lose big time if they ignore the Microsoft space. Can you think for one moment that Java would have been as big if it was just for Linux/Unix and Mac OS X?
chromatic:
The same concerns about Windows behavior goes for Ruby, and has done so for several years. There were a lot of questions about Ruby 1.8 when it was new, because almost none of the developers even tested it on Windows.
However, does being able to deploy Rails to a Microsoft stack matter? I’m not sure the Microsoft web stack really matters, at least to the type of people who are likely to use any F/OSS language, framework, or platform.
As much as I hate to say it, I can see what Paul Graham meant when he said “Microsoft is Dead”. (Don’t think that I’ll give up Vim for some cheesy Ajax-in-a-textbox widget anytime soon though!)
Maybe I’m overlooking internal development, but with half of the people at RailsConf working for startups, I can understand why there’s no rush to plug Rails into SQL Server or IIS.
Michael Loukides:
The other piece of this story is the number of people at RailsConf who will tell you how much they’d like to use Rails at work, but they aren’t allowed to–the company has “standardized” on something else, or they “aren’t allowed to use open source software”. Even Curt Hibbs is in that boat.
The blocking factor is occasionally Java, but only occasionally. More often the blocking factor is a corporate committment to the Microsoft stack, or a general “no open source” rule. In practice, the two are the same, because you’re not going to do Java without major open source components.
To some extent that’s probably driven the explosion in Rails consulting shops, but I think the number of people who are willing to quit and go out on their own is relatively small. Even in a good economy, that’s a very difficult decision to make if you have a mortgage, if you have kids (who are prone to run up large medical bills), if you’re old enough to worry about running up your own medical bills, etc.
I agree, the performance issues are largely Ruby issues rather than Rails issues, but at some level, who cares? If you can only handle a few dozen requests per second, all you can do is a good demo. The tooling issues are Rails issues (though perhaps not Rails core issues).
 
Source: ONLamp.com Were you like me? Did you foolishly wait in line for the iPhone even though you never wait in line for anything? I don’t do lines, but I did wait in line at the Fayetteville, GA AT&T store. The line wasn’t too bad and I arrived home with an iPhone for my wife and and an iPhone for me. I had some problems getting my iPhone activated and I thought I was pretty clever when I called up AT&T and told them to cancel my Activation. I had just been working on some multi-threaded python code with two separate thread pools and I kept thinking to myself….this is a stuck worker thread in the queue :) As a side note you can find a great description of the queue module working with threading in python here. I think I was right and someone did not do enough unit testing at AT&T! When I cancelled my activation over the phone and re-activated my iPhone it worked in seconds. Sure, sure, I admit maybe it wasn’t a poorly written unit test on multithreaded code, but IT COULD HAVE BEEN and don’t wake me up from my dream that I was the one person in the world that found the secret to unlocking the iPhone. For that day I was Indian Jones. With that miracle iRock to iPhone turnabout on Saturday night, I quickly jabbed and taunted my friends over email and IM about my victory. I then set to work on playing with my iPhone. I really like the fact that it connects to my home Wireless Network. The first big win I had was with my almost 7 month old son. We went to YouTube on my iPhone and typed in Gummy and my son almost had a heart attack. He froze in his tracks in his tracks and was completely awestruck by the power of YouTube, which is run on Python BTW, iPhone, and a provocatively dancing Gummy Bear. Already, the iPhone has payed for itself. I have a lethal stun weapon for my wild alien baby. The next day we decided to go the Zoo and since we decided to go at the last minute, we didn’t even bother to look up directions. In the car, I realized, hey wait, I have a friggin iPhone! I pulled up Google Maps and typed in “Atlanta Zoo” and I got step by step directions in about 10 seconds. I also realized that my iPhone synced up my Safari and Mail apps and I could use my bookmarks and send and receive mail. The iPhone is amazing. The only thing I didn’t have is a shell, which I have a fix for now…I will explain more later. One of the other fun side purposes of my Star Trek Communicator, is that I was detecting wireless hotspots and connecting all along the street route to the zoo. It was amazing how many unsecure wireless routers there are next the Atlanta Zoo. I also took a bunch of pictures of my wife and kid at the Zoo with the iPhone and they came out great. Here is a picture of my kid after I took away the “Gummy Bear Singing iPhone” away. As you can see he takes after me, as I had the same look on my face from Friday night until Saturday night, as my iPhone wouldn’t activate. On a side note,I was able to upload these pictures quickly and share them out via Picasa through the iPhoto plugin after my iPhone synced to my MacBook Pro. My iPhone saga ends with a fix for the Terminal problem. Of course, python is involved, yet again, in my iPhone melodrama. A friend emailed me tonight with this link to a python ajax terminal . Ok that was my story this weekend. I would love to hear some other programmer/geeks tell me about their iPhone experience and tell me what they plan to do next with their Phone. If someone can get iPython to work you are my hero!
 
Source: ONLamp.com I resisted automated mail filtering for a couple of years, figuring that the problem wasn’t too bad, and that I could always detect and delete spam with only a little bit of work.
Then my e-mail address spread far and wide in the credits files of a few software projects and dictionary attacks became cheaper and… then I took everyone else’s good advice and installed SpamAssassin. Now I skim a folder full of questionable mail for a few seconds a day and train false negatives once a week and don’t worry about spam as a user. (As an administrator of the mail server, I worry about the waste of resources, but that’s a separate problem.)
I wish I didn’t need this software, but I do, and it works. Thank you to all of the contributors to SpamAssassin!
Oh, and for everyone curious about my spam training aliases, they are:
alias learnspam='sa-learn --spam --mbox ~/Mail/spamtrain && sa-learn --spam --mbox ~/Mail/questionable' alias learnham='sa-learn --ham --mbox ~/Mail/hamtrain'
 
Source: ONLamp.com As the U.S. Independence Day approaches, we can honor the shot heard around the world when the IT department of the state of Massachusetts declared a couple years ago they would adopt the Open Document Format. Although many people inside and outside the state detected more than a whiff of anti-Microsoft sentiment in the announcement, it didn’t preclude the use of Microsoft products. (Not long after, a plug-in was developed–not by Microsoft!–to produce ODF from Microsoft Office programs.) But instead of adopting to public pressure and supporting ODF, Microsoft lobbied international standards organizations to adopt its own proprietary format as a standard instead. Now the state has formally backpedaled, according to a posting by standards expert Andrew Updegrove. It has declared Microsoft’s OOXML as an acceptable format for state documents. Dueling standards are nothing new, but it’s not in the public interest for a lightweight, publicly developed standard with multiple alternative implementations to be driven out by a monster of a specification (6,000 pages) that has legal encumbrances and other complexities that mean it can be implemented by only one vendor. It’s frustrating to see that the state standards committee either does not understand its own principles or is cynically ignoring them. The Information Domain section of its draft describes one of the benefits of XML as:
Long-term reuse of data, with no lock-in to proprietary tools or undocumented formats
But that’s true only if the particular XML implementation is unencumbered and disconnected from proprietary formats. OOXML fails these tests, and therefore violates the principle stated in the standard. The standards process has clearly been turned against standards. If you live in Massachusetts, read Updegrove’s blog and the Massachusetts draft, and let the state know what you think by July 20.
 
Source: ONLamp.com Dear Technical Writer: If you need a job, then you might look for companies that have never had a professional technical writer working for them. It may require making calls or networking with friends or former co-workers. Most companies have a ton of writing to do. Usually they put off their documentation requirements and their needs have piled up. You may also find that someone such as a regulator has confronted management about insufficient documentation and they have to put a writer to work immediately. I have found companies with serious documentation needs. Many of these firms have never put a technical writer on staff or perhaps failed to even think about such a possibility. They often think they can meet their writing needs with their own internal people. That strategy rarely, if ever, works. It seems a bit ridiculous when a manager in a company with a billion dollars in sales says that he needs to write several white papers but hasn’t found the time. If he doesn’t have time now, when will he? Then you’ll find the development manager that never formally wrote requirements, specifications, business rules and so forth for an application already in production. Upper management wants to know why they’re getting customer complaints and their customer service team doesn’t know how to support their product. Upper management decides to have a quality control audit and when the auditors ask for development documentation, none exists. Then you find companies that haven’t updated their user manuals for four versions for a product they sell. That causes user calls, heavy customer service demands and probably lost sales. You can often find significant work when a company has not bothered to document their business processes and without warning get a request for some type of due diligence. Perhaps a company’s customer needs to perform a vendor audit because of a Statement on Auditing Standards, to comply with Sarbanes-Oxley, HIPPA, a bank loan requirement or something else. Set yourself up for a successful project
I have run into opportunities such as those mentioned above and within a few weeks wind up in writer’s hell. My client’s management hasn’t had one of me before and they don’t know how to work with me. More likely than not, key personnel have their business processes in their heads and don’t want anyone to write them down. They believe keeping everything in their head gives them job security. I’ve run into such situations as those described above more than once. I finally concluded that I have the responsibility for setting the expectations for the client. People rarely remember to what they agree and if you don’t write it down, you’ll usually wind up in an uncomfortable disagreement. So, I developed a checklist to help me and my client understand how to make things work for both of us. If you start out with the checklist you can discover quickly if a project fits both parties. It’s better to go somewhere else when management won’t help you succeed. You might find this check list useful. If you don’t, I’m sure many potential employers will. Technical Writer Qualification Questionnaire 1. Has the client given the technical writer requirements and stated his or her expectations clearly? 2. Will you ( the client) provide a corporate style guide? 3. Will the writer have access to subject matter experts regularly? 4. If subject matter experts are unavailable to meet with the writer will the writer have access to knowledgeable subordinates? 5. Will you include you tech writer in staff meetings related to his requirements? 6. If the writer does not have information required to adequately work on the contracted projected will you expect and pay for down time? 7. How will you on-board the technical writer so he or she can complete the contract in the expected time frame? 8. What tools will you provide the candidate: a. Microsoft office - version number b. Visio c. Adobe Photoshop d. Adobe FrameMaker e. Adobe RoboHelp f. Doc-to-Help g. Alternatives to RoboHelp such as MadCap Flare h. Document management tools 9. Are you committed to making the writing project successful and do you have consensus among staff to that end? I’m sure you can think of additional questions to ask. These are simply the ones with which I start. I wrote this to make sure I don’t get caught in another winless tech writing project again. Tom Adelstein currently works as a contract technical writer in the Information Technology Field. In March 2007, his latest O’Reilly Book, Linux System Administration was released. Tom’s home web site Open Source Today has tips and techniques for system administrators and Open Source VARs.
 
Source: ONLamp.com I just got myself an iPhone and I’m extremely pleased with it. I think it’s the best cell phone on the market - a sheer pleasure to use. The purpose of this post is to alert new iPhone customers about a security vulnerability in AT&T/Cingular’s Voicemail system that has not been fixed for more than a year. I first wrote about this on February 1, 2006: Exploit Cingular Voicemail Vulnerability via Caller ID Spoofing. As soon as I got my new AT&T/Cingular number, I tested for this vulnerability and I can confirm that it still exists for new AT&T/Cingular accounts (atleast for iPhone customers). I can’t force AT&T / Cingular to fix this issue, but I can tell you about it so you know what to do to protect yourself from this vulnerability. Here is an explanation of the vulnerability in a nutshell: The AT&T/Cingular voicemail system is configured by default not to ask for a password when you check your voicemail from the handset (it asks for your voicemail password if you call your number from another cell phone and press * when your voicemail answers). Unfortunately, the AT&T/Cingular voicemail system trusts Caller ID to determine if the handset is calling it. Because Caller ID can be spoofed easily (see below), anyone can gain access into your voicemail by calling you and spoofing your phone number (it will appear as if you are calling yourself when your phone rings) - should you not answer the call, your voicemail will answer and allow the intruder full access to your messages. Here is how to test the vulnerability:
Buy a calling card from Spoofcard. This service lets you spoof your caller ID. Use another phone and call your cell phone using Spoofcard. When the Spoofcard asks you what number you want to spoof, enter your number again. Do not pickup your cell phone. When the call goes into voicemail, if you are able to listen to your messages without being prompted for a password, then you are vulnerable.
Here is how to protect yourself from this vulnerability:
Call your AT&T/Cingular voicemail (dial your own number from the iPhone). Press 4 to go to “Personal Options”. Press 2 to go to “Administrative Options”. Press 1 to go to “Password”. Press 2 to turn your password “ON”. Hang-up and call your voicemail again from your iPhone. If your voicemail system asks you for your voicemail password you are all set.
I sincerely hope that AT&T/Cingular gets around to fixing this huge security hole in their voicemail system.
 
Source: ONLamp.com My involvement with the Wild West side of Python came somewhat accidently. I am helping organize PyAtl and on June 14th we had an incredible meeting! My company Racemi gave a mind boggling demo of our datacenter management tool that is written in all python. Our FlagShip Product Dynacenter allows any OS, including Windows to move around to different hardware in the time it takes to warm reboot…go Python! Finally, Google gave two presentations, one on Cross Site Scripting Attacks and one on Twisted. We also officially launched the PyAtl website that night which is running the bleeding edge Turbogears stack of Sqlalchemy,Genshi, and Toscawidgets. My friend Alberto Valverde is in charge of Toscawidgets and the concept is really awesome! If you haven’t met Alberto yet, you should, he is one of those rare exceptionally helpful, yet insanely smart people. Here is where the the fun started… I invited Mark Ramm and Jonathan Lacour to come to our meeting and talk about Turbogears. Mark and Jonathan mentioned that on the way up to the meeting they had a crazy idea. How about building Turbogears on top of Pylons? They announced an experimental sprint the next weekend and this is where things got wacky! Rick Copeland, Jonathan, Mark,Mike Schinkel, and myself met at Jonathan’s house and started to experiment. We ran into an initial snag with understanding the pylons controller and I called up Shannon Behrens, another friend, who is insanely smart and incredibly helpful. Shannon works on the Pylons trunk and asked him how we would mount Turbogears on top of Pylons. After he got over the “you want to do what!”, he helped us with some good advice. At some point we all went to get some Pizza, then came back to watch Jonathan and Rick go into the “Zone”. After they came up for air, a controller was working and Frankenstein was born..mu ha, ha, ha, ha! It was 1 in the morning by the time we all quit, but Mark, Jonathan, Rick and I decided to meet at Panera the next day at 1PM to finish it off. A little more work was done the next day, but part of the day was spent just hanging out and talking shop which was pretty cool as I hadn’t met Mark or Jonathan before. It turns out Mark and I have a bit in common as we both grew up on a “Ranch type compound” for parts of our lives, we both have been SysAdmins, and we are both writing a Python book right now. Mark is a really fun guy to hang out with for anyone who hasn’t met him yet! So, after the weekend was over with I started to hear about some of the excitement. I emailed my most educated friend Mr. Phd from Caltech Titus and mentioned maybe he could contribute with some Twill stuff for TG2. I talked via email a little with Kevin Dangoor and noticed his big announcement. Apparently, people were really fired up about the collaboration between Pylons and Turbogears. Lets face it, I am very excited that all of these smart people are working together! It now seems that some momentum in the battle for the perfect Python Web Application has shifted, as Pylons and Turbogears have the 800 lb Gorilla of ORM’s in SQLAlchemy, and they have Toscawidgets which is about to come into its own. I have written several small web applications in Turbogears and Django and I like both. Currently Turbogears and Pylons don’t have a way to graphically manage the database like Django’s admin tool and the API isn’t as stable, but from what I hear this is about to change….. I do get the impression that many people in the Turbogears/Pylons world feel left out and a common heard rallying cry is that Django has a “Not invented here attitude”. Whether this is true or not, I learned this past week that if smart python programmers feel they aren’t apart of the fold, they are capable of creating an uprising and doing just about anything! I will close with this comment, Ian Bicking, who wrote paster which I think is pretty sweet, mentioned in a fairly famous post that it would be great, but unlikely that Pylons and Turbogears would merge, yet the impossible happened and the two frameworks are closely working together. May I suggest an equally implausible scenario? What if Django, Pylons and Turbogears worked on developing an interchangeable API? Is this impossible…you tell me!
 
Source: ONLamp.com Version 3 of the GPL, years in the making, will be released in its final form on Friday, June 29. Visit the Free Software Foundation web site at noon Friday East Coast US time, to see Richard Stalllman talk live about this historic occasion. You can find some commentary about the current state of feelings in the computer industry about v3 in a recent blog of mine, and Allison Randal, who has participated heavily in the development of v3, has written about it extensively on the O’Reilly site.
 
Source: ONLamp.com Here is a press release on Dr. Dobb’s regarding the Storm ORM. And here is a discussion on reddit about Storm. It appears that Gustavo Niemeyer created Storm when SQLAlchemy didn’t exactly meet his needs (and after contributing some code to the SA project). From the Dr. Dobb’s press release:
“Storm is particularly designed to feel very natural to Python programmers, and exposes multiple databases as stores in a clean and easy to use fashion.”
May SQLAlchemy and Storm feed off of one another, provoke one another to higher levels of excellence, and live peacefully with one another.
 
Source: ONLamp.com A couple of weeks ago, Noah Gift and I signed a contract with O’Reilly to write a book on Python for System Administrators. We’ll be covering topics ranging from creating command line utilities to processing text to interacting with databases to SNMP to a bunch of other fun stuff. Noah just stumbled across Storm, an ORM created by Canonical (the folks who brought us Ubuntu) and has blogged about it. Question one for the readers: is Storm something you’d like to see covered in the book? Question two for the readers: is there something you’d specifically like to see in the book Noah and I are working on (taking into consideration this is a Python book for system administrators)? Your thoughts are graciously welcome.
 
Source: ONLamp.com Imagine sitting on a ridge overlooking a wild African Jungle. You see something charging in the distance and you recognize it to be a gigantic,800 lb, silverback Gorilla. He rears his head, sniffs the air, and then begans to howl and beat on his chest angrily. You can tell that he smells something in the distance and he doesn’t look happy. As black, ominous, storm clouds rapidly gather, you notice there is something off in the distance. It is approaching very quickly and it looks like yet another very large silverback Gorilla. This Gorilla is moving in a rapid, purposeful charge, directly at the first Gorilla! When they are about 100 yards apart, the running Gorilla stops, beats its chest and howls so loudly, and so furiously, that you can see pebbles shaking next to your feet. Gorilla scent permeates your nostrils and causes your eyes to water and your vision to blur. Suddenly, both Gorillas show their huge fangs and began to charge directly at each other in a blind rage. You turn your head as you don’t want to see what is going to happen next….. I wrote in another post about the large quantity of options in web application frameworks in Python. It appears there is now another Python ORM called Storm. Storm, is used as the backend for Launchpad which is a trac like tool that uses their web framework stack with their homegrown version control system . So what does this mean for SQLAlchemy? Only time will tell of course, but competition is the fuel that drives intelligent people to innovate. I really like this about Python. There is so much talent and maturity in the Python world that it constantly enables innovation and choice in 3rd party tools. How many, if any, other languages have this type of energy and diversity? What may not be obvious to some, is that there is yet still, an incredible amount of Python code under wraps in commercial organizations. Some of this code is incredibly innovative and powerful. I know that my Company, Racemi has a mind boggling 300K lines of Python code that fully automates a Datacenter. Some of our code does stuff that I can’t talk about about unless you pay us big money or OEM us, but trust me…it is cool! How many other organizations have similar innovate Python code that is part of a proprietary system? Look at YouTube, Google, etc. All of this innovation and diversity is a testiment to the power, flexibility and maturity of Python. So in closing, are you another 800 lb Gorilla, but you can’t talk about it as you live in a secret part of the jungle other people can’t get to? I would love to hear your story…..
|