Older blog entries for vicious (starting at number 50)

Sun Jul 30 01:23:49 PDT 2000

On thursday I drove up to SF. It turned out to be a 10 hour drive this time cuz I went all the way to SF and not just to PA. This time I took some books on tape so it was much better. However one of the speakers in the car just died during the way. I really REALLY need to go find a 4x4 shop around here and by some speaker wells for the back seats so I can put in the 6x9 speakers.

One thing I realized very soon is that parking in SF, especially near maciej's really really sucks. Which is why I left my car up at Eazel parking lot and I'll just bum rides off of eskil. On thursday I parked about 5 minutes walk from the place. And when I got back, there was a parking place right in front of the house. Oh well.

Then the next day, there was a party. It was kind of mild. Nobody did anything incredibly stupid, the cops didn't come. The beer consupmtion rate however was not bad. However the place was quite a mess in the morning. Including some random person who passed out on the living room floor in the middleof the evening sometime.

Today we didn't do absolutely anything. We went up with eskil and mathieu and a couple of eskil's danish friends up to eazel and the PA fry's and then drove around for a bit around the mountains there. All in all we did absolutely nothing and are going to watch a movie right now. Basically we have achived absolute unproductivity today.

Wed Jul 26 22:47:00 PDT 2000

I must be in an "OLS recovery mode" as I'm not being incredibly productive. There is a buttload of email to read/answer/delete/forget/ignore, buttload of things I want to do, and I'm incredibly lazy. I watched TV a lot and after a while I noticed that I was watching complete crap because nothing else was on but I was too lazy to go do something else.

Well no really I did some other stuff. Did bunch of gnop/grapevine/gob hacking and interestingly enough for you all (well who cares, interesting for me anyway) dflat. Download the newest example at dflat-0.2.1.tar.gz

The biggest change there is methods. Instead of doing everything through virtual like methods, I've changed it to using normal functions. With one cool addition however. The object creates further aliases to methods of ALL parent objects. Thus for example let's say you have a 'ref' method on the DF__Object and now you have two objects, one of type DF__Object and one of type DF__Lamp (from the example), you can do:

  DF__Object *object = DF__NEW(DF__Object);
  DF__Lamp *lamp = DF__NEW(DF__Lamp);

/* now, so far normal */ DF__Object__ref(object);

/* watch this, no casting */ DF__Lamp__ref(lamp);

This all is achieved by incredibly abusing the preprocessor to make setting up such objects simple (as long as all parent objects are setup correctly you get things working painlessly without having to know the parent objects). The other addition was that I've added the zero cost typesafe upcasting. I'm gonna work up a simple thing like that for GTK+ as well, though GTK+ usually uses base class pointers and thus it doesn't do that well. I am however seriously thinking of adding it to my gob2 feature list (will have to parse headers though looking for typedefs, eek, fortunately I can ignore EVERYTHING except those and I can ignore most known system headers to make this quick).

Note to ramiro, pavel and all other C++ weirdos: Yes I know C++ does this, does it better, will make my morning coffee and give me a blowjob. To get a bigger laugh you should look at my glib static typesafe templates.

Mon Jul 24 01:19:17 PDT 2000

OLS was quite interesting. Even productive. Although I've lost more braincells then the worth of the information I had aquired. Well I hadn't actually really gotten drunk except for the first and the last day. Anyway, it was a lot of fun. Staying in one room with yosh, uzi and mmarker was quite an exprience. There was a fairly crappy corel party, there was an even worse zeroknowledge party. The latter was actually held very far out in the country. It was strange but there was a ranch thing that tried to badly impersonate Texas. When you go to a party and instead of an open bar you find yourself getting two "drink tickets", you know the company must be going down the drain. Either that or they have an incredibly anal CFO or something like that. Apparently this is not the case with Helix which held a party on the last day and had an open bar in a nice pub which had a decent beer selection. After quite a bit of drinking, a couple of people (including me apparently) decided to go to some club or something. We actually ended up in some rave thing which turned out to be quite boring and quite far from downtown actually. After a couple of minutes (maybe half an hour or so), me and sammy (I think this is the person) decided it was time to get out of there and go back. Some more quite incriminating stuff happened and yosh took some pictures. Went to sleep before everyone else (I was not feeling too great by this time), but still quite late, around 3 I think. I woke up at 5:45 and realized I was wrong on when the plane leaves. It was actually at 7:15. Quickly packed up, checked out and took a taxi to the airport. All this with a somewhat of a hangover (ok not somewhat, quite a bad hangover actually). It turns out that airport terminals and airplane seats are not a great thing to sleep on and if you try your neck starts hurting as well. Oh well, I was too tired to care. The hangover supprisingly went away by around noon, and from then I was just very tired, despite falling asleep at every possible moment during the whole way.

Despite all this, I actually did get some time to hack on stuff and I released a new gob with a pretty important bugfix. It is the first fatal bug in gob since 1.0 really. (well the finalize/destroy problems of 1.0.2 were also somewhat bad). Overall I think gob is quite stable to begin with and when things break they are usually corner cases. I also had a whole bunch of ideas about signal marshalling etc for gob2. I've also had an idea about how to do the typsafe downcasting of generic C objects without any added cost. I will also try out some new stuff how to do dflat methods in a way that doesn't break bincompat all the time. So expect another dflat thingie soon. I don't think I will ever use it. It's more of a "let's see if this is possible" thing.

Well, don't have my diary making script tonight...

If it seems I've had enough beer, it's probably because I have (is there ever such thing as enough beer)

OK, what happend: the parent'scamehomeand the house was still in ok order, thus I haven't got my ass kicked.

Now I'm in ottawa. After some confusing stuff whenI got ripped off of $30 canadian dollars for beer (they made me pay twice). we went to some placewith mmarker and got some pilsner and then radegast. After an unsuccesfull attempt to pick up the waitress (by now it's sure, you CANNOT pick up waitresses) we went to thehotel and met yosh etc ... and ended up at linuxcare offices or something. I wrote GEGL on every whiteboard, let's see if I get barred from the premises.

Fri Jul 14 05:52:23 PDT 2000

Well today I spent solely on gnome-libs. I've managed to clean up a bunch of smaller stuff but there still remains to be a lot done. While gnome-libs work is mostly somewhat boring and restrictive in what you can do (since it should stay at least mostly source compatible) it has some sort of weird attraction for me. It however seems that other people are becoming interested in doing some gnome-libs work too which would be good. I hope it gets stable and out as quick as humanly possible as it's just a far cleaner library then gnome-libs 1 is in terms of the api.

Thu Jul 13 04:04:53 PDT 2000

Another day of hacking on everything. Mostly gnop, grapevine and gnome-libs. After the gnop release someone sent me an excellent idea. A command line tool for loading up gnop dialogs. This means that coupled with gconftool, you can now have shellscripts have gconf configuration dialog boxes. Plus you can run the dialog of any app that uses just the stock internal widget stuff or glade stuff, by just running gnop-tool on it's .gnop file. I still need to do the "many configuration" stuff for gnop so that I can have per applet dialog box for configurations. These needs some schema shuffling and stuff like that. Then I can get done more grapevine stuff. Also will have to test out gnop's support for gconf lists. Another thing that needs some ideas is internationalization of gnop. There are several possibilities:

  • Put strings in a .c file and use gettext (disadvantage: only your program can really be translated then)
  • Put strings using the xml:lang stuff or gconf like stuff into the .gnop file (disadvantage: incredibly messy large file, hard to edit)
  • Put strings into separate files (disadvantage: incredible mess of files and problems with finding stuff etc...)
Right now I'm leaning towards the second one, though I think the third one is also good. The second one can be made much better if there is a good tool to edit .gnop files (meaning: improve gnop-edit). The advantage over the third one is, that having only one file makes it much more convenient. We get all the power of having all the config info inside the XML file. So you could pass files around even accross network to easily setup apps. I guess you can still do it with the third option, though somewhat more clumsily.

So I've managed to be an incredible geek today and not even leave the house and hack on stuff all day (except for watching tv for like 2 hours)

Wed Jul 12 02:51:39 PDT 2000

Today was a hacking day. I managed to hack on just about every one of my projects. In the morning I did a gnop 0.1 release. Then I worked for a couple hours on dr-genius, then I spent a few hours on grapevine. Then I went to a movie. Saw "Perfect Storm", pretty good movie. Kind of makes me glad I'm a hacker and not a fisherman. After getting home I did some gnome-libs hacking. Haven't touched the panel nor gob today though.

Tue Jul 11 02:25:42 PDT 2000

Been incredibly lazy lately. So the highlights of what happened:

On 4th I went out with a friend expecting a huge party. Unfortunately it was a miscalculation, people seemed to wuss out because everyone goes to work on the 5th. Oh well, at least I managed to end up with a minor hangover.

Otherwise I've gone out to movies several times. This is because I've been so incredibly lazy to code.

Also I've been looking for a new sound system for my jeep. The problem is that the speaker wells on the jeep are VERY small (4x6 inches). Went to "good guys" and after picking what I would like, it turned out to be about $1500. That's a bit too much. Anyway, apparently I can get stock speaker wells that fit in the back seat (on the sides) that hold a 6x9 speaker. Unfortunately this points at the back seat and almost not at all at me. And the soundbar (overhead) only holds 4in speakers, and I'm not ready to go to even lower size then now.

On the hacking side of things, I've gotten a much better handle on the CLN port stuff. It's still missing I/O, but most files now compile. I'm looking forward to be able to compile the whole thing and at least get a segfault or something.

I've also hacked on gnop and grapevine and am thinking of things to do in vertig o when we branch. Jacob has not yet made a branch for vertigo so I might just do that myself once start itching enough to do vertigo coding.

Mon Jul 3 21:14:04 PDT 2000

Parents left for europe and thus I've been left in charge of the house. They seem to be under the impression that it's still going to be standing in two weeks when they come back.

Otherwise didn't do much. Yesterday I was a bit depressed (many different causes, too boring to list). So I went to a movie with a friend. Saw mission impossible 2. Boy was it crap. The story couldn't have been more predictable. I think I should have gotten a clue when in the beginning there was a shot of the syndey opera house, and they had to explicitly say it was "Sydney, Australia". Very few special effects, and mostly quite sucky ones. Also the story was incredibly dumb and you knew the story in the first couple of minutes. The characters didn't seem to catch on to the obvious for quite some time though. I also liked the untracable tracing chip that doesn't send out any signals, yet it appears to send signals to a satelite, and it's small enough to be implanted. It hit me as a bit funny as the apparently only computer capable of controlling satelites is actually a laptop. I wish my laptop was at least as fast as my desktop (Though I would mind if it ate as much power and produced as much heat as the alpha:)

Otherwise I've started hacking on cln port of dr.genius again. This is an incredibly entangled mess. Partly it's extremely old, crufty, ugly code, retrofited with some new, not as ugly code, then further retrofitted with an overengineered new interface design. It's overoptimized at placees, yet incredibly inefficent at others. It's a mess of ugly and nice C code and very ugly C++ code. I've changed my goals from actually retrofitting the engine into the new interface, to modifying the current interface to be sane and using as much of the new interface as is implemented. The CLN changes are mostly done when it comes to the engine. Input and output is 99% missing. Seems making the interface will be actually easier to get to work then the CLN part. It still doesn't actually compile either. I've also realized that I had no clue about how to do memory management properly when I started hacking on genius 3 years ago. So it can be described as memory mismanagment. However the interface is nicely refcounted, and so it seems quite absurd that the engine itself uses an incredibly weird scheme for managing memory. I'm looking forward to when I just have to fix bugs in this mess rather then trying to make the whole thing even compile. The largest problem I had was assuming everything was global. Well also really crappy function naming and generally crappy design.

Fri Jun 30 14:50:16 PDT 2000

Got back from Eazel yesterday. I have one thing to say about the new building:

PURPLE BATHROOMS!

I actually no seem to have a cubicle corner of my own. Yay! I spent the entire two days mostly making a sane build enviroment on my laptop and trying to get gnumeric to print a reimbursment form (which it did, though somewhat incorrectly, but good enough)

I've also found out that just about everyone reads my diaries as I haven't told anyone really about dflat except here, and everyone seems to have seen it.

Another thing I've realized is that those round papasan or whatever they are called chairs might look like they would be comfortable for sleeping, but they cut off the circulation in your legs if you actually try it. You wonder why I even tried this? When I got to Eazel I realized that Maciej is not coming to work on wednesday. And me, yosh, uzi and some of their friends went out to some mexican joint, and then I crashed over at their place. Howevertheir place is quite crowded already and that chair was one of the few places left. In the evening I tried compiling and running spectemu (the ZX spectrum emulator) on an old sparc that uzi keeps around. It turns out it crashes and in fact the sparc is too slow to run it in the first place. Running it remote from yosh's laptop was also not very good.

Released new gob as well if there are any people out there who care.

41 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!