Skip to main content

Posts

Showing posts with the label software

Robots!

I finally managed to get my Google Wave Robot up: http://rabidrunner.appspot.com Of course, this is just the hello world example written in Python. I am trying to come up with less trivial examples, but first I want to use this application to try out a database access, a file upload, a headline capture (RSS reader), and some other nifty little tricks that will prove to be useful. Google Wave still looks like it has a way to go. Using the sandbox build, it still is a bit slow, but that may be due to the massive amount of posting and replying that is going on. I kind of wish there was an easier way to filter out certain waves instead of loading the most recent. I'm also anxiously looking forward to these items once the real build comes out: - Google Wave server - Robots from places other than AppEngine - Integration with other databases besides GQL - Security features

The OO Design Pyramid

A great article on what Gene Shadrin calls the OO Design Pyramid: [sys-con.com] The references of this articles might not be enough to infer Shadrin's concept of the OO Design Pyramid, and I'm not sure where he obtained his data for Figure 3 (Design Time vs. Design Flaw), but on the surface I believe this is a fantastic representation of Object Oriented Design in an easy to understand, structured form. Shadrin present a number of plausible ideas here. Using basic concepts without patterns will probably cause an architect to eventually design to patterns, which takes much longer. Designing with patterns but without the basic concepts typically leads to confusion and no "glue" between the patterns. I have read the Gang of Four books, several Fowler books, and others, and have seen them demonstrate the necessity of lower layer concepts with design patterns, but not the other way around. I really feel Shadrin has something here.

Mythical Man Month - Recap

Even after almost 35 years in print, and with such sweeping changes in the software industry, I still find the lessons and observations in this book relevant in today's development environment. The Man-Month is truly mythical; software projects work best with a very few, sharp developers. When a project becomes late, throwing more people at it makes it later, and communication/synchronization between parties is key. Touching on such topics as unit testing, regression testing, project hierarchies, and niche languages, MM-M predicted long in advance very common, important practices found in today's projects. Brooks even touches on his excitement of object-oriented programming, his skepticism of the benefits of artificial intelligence, and the potential benefits of shrink-wrapped software. Even though they were presented in 1975, these are all correct assertions in 2009. Being the 20th anniversary edition, Brooks adds new chapters to reflect on the thoughts of the first editi...

Mythical Man Month

I'm an avid but slow reader, so as a reward for finally getting through the heavy "Guns, Germs, and Steel" by Jared Diamond on Monday night, I am rewarding myself by picking up "The Mythical Man-Month" by Fred Brooks. I guess this is the quintessential software project management book, but as a developer I still am concerned with the software process because I like to be cognizant of the time constraints of my work. I probably bought this book about four years ago, so I regret not reading it through the first time due to its heavy material. I'm a little more patient now, so maybe this time around it will be easier. Other geeky stuff I've read: "Just for Fun" - Linux Torvalds "Hacker Culture" - Douglas Thomas "The Art of Unix Programming" - Eric Raymond "Domain Driven Design" - Eric Evans

Free stuff I can't live without

The top 10 free tools I can't live without, Windows Edition: vim - to  code stuff putty - to log in and browse... WinSCP - ...and then transfer files Wireshark - to go deep Cygwin - because nothing beats grep RealVNC - for  graphical remote sessions TortoiseSVN - easy, fast version control with a GUI VMware - when I run out of hardware and want to check out Linux distros procexp - another awesome tool from sysinternals firefox - which could be chrome when the bugs are ironed out Linux Edition: vim - who knew! fluxbox - simplicity is bliss xmms - like I  mentioned above opera Wireshark/tcpdump svn - to host and serve the Windows subversion clients gcc - to build all these neat programs cifs - to mount the Windows shares wodim - makes CD/DVD burning that much easier mysql - for my running log entries!