EE101 Hummerbot Videos

December 16, 2009

Finally got around to posting some old videos of the robot I made back in EE101 a year ago.

The hummerbot (my team’s robot) on the ramp,

http://www.youtube.com/watch?v=IVMj-MIEGfM

http://www.youtube.com/watch?v=fBgCe5NAAxU

The hummerbot on the can course,

http://www.youtube.com/watch?v=UeFmm4FkRnU

http://www.youtube.com/watch?v=MrN54sZcY6A

One of our competitor robots (slow and steady wins the race?),

http://www.youtube.com/watch?v=VdETMfP_kmc

http://www.youtube.com/watch?v=_9wO-Xzdf_c

A blooper of a not so competitve robot,

http://www.youtube.com/watch?v=5NlHOx8KUh0

Aah good times. When we walked into the lab and saw the other robots, we said, “Well… we’re either going to get an A because our robot is the most awesome thing here, or we’re going to fail since we hacked a microcontroller on an RC hummer instead of building ours from scratch and duct tape.” We ended up getting an A.


Windows 7 Startup Repair Tool Unhelpful Results

November 19, 2009

Being impatient, I hit the power button when I went past the bootloader and started loading Windows 7 by mistake. Next time I booted into Windows it asked if I wanted to run the Startup Repair Tool. Not paying attention, and assuming it was just the usual file system checking after an unsafe shutdown, I went ahead and let it run. 20 minutes later, after I moved to my netbook and started Googling, I found that the tool does all sorts of stuff that I really didn’t want it to.. In the end, it finally came out with the following as my problem,

Root cause found: Unspecified changes to system configuration might have caused the problem.

Thank you Windows… for diagnosing the root cause of all my problems, as some UNSPECIFIED configuration change which MIGHT have caused the also unspecified problems.


Back to Slack? Part 2

November 16, 2009

I got the dual booting to work finally, as well as the wireless. For the dual boot, I reinstalled the Windows 7 bootloader as I said last time, then used easyBCD to add an entry for Linux. Finally I booted Slack up using my install DVD and ran liloconfig, this time installing lilo locally rather than to the MBR. Windows 7 boot loader now lets me chainload into lilo.

As for the wireless, an lspci gives,

0c:00.0 Network controller: Broadcom Corporation BCM4311 802.11b/g WLAN (rev 01)

The B43 module loads fine, but to make it work you need to grab the firmware from here: http://linuxwireless.org/en/users/Drivers/b43. The instructions are,

wget http://bu3sch.de/b43/fwcutter/b43-fwcutter-012.tar.bz2
tar xjf b43-fwcutter-012.tar.bz2
cd b43-fwcutter-012
make
cd ..
export FIRMWARE_INSTALL_DIR=”/lib/firmware”
wget http://mirror2.openwrt.org/sources/broadcom-wl-4.150.10.5.tar.bz2
tar xjf broadcom-wl-4.150.10.5.tar.bz2
cd broadcom-wl-4.150.10.5/driver
sudo ../../b43-fwcutter-012/b43-fwcutter -w “$FIRMWARE_INSTALL_DIR” wl_apsta_mimo.o

Simple enough. According to that page, the firmware can’t be distributed due to copyrighting. Oddly though, this all works just fine in Ubuntu or Backtrack right after the install…

As for the actual wireless configuration, Slackware 13 still doesn’t have a decent GUI configuration utility for wireless. For WPA, the easiest way is to just edit /etc/rc.d/rc.local and add,

iwconfig wlan0 essid “Your ESSID”
wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf &
dhcpcd wlan0

Then go and edit /etc/wpa_supplicant and make sure it looks something like,

ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
eapol_version=1
ap_scan=0
fast_reauth=1

# WPA protected network, supply your own ESSID and WPAPSK here:
network={
scan_ssid=1
ssid=”Your ESSID”
proto=WPA RSN
key_mgmt=WPA-PSK
pairwise=CCMP TKIP
group=CCMP TKIP WEP104 WEP40
psk=”Your WPA Pass Phrase”
priority=10
}

Make sure for both the ESSID and Pass Phrase you include the quotes. The only problem left is that in dmesg I keep seeing,

b43-phy0 ERROR: PHY transmission error

This isn’t new though, I had the same error all the time with Ubuntu. My home connection seems to work fine, but some access points I’ve gotten random dropping of the connection and the above error. Considering I don’t take this laptop anywhere much now that I have my netbook, I’m not too worried about it right now.

Now to go configure Slackware the way I like it. So far, even this is being difficult…

root@vostro:/home/pherricoxide# xorgsetup
Only root can configure X.
root@vostro:/home/pherricoxide# whoami
root


Back to Slack?

November 16, 2009

Well, after hearing and seeing horrible things with the new Ubuntu release, I decided to try good old stable Slackware on my new 320GB drive along side Windows 7. The install was… well, you know how Linux goes.

First off, LILO refused to boot into Windows 7. When I tried to edit the lilo.conf and then run lilo -v to update it, I got the error, Fatal Error: Partition entry not found. The partition from which an other operating system should be booted isn’t listed in the specified partition table. The only thing I could find online said,

This either means that an incorrect partition table has been specified or that you’re trying to boot from a logical partition. The latter usually doesn’t work. – Linux Bible

Well, I am trying to boot Windows from a logical partition. Why doesn’t this work? Don’t know….

I put my Windows 7 install disk in, restored the MBR with “bootsect /nt60 c: /mbr” inside the repair command prompt. Will update this when I have some more time to make it work. I’ll try and just install Lilo/Grub to the same partition as Slackware’s on and then point the Windows 7 bootloader to it. Either that or I’ll try Grub instead of Lilo.


Windows Vista/Windows 7 Junctions (Access Denied “Problem”)

November 7, 2009

All I wanted to do was sit down, watch some Andromeda episodes, and drink my Monster Energy drink. Windows 7 decided to be confusing and kill 10 minutes of my time reading about the NTFS file system though, so I thought I’d blog about my findings.

It all started when I wanted to access My Videos. I went into my Documents “Library” in Windows 7, clicked on My Videos, and got an access denied error. Then I went in a little deeper and found,

C:\users\PherricOxide\Videos\ really exists.

C:\users\PherricOxide\My Videos\ is what’s shown in Explorer. This works when clicked.

C:\users\PherricOxide\My Documents\My Videos\ gives an access denied error.

The explanation? NTFS Junction Points. It’s a type of Reparse Point like symbolic links to files or mount points. In simple terms, a shortcut to a directory. This isn’t the same as the Windows Shell Shortcut though, like you would create with a new -> shortcut button. Junction points act entirely like the directory they point to.

For example, Vista and Windows 7 have a Junction “C:\Documents and Settings\” which points to “C:\users” to add legacy support for old applications now that the user data has been moved to a new location. If you move a file foo.txt into “C:\Documents and Settings\PherricOxide\” it will really move it into “C:\users\PherricOxide\”. This allows older applications to read, write, and modify files inside “Documents and Settings” without ever knowing it doesn’t exist anymore. Nifty, huh?

Now the odd part is the “Access Denied” messages when you try and access a Junction inside Vista or 7. The reason for this is that the file permissions are set so that you can’t list the files inside the these Junction/Directories. If you change the permissions or take control of the junction you can, but I wouldn’t advise it, because this is actually a feature and not a bug. The reason is that programs like virus software, backup software, or anything else that scans your entire drive likely wouldn’t realize they are traversing a junction. Using the above example during a virus scan, the scanner would scan both “C:\users\PherricOxide\foo.txt” and “C:\Documents and Settings\PherricOxide\foo.txt” for viruses, and waste quite a bit of time. To avoid this, permissions have been set up so all the Junctions in Vista and Windows 7 can’t be opened and listed, but the files inside can still be modified if you know the exact path to them.

permissions

Interesting notes,

  • To view the junctions with the command prompt, you can run dir /aL in a folder. This is also the easiest way to see where a Junction points. Just a normal dir won’t show them.
  • To view all the junctions in your computer, dir /aL /s > c:\JunctionsList.txt
  • Someone finally came to their senses and got rid of all the My this and My that crap in the file system, plus spaces in tons of file names, yay! Unfortunately for the user, they still think they see it all, due to collections of junctions, symlinks, and Libraries for reverse comparability and new features.
  • In Windows Explorer, Junction points are indicated with an arrow icon
  • Deleting a Junction in Windows Vista and 7 is usually safe, but in XP or 2000 will likely delete the contents of the folder that the Junction points to.

 


Where has my Google Gone?

November 6, 2009

Something very odd happened today. I went to www.google.com, and it didn’t work. My first assumption was of course that my Internet connection wasn’t working, or maybe DNS. A quick check revealed that both seemed to be functioning just fine. I visited a handful of other pages without problem. Google, on the other hand, just timed out.

C:\Users\PherricOxide>ping www.wordpress.com

Pinging wordpress.com [74.200.243.254] with 32 bytes of data:
Reply from 74.200.243.254: bytes=32 time=100ms TTL=54
Reply from 74.200.243.254: bytes=32 time=100ms TTL=54
Reply from 74.200.243.254: bytes=32 time=100ms TTL=54
Reply from 74.200.243.254: bytes=32 time=99ms TTL=54

C:\Users\PherricOxide>ping www.google.com

Pinging www.l.google.com [74.125.19.104] with 32 bytes of data:
Request timed out.
Request timed out.
Request timed out.
Request timed out.

My first guess was something DNS related, maybe DNS cache poisoning on a DNS server I was using? Some sort of virus on my own computer trying to redirect me? But no, the IP I got back and was pinging was perfectly valid. When someone else typed it in, it worked fine. I then tried two computers, two operating systems, and reset my router/DSL modem, only to find the result unanimous: every common URL I type into my browsers work, but not Google. Somewhere between my little DSL modem, my ISP, the Internet, and Google, something broke for about 10 minutes. How peculiar.


Spring Schedule

November 5, 2009

At the moment, I’ve decided rather than double major I’m most likely just going to go for a CSE major and take whatever classes look interesting to fill spare credit hours. I also decided after multiple semesters of 3 math classes each, I’m entirely sick of math and will put off the stats class I need for later and focus on CSE stuff this semester. With Algorithms and Software  Engineering out of the way I’ve got plenty of options, so I just put stuff together till the schedule fit, and ended up with,

CSE320: Design/Synthesis of Digital Hardware

CSE325: Embedded Microprocessor Systems

CSE434: Computer Networks

CSE445: Distributed Software Development

PHY131: University Physics II

Certainly more interesting than previous semesters. Time to actually do computer related stuff, woot.


Windows 7 on Dell Vostro 1400

November 4, 2009

I finally got around to pulling a copy of Windows 7 professional off MSDN and giving it a try. The install went fairly smooth, the boot loader automatically gave me options for both Windows XP and Linux, and the installer let me choose which partition to install to. The only bump in the install process was the lack of Dell drivers. Audio did not work at first, but a quick visit to Dell’s driver page and installing the Sigmetel Audio driver for Vista fixed that. It also detected my Nvidia 8400 as a “generic VGA adapter”, which gave my Vostro a nice 1 rating on the video hardware and wouldn’t let me use the fancy new transparency and Aero theme settings. Finally, I noticed the touchpad scroll wasn’t working, and required another visit for drivers. After all the driver updates my hardware rating came out to,

vostroscoreNot too bad. It seems to run the new Aero theme just fine, and I have to admit that it actually looks okay. I’ve used Gnome and KDE fully pimped out with transparency and special effects before, and though the Aero theme doesn’t quite measure up to a full Compiz install on Linux, it certainly looks nice enough to use. The default Windows 7 theme on the other hand, though faster, looks a little… cluttered? I’d prefer the good old XP look. Although Windows 7 has a “Classic” theme, it doesn’t look much like 2k/XP. The taskbar and taskmenu is forever stuck in the new Windows 7 look, as well as a handful of other things like icons.

Going back to performance, it boots, connects to wifi, and launches Firefox in under 60 seconds, which is a bit slower than XP but still not a big deal.

As for the downsides, both the control panel and taskmenu consistently bother me. The control panel has a horribly cluttered feel, and it seems hard to find things no matter which layout (icons, categories) I use. I’ve also never really liked the new taskmenu, and miss the option to put it back into the classic version like in Vista.

Actually, in general I can’t help things feel cluttered. Explorer, for instance, is brimming with helpful buttons to create new folders, burn CDs, view favorites, homegroups, and libraries. A big feature is the new searching ability from the taskbar, but I’m the type that generally knows where the programs and files I want are, and never need to search. The taskbar itself is filled with things like the ability to pin applications to it, and by default looks quite a bit taller than the XP taskbar.

Time will tell how it fairs in the category of stability. I’ll at least resist jumping back to my XP partition for a little while to let myself adjust to it.


DRM Presentation

November 3, 2009

A slightly hurried presentation on DRM I had to do for a class, enjoy.

http://www.youtube.com/watch?v=yuJQS1Pm81E

Yes I know it sounds like I’m inside some sort of underwater bubble… Netbook speakers and microphones both leave much to be desired.

 


Netbooks: 1024×600 too small

October 27, 2009

A long time ago, monitors were large in size and small in heart. The behemoths would reliably sit on the often waning and sagging desks of their owners with the standard VGA screen resolution of 640×480. As time went on, people found ways to cram more pixels into the same sized monitors, leading to SVGA (800×600) and then a subset of SVGA known as XGA (1024×768). As webpage and application users upgraded their systems, the webpage and application writers began making use of these extra pixels, putting larger and clearer images, better layouts, and more text without scrolling. The logic was sound: satisfy the base of customers that are the largest and try and deal with the rest, but the good of the many outweighs the good of the few. Try browsing the Internet today with a 640×480 monitor and you’ll realize how much has changed. You can’t even get rid of your good old VGA displays anymore, even the trash companies don’t want them.

Then LCDs came around, and got even worse. Once again people found more ways to cram pixels in, this time making wide screen and crazy resolutions like WSXGA (1600×1024) and all the way up to 2048×1152 and beyond. All along, the applications and webpages were slowly written to perform well on larger screen resolutions, usually keeping 1024×768 as a minimum, but not always.

The screen resolution trend gained momentum. Lots of it, for good reason. I love my 2048×1152 LCD at home, especially for programming. I can see more data at once, more code, more files, all viable and at the touch of my fingers and mouse. If I wasn’t so cheap, I’d probably have dual LCDs.

Then, somewhere and somewhen, people started trying to push the trend backwards. Computers got smaller, but they also got slower. People packed less pixels, but produced mobile devices. They went back to the old standards of 800×600 and a new widescreen 1024×600 and came out with netbooks.

And guess what happened? All those lovely applications that are designed and tested for 1024×768 or above, are now broken. You have no idea how many times I’ve found an application on my netbook where the “Okay” button is hidden underneath the view of my 600 vertical pixels on my netbook, or some important menu option is hiding. In fact, I’ve at times went down to 800×600, because sometimes that will trigger alternate layouts out in the applications that 1024×600 won’t due to the different aspect ratio.

The momentum of the screen resolution trend is unlikely to be reduced anytime soon. Netbooks and mobile devices are just a slight friction, pushing developers to test their applications on smaller screen resolutions, making the real world a little more complex than a perfect world of 1024×768 defaults. Right now it looks like the market of netbooks and 1024×600 screens is too small for many developers to spend the time to make layouts look nice on them, even in Linux. In fact, I’ve found Linux to be quite a bit worse with applications having the bottoms cut off than Windows. Even some Gnome system settings menus will display incorrectly, with the “okay” button just frustratingly out of reach.