Archive for May, 2008

In which I draw a line on some screenshots

Nothing visible happened today. Oh, did did figure out why the text was “jumping” when one tries to edit after the initial draw. Lookit! The window on the right is my dev build, window on the left is 2.6.2. The selected text is whats initially drawn to the screen all pretty. The text underneath it, overlapping somewhat, is what is drawn when you edit.

Note my dev build lacks the upper gray area outside the page, and note the line I drew to compare the text height. Exactly the same! “All” I need to do to fix it is to find whatever it is I ripped out that draws the upper gray area.

I’m mostly writting this to myself so I remember where I am tomorrow. I suppose I could jot it on the slowly growing stack of scratch paper next to my laptop, but I’m making the (likely pompus) assumption that it might be interesting to someone. Or am I being even more egotistical by assuming that about my assumption? I’d never survive as a diplomat.

Edit: Oh, also, just in case you were wondering, in C++ when you run into a form like (a || b && c), the && is always evaluated first, even if it’s reversed like (a && b || c). Dispite what my handy refrence says. Look, just put parentheses to indicate order of operations with expressions like that. It gets rid of warnings and makes it slightly easier on the next person to go through your code. I saw a Repulsive expression of Unusual Size earlier today that I don’t even want to think about working on without a truth table, or linear algebra, or whatever. Good thing it’s not related to any of my code. ^_^

Advertisements

Well, technically it’s not Wednesday anymore…

…But I did eventually get that text fixed. Tada!

Err… Not quite sure why exactly the outline from page five is being drawn off the bottom of the screen down there. And the whole thing is still corrupted when you actually click on it. When you start editing, text is suddenly being drawn about a line lower than initially pictured; I’m probably returning a value one-off someplace. Yay

Progress!

So, this is what my Google Summer of Code MultiPage project looks like so far. Not (absolutely horribly) bad, eh? Well, as of roughly thirty seconds ago, it was a complete mess. Then I looked back and realized that I was passing the row number, not the page number to my function that calculated the width of previous pages in a row. Easy fix, looks much better. God is good!

You’ll note that pages five and six are being drawn too high (covering pages two and three). What you can’t see is how the blinking cursor line is flipping insane and un-synced from reality, how the pretty white page filling and drawing messes up when you type stuff, and how the whole thing locks up whenever you scroll. All in good time!

Anyway, I’m starting feel a bit more comfortable hacking on this particular chunk of AbiWord, despite lots of stupid mistakes. I think I’ve worked on it about two and a half weeks on this point? Grrr. I’m going too slow. My goal for the next coding session is to sort out the overlapping text stuff (should be easy, even by my standards 😛 ) and get this polished enough for a new SVN submission. The one I should have made a while ago. Yay.

Windows on the OLPC XO

Why, from a technical standpoint, Windows XP is a really bad choice for the OLPC. Or, “This fails. :-(”

Drive SizeThe XO-1 laptop
Wired has a good summery of why drive space could be an issue; Windows XP and Office take up way more space than the XO has room for. They’ve got at least part of it running off an SD card. This likely means that one will be unable to store any data on SD cards while running Windows. Joy. Also, what is with this dual booting thing? Users will have even less space to store data in an already limited environment.

Battery Life
The OX has been designed so that it can hibernate and resume in a tiny fraction of a second. This means that as long as the user isn’t doing something that requires the processor to be running (multimedia, keyboard/mouse interrupts, etc) the processor is turned off. The machine has a buffer which allows it to display the last frame rendered even when the machine is in hibernation.
In addition, I imagine that most of the Linux software has gone through optimization using tools like Powertop (many desktop Linux apps have, anyway) which allow them to be more efficient when demanding processor cycles.

Unless they put a lot more work into the XO version of Windows than I think they are, it’s not going to have nearly as good battery life as it would running Linux.

Mesh Networking
Almost every tool currently on the XO allows one to hook into the automatically generated mesh network. It’s not like some special mode which individual application implements differently, it’s a system-wide API that everything uses. As a result, one can turn on a bunch of XO laptops and see on a little map what everyone else is doing and collaborate in real time. It’s a very social system and great for educational purposes. Microsoft doesn’t have anything that compares to it, period. A few apps in Office might have collaborative editing capability, but it’s not automatic, intuitive, or integrated with the system. The mesh networking is also used to pass onwifi signals to machines which are out of range of the access point. It would be a shame if the XO lost useful automatic mesh networking in software and got stuck with access-point dependant 2 km wifi.

Competition
The reason OLPC switched to Windows is because of competition. Though the XO has superior software, it’s hardware is less powerful than Intel’s Classmate and it runs unfamiliar specialized software. By running XP, the only difference between the two is hardware, and quite frankly the XO looses badly in this department right now. Without the specialized Linux operating system, the long battery life or the out-of-the-box automatic mesh networking, the only reason one would purchase this thing is because of the dual mode screen. Great.

I still wish OLPC luck with their project, but from a technical standpoint, things have gotten considerably less exciting with this decision.

Some PC are more evil than they initially appear

Hey, look! Someone gave me a twelve year old 400MHz computer. Also, mom wants a distraction-free offline machine for the younglings to write reports and use their CDROM-based science textbooks on. In addition, there’s this cool thing called SliTaz, a complete Linux distribution that takes up minimal system resources, runs really fast, and fits on a 25mb CD-R! Are you thinking the same thing I’m thinking? 😉

This is a thirty minute job, tops. What could go possibly go wrong?

Two hours pass…

Stupid computer! Taunt me, will you?! 😡

Summer Day Two: slow decent into madness

Woah, so this is what sleep is like. *ahem*

Everything is all over the place in room. Most of my textbooks are about a fraction of a centimeter too tall to fit anywhere in my bookcases neatly. Random books I never use, various burned CD-Rs, and paper scrap litter various elevated surfaces; this is partially due to my philosophy that the easiest way to clean up a book case is to take everything off it, then put everything back on. The other part is due to the current complete lack of floor space. >_<

Summer of Code marches on! Except not. The new router I set up for family which seemed to work so nicely over Christmas break now seems barely capable of transmitting a signal which I can receive consistently. I get disconnected from our home network and reconnected to our neighbor’s stupid “linksys” signal every ten to thirty minutes. And just forget about it if someone is using the cordless phone or the microwave. A reconnect every ten to thirty minutes doesn’t seem too bad- and I keep telling myself this. And [sic, don’t care] it woulden’t be, if I didn’t happen to be conversing with someone about how to fix it, or downloading an eclipse update, or something of that nature every time it happened.

Seriously! NetworkManager is driving me crazy. Why on earth can’t I easily blacklist this “linksys” network? It’s freaking weak, weaker than the signal I want to stay connected to. Wicd won’t connect to my network at all. It’s really rather messy. To compound the frustration, the wifi tool in XP seems to have a slightly longer timeout that NM, so I can stay connected in Windows but not Linux. The irony!

Also ironic: the IDE situation on Linux, which is usually my development platform of choice. I installed Arch Linux half way through this past semester because of issues with Ubuntu, and I’ve been absurdly busy since then. Thus, I’ve just been using Gedit and a terminal window with gcc, guile, or whatever compiler/interpreter the situation called for. No sense mucking around with a full fledged IDE for 200 line homework assignments. However, AbiWord has a lot of code. This is by far the most complex project I’ve worked on.

So, after getting thoroughly overwhelmed (and reminding myself that this was the planning/research phase and I didn’t have to start coding in earnest for another three weeks), I decided to take Eclipse for another spin. Problem: it won’t spin. After figuring out how Subclipse worked and getting things syncing off the AbiWord SVN, my wifi connection died, taking Eclipse with it mid-checkout. Now Eclipse freezes on the loading splash screen.

In between the lack of IDE and lack of stable internet connection, I’m getting pretty frustrated. So, I need a plan.

  • Teh Internets
    • Construct a Pringles ™ antenna, slap it on the router and point it in the general direction of my laptop.
    • (Plan B) Install OpenWRT (or something similar) on the WRT54G router, then pump up the transmitting power. Pray that the router doesn’t overheat, the FCC doesn’t show up at my door, and that the router doesn’t brick. Any of these are bad as they mean potentially making the internet situation worse. Gah!
  • Eclipse (Ideally, after fixing the wifi situation. It’s hard download packages and/or to flame people on IRC when one’s connection drops every other thing.)
    • Visit #archlinux. Complain. Get connection dropped. Be ignored by everyone. (Accomplished)
    • Run Eclipse and get some sort of terminal output. There must be a console debug argument or log or something somewhere.
    • If Eclipse won’t run at all, I’ll fall back upon the “pencil and paper” approach and try drawing out the relationship between things. You laugh, but it’s worked before.
  • General Sanity
    • Unpack from school and get boxen out of room.
    • Find mouse. Battling my laptop’s touchpad is not aiding my mood.
    • Unruly mob! Unruly mob!
    • Get something done on AbiWord. Seriously.

That said, I’ve got quite enough to keep me busy right now. Over and out.


RSS Status

  • An error has occurred; the feed is probably down. Try again later.

Del.icio.us

Creative Commons License
This stuff is licensed under a Creative Commons License.