Older blog entries for aaronl (starting at number 38)

I forgot to post yesterday. Yesterday I resurected my normal mode patch from about a year ago. It's a major hack and it's not working. I also tried resurecting the tabs dialog in AbiWord. I don't understand how it's supposed to work.

Today, I spent from the time I woke up until dinner working on the Normal mode patch. The radical hacks I made are completely crazy and didn't help at all because I didn't and don't understand the cause of the problems. The hacks are best exemplified up by this comment:

// m_hackPP is a pretty gruesome hack. The idea is that we want whoever
// is trying to find out about attributes and properties to hear our
// our version of them - for example, the way margins are displayed on
// the screen rather than in the document. This is the kind of stuff
// that is necessary for non-WYSIWYG display like Normal mode. We could
// write into **ppAP the margins that we display, but since ppAP is a
// handle to the actual properties and attributes for the document,
// it would actually change the margins in the document. That's bad.
// So, we have m_hackPP which is a PP_AttrProp that is a copy of the one
// representing the attributes and properties of the document but with
// the margins and etc. changed. The reason why we can't just create a
// new PP_AttrProp everytime getAttrProp is called is because the caller
// believes it is getting a pointer to the document's PP_AttrProp and it
// wouldn't dare free that. So, we have to keep one in the view that all
// callers can share. I hope there are never any situations when they
// should be different. I told you it was gruesome.

All that hackishness for nothing. From 10PM to 4AM I worked on making dependencies work in AbiWord's crazy build system, which currently requires you to make clean whenever you change a header file. They still don't work. They still are not close to working. Understandably, I am in a bad mood because I just restled with make for hours. I want to convert the build system switched to autoconf even though I hate autoconf too.

Just spent 2 hours on IRC tracking down a horrible bug. As usual it's all my fault.

mishan asked in his diary entry why so many people bash perl. The answer is because perl sucks :). You probably should read the definative guide to why perl sucks.

Now for the rant. There is so much magic in perl that it is an extremely complicated language. To read perl code, you need to learn the meaning of any character, expression, regular expression code, and construct. As a result, perl code is generally unreadable to anyone but the perl expert. By contrast, languages like C and Lisp have simple, consistant syntaxes that are built on by libraries rather than syntastic features.

My other main gripe about perl is the craziness of escaping characters. In a regular expession, or just out in a string, so many characters have special meanings and need to be escaped. You need to memorize exactly which characters need to be escaped, and escaping every non-alphanumeric character makes strings be unreadable very often.

Scoping is pretty messed up, but I have not used perl extensively enough to give a detailed report on scoping in it.

Perl also has many other disadvantages in the implementation, such as code being interpreted every time a script is excecuted. In this post, I am focusing on the language itself.

Had fun trying to work some ham satelites. Listened to the beacon of RS-15, the beacon of RS-13, and caught RS-15 again in another orbit (it takes RS-15 2 hours to orbit the Earth). I listened on 10 meters, and during the latter two I keyed on the 2 meter uplink band. Didn't hear anything either time - I need to find something better than a vertical car-mount antenna for transmitting. Perhaps tomorrow I will build a loop skywire. I already have a 2 meter beam but that is directional, of course, and with 15 minute passes it will be a big pain to keep the beam oriented. My recieving antenna sucks too. It was a 20 meter dipole that I was using to receive 10 meters, and it didn't work very well. The beacons were so weak on my receiver that they were not easy to hear. I didn't hear any QSO's on the satelites, although I did seem to hear a bit of CW occasionally. With better antennas and perhaps a 50 watt amplifier on the 2 meter transmitter, I should be set up to do some real contacts over a satelite. I'm glad that the uplink is on 2 meters, because while my 2 meter rig has a lot less output power, I'm not sure my technician plus class license allows operation on some of the frequencies the satelites use. I will also need to brush up on my CW as I haven't used it forever (since I discovered IRC :)).

If you're into satelites or want to get into them, check out heavens-above. This site is a very convenient method of getting the times of the next satelite passes.

Over all a productive day, with a few fixes to AbiWord of minor bugs. The latter part of the day I dabbled in E-related topics, trying futilly to hack Esound to not suck and then playing with EFM. I had fun making cool neon-cursive titles on my desktop, but it caused my computer to get extremely lagged and slow. I need a faster computer with more ram.

Also, showed CodeToad EFM. He seems to like it but his hardware is completely underpowered for something like EFM.

<aaronl> i just toured a 36,000 square foot house with a t1, 16 fireplaces, a home theater, centralized audio, two libraries, two swimming pools, a full sized guesthouse, a parking lot, a zen garden, a rose garden, a racketball court, ancient stained-glass windows from europe, ancient entryway from europe, fossils in the limestone that it is made out of, trails and forest, two historic french temples, a tenis court, a view of san fransiso, historic pieces of art, thousands of antique books, and bathrooms made out of onyx and other semiprecious materials <washort> aaronl: normal people wouldn't have noticed the t1 first. <aaronl> washort: he has 4 LCD monitors <aaronl> did i forget the star trek chairs that wrap around your body?

Same old top ruler stuff. More bugs, more fixes.

I got sentenced to life fixing AbiWord top ruler bugs today. Hrrm, I'm not sure that's a good start for a day. Fixed one bug and then waited for QA to point out more.

School starts at 10:30 tomorrow. YES!! That means more hacking. And after tomorrow, school is out.

Well, Paul Egli discovered EVEN MORE problems with the patch I checked in for bug #873. I fixed them.

I've been very busy studying for my finals. I took a good nap in the history final this morning, but during the physics final my physics teacher refused to allow me to borrow a calculator, and as a result, I probably did pretty poorly.

On the IRC side of things, Luke_ wrote some much-needed emacs code to move the point up one screen-line (when the lines are wrapped and you want to move up to the previous line - which emacs thinks is the same line you're on). I haven't got it to work yet.

I can't believe it's been 5 days since my last entry. I've been making an average of one commit per day to the Abi tree and thought I was documenting them here. Once I do something cool or important, I'll be sure to post an entry :). I haven't really been doing much, other than fixing issues that Paul Egli finds or participating in contraversial threads on abiword-dev, such as whether we should use STL, and whether the Insert key should be bound to turning on overwrite-mode. I say yes to the first and no to the second :). I was really supprized that samth suggested this change, since the Abi people are against templates and most other advanced features of C++. I posted that I expected "the Luddites to veto it", and the comments from AbiSource (sourcegear) actually turned out to be mostly very negative. Since Sam claimed he benckmarked the STL vector class to be 27x faster than AbiWord's internal vector implemention, I was all for the change. Since the reposonse was mostly negative, as I expected, I launched a thread about the importance of speed in desktop applications and how AbiWord feels a bit unresponsive sometimes. I was told that I was making a grave mistake by campaigning for changes that were not shown to have any visible impact, and the right thing to do is to profile the application. I will do this once I find a profiler for UNIX, as I am very inexperienced in that area.

I now have read/write access to the Abi CVS tree! Celebrated by writing and commiting a few patches to the tree. As you can see from the log messages, one was quite embarassing.

Studying like crazy for the Physics SAT II and for my finals.

29 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!