While sorting out my papers, I found this time-table that was printed for me in Japan. It shows the trip from 金沢 to 下田 via 豊橋, 熱海, and 伊豆高原. It is always a bit surprising to see matrix printers still being used in a high-tech country like Japan, but they work…
A few days ago, I wrote a post about screen resolutions, and I wrote down the 176×220 pixels for the screen size, but this was just the resolution of my two previous phones. Today, I remembered the phone I previously had before leaving for Japan: an Ericsson T28s. Compared to the phone I discovered in Japan, this was a really dumb phone: 101×33 monochrome display, only two games (tetris and solitaire), no storage, no external connection, no camera, no way to store anythings beside phone numbers.
Still this was a some point very desirable corporate phone, it was the smallest phone I ever had: 82g whereas my iPhone 4 is nearly the double at 137g. I liked the clamshell like design (and stayed true to this design for quite some time). As I had a second hand one, the battery life was not so great, generally two days in standby. I find this phone interesting because for me it was the last of its kind: last non-feature phone, last non-Sony Ericsson phone, last non-data phone it was also the last phone with a visible antenna and a connector for an external antenna.
If hell is paved with good intentions, then computing hell is paved with bad excuses. Some look like reasonable design ideas, but very often they only quack like a duck…
- This code can be hacky, it will never be used in production.
- Useful code gets deployed, or did you intended to write useless code?
- I added an abstraction layer.
- You tried to protect yourself from learning on how a library works, and added a level of indirection that obscures the call path and makes the code more complicated.
- Hash-maps have O(1) lookup time.
- Yes, and they are also 100 times slower, and you structure holds less than 100 items…
- I have not deleted this code, because it could be useful later
- Clearly, you do not understand how version control systems work, and increased the use the fossilized lava flow design pattern.
- It is an object, object-oriented is better.
- Your method is static, but not marked as such, so we need to instantiate a class just to unit-test that method.
- Values are not integers, so I used floats
- And you did not consider using fixed point notations, or normalising values properly. So now we cannot use simple equality, and our accounting code will never be right.
- I made my code generic
- There is only one use case, you made your code needlessly complex, and probably added some bugs in the mix.
- Doing X is trivial, so I wrote a quick function
- You avoided looking for the library or reading its documentation. Your code works for the trivial case and breaks for corner cases we will happily discover in production.
- I don’t need to think about memory usage, this language has a garbage collector
- The garbage collector will slow the system to a glacial pace before throwing out of memory errors.
- This system will only be used by engineers, so supporting only ASCII is fine.
- Because engineers never, ever, ever use data from the real system.
- This error cannot be fixed, so it is fine to call
- Clearly any system that links-in your code wants to crash when this condition occurs.
- I designed an elegant language to hold this data
- Clearly, the engineer who will need to change that data in a hurry wants to learn a new language, and then fix the bugs in the interpreter.
- I’m calling an external tool like
awk, it’s the Unix way
- You have added an external dependency, made the code less readable and probably added a few bugs in argument generating and result parsing code.
- Putting dates in strings is safer
- And you did not document in which format…
- That notation is universally known, so there is no need to document it.
- Clearly, all of the planet uses the same school system and same notations as you did.
- Assertions are for people who do not write proper error handling
- No, they are for checking that impossible things never happen, and nobody writes error handling for impossible things, that would be silly.
Today, this blog has 1001 entries. I wrote during seven years, from three countries. Every day, around 60 people read this blog, thank you very much.
Aujourd’hui ce blog contient 1001 billets. J’ai écrit depuis trois pays, durant sept années. Chaque jour à peu près 60 personnes lisent ce blog. Un grand merci.
Heute enthält dieses blog 1001 Einträge. Ich habe während sieben Jahre, von drei Länder geschrieben. Jeder tag lesen rund 60 Leute diesen blog. Vielen Dank.
I have now owner bread-making machines for more than five years, during that time interval, I have tried adding various things to the basic water + flour mix, mostly leftovers. Surprisingly most of the things work out fine. I’m omitting here the classics: raisins, nuts, etc.
- Buckwheat flour
- This flour won’t rise, but you can add a little bit and the taste is noticeable
- Grilled flour
- You get grilled flour when you prepare bread using the bread making machine, but forget to add water (happened to me more than once), that flour is basically dead and won’t rise. You can add a little bit of it without any ill effect.
- White rice, cooked
- Nearly unnoticeable, I suspect it sweetens the bread a bit and makes it more fluffy.
- Adds some liquid, not very noticeable if the beer is not strong-tasted.
- Silken tofu
- Effect is slightly similar to adding some butter.
- Ōlong tea
- Added some leftover Ruxiang to see if the buttery taste would be noticable, it was not.
- Eggs (raw)
- Makes the bread very crunchy, not really a good idea in my opinion.
- Kiwi (fruits)
- Made the bread very bitter, bad idea.
What interesting things have you added to your dough?
When I was a kid, one of my favorite TV-shows was the japanese animation of Captain Future (キャプテンフューチャー), it was dubbed in French, and named Capitaine Flam. Little did I know that the character was way older, having been created in 1939 by Edmond Hamilton. Clearly I am not the only one remembering, as someone went to great lengths to create a quite good looking trailer for a fake movie.
Still with the emergence of the Steampunk genre, it would make much more sense to do a Steampunk themed movie of Captain Future: if you look at the years, those stories are closer to the victorian period than to today. The character was created 39 years after queen Victoria’s death, 73 years ago. The stories and the technology would, in my opinion, make way more sense in a victorian uchronia.
As this blog slowly approaches the thousand post landmark and more than seven years of existence, I felt some spring cleaning was needed: the blog itself has migrated between three providers, many versions of Wordpress and a myriad of plugins. While things are pretty stable those days, I added a plugin to track broken links, and the results are not pretty. Originally I had more than 400 broken link, I now brought that number down to a bit over 100. Exactly like my first home-page, this site is still under construction. I apologise for the inconvenience.
A large number of the broken links where internal to this blog: Wordpress, by default uses absolute url for images, so when each time the hostname changed, the link would break. I still found some references to
free.fr, the hosting provider I had when I lived in France. There are also still references to pages generated by a gallery plugin a stop used ages ago.
Still many external links have broken, even links to the wikipedia can get stale as the relevant page gets removed and its content reorganised. Links to commercial websites break fast, academic pages even more. Strangely enough, personal home-page often last longer, they sometime moves, but the content can be found with a simple internet search and the links repaired.
The sad thing is that in many instances, I linked to content instead of copying it, assuming it would always be there. Increasingly for illustrating this blog, I prefer to find some creative common image and have a copy on my blog and reference the original with a link, this way if the source goes away, the blog does not look ugly.
Even links to online galleries like picasa break as the site updates its structure, policies, and protocols. This for me puts a serious limitation to the whole concept of cloud computing, I have files that I have moved from hard-drive to hard-drive for close do twenty years, how long will files in an online storage system last?
Yesterday, I turned off the wordbooker plugin from this blog. This was a good plugin, the work of a dedicated engineer, and one of the few projects I donated money to. The author recently expressed frustration with the project and I understand him, Wordbooker works in the interface between two large systems: WordPress and Facebook, with their own changing APIs and policies. The result was that despite his best efforts, the system was frequently broken.
For me this highlights the problems with “platforms” that change APIs and policies with each moon phase. Agile development and experimenting is a good a thing, but once your systems pretends to be an ecosystem, you need to give developers a stable API to code against: their core objective is to build interesting things, not chasing an ever-changing API.
As for functionality, I realised the important thing for me is to automatically push new posts to Facebook. Facebook broke the RSS import feature a long time ago, so I need some kind of glue to doe the pushes, ifttt.com provides this – I was already using it to push to twitter. As for moving comments from one system to the other, I realised this was not such a good feature. Conversations on Facebook are private and authentified, they are not on the blog, synchronizing the two feeds does not make much sense.
A any rate, many thanks to Steve Atty for his great work on wordbooker.