Archive for the 'programming' Category
Friday, January 11th, 2008
Dr. Dobb’s Journal has a nice summary of the new features introduced in Microsoft’s latest developer environment.
Since the release of the .NET Framework 1.0, Microsoft has committed to a made-to-measure programming environment with each new version of its managed framework. But for a number of reasons, this tradition was interrupted last year when .NET Framework 3.0 made its debut without a new version of Visual Studio. This year, however, .NET 3.5 comes out with a new programming environment—Visual Studio 2008.
Posted in programming | No Comments »
Monday, December 31st, 2007
Steve Yegge has put up an insightful post on some of the issues with dealing with a large code base. Definitely worth a read.
I say my opinion is hard-won because people don’t really talk much about code base size; it’s not widely recognized as a problem. In fact it’s widely recognized as a non-problem. This means that anyone sharing my minority opinion is considered a borderline lunatic, since what rational person would rant against a non-problem?
People in the industry are very excited about various ideas that nominally help you deal with large code bases, such as IDEs that can manipulate code as “algebraic structures”, and search indexes, and so on. These people tend to view code bases much the way construction workers view dirt: they want great big machines that can move the dirt this way and that. There’s conservation of dirt at work: you can’t compress dirt, not much, so their solution set consists of various ways of shoveling the dirt around. There are even programming interview questions, surely metaphorical, about how you might go about moving an entire mountain of dirt, one truck at a time.
Industry programmers are excited about solutions to a big non-problem. It’s just a mountain of dirt, and you just need big tools to move it around. The tools are exciting but the dirt is not.
Posted in programming | No Comments »
Friday, December 7th, 2007


Beautiful Code: Leading Programmers Explain How They Think
edited by Andy Oram & Greg Wilson.
O’Reilly, 2007.
Beautiful Code is a collection of essays by master programmers, each discussing a piece of code or software architecture that they find particularly beautiful or elegant. The essays cover a wide range of topics and some will really challenge your understanding, but readers who put in the effort will be rewarded. This is an invaluable resource filled with practical wisdom from gurus, and pretty much all of the code is taken from software in actual use. This book is a must-read for any programmer, and could one day be regarded as a classic text on programming.
Rating: 9/10
Links:
Posted in books, programming | No Comments »
Thursday, November 8th, 2007
The DejaVu fonts are based on the Bitstream Vera fonts, and are a set of nicely designed fonts that are released and being improved upon under an open source license. Of particular interest for programmers is the monospaced font, which makes code editor listings much more readable, especially when compared to the ancient Courier New. Among other advantages, it has the important characteristic that lowercase ‘L’, capital ‘I’, and numeral ‘1′ characters are visually distinct, as well as capital ‘O’ versus numeral ‘0′. Bitstream Vera was one of the first things I installed when setting up a new development environment, but from now on I will be using DejaVu.
The DejaVu fonts are a font family based on the Vera Fonts release 1.10. Its purpose is to provide a wider range of characters (see Current status page for more information) while maintaining the original look and feel through the process of collaborative development (see Authors). The family is available as TrueType fonts and also as third-party packages.
Posted in design, downloads, programming | No Comments »
Thursday, October 11th, 2007
Particletree has an informative article on Fitt’s Law, an important guideline in user-interface design.
Published in 1954, Fitts’s Law is an effective method of modeling the relationship of a very specific, yet common situation in interface design. That situation involves a human-powered appendage at rest (whether it’s physical like your finger or virtual like a mouse cursor) and a target area that’s located somewhere else.
Posted in computers, design, programming | No Comments »
Wednesday, September 26th, 2007
Joel on Software examines the recent Excel 2007 bug.
By now you’ve probably seen a lot of the brouhaha over a bug in the newest version of Excel, 2007. Basically, multiplying 77.1*850, which should give you 65,535, was actually displaying 100,000.
Posted in apps, computers, programming | No Comments »
Tuesday, September 18th, 2007
Coding Horror has a nice summary of classic puzzles in computer science, which you may have seen in your university courses.
I prefer to think of programming languages as utilitarian tools for real world problems. They let me accomplish pragmatic (and often prosaic) goals. PHP is about as unsexy a language as you’ll ever find, but does that matter when it’s the technology driving the current Boardwalk and Park Place of the web world? I’m not a fan of puzzle questions in interviews; I’d rather have potential developers give me a presentation or write a reasonably useful program in the real development environment they’ll be using on the job. Solve all the puzzles you want, but the only one we’re getting paid to solve is the customer’s problem.
That said, many fundamental computer science concepts can be summarized well in puzzle form, which aids tremendously in teaching and learning these key concepts. Here’s a quick list of the classic computer science puzzles that I remember from my university days
Posted in programming, puzzles | 1 Comment »
Monday, July 30th, 2007
A great tutorial on how to code the Python way.
In the tutorial I presented at PyCon 2006 (called Text & Data Processing), I was surprised at the reaction to some techniques I used that I had thought were common knowledge. But many of the attendees were unaware of these tools that experienced Python programmers use without thinking.
Posted in programming, tips | No Comments »
Wednesday, July 18th, 2007
This site has collected a large list of laws related to software development.
Inspired by Phil Haack’s article 19 Eponymous Laws of Software Development, I decided to collect laws, axioms and rules pertaining to mainstream software development and put them in a nice, easy-to-read table.
Posted in funny, programming | No Comments »
Tuesday, July 3rd, 2007
National Geographic has published an interesting article on how swarm behaviour models can help create smart, distributed problem-solving systems.
Where this intelligence comes from raises a fundamental question in nature: How do the simple actions of individuals add up to the complex behavior of a group? How do hundreds of honeybees make a critical decision about their hive if many of them disagree? What enables a school of herring to coordinate its movements so precisely it can change direction in a flash, like a single, silvery organism? The collective abilities of such animals—none of which grasps the big picture, but each of which contributes to the group’s success—seem miraculous even to the biologists who know them best. Yet during the past few decades, researchers have come up with intriguing insights.
Posted in programming, science/nature | No Comments »
Friday, June 15th, 2007
Amusing banner ad from Microsoft.
Posted in funny, programming | No Comments »
Thursday, June 7th, 2007
Rather than just sending back a memory dump, how would you like to be able to physically punish the developer that’s causing you so much anguish?
Posted in funny, programming | No Comments »
Tuesday, April 17th, 2007
If you are curious how the C language came to be, read this paper by Dennis Ritchie himself.
The C programming language was devised in the early 1970s as a system implementation language for the nascent Unix operating system. Derived from the typeless language BCPL, it evolved a type structure; created on a tiny machine as a tool to improve a meager programming environment, it has become one of the dominant languages of today. This paper studies its evolution.
Posted in history, programming | No Comments »
Friday, March 2nd, 2007
This is quite an outrageous project posting at GetACoder.com. The budget is $1000-$3000! Good luck.
Hi,
So I’m posting for a rather large project. I need someone to program me a new OS (Operasting System) that looks different than Ms Windows XP etc. but has the same style. It does not need to run on a mac but all the other PCs. It’s supposed to have a stylish look with clear edges etc. And ITS NOT SUPPOSED TO BE JUST A REDESIGNED WINDOWS as I’m going to sell that operating system later on. It’s going to be called BlueOrb.
These are some important points :
It should have ALL THE FEATURES that Windows Xp Professional has.
ALL the files that run on Windows XP ust also run on the BlueOrb OS.
It must have a very user-friendly interface (like MS WINDOWS XP)
When it gets Installed, the user needs to insert a serial number.
It HAS to be HACKER SAFE!
It must be quick and good looking.
Note that I only accept quality work and do not want any quickly done BS.
greetz,
M.Reinhardt
Some of the followup comments are rather funny as well. allencolmes writes:
Hi. I can do this for you next week, when I plan on taking a break from a nonotech based / atomic fission driven search engine thats going to make larry page wet his pants. 6 days to code, 1 to rest. It will be written from scratch and completely original in design, so don’t worry about copyright bs. I plan to write the entire OS in C, and blindfolded, if its all the same to you. 100% secure will not be a problem either…In fact the OS will be designed to leverage jedi mind tricks to kill anyone that even thinks about breaking in. (i was thinking maybe make them chop off their feet and jump up and down until their empty would be fair). Anyways, I’m gonna smoke some more crack, maybe you should do the same. Thanks!
Posted in funny, programming | No Comments »
Saturday, February 17th, 2007
It turns out that the version numbers in Microsoft Office products are more than just simple build numbers.
The 4-digit build number is actually an encoded date which allows you tell when a build was born. The algorithm works like this:
- Take the year in which a project started. For Office “12″, that was 2003.
- Call January of that year “Month 1.”
- The first two digits of the build number are the number of months since “Month 1.”
- The last two digits are the day of that month.
So, if you have build 3417, you would do the following math: “Month 1″ was January 2003. “Month 13″ was January 2004. “Month 25″ was January 2005. Therefore, “Month 34″ would be October 2005.
3417 = October 17, 2005, which was the date on which Office 12 build 3417 started.
Posted in programming | No Comments »
Thursday, January 18th, 2007
An interesting article on how Charles Simonyi, who designed Microsoft Office and invented Hungarian notation <shudder>, hopes to make programming easier.
Bill Gates calls Simonyi “one of the great programmers of all time.” Indeed, Simonyi is arguably the most successful coder in the world, measured in terms of financial reward and the number of people who use his creations. (Other celebrated programmer-billionaires, such as Larry Ellison and Bill Gates himself, made their money and names founding and managing technology ventures.) Simonyi could easily choose to spend the rest of his life endowing philanthropic ventures, flying planes, or cruising in his yacht. Instead, he says, he is “programming probably harder than ever before.” He is obsessed with a project that he has pursued for a decade and a half, and that four years ago carried him right out of Microsoft’s doors. He is proud of his profession. But he is also haunted by the thought of what programmers must contend with each time they sit down to code. He asks, Why is it so hard to create good software?
Posted in programming | No Comments »
Thursday, January 18th, 2007
Here is an informative post on how to create “shelves” using Subversion, similar to a feature available in Visual Studio Team System.
Shelve your pending changes when you are not ready to or cannot check in a set of pending changes. There are primarily five shelve scenarios:
- Interrupt When you have pending changes that are not ready for check in but you need to work on a different task, you can shelve your pending changes to set them aside.
- Integration When you have pending changes that are not ready for check in but you need to share them with another team member, you can shelve your pending changes and ask your team member to unshelve them.
- Review When you have pending changes that are ready for check-in and have to be code-reviewed, you can shelve your changes and inform the code reviewer of the shelveset.
- Backup When you have work in progress that you want to back up, but are not ready to check in, you can shelve your changes to have them preserved on the Team Foundation server.
- Handoff When you have work in progress that is to be completed by another team member, you can shelve your changes to make a handoff easier.
The branching model in Subversion, with its use of “cheap copies” is well suited to provide similar capabilities and handle all five of these scenarios. In the rest of this article, I will detail two different ways to shelve changes using branches in Subversion.
Posted in programming | No Comments »
Tuesday, January 16th, 2007
Posted in funny, programming | No Comments »
Friday, January 5th, 2007
This is a fairly interesting interview with the creator of the C++ programming language.
TR: How do you account for the fact that C++ is both widely criticized and resented by many programmers but at the same time very broadly used? Why is it so successful?
BS: The glib answer is, There are just two kinds of languages: the ones everybody complains about and the ones nobody uses.
There are more useful systems developed in languages deemed awful than in languages praised for being beautiful–many more. The purpose of a programming language is to help build good systems, where “good” can be defined in many ways. My brief definition is, correct, maintainable, and adequately fast. Aesthetics matter, but first and foremost a language must be useful; it must allow real-world programmers to express real-world ideas succinctly and affordably.
Posted in programming | No Comments »
Friday, December 29th, 2006
I think it’s safe to say that the SP1 update officially sucks balls. It took over an hour to update my machine, and others are reportedly experiencing more problems, even after the install.
Posted in programming | No Comments »