Pat's Log
Thu, 30 Dec 2004

xbox/20041230 The DashUI program is now moderately useful. It runs cleanly, has a low overhead, and looks pretty good too.

At this point, it can swallow just about any window, even complex programs like media players such as Totem. However, one problem that needs solving is selection of which window to swallow. In programs that have unpredictable titles, the window cannot be specified in advance. In others, like gpsdrive, the splash screen gets in the way. Have not decided how to get around this yet.

From using DashUI with a mouse, it is fairly clear that the solution would work very well on a touch screen. Large tabs that are always where they should be, quick switching between applications, and the ability to swallow anything really work. From here on, it should be mostly cleaning up the code, as well as adding configuration file parsing.

[/xbox] | posted @ 21:55 | link

Yes, I'm Crazy...
20041229 I spent most of the day today drilling little window holes in the model of the Enterprise-D I've owned for the last ten years. All holes are hand-drilled for good alignment. At four holes per window, my hands are quite sore. After drilling, the windows are reamed out using a dremel tool with a dental burr, then the holes are cleaned up with an exacto knife. Once the inside surface is painted black to protect from light leaks, then silver to ensure a more uniform distribution of light within, the windows will be filled with clear resin. A lot of work; hopefully it will pay off. I've seen some amazing build-ups of this particular model.

In other news, the break still feels fantastic. For Christmas, I got a 2005 Dilbert calendar, as well as the much acclaimed Polar Lights Enterprise NX-01 model. With the Enterprise-D just started, this one will not be opened for quite some time. I also went ahead and bought myself a good quality, full-size replica of the boomerang-shaped phaser from Voyager and DS9; expensive, but it should be well worth it. Additionally, I just finished eBay bidding for a decent airbrush compressor. I must be anticipating graduation or something...

With time well spent on models, decent progress on my fourth year project, and an astonishing A- mark in Quantum Mechanics, all but one of my Christmas to-dos have been completed. I still have to clean up the situation with files from my old desktop, my laptop, and my new desktop. The plan is to turn the old desktop into a RAID (linux-md) file server, put everything there, and rsync with it regularly.

[] | posted @ 04:04 | link
Mon, 27 Dec 2004

Beyond a Mock-up
xbox/20041226 The previously-designed mock-up is now a reality. Written in GTK, with code borrowed from gnome-swallow, the xeyes program was swallowed into this preliminary design. The program is actually attached to the tab pages, so when a tab is switched, the eyes are hidden. They return when the first tab is once again focused.

There are still many things to work out. The immediate concern is whether it is possible to have multiple applications swallowed. There is no reason why this should not be possible, but the current code does interesting synchronization magic by forking the swallowed program off and then attempting to control the main program loop. This, obviously, cannot work with more than one program at a time. At the same time, with a small number of programs swallowed, perhaps it is not a significant performanceissue to overcome.

The step after that is to be able to dynamically specify which programs belong to which tabs, rather than hard-coding. Related to this is the ability to set the swallowed applet's size. Currently, the eyes are scaled to fit the tab content area via command-line argument to xeyes. This solution is not practical when there is a configuration file, as the size of the tabs is not known in advance. Since the window identifier of the swallowed program is known, it would be cleaner to suggest to the program to resize to given dimensions via an Xlib call after the program is started, much like a window manager would.

Overall, this design is working out fairly well.

[/xbox] | posted @ 06:44 | link
Sat, 25 Dec 2004

User Interface Idea
xbox/20041225 Now that exams are over, as are Christmas festivities, I am proceeding full-steam with producing software I envisioned while studying for exams.

It occurred to me that the flaw in DashPC's design philosophy is that it's just a launcher. It sits on top of a window manager and launches applications (and a few other things). What is needed in an automobile is an interface, something that does not hide behind windows, but rather allows control over them, and is always available to switch to other programs. However, it should not be a window manager, as that would have to take control of any child windows that a program starts, and that is not the goal. The idea is that child windows are the exception rather than the rule, and those should be handled by a window manager when they do occur.

The result of my ideas is a tab interface with large, simple tabs on the driver side of the screen. Tabs can be added or removed from a configuration file, and each tab corresponds to a different program, always running. The program corresponding to each tab is held within the tab's content area, as pictured for gpsdrive (this is only a concept graphic).

The difficulty lies in embedding the program. Several protocols were considered, including xembed. However, it needs to set up a socket and communicate with the client program, which would require modification for each program to be used. Finally, today, I came across gnome-swallow, which literally swallows any window into its panel window. The whole program is approximately 500 lines, with 75% of that being the panel code. The remaining swallow code should be very easily portable to any other GTK application. If all goes as planned, this means the program will be fairly trivial to write.

To make things even easier on the user, a high-contrast GTK theme could be easily designed to make it very clear which tab is selected. This theme could also enforce larger text, as needed for readability on smaller screens. I am also thinking of designing a hardware switch that would make the software automatically tint to a dark green or red when the vehicle's lights are on. This could be executed right at X11's level via colour-correction functions.

[/xbox] | posted @ 22:19 | link
Mon, 20 Dec 2004

Temporary Freedom
20041220 Exams are over. I feel pretty good about all of them except two: Quantum Mechanics and Networking. Today, I handed in the final report for the IC design I've been working with all semester. Now, there is nothing left to write, nothing left to hand in. There is temporary freedom.

The past week or two has seen interesting weather, from extreme snow conditions to extreme cold. When the weather is snowy, the lights on the house glow and create the perfect winter scene. Then there are days like today, where (with wind factor) the temperature was -41C.

My laptop is being sent back to Dell tomorrow, as the screen problems that have been intermittent in the past have become permanent, and it is not pleasant to stare at with lines down the screen. Of course, this happened two weeks after the warranty expired. Hopefully the repair is not too costly. Dell parts quoted me $740 + tax + shipping for the motherboard, and I am quite certain the problem is with the motherboard.

While looking forward to relaxing over the next several days, I've decided I should resume some small effort on my hobbies. As such, the last week or so has been spent hand-drilling out windows on the Enterprise-D. With over a thousand windows, of which I am cutting out about a half, at a time of three minutes per window... it takes time. But the end result will look great when it is properly painted and lit. I am considering making it a goal to spend 20 minutes a day on hobbies next semester, as it effectively relieves stress.

[] | posted @ 16:43 | link
Sun, 12 Dec 2004

White Nights
20041211 This week has been snowy. At night, the snow really catches the light, and there have been white nights. Not the same effect as a few degrees further North, where the sun doesn't actually set for very long, but it looks the same. I managed to take a photo out of my window at 2 a.m. without any special treatment; it was very bright outside.

At this point, two exams are down, three to go. The first, Software Engineering, which everyone expected would be impossibly difficult, was actually fairly straightforward. I feel I did well on it. Today, I had my Baroque music exam, and it didn't feel as good. 50% of the exam was identifying music played during the exam, and various facts associated with those pieces. Then there were two essays; by the time I got to the second one, my brain was not functioning. This exam was probably not written very well.

Next up, Quantum Mechanics.

[] | posted @ 04:59 | link
Tue, 07 Dec 2004

VGA Output
xbox/20041206 The majority of this evening was spent constructing a simple converter that takes output from the Xbox and converts it into mostly spec VGA.

The Xbox has a video encoder chip that takes the raw digital input and converts it to (usually) composite video, although it also outputs luminance and chrominance for S-Video, as well as both current HDTV standards. From a combination of signals from all of these formats, a VGA signal can be formed. The problem is that the sync signal for the whole picture is encoded within the Green channel. This is not VESA-compliant.

The solution to creating a more-or-less VESA compliant signal is to use a video sync splitter chip. In this case, the National LM1881N was used. The input to the chip is the Green channel and the outputs are the horizontal and vertical sync signals, which go directly to pins 13 and 14 on a VGA connector.

While the rest of the PCB is mostly pass-through for the video signals and their ground lines, there Xbox also outputs audio through the same connector as video. Therefore, there is a stereo headphone jack, and it works surprisingly cleanly.

Unfortunately, the video portion of the converter is not ideal. It was expected from the start that there would be a slight greenish tint, since the colours are not weighted for VGA display. However, the green tint is quite heavy wherever other colours are not displayed. Also, there are occasionally some sync issues. Upon investigating the completed circuit, it appears that the resistor is approximately half as resistive as it is supposed to be. Perhaps the resistor is faulty. This may explain some of the issues, so it will be replaced at some point in the near future.

[/xbox] | posted @ 05:41 | link
Thu, 02 Dec 2004

A So-called "Hectic Life"
20041201 It is amazing how slowly November went by. I recall October coming and going, but November felt easily twice as long. I suppose it could be a function of how busy I am, but that normally makes time go by faster. Coinciding with the first day of December was the first spurt of snow, a modest 10cm. The flakes were the biggest I've ever seen, some were spheroids with a diameter of about 3cm.

Yesterday was my turn to test the chip I spent a good many hours of the semester designing. The chip worked great, with very sharp output signal edges, a signal high very close to 5V, all despite the big gash someone accidentally put through the middle of the chip. Well, the scratch isn't very big, considering the total width of the chip is 0.575mm. It is very neat that this nearly random-looking jumble of zig-zagging lines actually does something interesting. It also brings into perspective how amazing it is that modern chip designs have features about 200 times smaller. Craziness. The only remaining step is to write a big report and it can be called a project.

I am sick. Very sick. I hope to get better before exams.

[] | posted @ 04:57 | link

copyright ©2004-2016 pat suwalski