~/devreads

12 Sept 2008

1 min read

I finally got fed up with Blogger, and am moving this blog to live on Wordpress hosted off of scripts.mit.edu. In the process of converting everything over and setting up Wordpress I’ve decided I hate it, but hopefully I hate it less than I hate Blogger. We’ll see. I’ve also changed the URL to this blog from http://nelhage.com/blog to http://blog.nelhage.com,…

10 Sept 2008

Steve Yegge 16 min read

"And as for this non-college bullshit I got two words for that: learn to fuckin' type" — Mr. Pink This is another one I've wanted to write forever. Man, I've tried a bunch of times. No ruck. Not Rucky. Once again I'm stuck feeling so strongly about something that I'm tripping over myself trying to get my point across. So!…

7 Sept 2008

1 min read

Like most people who started with Rails a while back, I first loved Rails fixtures and ended up hating them (slow, a pain to maintain etc…). I went through different experiments, trying different existing libs, writing my own solutions etc… I wasn’t quite satisfied until I found factory_girl from thoughtbot. You might not feel the need for a decent fixtures…

4 Sept 2008

Federico 2 min read

What does “favour composition over inheritance” mean, and why is it a good thing to do? Object composition and inheritance are two techniques for reusing functionality in object-oriented systems. In general, object composition should be favoured over inheritance. It promotes smaller, more focused classes and smaller inheritance hierarchies. Troels Knak-Nielsen wrote: Class inheritance is a […]

design patternsprogrammingweb development

3 Sept 2008

Federico 1 min read

Whatever you write today will become legacy. Legacy code is often written by people who thought they got it nailed, and later realize that the application is legacy. Not because of the application itself, but because of changes in themselves. “What the hell was I thinking?” Code is always the same, it’s your perception of […]

programming

Brendan Eich 2 min read

We have been busy, mostly fixing bugs for stability, but also winning a bit more performance, since TraceMonkey landed on mozilla-central, from which Firefox 3.1 alpha-stage nightly builds are built. Tonight’s builds include a fix for the bug that ilooped a SunSpider test (my apologies to those of you who suffered that bug’s bite). But … Continue reading "TraceMonkey Update"

mozillauncategorizedtracemonkey

27 Aug 2008

1 min read

Wow, it’s been a while since I blogged. With all the cool kids saying that spending time reading RSS feeds is overrated (see Defunkt’s keynote for instance) I even wonder if people will ever read this post! Anyways, I have been quite busy preparing courses for classes I gave to a bunch a great Engineers at one of the Fortune…

25 Aug 2008

Federico 1 min read

For HR and legal purposes, most development companies classify Software Engineers into ranks from 1 to 4 (or 5). The higher the rank, the higher the responsibilities, expectations, independence and pay grade. To cut it as an interviewer and manager, you’ll need to classify people accurately with a minimum amount of direct personal exposure: a […]

agile developmentprogramming

Federico 1 min read

This tutorial by Charitha Kankanamge takes you through different approaches to testing Web services. There are multiple approaches to invoking Web services, regardless of the platform or technology used to built such services. If a service consumer has access to the contract (WSDL) file of a given Web service, then, that particular service can be […]

toolsweb services

1 min read

Spice up your presentations with Keithnote: Where improvisation meets automation!

23 Aug 2008

Brendan Eich 7 min read

I’m extremely pleased to announce the launch of TraceMonkey, an evolution of Firefox’s SpiderMonkey JavaScript engine for Firefox 3.1 that uses a new kind of Just-In-Time (JIT) compiler to boost JS performance by an order of magnitude or more. Results Let’s cut straight to the charts. Here are the popular SunSpider macro- and micro-benchmarks average … Continue reading "TraceMonkey: JavaScript…

mozillauncategorizedjavascriptlaunchtracemonkey

22 Aug 2008

1 min read

I’ve been using wpa_supplicant to manage wifi on my Ubuntu laptop for a while, and have found that it’s pretty close to what I want for managing wireless — closer than anything else I’ve found, at least. I figured I should document my setup and experiences. Some Background You probably all know just how much wireless on Linux can be…

20 Aug 2008

Federico 1 min read

Most projects carry some amount of legacy code. You can’t work very fast with a legacy code base, but you can speed it up if you establish a strategy to deal with your existing code and mitigate risk as new development goes forward. What is Legacy Code? Legacy code is code from the past, maintained […]

programmingsoftware architecture

16 Aug 2008

12 Aug 2008

Steve Yegge 24 min read

Some CEO emailed me the other day. I don't remember who it was; people mail me all the time about their blah blah yawn product service thingy, and on the rare occasions I bother to read mail from strangers, I don't usually remember anything about the email, even if I respond to it. I can remember broad categories of questions…

4 Aug 2008

Federico 1 min read

The includes of the system map out the dependencies of the system, which files depend on which, which subsystem depends on which. When working with a system, it’s always useful to map out the dependencies before hand. Here are some examples: WordPress 2.2.1 http://wordpress.org MediaWiki 1.12 http://www.mediawiki.org/ phpBB 3.0 http://www.phpbb.com/ phpMyAdmin 2.9.1.1 http://www.phpmyadmin.net/ Symfony 1.1 […]

frameworkssoftware architectureweb development

31 Jul 2008

Federico 1 min read

The inside details of the software development cycle: Programmer produces code he believes is bug-free. Product is tested. 20 bugs are found. Programmer fixes 10 of the bugs and explains to the testing department that the other 10 aren’t really bugs. Testing department finds that five of the fixes didn’t work and discovers 15 new […]

programming

30 Jul 2008

Federico 1 min read

Programmers are a great example of thinking outside the box because, well, programmers can actually create the box. If you’ve ever spent more than two minutes talking with a programmer about his work, you’ll find out very quickly that programmers have a passion for what they do. They eat, sleep and breathe programming. Read more: […]

programming

25 Jul 2008

Federico 1 min read

In this post, Alex Iskold discusses the top 10 concepts software engineers should know. A successful software engineer knows and uses design patterns, actively refactors code, writes unit tests and religiously seeks simplicity. Beyond the basic methods, there are concepts that good software engineers know about. These transcend programming languages and projects – they are […]

design patternsprogrammingsoftware architecture

21 Jul 2008

Federico 3 min read

I needed to automate the task of synchronizing files from one server to another, so I wrote a Phing task. Finally today I found some time to finish writing the documentation. Overview FileSyncTask is a Phing extension for Unix systems which synchronizes files and directories from one location to another while minimizing data transfer. FileSyncTask […]

deploymentlinuxprogrammingweb development

16 Jul 2008

13 Jul 2008

Federico 1 min read

Traditionally, there are two fundamental approaches when it comes to organising your development teams: the Architecture-Oriented approach and the Feature-Oriented approach. The first privileges teams that focus on the different architectural layers or components, whereas the second prefers to organise teams around deliverable application features. How do you organise your development teams?

agile developmentsoftware architecture

12 Jul 2008

Federico 1 min read

Django has not been updated for a long time. The most current release, 0.96, was released in March 2007. This is a very long time when you look at the roadmap of other frameworks. But guess what, all that is about to change, because Django 1.0 is only two months away! Over the next six […]

frameworkspython

9 Jul 2008

Federico 1 min read

The “find” command is one of the most powerful and useful Unix commands, you can use it to locate files, and then perform some type of action on the files after they’ve been located. With this capability, you can locate files using powerful search criteria, and then run any Unix command you want on the […]

linuxprogramming

4 Jul 2008

Federico 1 min read

Google announced the release of ratproxy, a passive web application security assessment tool that they’ve been using internally at Google. This utility, developed by their information security engineering team, is designed to transparently analyse legitimate, browser-driven interactions with a tested web property and automatically pinpoint, annotate, and prioritize potential flaws or areas of concern. The […]

securitytools

30 Jun 2008

Federico 1 min read

Flickr Platform PHP MySQL Shards Memcached for a caching layer. Squid in reverse-proxy for html and images. Linux (RedHat) Smarty for templating Perl PEAR for XML and Email parsing ImageMagick, for image processing Java, for the node service Apache SystemImager for deployment Ganglia for distributed system monitoring Subcon stores essential system configuration files in a […]

software architectureweb development

28 Jun 2008

Federico 5 min read

MVC is about loose-coupling, and Modular Programming takes that concept to the extreme. A modular application can dynamically load and unload modules at runtime, completely separate applications in their own right, which interact with the main application and other modules to perform some set of tasks. In this article you will presented with a different […]

frameworksprogrammingsoftware architectureweb development

Federico 1 min read

Karl Seguin has released the official, and completely free, Foundations of Programming eBook. Although simplistic, every programming decision I make is largely based on maintainability. Maintainability is the cornerstone of enterprise development. Frequent readers are likely sick of hearing about it, but there’s a good reason we talk about maintainability so often – it’s the […]

agile developmentprogrammingsoftware architecture

27 Jun 2008

1 min read

Github, probably the most famous social code hosting service just redesigned their homepage and are now featuring hosted projects. I got a very good surprise when Takeo from Powerset & Stafftool hall of fame mentioned to me that Github picked one of my gems as the first featured project! By the way, Takeo is also a Googlecharts contributor (+ a…

25 Jun 2008

Federico 1 min read

Drag and drop widgets to build Web applications, in minutes, with minimal code. WaveMaker Visual Ajax Studio is an easy-to-use visual builder that enables the drag & drop assembly of scalable, web-applications using Ajax widgets, web services and databases. WaveMaker Studio will look and feel especially familiar to client/server developers who are used to working […]

programmingtools

Federico 1 min read

MVC is about loose-coupling, and Modular Programming takes that concept to the extreme. A modular application can dynamically load and unload modules at runtime, completely separate applications in their own right, which interact with the main application and other modules to perform some set of tasks This document (PDF) discusses the classes and interfaces of […]

frameworksprogrammingsoftware architecture

22 Jun 2008

18 Jun 2008

1 min read

In a previous article I took an example of bad metaprogramming and I pushed people to think twice before using metaprogramming. My main points were that: you might make your code way slower if you don’t know what you are doing readability might drop considerably maintainability can become an issue People left some very good comments about how to write…

1 min read

I realized I haven’t updated this blog in a while. Here is a quick update on what’s happened and on things to come: RailsConf 08. Great conference, probably my last Rails Conf though. I’ll be in Orlando for Ruby Conf 08 and I’ll focus on 1 or 2 local conferences (probably mountain west and another one). MerbCamp 08 in San…

17 Jun 2008

Federico 1 min read

When it comes to testing, Cedric Beust (co-author of “Next Generation Java Testing”) lives by the following rules of thumb: “Tests first” or “tests last” is unimportant as long as there are tests. Try to think about testing as early as possible in your development process. Don’t listen to people who tell you to write […]

agile developmenttools

Federico 1 min read

The best code is very shy. Like a four-year old hiding behind a mother’s skirt, code should not reveal too much of itself and should not be too nosy into others affairs. But you might find that your shy code grows up too fast, shedding its demure shyness in favor of wild promiscuity. When code […]

design patternsprogramming

Federico 1 min read

The software industry is currently in the middle of a paradigm shift. Applications are increasingly written for the Web rather than for any specific type of an operating system, computer or device. Unfortunately, the technologies used for Web application development today violate well-known software engineering principles. Furthermore, they have reintroduced problems that had already been […]

programming

Steve Yegge 22 min read

Disclaimer: I do not speak for Google! These are my own views and opinions, and are not endorsed in any way by my employer, nor anyone else, for that matter. Everyone knows and quotes Joel's old chestnut, "Smart, and Gets Things Done." It was a blog, then a book, and now it's an aphorism. People quote Joel's Proverb all the…

16 Jun 2008

Federico 1 min read

Every getter and setter in your code represents a failure to encapsulate and creates unnecessary coupling. A profusion of getters and setters (also referred to as accessors, accessor methods, and properties) is a sign of a poorly designed set of classes. “Getters and setters should be avoided because they break the encapsulation OOP offers”, says […]

design patternsprogrammingweb development

14 Jun 2008

Steve Yegge 51 min read

I will once again plagiarize myself by transcribing a talk I gave. First: be warned! I offer this gesture of respect to you — yes, you! — when I say that this is at least 20 minutes of reading. This is long even for me. If you're surfing reddit, gobbling up little information snacks, then it's best to think of…

12 Jun 2008

Federico 1 min read

Optimization is a complex task because ultimately it requires understanding of the entire system to be optimized. Although it may be possible to perform some local optimizations with little knowledge of your system or application, the more optimal you want your system to become, the more you must know about it. The following 10 articles […]

databasestools

8 Jun 2008

7 Jun 2008

6 Jun 2008

Federico 1 min read

…has become the world’s most popular programming language. This is the story of JavaScript Most languages die in obscurity. Only a few are able to build a following beyond a single project or company. And only a very small number of languages become important. There are many things that a programmer must consider when selecting […]

programming

5 Jun 2008

Federico 1 min read

Most digital data we deal with in the real world is not inherently relational in nature, yet most web applications use a SQL RDBMS for data persistence. CouchDB is fundamentally a different type of database, storing data as independent “Document” objects. They can be easily replicated to other instances of CouchDB for distributed and offline […]

databases

31 May 2008

19 min read

This is an archive of some posts in a forum thread titled "Beware of Bioware" in a now defunct forum, with comments from that forum as well as blog comments from a now defunct blog that archived that made the first attempt to archive this content. The original posts were deleted shortly after being posted, replaced with "big scary company…

30 May 2008

22 May 2008

Federico 6 min read

From managing databases to shopping, writing blogs to sending emails. Ten years of passion, great software architectures, team work and revolutionary ideas. Here are the most influential open-source PHP applications to date: 1998 phpMyAdmin phpMyAdmin is a tool written in PHP intended to handle the administration of MySQL over the Web. Currently it can create […]

programmingtoolsweb development

20 May 2008

18 May 2008

Dominic Steinitz 1 min read

Let be a curve and be an element of the set of all smooth vector fields on . Let re-parameterize the curve. Then and . Thus which is smooth since the composition of smooth functions is a smooth function and therefore . By definition So Also by definition So, using the chain rule Which gives … Continue reading (Induced) Covariant…

semi-riemannian manifolds

17 May 2008

Federico 1 min read

One of the reasons is that UML attempts to become a programming language. By aiming to be able to generate full code actually UML tries to be a programming language. In my mind there is a big problem with a general purpose graphical programming language. In human history the written form of all languages evolved […]

programmingsoftware architecturetools

15 May 2008

12 May 2008

Dominic Steinitz 1 min read

Nothing to do with differential geometry but there was a question on the haskell-cafe mailing list asking for “a proof that initial algebras & final coalgebras of a CPO coincide”. I presume that means a CPO-category. A category is a CPO-category iff There is a terminator, 1. Each hom-set, , is a CPO with a … Continue reading Isomorphic Types

category theory

Steve Yegge 58 min read

Some guys at Stanford invited me to speak at their EE Computer Systems Colloquium last week. Pretty cool, eh? It was quite an honor. I wound up giving a talk on dynamic languages: the tools, the performance, the history, the religion, everything. It was a lot of fun, and it went over surprisingly well, all things considered. They've uploaded the…

11 May 2008

Federico 1 min read

A programmer cannot be Agile if the person that manages him is not Agile as well, and vice versa. That’s why Scrum focuses on management and organization practices while XP focuses mostly on actual programming practices, and that’s why they work so well together. This excellent free book aims to give you a head start […]

agile developmentprogramming

7 May 2008

Federico 1 min read

What does Google, Sun Microsystems, HP, Amazon, Oracle and Motorola have in common? They all use ScrumWorks, an Agile process automation tool that enables teams to self-organize and maximize productivity. Sun Microsystems: “The best compliment I can give to ScrumWorks is that my staff doesn’t think about it. It is intuitive and respectful of the […]

agile developmentprogrammingtools

5 May 2008

4 May 2008

1 min read

Ruby is sexy, Ruby is cool and its metaprogramming potential offers some really cook features. However you might not realize that your cleverness is slowing down your code. Today I was working on cleaning up merb_helper a Merb plugin that brings a lot of the stuff Rails developers are used to. In Merb we aim for speed and try to…

2 May 2008

29 Apr 2008

28 Apr 2008

Steve Yegge 22 min read

"We're going to get lynched, aren't we?" — Phouchg And you thought I'd given up on controversial blogs. Hah! Preamble This must be said: Jamie Zawinski is a hero. A living legend. A major powerhouse programmer who, among his many other accomplishments, wrote the original Netscape Navigator and the original XEmacs. A guy who can use the term "downward funargs"…

27 Apr 2008

1 min read

Just a reminder, this coming week end, San Diego presents BarCamp for the third time. This time, the chosen Venue is Microsoft in La Jolla I was thinking about preparing 2 intro talks, one on Merb and one on Unobtrusive Javascript (jQuery, Prototype + LowPro etc…), then we’ll see the crowd and what people are interested in. Feel free to…

26 Apr 2008

Dominic Steinitz 1 min read

Let and be sub-manifolds of . Then and there are charts: for about adapted to for about adpapted to such that Now let be the injection map. Consider the commutative diagram below. Then which is smooth. Hence is smooth.

semi-riemannian manifoldsadd new tag

24 Apr 2008

Federico 1 min read

I’m a big fan of PHP_CodeSniffer and I think it’s a great development tool, it ensures that you write code that is easy to read and maintain. But, what about making sure that the code you write is secure and doesn’t have any vulnerabilities? Right, there’s another tool for that… PHP Security Scanner is a […]

securitytoolsweb development

Federico 1 min read

Web security is possibly today’s most overlooked aspect of securing the enterprise and should be a priority in any organization. Recent research shows that 75% of internet attacks are done at web application level. Web application security scanners ensure website security by automatically checking for SQL injection, Cross site scripting and other vulnerabilities. There are […]

securitytoolsweb development

23 Apr 2008

Federico 1 min read

A twelve-year-old can build a nice Web application using the tools that came standard with any Linux or Windows machine. Thus it is worth asking ourselves, “What is challenging, interesting, and inspiring about Web-based applications?” This textbook written by Eve Andersson, Philip Greenspun, and Andrew Grumet for the MIT course “Software Engineering for Internet Applications”, […]

programmingsoftware architectureweb development

22 Apr 2008

17 Apr 2008

16 Apr 2008

1 min read

As you’ve probably heard, Rails now moved to its own GitHub repo. If, like me you were a heavy piston user, you are wondering how you will be able to do the same thing if you switch to git. First off, you need to know that Piston will soon support git. As a matter a fact it already does. At…

15 Apr 2008

1 min read

THIS CONTENT is OUTDATED and can’t be used with Merb 1.0 or more recent Merb doesn’t really have a core team per say. It’s actually managed the same way Rubinius is managed meaning that few people such as Ezra, Wycats and Ivey lead the development while many other contributors have commit rights to the different repos. Patches are handled via…

14 Apr 2008

10 Apr 2008

Federico 1 min read

The first in a two-part series that appeared in The Rational Edge, this article presents a case study that analyses the requirements captured in use cases and transforms them into implementable representations that can be directly coded. An excellent article written by Gary Evans. Getting from use cases to code: Part 1: Use-Case Analysis Getting […]

programmingweb development

1 min read

If you follow my blog, you already know what Merb is. I love Rails and I truly believe it has changed web development. At least it has changed the way I do web development. But Merb looks slick, apparently is way faster than Rails, and has less “fluff” and less magic. Now that we are getting really close to a…

8 Apr 2008

1 min read

_* this content is now outdated and only applied to Merb 0.9_* I the previous post I covered few useful tips for Merb 0.9. The good news is that Merb should get its wiki setup over the week end! Here is another batch of hopefully useful tips: In init.rb, you can define a dependency and specify a version number: dependency…

6 Apr 2008

Federico 1 min read

Application usability is enhanced when users know how to operate the UI and it guides them through the workflow. Violating common guidelines prevents both. Once again usability expert Jakob Nielsen writes about common mistakes made by designers, front-end developers and information architects when designing user interfaces. Top-10 Application-Design Mistakes

web development

5 Apr 2008

1 min read

_* this content is now outdated and only applied to Merb 0.9_* I’m working on a post reporting a recent benchmark I did comparing Rails vs Merb performances for a client’s app. In the meantime, here are few tricks you might need when using Merb 0.9x In the init.rb file, uncomment and rename c[:session_id_key] (in the Merb::Config.use block) In the…

4 Apr 2008

Brendan Eich 5 min read

It seems (according to one guru, but coming from this source, it’s a left-handed compliment) that JavaScript is finally popular. To me, a nerd from a tender age, this is something between a curse and a joke. (See if you are in my camp: isn’t the green chick hotter?) Brendan Eich convinced his pointy-haired boss … Continue reading "Popularity"

mozillauncategorizedhistoryjavascript

31 Mar 2008

Federico 1 min read

Varien, one of the most important eCommerce development and consulting firms in the world, has taken eCommerce to a completely different level with the latest release of Magento 1.0. An amazing, flexible, modular and scalable open-source eCommerce solution, powered by one of the most popular systems on the web today, the Zend Framework. Congratulations to […]

frameworksweb development

23 Mar 2008

1 min read

For some time now, many of us around MIT have noticed just how awesome sshfs is. It gives a totally lightweight way to access the remote filesystem of any machine you have ssh to, without requiring any extra setup on the host. I’ve been running for at least a year now with my /data RAID on my server sshfs-mounted on…

17 Mar 2008

1 min read

I’m sure, at least once in your life you played with Duplos. Duplo bricks are eight times the size in volume, twice the length, height and width of traditional Lego bricks, and are easier to handle for younger children. Despite their size, they are still compatible with traditional Lego brick. Duplos are great to introduce kids to the concept of…

15 Mar 2008

13 Mar 2008

1 min read

I’ve recently switched to Conkeror as my primary browser. It started life as a Firefox extension, but nowadays it’s a standalone app built on top of Mozilla’s xulrunner, so it uses the Gecko rendering engine. What it is, is an emacs implemented in Javascript, for the web. This means on the one hand that it acts like emacs. Most of…

11 Mar 2008

Federico 1 min read

What’s a Web Cache? Why do people use them? A Web cache sits between one or more Web servers (also known as origin servers) and a client or many clients, and watches requests come by, saving copies of the responses, like HTML pages, images and files (collectively known as representations), for itself. Then, if there […]

programmingweb development

Federico 2 min read

Agile development methodologies have been around for a while now, and the list of them is long. It includes: Extreme Programmin (XP): Developed by Kent Beck, Ward Cunningham, and Ron Jeffries, XP is probably the best-known lightweight methodology. With its roots in the Smalltalk community, it is a relatively complex system of practices, and Highsmith […]

agile developmentprogrammingweb development

8 Mar 2008

5 Mar 2008

1 min read

I started moving some of my projects to GitHub. Here is my GitHub account. Projects moved to GitHub: GlobaLite ActiveRecord Backup mimetype-fu I’m planning on moving GoogleCharts, RandomWordGenerator and some not released stuff to GitHub so people can have fun forking my projects. Git and GitHub are the new cool things. GitHub is planning on setting up a gem server…

3 Mar 2008

1 min read

If you don’t know about git and github yet, it’s time you clean up your RSS feeds and find some good source of information. Github is used by the Merb core team and I’ll show you how to use github to fork Merb, make your modifications and “submit your patch”. This is the exact reason why github is simply awesome,…

29 Feb 2008

Federico 1 min read

MediaWiki is definitely one of the most widely used and best known Wikis out there, it powers Wikipedia.com, but I’m sure you already knew that. I’ve been using it at work to record and document all our internal systems and projects. It’s a great tool, it allows developers and projects managers to collaborate, provide and […]

programmingtoolsweb development

1 min read

I’ve been using git and git-svn for a little while and never had a problem… until today. On one of my project, we have a SVN repo but since I prefer using Git, I’m using git-svn. Git-svn has been great, it let me create my own local branches for each new set of features (that’s when I don’t forget to…

28 Feb 2008

1 min read

For the last few months I worked on a Rails app called GumGum. GumGum is a licensing and distribution platform for online content. GumGum believes paying a flat rate to license content for online use is illogical. Offline, the flat rate model works because distribution is finite. Online, thanks to Google and other search engines, a story lives forever. GumGum…

25 Feb 2008

19 Feb 2008

1 min read

broder has been hacking on some better quicksilver integration for Hiveminder using todo.pl. I don’t use a mac, but I don’t see why linux users shouldn’t get fun toys to. So I hacked up the following two-liner that uses todo.pl and ratmenu to pop up a list of tasks, and mark one as completed: #!/bin/sh todo.pl | perl -ne 'push…

17 Feb 2008

12 Feb 2008