Saving Money on Arduino Basic Starter Kit

Several sites are selling Arduino “basic starter kits” for around $55. That’s not a bad deal, but they tack on around ten dollars in shipping! These kits generally include:

  • Arduino UNO board
  • “Getting Started with Arduino” book
  • Breadboard
  • Jumpers
  • USB A to B cable

I put together my own bundle on Amazon, with free shipping, which costs significantly less:

The total price was $42.84, with free shipping. I saved $22, and the only things missing are a USB cable and some wire jumpers for the breadboard. I have a $2 roll of solid core wire from the local electronics shop for jumpers, and who doesn’t have USB cables laying around?

If you really want purpose-built jumper wires, I have read good things about the NKC Electronics 70 pack ($4.95 + $4.75 S/H) and the CanaKit Premium 30-pack ($7.95 + a whopping $12.52 S/H) looks like it has very high-quality, rectangular connectors.

Posted in Electronics, Technology | Leave a comment

Eclipse for Android: No Build Targets

I installed the Android SDK and the Eclipse IDE for Java and Report Developers, but when I tried to create a new project, the Build Target list was empty.

I had already followed the instructions given in this newsgroup post:

  1. Run the Android SDK and AVD Manager from the Start menu or a command prompt (Start | All Programs | Android SDK Tools | SDK Manager, or C:\Program Files (x86)\Android\android-sdk\tools\android.bat). Do not run it from Eclipse’s Window menu: the Settings tab won’t be available!
  2. In Settings, check “Force https:// … sources to be fetched using http:// …”.
  3. In Available Packages, if “Android Repository” is not present, then:
    1. click Add Add-on Site.
    2. enter “‘https://dl-ssl.google.com/android/repository/repository.xml”.
    3. check “Android Repository” then check the desired APIs and SDKs.
    4. click Install Selected.

Unfortunately, I still had no targets available in Eclipse. It turned out that problem was that I had no path configured in Eclipse for the Android SDK! This should have been obvious, since when I selected Window | Android SDK and AVD Manager, Eclipse complained that no path was set, but since I always lauched the SDK & AVD Manager from a command prompt, I never received the error dialog. The solution was to open Window | Preferences and browse to C:\Program Files (x86)\Android\android-sdk, then press Apply:

Posted in Technology, Uncategorized | 1 Comment

Enabling Wake-On-LAN on a Toshiba Satellite A505

This post describes how I fixed my Wake-On-LAN problem using the powercfg tool. My Toshiba Satellite A505-S6986 wouldn’t respond to magic packets sent over the network.

Before using powercfg, I first checked the following:

  1. Wake-On-LAN was enabled in the BIOS.
  2. All settings related to Wake-On-LAN were enabled in the adapter’s Advanced properties tab:
    • Shutdown Wake-On-Lan
    • Wake on Magic Packet
    • Wake on pattern match
  3. All wake-related settings were checked on the Power Management properties tab:
    • Allow this device to wake computer
    • Only allow a magic packet to wake the computer

Even with these settings configured properly, my laptop still wouldn’t respond to magic packets.
First, I opened a command prompt as administrator. A regular user doesn’t have the access rights to change power options.

Then, I checked to see if the LAN adapter is in the list of devices which can wake Windows:

C:\Windows\system32>powercfg -devicequery wake_armed
HID Keyboard Device (002)
HID-compliant mouse (001)
Logitech USB Wheel Mouse (004)

The Ethernet adapter isn’t in there, so I looked at the list of wake-programmable devices in order to find out the name of my LAN adapter:

C:\Windows\system32>powercfg -devicequery wake_programmable
HID-compliant device
Realtek PCIe FE Family Controller            <=== LAN adapter
HID Keyboard Device (002)
TOSHIBA Software Modem
HID-compliant mouse (001)
HID-compliant consumer control device (001)
Logitech USB Wheel Mouse (004)

Finally, I enabled wake for my Ethernet device, using the name "Realtex PCIe FE Family Controller":

C:\Windows\system32>powercfg -deviceenablewake "Realtek PCIe FE Family Controller"

(if you see an error like, "Invalid Parameters -- try "/?" for help," it most likely means that you mistyped the device name)

I am now able to wake my laptop from sleep and hibernate modes using the Wake On Lan app for my Android device.

Posted in Technology, Windows | 1 Comment

Job Demand: Java, C#, C++, and Windows Compared

As a long-time Windows/C++ developer, I’m curious to know what technologies are in demand. I’ve personally used Dice.com almost exclusively in the past, but they don’t provide a good interface for viewing job trends. Indeed.com is an aggregating website which compiles results from multiple job-posting sites. It provides a very nice interface for graphing job trends.

Comparing Java, C++, and C#, it appears that there are a tremendous number of Java jobs, while C# and C++ are vying for around the same percentage of total job listings:

Of course, C++ development on *nix is often a very different beast from C++ on Microsoft Windows, and transition between the two can be problematic. If we ignore Java and add a trend line for Windows C++, it becomes clear that C++ on Windows is steadily declining, while by comparison C# is exploding:

I was curious how this compares to data sourced solely from Dice.com. Since they don’t provide any sort of trend interface, I wrote a script which feeds Dice data into the Google Charts API each week:

Posted in Technology | Leave a comment

iTunes COM SDK for Windows and Encrypted File System

The “iTunes COM SDK for Windows” archive from the Apple Developer Center contains files which are marked as encrypted. Shortly after extracting the files to my libraries folder, I was surprised to receive a popup dialog from Windows 7, “Encrypting File System,” which prompted me to back up my encryption certificate and key:

Windows 7 "Encrypting File System" dialog

I used CIPHER.EXE to verify that the only encrypted contents on the volume were those of the Apple download:

C:\lib>cipher /u /n

Encrypted File(s) on your system:

C:\lib\24460_itunescomwindowssdk\iTunesCOMWindowsSDK\.DS_Store
C:\lib\24460_itunescomwindowssdk\iTunesCOMWindowsSDK\iTunesCOM.chm
C:\lib\24460_itunescomwindowssdk\iTunesCOMWindowsSDK\iTunesCOMInterface.h
C:\lib\24460_itunescomwindowssdk\iTunesCOMWindowsSDK\iTunesCOMInterface_i.c
C:\lib\24460_itunescomwindowssdk\iTunesCOMWindowsSDK\LicenseAgreement.rtf
C:\lib\24460_itunescomwindowssdk\iTunesCOMWindowsSDK\ReadMe.rtf
C:\lib\24460_itunescomwindowssdk\iTunesCOMWindowsSDK\SampleScripts\.DS_Store
C:\lib\24460_itunescomwindowssdk\iTunesCOMWindowsSDK\SampleScripts\CreateAlbumPlaylists.js
C:\lib\24460_itunescomwindowssdk\iTunesCOMWindowsSDK\SampleScripts\RemoveDeadTracks.js
C:\lib\24460_itunescomwindowssdk\iTunesCOMWindowsSDK\SampleScripts\RemoveUserPlaylists.js
C:\lib\24460_itunescomwindowssdk\__MACOSX\._iTunesCOMWindowsSDK
C:\lib\24460_itunescomwindowssdk\__MACOSX\iTunesCOMWindowsSDK\._.DS_Store
C:\lib\24460_itunescomwindowssdk\__MACOSX\iTunesCOMWindowsSDK\._iTunesCOM.chm
C:\lib\24460_itunescomwindowssdk\__MACOSX\iTunesCOMWindowsSDK\._iTunesCOMInterface.h
C:\lib\24460_itunescomwindowssdk\__MACOSX\iTunesCOMWindowsSDK\._iTunesCOMInterface_i.c
C:\lib\24460_itunescomwindowssdk\__MACOSX\iTunesCOMWindowsSDK\._LicenseAgreement.rtf
C:\lib\24460_itunescomwindowssdk\__MACOSX\iTunesCOMWindowsSDK\._ReadMe.rtf
C:\lib\24460_itunescomwindowssdk\__MACOSX\iTunesCOMWindowsSDK\._SampleScripts
C:\lib\24460_itunescomwindowssdk\__MACOSX\iTunesCOMWindowsSDK\SampleScripts\._.DS_Store
C:\lib\24460_itunescomwindowssdk\__MACOSX\iTunesCOMWindowsSDK\SampleScripts\._CreateAlbumPlaylists.js
C:\lib\24460_itunescomwindowssdk\__MACOSX\iTunesCOMWindowsSDK\SampleScripts\._RemoveDeadTracks.js
C:\lib\24460_itunescomwindowssdk\__MACOSX\iTunesCOMWindowsSDK\SampleScripts\._RemoveUserPlaylists.js

To fix this, I opened the properties for the iTunesCOMWindowsSDK folder, selected the General tab, clicked Advanced, and unselected “Encrypt contents to secure data”:

Posted in Technology, Windows | Leave a comment

Where is the iTunes SDK?

The Apple iTunes SDK (“iTunes COM SDK for Windows”) is astonishingly difficult to find. It can be found on the Dowloads & ADC Program Assets (connect.apple.com) page. In the “Downloads” box on the right, click on “Developer Tools,” then search the page for “iTunes COM SDK for Windows.”

The irritating thing is that there seems to be no direct path from the Apple Developer’s Center to this “Downloads & ADC Program Assets” page.

Posted in Technology, Windows | Leave a comment

Domain Registrars as Recommended by Hacker News

If you’re looking for domain registration/DNS reviews, you probably know how hard it is to find pages that aren’t just poorly concealed spam or astroturfing ‘affiliates’. While for a registration option better than GoDaddy, I found a bunch of suggestions on Hacker News, in this post from 2008. Hacker News is a social bookmarking site targeted at tech startup entrepreneurs. Its users tend to be technically proficient, and it has an extremely high signal-to-noise ratio in its comments.

To create this table, I simply read through the comments and added each recommended registrar. The ‘upvotes’ column represents the tally of upvotes received by comments which mentioned the registrar in a positive light. The ‘negatives’ column reflects the number of upvotes received by comments about the registrar which were generally negative. This is by no means a precision ranking method, but it should provide a reasonable summary.

‘Privacy’ refers to whether the registrar offers private registration. ICANN rules dictate that a current address be listed, which creates obvious privacy concerns. This can be avoided by (technically) legally transferring the domain name to a 3rd party, which is referred to as “domain privacy,” “private registration,” or some other, proprietary term.

The pricing column data are correct, to the best of my knowledge, as of March, 2011.

Update September 7, 2011: This HN comment indicates that Name.com has some evil in their Registration Agreement. They automatically park your new domain, serve up their own ads, but make you legally responsible for the content of those ads.

NameUpvotesNegativesBase CostPrivacy
EasyDNS240$19 / yr?
(spam guard is mentioned)
NearlyFreeSpeech.NET120$8.99 / yr$0.01 / day (approx $3.65 per year)
(plus possible document/voicemail forwarding fees, normally don't apply)
"RespectMyPrivacy"
Dynadot111$9.75 / yr$2 / yr
Namecheap356$10.16 / yr
(price varies by TLD)
$2.88 / yr
"WhoisGuard"
1&1144 (sort of)$8.99 / yrFree?
Google (sort of)50$10 / yrNo?
DynDNS30$15 / yr$9.95 / yr
("Secret Registration")
Gandi60$15 / yrFree
DirectNIC44$15 / yr$5 / yr
("directPrivacy")
Joker60$12.80 / yrNo?
Name.com (also Domainsite.com)31$9.99 / yrFree?
Register 4 Less10??
Yahoo! Domains40$9.95 / yr$9.00 / yr
Netfirms10$7.99 / yrFree
Domain Monger10$17?
DreamHost111?

Included in hosting plan?
Free
GoDaddy (aka Domains By Proxy)72 here, here
$11.99 / yr$9.99 / yr

Notes

  • The complaint against NameCheap is that it was an eNom reseller, and eNom has a reputation for handing over domains. As this forum post mentions, NameCheap has been an ICANN accredited registrar since December 2007, so presumably the complaints about NameCheap are no longer valid.
Posted in Technology | Leave a comment

id3v2: Command Line MP3 Tag Editor Compiled for Cygwin

id3v2 is a powerful command line tool for editing MP3 ID3 tags.  Getting it to compile on Windows under Cygwin, though, took a bit of effort.

For the convenience of others, here is id3v2 0.1.12 compiled under Cygwin.  It depends upon Cygwin and Cygwin’s zlib package.

Posted in Cygwin, Technology, Windows | 2 Comments

Cushion Treemaps

Today, I learned that the technique used to create visualizations like those used in WinDirStat and KDirStat is called a cushion treemap. This page has examples of treemaps used in a variety of software, and links to treemap algorithms in Java.

Posted in Algorithms, Technology | Leave a comment

Ubuntu: Keyboard Reverts to German After Reboot

Every time I rebooted or logged out of my Ubuntu virtual machine, my keyboard layout would switch to “Germany Eliminate dead keys” (“Deu”). Removing the offending layout from the keyboard manager seemed to work, but the problem would reappear the next time I logged in!

Ultimately, the solution that worked for me was:

  1. Open System | Preferences | Keyboard
  2. Select the Layouts tab
  3. Select the German keyboard layout and click ‘Remove’
  4. Click “Apply System-Wide” (critical step)
  5. Close and reboot (critical step)

For some reason, the reboot was required. Merely logging out and back in resulted in the old behavior.

If you wish to keep the other keyboard layout(s), make sure that the correct language is selected at the bottom of the login screen. If you don’t have a login screen, turn it on by selecting System | Administration | Login Screen, click Unlock, select “Show the screen for choosing who will log in,” and log out.

Posted in Linux, Technology | Leave a comment