|
Not that I am expecting a large number of people to have anything to say about what I post on this site - but I just added a comments system using the Django FreeComment system. The contrib comments module seems to have a load of features - and did just about everything I was hoping of it! There’s an excellent tutorial on the Django wiki . Feel free to tell me I’m posting rubbish at any time :-)
|
|
Not that I am expecting a large number of people to have anything to say about what I post on this site - but I just added a comments system using the Django FreeComment system. The contrib comments module seems to have a load of features - and did just about everything I was hoping of it! There’s an excellent tutorial on the Django wiki . Feel free to tell me I’m posting rubbish at any time :-)
|
|
Five Unit Test Tips: #2: Change your code to make testing easier
-
jhannes.github.io
-
17 years ago
-
eng
It’s been a while since I promised to write top five unit testing tips, so I guess I should better start writing #2. As with my first example this one is based on a real-life story. Your code is worth nothing if it can’t be tested. Change your code to make it more testable. In my last project, we used a pipes and filter architecture, with messages being passed forward through a chain of services.
|
|
I was reading an entry posted by Brett Carr on Nominet’s techblog today entitled “ipv6 It just works”. Unfortunately, for IPv6, and for the sentiment behind this message (IPv6 can be run pretty easily!), in my experience, IPv6 - it doesn’t just work! It’s easy to dismiss the previous sentence, given that many networks aren’t designed to run IPv6, and there’s kit out there that’s just not IPv6-capable yet. When building the AS29636 ....
|
|
I was reading an entry posted by Brett Carr on Nominet’s techblog today entitled “ipv6 It just works”. Unfortunately, for IPv6, and for the sentiment behind this message (IPv6 can be run pretty easily!), in my experience, IPv6 - it doesn’t just work! It’s easy to dismiss the previous sentence, given that many networks aren’t designed to run IPv6, and there’s kit out there that’s just not IPv6-capable yet. When building the AS29636 ....
|
|
I don’t normally post just a link to another blog, but More thinking about “Agile” vs “Waterfall” by Jason Yip is just too important. It the most well-argued, well-referenced, short post I’ve seen about the subject. Here’s a taste: Be careful about saying that Waterfall is more disciplined. The waterfall model is simple and structured but the “discipline” is in following prescribed steps as opposed to “discipline” in thinking. The second ki..
|
|
The best way to clean things up is to avoid them getting dirty in the first place
-
jhannes.github.io
-
17 years ago
-
eng
Warnings are useful. You get warnings from your IDE when you write something that might be a bug. You have probably made your program print out warnings or error messages when something goes wrong. But too often, we down in the sheer volume of warnings. Then it’s impossible to separate the relevant and important warnings from the noise. To make warnings useful again, I use a zero-warning tolerance policy. Even if the warning is irrelevant, ..
|
|
Geohashing , as introduced by the awesome web comic xkcd , is an spontaneous adventure generator. The geohashing algorithm uses the current date and the day's Dow Jones Industrial Average to generate a new location for each region in the world. Geohashers then use various means to reach that location in search for fun and adventure. As out there was beautiful autumn weather, and I needed to go somewhere to air my thoughts, I ....
|
|
Geohashing , as introduced by the awesome web comic xkcd , is an spontaneous adventure generator. The geohashing algorithm uses the current date and the day's Dow Jones Industrial Average to generate a new location for each region in the world. Geohashers then use various means to reach that location in search for fun and adventure. As out there was beautiful autumn weather, and I needed to go somewhere to air my thoughts, I ....
|
|
Sometimes it feels like I’m stating the obvious. But the fact that users only care about the interface of the service is something we often say, but seldom understand. If this is true, how can we think that we can develop the interface as an after though to the central system. Not all your users might be human. And the computerized users are treated even worse. If the non-human users also care about the interface, how do we think that they ..
|
|
So a quick update. I spent 2 hours or so yesterday working on the netflix data mining. I basically just tidied it up and started testing. I was almost finished and was about to post a blog with results, but decided I wasn’t happy with the results. It turned out there was a bug but that my code which worked out how related users are wasn’t as effective as I thought it would be. See I used the vector space index to calculate how similar users..
|
|
I’ve made two new interesting discoveries about wpa_supplicant since writing my last blog post on the subject. (Actually, I pretty much made both of them while reading documentation in order to write it, and have been lame about writing them up). Using wpa_gui It turns out that wpa_gui not only allows you to select existing networks, but also to scan for and add new networks to your configuration file. In addition, you can run it as yoursel..
|
|
I’ve made two new interesting discoveries about wpa_supplicant since writing my last blog post on the subject. (Actually, I pretty much made both of them while reading documentation in order to write it, and have been lame about writing them up). Using wpa_gui It turns out that wpa_gui not only allows you to select existing networks, but also to scan for and add new networks to your configuration file. In addition, you can run it as yoursel..
|
|
Today I sold my car to a guy from France. He took a plane to Vienna yesterday, this morning we met, he looked at the car, we took the contract to a notary office, we paid in his cash into my bank, then took my number plates to a insurance company who canceled my insurance (even though it was with a different company), and gave us temporary number plates (precondition was the contract had to be notarized).
|
|
As most of you probably know, X has several different mechanisms for copy-paste, used by different applications in different ways. I know some people who use them deliberately, juggling two pieces of text in different clipboards at once, but for me, it’s always just been annoying. When I copy something, be it by Gnome C-c, emacs C-w, or selecting it in an xterm, I then want to be able to paste it again, no matter what mechanism I use.
|
|
As most of you probably know, X has several different mechanisms for copy-paste, used by different applications in different ways. I know some people who use them deliberately, juggling two pieces of text in different clipboards at once, but for me, it’s always just been annoying. When I copy something, be it by Gnome C-c, emacs C-w, or selecting it in an xterm, I then want to be able to paste it again, no matter what mechanism I use.
|
|
So everyone in the “blogosphere” is going on about Google Chrome . From one day to the next, a bunch of personal blogs written by random people I don’t know which I for some reason subscribed to all suddenly had 1 new entry – subject “I like Chrome”. A bit like a few days before when Mozilla released some new feature and exactly the same thing happened. And now if I write about Chrome I am one of them as well….
|
|
There’s a bunch of stuff online about the Shimano Dura-Ace Di2. And there’s a lot of comment online, people saying that they feel electronic-shift is unnecessary, and over-complicated. I’m mostly interested in why I might want to ride Di2, and I think there’s a bunch of reasons that I would want to, despite all the negative comments that are flying around! So, the big thing that I see as an advantage in the system is the fact tha....
|
|
There’s a bunch of stuff online about the Shimano Dura-Ace Di2. And there’s a lot of comment online, people saying that they feel electronic-shift is unnecessary, and over-complicated. I’m mostly interested in why I might want to ride Di2, and I think there’s a bunch of reasons that I would want to, despite all the negative comments that are flying around! So, the big thing that I see as an advantage in the system is the fact tha....
|
|
Intermedia Writing Systems, revised 3rd edition is a textbook I wrote for a theoretical class at a hypothetical school. It was staple bound and printed as a zine that I distributed to various shops. Here is a beast fable from the book: The Platypus and the Chimaera Once upon a time there was a platypus […]
|
|
I recently attended part of the recent Techcrunch 50 conference, and when I wasn’t there I was watching much of it online. For probably 80% of the companies when it came time to ask about their business model, they said ads. Then they talked about cause they have all of this great information about the user they can advertise better than they used to. The problem is they’re forgetting all about user intent. This is why ads on facebook simpl....
|
|
I recently attended part of the recent Techcrunch 50 conference, and when I wasn’t there I was watching much of it online. For probably 80% of the companies when it came time to ask about their business model, they said ads. Then they talked about cause they have all of this great information about the user they can advertise better than they used to. The problem is they’re forgetting all about user intent. This is why ads on facebook simpl....
|
|
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, which I like better as URL anyways. It should redirect to the toplevel of the new ..
|
|
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, which I like better as URL anyways. It should redirect to the toplevel of the new ..
|
|
I received an overwhelmingly warm welcome as the new chief scientist at Steria
-
jhannes.github.io
-
17 years ago
-
eng
I am changing employers. As of October 1st, I will no longer be lead software architect at BBS Nordic. Instead, I will be the chief scientist at the Norwegian division of Steria. This weekend, I was invited to join my new employer at their gathering at a resort in the south of Norway. I’ve had a chance to speak with a lot of my new colleagues, and I was overwhelmed by the number of skilled, thoughtful and friendly people.
|
|
Sometimes I am accused of suffering from the “Not Invented Here Syndrome”. It has been suggested I would rather program something myself than take an already existing e.g. open source solution to the problem and integrate it with the product being developed. I mean that’s clearly a blanket statement. The right solution differs from project to project. (But, for sure, when making such a decision, one must not forget about the cost of integ..
|
|
I’ve learned the value of dealing seriously with connecting requirements to the actual code. The JBehave project started work to make formal, “business friendly” requirements into executable specifications, but due to limitations in Java, it was very clunky to use. JBehave 2.0 has just been released, and it has a much better model. Here’s a specification: Story: Play Tabs As a music fan I would like to convert guitar tabs to music So that I..
|
|
I’ve looked over some of my code lately, and found ways that I often improve my tests. I’m planning on writing a blog post for each of my five favorites. First out: Using the data storage. I upgraded our API for billing customers. I had a few compilation errors in my code, as the API had changed somewhat. After fixing these errors, I was left with a test that broke mysteriously with a MethodNotFoundException.
|
|
As mentioned previously, my new Rollapaluza best time. Not really posted for that reason, but mainly due to test out the new IXUS 960IS I have been given!
|
|
As mentioned previously, my new Rollapaluza best time. Not really posted for that reason, but mainly due to test out the new IXUS 960IS I have been given!
|
|
VLDB 2008 proceedings, Oracle optimizer plan stability, adaptive cursor sharing and SecureFiles
-
tanelpoder.com
-
17 years ago
-
eng
If you’re interested in leading edge database research (as of 2008 :), the VLDB 2008 proceedings are publicly available now. Here are direct links to some Oracle-specific ones: Oracle SecureFiles System Optimizer Plan Change Management: Improved Stability and Performance in Oracle 11g Closing The Query Processing Loop in Oracle 11g (this one is about adaptive cursor sharing) Enjoy! :)
|
|
VLDB 2008 proceedings, Oracle optimizer plan stability, adaptive cursor sharing and SecureFiles
-
tanelpoder.com
-
17 years ago
-
eng
If you’re interested in leading edge database research (as of 2008 :), the VLDB 2008 proceedings are publicly available now. Here are direct links to some Oracle-specific ones: Oracle SecureFiles System Optimizer Plan Change Management: Improved Stability and Performance in Oracle 11g Closing The Query Processing Loop in Oracle 11g (this one is about adaptive cursor sharing) Enjoy! :)
|
|
Forget the benchmarks, forget whether its truly faster or slower, forget whether the market share is 30% for non-IE browsers (though is this only for US or internationally). Google Chrome evolution or revolution, whatever you want to call it, it makes me actually want to stay in the browser. I just want plugins, that function as well as the browser alone does. Yeah theres rendering problems, and some oddities, but the browser as a whole is ....
|
|
Forget the benchmarks, forget whether its truly faster or slower, forget whether the market share is 30% for non-IE browsers (though is this only for US or internationally). Google Chrome evolution or revolution, whatever you want to call it, it makes me actually want to stay in the browser. I just want plugins, that function as well as the browser alone does. Yeah theres rendering problems, and some oddities, but the browser as a whole is ....
|
|
Oracle hidden costs revealed, Part2 – Using DTrace to find why writes in SYSTEM tablespace are slower than in others
-
tanelpoder.com
-
17 years ago
-
eng
_I have written two posts in one, about a performance issue with writes in system tablespace and introduction of a little DTrace stack sampling script. _ Have you noticed that DML on tables residing in SYSTEM tablespace is slower than tables in other tablespaces? Here’s an example, I’ll create two similar tables, one in USERS tablespace, other in SYSTEM, and inset into the first one (Oracle 10.2.0.3 on Solaris x64): SQL> create table....
|
|
Oracle hidden costs revealed, Part2 – Using DTrace to find why writes in SYSTEM tablespace are slower than in others
-
tanelpoder.com
-
17 years ago
-
eng
_I have written two posts in one, about a performance issue with writes in system tablespace and introduction of a little DTrace stack sampling script. _ Have you noticed that DML on tables residing in SYSTEM tablespace is slower than tables in other tablespaces? Here’s an example, I’ll create two similar tables, one in USERS tablespace, other in SYSTEM, and inset into the first one (Oracle 10.2.0.3 on Solaris x64): SQL> create table....
|
|
As I currently work at a startup I have a small stake in the company. When talking with one friend of something I have been working with someone with on the side, the question came up over if this was a conflict of interest. I was actually quite shocked to hear the question at first, not only did I expect them to do likewise, as I know many that do. The full on conflict of interest statement just shocked me. Being at a startup it does make ....
|
|
As I currently work at a startup I have a small stake in the company. When talking with one friend of something I have been working with someone with on the side, the question came up over if this was a conflict of interest. I was actually quite shocked to hear the question at first, not only did I expect them to do likewise, as I know many that do. The full on conflict of interest statement just shocked me. Being at a startup it does make ....
|
|
In recent past I’ve blogged few scripts which use specially crafted ordered nested loop for sampling contents of V$ and X$ views fast, with plain SQL. If you haven’t read them yet, here are the links: WaitProf LatchProf LatchProfX I wrote the above scripts having special purposes in mind (e.g. profile session waits or latching activity). Now I introduce a simple but powerful sqlplus script for ad-hoc sampling of any V$ view. I..
|
|
In recent past I’ve blogged few scripts which use specially crafted ordered nested loop for sampling contents of V$ and X$ views fast, with plain SQL. If you haven’t read them yet, here are the links: WaitProf LatchProf LatchProfX I wrote the above scripts having special purposes in mind (e.g. profile session waits or latching activity). Now I introduce a simple but powerful sqlplus script for ad-hoc sampling of any V$ view. I..
|
|
I just watched another amazing talk from the TED conference. Spencer Wells is a natural public speaker. He talks about where we all, as a species, came from. Amazingly enough, everyone who is alive today share a common ancestor in Africa no more than about 2000 generations, or 60,000 years ago. Wells describes the fascinating questions and their answers, as we know them today. The TED conference is full of remarkable talks.
|