Software Engineering

Choosing a web framework: Python, Django vs. Ruby on Rails

Posted in Geek, Python, Ruby on Rails, Software Engineering on May 23rd, 2010 by leodirac – 3 Comments

One of my responsibilities in my new job is to lay the groundwork for development of the company’s technology.  One decision that was pretty easy to make is that we’ll be building tools that you can use from a web browser, that is to say, a web application.  Next comes the choice of what language [...]

...full article


A Tough Engineering Decision

Posted in Databases, Ego, Societal Values, Software Engineering on May 22nd, 2007 by leodirac – 2 Comments

Here’s the scene: It’s 1:30 PM. In 30 minutes the CEO of your company starts a conference call with analysts to announce quarterly earnings. PR told you he is going to tell the Wall Street analysts how cool your team’s website is. It is quite a success — in 18 months it has rocketed from non-existence to the world’s fourth most popular site in a very competitive industry. Sounds great to get some recognition, right? Only problem is, today your site’s kinda broken. The night before a database upgrade got confused half-way through with no possibility to roll back. One…

...full article


Model Security: Such a good idea

Posted in Electronic Security, Ruby on Rails, Software Engineering on May 9th, 2007 by leodirac – 2 Comments

Why it’s good to break the MVC pattern Bruce Perens hit on a really good thing when he wrote a package for Ruby on Rails called Model Security. It’s too bad the project is gathering dust. But even if you don’t use the whole thing (I haven’t been able to) there are some really valuable ideas and chunks of code in there. The idea behind Model Security is to centralize security rules in the model classes. Certain objects can only be accessed by certain users. Perens talks about multi-layered security. But in my mind the real benefit is that you…

...full article


Rhapsody Artist-Linker Greasemonkey Script Part 2

Posted in Music, Software Engineering on May 4th, 2007 by leodirac – 3 Comments

I’ve made some updates to the Rhapsody Greasemonkey Script I mentioned earlier. The script scans your web pages for the names of the most popular 1,000 or so artists and marks up the page with links the Rhapsody Online for playback. So anytime you’re reading a web page that’s talking about popular music, the names of the musicians will be hyperlinks that when you click them will let you listen to the artists’ music. The biggest change from the previous version is that instead of running the regex on the HTML of the doc, it just runs on the text…

...full article


Rhapsody Greasemonkey Script: Optimizing Text Manipulation in Javascript with Regular Expressions

Posted in Computer Science, Music, Software Engineering on April 24th, 2007 by leodirac – 2 Comments

After many months of talking and thinking about it, I finally wrote a greasemonkey script to annotate web pages with Rhaplinks. The script scans web pages looking for the names of musicians and when it finds them, links them to Rhapsody.com so you can listen to music by the named artist. This simple idea is actually tricky to implement properly. Rhapsody has a lot of music and a lot of artists. So many that keeping the entire list in a javascript program is impractical, as is downloading the entire list from the server. So I took the most popular 50-100…

...full article


Problems Scaling Ruby to Complex Systems

Posted in Personal Growth, Ruby on Rails, Software Engineering on March 4th, 2007 by leodirac – 8 Comments

I’m pretty annoyed with Ruby right now. At least I feel that way. Looking a little deeper I realize the source of the annoyance is, like usual, my own shortcomings. My friends and I embarked on a software project a while back. I helped talked the group into using Ruby on Rails as the framework over choices like Java or .net because I was excited about it. Many had reservations. Today I’m annoyed at myself for not listening to them more. The biggest problem with an uncompiled language is that there’s no compiler to tell you when you’ve screwed something…

...full article


Rhapsody.com adds library support

Posted in Ego, Music, Software Engineering, User Experience on February 21st, 2007 by leodirac – Be the first to comment

I am both proud and awed by the productivity of the rhapsody.com development team. Just two months after Rhapsody.com added playlists, a huge new feature has been added: a personal music library for bookmarking your favorite content. Along with it is a fabulous new AJAX library manager which gives users quick visual access to a large collection of music in their web browser. What makes this even more impressive is that one of those two intervening months included the end of year holidays. When I’m doing long-term project scheduling, I generally write off 3 weeks out of December because of…

...full article


Global XML config for time change rules

Posted in Software Engineering, Tech Industry, Technology on February 15th, 2007 by leodirac – Be the first to comment

I’m sure by now most of you have heard that last summer congress legislated a new start to Daylight Savings Time this year. Instead of the first Sunday in April it’s going to start on the second Sunday in March from now on — March 11 instead of April 1 this year. Overall I think this is a good change — I’d prefer daylight savings time year ’round, except for that part where kids get run over going to school in the dark. But it is of course playing havoc with computer systems everywhere which have the DST rules built…

...full article


Isolate your Continuous Integration Server!

Posted in Electronic Security, Software Engineering, System Architecture on October 20th, 2006 by leodirac – Be the first to comment

Here’s a little food for thought about hacking into a development system. If you wanted to gain control of somebody’s network how would you do it? Well, you’d probably try to figure out a way to get one of the computers on the inside of their firewall to run some code for you. If you could get it to run an arbitrary block of code that you wrote, then you’re probably pretty close to 0wning it. Now think about the continuous integration server in your development farm. What does it do? Whenever anybody checks in new code, it runs all…

...full article


The Magic Wand of Encapsulation

Posted in Geek, Humor, Software Engineering on October 18th, 2006 by leodirac – Be the first to comment

I have a hat in my office. It’s a magic hat. You can ask it any question about software engineering, coding, or object-oriented design, and it will give you the answer. Just reach in and pull out a slip of paper and be amazed at the wisdom of the hat. Follow its advice and you’ll never go wrong. Every slip of paper says the same thing: “Encapsulate it.” Back in the 1980’s we all knew that global variables (or common blocks in Fortran) were evil. They led to subtle, hard-to-find bugs. We all know the kind — you call a…

...full article