computers

RIP ISO

Today ISO approved the Open Office XML format as an ISO standard.

It’s always sad when i have to cut out an entry from my ‘respected authorities’ list, and this time i have to do it with ISO. Now that i think about it, i never really followed whether ISO is a respectable authority or not, but somehow, by default assumed it is. Maybe it never was.

There are several reasons why i don’t like Open Office XML, i will describe here some of them. please note, that i was unable to download the final version, that was accepted by ISO. all i could get was the one accepted by ECMA, and i assume they are similar. if not, please correct me in the comments.

  • the spec contains attributes like autoSpaceLikeWord95 (section 2.15.3.6), which basically means that you have to do some formatting the same way as Word 95 does it.it is not specified how it should be done. so if someone wants to implement it, he should try it in Word 95?

MySQL homepage vs. PostgreSQL homepage

I always used PostgreSQL, never MySQL. The reason was simply that at work first i had to work with PostgreSQL, and later i simply saw no reason to switch to MySQL. For me they both seem to offer pretty much the same functionality/performance these days.

But what i’d like to talk about here, is their home pages: MySQL and PostgreSQL.

Most of time i work with open-source/free software, and i got used to the way their home pages are created/behave. and let me tell you this: if i would have to choose today between MySQL and PostgreSQL purely based on their home pages, i would never ever choose MySQL. Their web page is just similar to the usual full-of-bullshit commercial-product web pages, which i learned to hate. The only missing thing is the photo of some happy-guy-in-a-suit holding a copy of MySQL.

Or, let’s try a simple test: How fast can you find the download-link for the latest version of MySQL?

  • with Postgresql, it’s right there on the home page, on the right side of the page.
  • with MySQL, the first download-like-thing you find is some 30-day-trial… (WHAT? A TRIAL? ISN’T THIS GPL???) . below i can either DISCOVER it, or TEST DRIVE it or LEARN it or read the WHAT’S NEW section… but no DOWNLOAD. well, but if you check more, you can find the small ‘download’ link in the TEST DRIVE section. now you get to a new page, where they try very much to persuade me to buy a commercial version. but, if i prefer to do everything by myself, and accept that there will be no binary builds after every update/bugfix, i can download the free version

i understand the reason for the piece-of-shit web page. MySQL is dual-licensed, there is a commercial version, and there is a company behind it that is trying to sell it. but the problem is that because of this, the “free” version is basically shown as a worse version. and that’s not the best way to look good to programmers using free/open-source software.

check if your site validates using your google sitemap

i was playing with the google sitemap (means i was activating the google sitemap support in django :)

and then i had an idea… this sitemap basically describes all the urls of a site. with this, i could simply check all my urls on the w3 validator. automatically. every night, for example.

but this requires to be able to get some kind of machine-readable output from the w3 validator.

as it turns out, there are 2 ways:

  • the normal validating url looks like : http://validator.w3.org/check?uri=[escaped url] .

reasons to learn c

i found an article using Digg, which gives ten reasons, why every programmer should learn C.

i personally think, that a programmer should learn C. it’s used in many areas, so it comes handy on such cases. but there’s no need to learn a lot of it. there’s no need imho to learn how to write complex programs in it. just learn the basic stuff (hello world, fibonacci, read/write files, basic string-manipulation, etc.).

but the arguments proposed in the article seem wrong/incomplete for me. well, some of them are mostly correct, some are half-correct, and some are plain wrong. generally the problem with it is that the author seems to have come from a C/C++/Java/C# world, so he completely ignores the rest (ruby, python, smalltalk, lisp, haskell, ocaml, erlang etc.)

so let’s look at the arguments:

1) C is lower level then other programming languages (C++, Java). Programming at a lower level allows you to further your understanding of computers, as a whole.

this is correct, but if it is so, why don’t you learn assembler? it’s even lower lever than C.

>

2) Device drivers and operating systems are written exclusively in C. Now, you may never write a device driver or an operating system, but what if you are ever required to modify one?

while it’s correct that most of the operating systems are written in C, not all of them (for example, House is an operating system written in haskell).

also, for a programmer there are usually a plenty of new technologies he can learn about, so he should always think about if it pays off or not. and, well, for me, writing op-systems and device drivers does not seem that interesting.

>

3) What if you ever want to get a job programming microcontrollers? They are programmed in C. Are you going to limit your possible list of jobs because you didn’t want to learn a new language?

again, the same as #2. it depends on whether you’d like to program microcontrollers or not.

>

4) C programs are smaller and faster then any other program created in a different language. Sometimes your program needs that speed boost that only C can give it.

not true.

  • if we follow his analogy (lower-level language means faster programs), then we can also say that Assembler is faster than C
  • on the other hand, the optimizers for higher-level languages are becoming faster and faster… like java’s Just In Time Compiler etc. check for example The Computer Language Shootout. you will see that the C solution is not always the fastest (sometimes java is faster for example). of course, the C version is always very fast, no question there. but saying that it’s always THE FASTEST, is wrong.

>

5) If you have learned C, you can learn any modern programming language. The reason behind this is that all modern programming languages are based on C (Java, C++, C#, etc).

somehow the author of the article does not realise that using phrases with “all” is very dangerous. did he really check all the obscure, niche programming languages and made sure that they are all based on C?

for example, i’m pretty sure Brainfuck is not. but to come back to “more mainstream” languages, most of the functional ones (like OCaml, Haskell or Lisp do not look like C programs at all (just btw: all 3 of the linked programs were faster in the binaryTree test than the C version :)

>

6) Because C has been around for many years, it has a large community and collective code base. This allows you to quickly and efficiently implement new algorithms or functions that have been programmed before.

ok

>

7) C is the language of the Open Source community. The Open Source poster child, Linux, was coded in C. If you know C, you can participate in and contribute to numerous Open Source communities like Source Forge.

all what he says here is true. but, check this Source Forge statistics:

the most used language on SF is (at least was at the point where it was measued in 2006) Java, followed by C++, followed by C. (and btw. check the “popularity” of C in the graph. see the sinking blue line? :)

in other words: while it’s true, that there are many C projects on SF, there are more java projects there. so if you base your decision purely on SF-popularity, Java is a better choice.

8) C is the only language that teaches you what pointers really are. C# and Java skip the subject completely. It is pointers that give C its power.

true. but using this argument, i could say, that if you don’t use C, you don’t need to have/use/understand it’s power. so why bother with pointers?

for some strange reason, many people think that pointers are the most important concept in programming. there are many other hard (imho much harder than pointers) areas in programming, like concurrency or distributed-programming.

>

9) C is still the most commonly required language for programming jobs. It is well worth your time to get C under your belt.

hmm.. i would like to see the statistics… i also cannot dig up a statistics currently, but if i remember correctly, visual-basic was also quite popular… >

10) Anything that has a microprocessor in it has support for C. From your microwave to your cell phone, C powers technology.

how is this different from #3?

java kiss

there’s a certain intrinsic beauty in simple solutions. it’s also known as the KISS (Keep It Simple, Stupid) principle.

let me present you java, the programming language:

  • the subversion repository is at: https://openjdk.dev.java.net/svn/openjdk/trunk , username guest, no password.
  • the license is GPLv2.

enjoy.

ps1: to be fair, there are still some (hopefully temporary) blurry parts. but the rest is simple. i do not develop in java anymore (switched to python), but i can only admire the elegance of how SUN managed to open-source java. no tricky licenses, no obscure ways to get the code. i’m sure for the visual-C++ developing slaves of the microsoft world this seems alien and discomforting. but for the rest of us, it’s a piece of elegance.

back from dreamhost

in an older post i wrote that i switched to dreamhost for my website.

and ..hmmm…, now i’m back :)

why? it’s hard to say… first thing is… you have to understand, is that this whole domain-moving is more like playing/experimenting… because currently i am not using any extra features…so all the argumens pro/contra the hosting-change are in the “what if” category.

so, i’m back to my old hosting for now. it does not mean i close my dreamhost account.. it’s still valid for some months… so ..who knows :)

semantic porn?

the semantic web always interested me. i’ve read the tutorials on RDF and N3, i even bought a book about it.

but somehow i cannot see how it could help me currently. don’t get me wrong, i understand it’s benefits (making the web machine-readable). but i don’t see any PRACTICAL applications of this technology currently. nevertheless, i’m always willing to try out new toys in this field.

today i’ve read a blog post about using semantic-web-stuff on your blog. so i immediately decided to try it out.

there was a wordpress plugin recommended, which i installed.

the plugin simply generates some machine-readable about your blog posts in SIOC format.

additionally, after you have set it up, and so you have SIOC data available about your blog, you can notify about your blog posts the Ping the Semantic Web service, which seems to be a semantic-data indexing/searching system. (this notification can happen automatically by wordpress, if you decide so).

on the Ping the Semantic Web site, they list the recently updated RDF documents.

and what did i find there? http://galleries.penthouse.com/labels.rdf :)

yes, a link to an RDF document at Penthouse’s website. i must admit, i was surprised. what do they have to do with RDF? so i went to http://galleries.penthouse.com, which redirected me to http://www.penthouse.com. by checking the source code of the page, i found that they indeed link to an rdf document



.

ICRA seems to be a content-rating organization. they have a web-based questionnaire, which supposedly (info from wikipedia) generates an RDF file, which then describes the rating of the site’s content, which you can link from your website. the rating seems to be focused on the parental-control aspect.

it was certainly surprising/refreshing to see that one of the early-adopters of the semantic-web technology is a porn site :)

(maybe these porn sites must include some kind of rating/parental-control stuff, i don’t know. i checked www.playboy.com, and they did not link to any rdf documents…. )

switching to dreamhost

i’m currently in the middle of switching to dreamhost.

currently i’m waiting for the DNS servers to update their data, but basically: if you see this post, then you are seeing my blog already on dreamhost.

blog updates

i changed some things on my blog, i hope it works better now:

  • i upgraded my spam-filter ( Bad Behavior ) to it’s newest version.
    • the reason was that suddenly i was unable to log-in to my blog-admin. i got an error 412 (Precondition failed). phew, i had no idea what that error means (i still don’t have :-), but after some googling i found out that it’s Bad Behavior’s fault. after an upgrade, it works fine.
    • btw. if someone cares to comment… which wordpress smap-filter-plugins are usable? Akismet?
  • disabled the page-caching in wordpress (wp-cache). the caching itself worked fine, but it removed a lot of response-headers (Content-type, for example).
    • this is how a respone looks like without wp-cache:
    HTTP/1.1 200 OK
    Date: Sat, 04 Nov 2006 00:21:35 GMT
    Server: Apache
    X-Powered-By: PHP/4.4.4-pl6-gentoo with Hardening-Patch
    X-Pingback: http://www.nekomancer.net/blog/xmlrpc.php
    ETag: "ebbfe181885d8db233d59464b69d0389"
    Set-Cookie: bb2_screener_=1162599696+217.67.16.60; path=/blog/
    Last-Modified: Wed, 01 Nov 2006 23:50:08 GMT
    Content-Type: application/atom+xml; charset=UTF-8
    
  • and this is a response using wp-cache:
    HTTP/1.1 200 OK
    Date: Sat, 04 Nov 2006 00:22:15 GMT
    Server: Apache
    X-Powered-By: PHP/4.4.4-pl6-gentoo with Hardening-Patch
    Content-Type: text/html
    

feeds and time

i use a lot of rss/atom feeds. by use i mean that i am reading many news-sites, blogs, etc. using their feeds.

for some reason those feeds always contain the last n entries, where n is a fixed number.

Syndicate content