Wednesday, January 26, 2011

Thinking about buying an Arduino

I've been thinking about toying with an Arduino for a long time now. They're so damn cheap, I really can't resist. Although, I have no income currently so I'm 50/50 on whether I should be really spending the money on them.

Tonight I had a look on Little Bird Electronics (herein referred to as LBE - one of the few Australian suppliers for these boards), and was surprised to see that there's quite  a few of the offerings out there based on the Netduino, which rather than using gcc with an AVR library, uses Microsoft's C# .NET with a library that the Netduino people make available called the ".NET Micro Framework". Obviously, using one of these micros requires Visual Studio of some variety. Thus,  *nix and Mac support seems to be rather limited, but apparently you can issues commands to them over the command line. I'm not against proprietary software by any means, but I thought the idea was to keep Arduino and it's derivative as open as possible? Although, there are some advantages (like event-driven programming capability) that might be fun to mess with. I really like the look of the Netduino Plus (with ethernet and micro SD on board - $73 from LBE) but, as a person who's workstation runs solely Linux, they're instantly a no-go until there's some better support (apparently you can use these chips with Windows running in VirtualBox, which I have, but it seems like a pain - I haven't done much research on them surrounding the use of mono). Maybe some other time.

So, with that in mind, as tempting and featuresome as the Netduino's seem to be, I've decided that I'm probably best looking at an Arduino Uno or Arduino Duemilanove. The Duemilanove was the one that I'd been eying for a while, but I hadn't looked at the Uno. For what I'd want to be doing, I think the Uno might be the better option since it seems a little less newbish. I'm no newbie with electronics or microcontrollers, but I'd like to expand my knowledge by doing some crazy stuff with them. The Uno is $38.95 + P&H from LBE, might be able to get it cheaper elsewhere (*cough* eBay) but I haven't looked. There's also some cheap Chinese clones floating around, but the reviews are mixed. I'd probably build one of the suckers myself before I bought one of those. That might be an option worth pricing too.

Just for the fun of it I installed the arduino and arduino-core packages on my laptop. Debian (and I believe Ubuntu and some other distros) have both of these packages in their repositories, so if you search your package manager of choice you should find them. The IDE looks fairly plain, I like that. I haven't done much with it since I don't have a board to connect to, but compared to some of the IDEs that I've used with Motorola microcontrollers, it seems pleasant. We'll soon find out anyway. In the interim, have a screenshot:

Sunday, January 23, 2011

Debian Squeeze

I've been using Debian Squeeze as my only operating system on my laptop for a while now (nearly 3 months now). So far, I've been very happy with it. Instead of upgrading my machine to Fedora 13, I wiped my drive and installed the latest build of Squeeze from a "net install" ISO. I'd been using Fedora 13 with GNOME, but I had the intention to try out KDE again, since I really liked KDE 3.5, but version 4 was awful last I tried it. I got Debian running on my machine (with KDE 4.6 on top) and gave it a try. Whilst KDE 4.x has improved since I last tried it, I won't go as far to say to it's even remotely alright. It's bloated and sluggish and it just doesn't make sense.

Now, my laptop isn't very old. Only about 8 months. It has a Core i5 processor and 8gb of RAM. Fedora with GNOME was lightning quick on this machine, Squeeze with KDE was bloody awful. The Nepomuk Strigi file indexer is a massive POS. I'd often come back to my laptop after being a way for a while to find the machine getting hammered by Strigi (to the point where moving the mouse to bring the screen up caused the machine to stutter). Indexing my /home shouldn't require that much computational power - even Windows 7 does a better job at this. I switched Strigi off, and still found KDE 4 to be awful. With Strigi turned off, it was still slow. Not to mention the new Plasma desktop makes no sense at all. Is it a desktop or a folder? Or a widget itself? I gave up trying to figure out how to set it up like I wanted to have it. Everything I tried just didn't seem to work right. It's just a massive pile of unnecessary flashy wank. I used KDE for about a month in total, and then got fed up, so I nuked the KDE packages and installed XFCE.

I hadn't used XFCE for a while either, and last time I tried it I was using Xubuntu (I despise Ubuntu). I'm very happy with XFCE, it's quick, lightweight (a fresh boot on my machine uses less than 200mb of memory, and I can run a web browser, IM client, file manager, Skype, music player and a few other miscellaneous apps in less than 1gb of memory...that's more like it) and it "just works". Although, I did have a few gripes.

  1. It doesn't come with a proper network manager. I installed Wicd hoping that would work. I knew I had to bind it to my wireless card for it to work correctly. It could get an IP address via wired ethernet. But since I use wireless primarily I tried to get it to connect to my wireless network (WPA2+ encryption, hidden SSID and MAC authentication). I configured the network and it seemed to recognize that a network was there, but it refused to set a network address. I tried everything - rebooted the laptop, brought the interface up and down with ifconfig, switched it on and off at the switch, power cycled my wireless access point and even rebooted the box which handles DHCP on my network. Even threatening to Widlarize the entire lot (in rather persuasive language) failed. I could find nothing online that was able to give me a solution. After about 3 hours, I declared the Wicd must be a rabid POS and just installed network-manager (which has GNOME dependancies, but I really don't care. I've got the disk space and RAM to spare). Network-manager just works, it picked up everything just as I expected it would. So that's what I've stuck with.
  2. I can't seem to rearrange non-XFCE icons in my status tray. Things like Skype, network-manager and Pidgin don't appear where I would like them to and I can't seem to find a way to move them around.
  3. The Icon Box panel item (basically a task switcher that only shows the icons) would be better if it supported grouping like the proper task switcher does. If you have eleventy gazillion things open like I often do, it'd be nice.
  4. Thunar doesn't have tabs. Why is this? It's great otherwise, just no tabs. Nautilus, Konquerer and Dolphin all have tabs, why doesn't Thunar?
Aside from that, I'm really loving it. Now, more to the point, I really like Squeeze. I like the "Debian philosophy" of stability for starters. I don't care if my machine has the latest and greatest installed (and even if I do want that, I can install from backports or unstable repos) as long as it just bloody works and doesn't need a reboot every 2 days. Fedora on the other hand would push new stuff every day that would nag for a reboot. I found myself rebooting my box more often than I was when I used Windows. Ridiculous. Fedora isn't the only distro guilty of that, though. I do like Fedora for other reasons, but Debian just seems to work better for me. I think Squeeze has only asked me for a reboot twice after an update. That I can handle.

Although getting Skype to work on Debian was a real PITA (as it is on 64 bit Linux builds anyway, generally). For some reason I couldn't get ia32-libs to install from the repos. I don't have the faintest idea what I'd done exactly (since I was probably strung out from lack of sleep at the time), but it appears I'd force installed some packages from Ubuntu or something in messing about trying to get Skype to work, which in turned sent ia32-libs into a spin because it couldn't get lock on a particular location upon install. I eventually worked out what the problem was, uninstalled those two packages with apt and was on my way. Although I really wish Skype (and the distros as well) would get it together. It's a pain to install, but of course being proprietary nobody at Debian or any other distro really gives a toss. That's no help to people who have relatives overseas who don't use Linux (and thus can't use Ekiga or whatever it is).

I also had to compile and install newer ALSA modules in order to get the internal microphone working for Skype. But that was only two commands and nothing major once I'd worked out that an upgrade would fix it. It works fine now, but hopefully it doesn't break anything in the future (*fingers crossed*). Aside from those issues, everything works - I can suspend to RAM too, which is something I could do on Fedora which I couldn't do on some other distros I'd tried (another PITA - I don't want to shut my machine down just to pop it in a bag for 20 mins to walk to class).

I read on Reddit this week that supposedly Squeeze is supposed to become stable on the first weekend of February. About time really, but at least it's a polished and refined release that I know isn't going to break on me (without my help at least).


Welcome to Widlarizing. For those unfamilar with the term "Widlarize", might I draw your attention to the following definition:

"But there were times when Bob would discover he had wasted a day or two, just because one bad part had screwed up his circuit. He would bring this bad part -- a capacitor, a pot, a transistor, an IC, or whatever -- over to the vise and lay it on the anvil part. Then he would calmly, methodically beat it with a hammer until the smallest remaining part was indistinguishable from the dust on the floor. Then he would go back to work and get the right answer. He explained that it makes you feel much better if you do this, and, you know that bad part will never come around again and goof you up. He was right." 

I consider this to be an appropriate basis for my blog as I am a computer engineer, and am often faced with frustrating situations which end up boiling down into some insignificant little niggle which could've been resolved in all of five seconds. Thus, the purpose for this blog be for me to ramble, rant, rave and "Widlarize", essentially an outlet for me to organise my thoughts and share them with others (hopefully someone finds them interesting).

Although I want to remain as anonymous as possible, a little about myself: I'm a young computer engineering student located in Australia. I will have my degree by the end of 2012.  My interests are focused predominantly on electronics, networking, programming and operating systems. I am an avid user (and enthusiast) of the Linux operating system (specifically the Debian project). Thus, many of my blog postings will be of a technical nature. But, I have other things which I wish to express which aren't technology related of a more personal nature. Hopefully someone finds it interesting.