Wednesday, December 4, 2013

Poorly designed USB connectors finally ape Apple's superior design

It's no secret that the bulky and awkward design of 'Micro' USB connectors has long been problematic—especially its unidirectional orientation insertion requirement.  While not nearly as elegant as Apple's Lightning connectors, the new USB Type-C connectors promise better than the downright awful existing standard. According to the USB-IF press release:

Key characteristics of the USB Type-C connector and cable solution include:

  • An entirely new design tailored to work well with emerging product designs
  • New smaller size – similar in size to the existing USB 2.0 Micro-B
  • Usability enhancements – users will no longer need to be concerned with plug orientation/cable direction, making it easier to plug in
  • The Type-C connector and cable will support scalable power charging
  • Scalability – the connector design will scale for future USB bus performance

Several trade publications have covered this story.

The Next-Gen USB Plug To Be Smaller And Finally Reversible

Key characteristics of the USB Type-C connector and cable solution include

Friday, October 11, 2013

Beginning Scheme programing for Suiseiseki fans


(begin (define DESU
 (lambda ()
  (display "DESU ") (DESU)))
  (DESU))

by @rdsathene: run in any Scheme interpreter. Beats hello world by a long shot.

Tuesday, July 30, 2013

Delock's 61971, a second generation of high-performance Thunderbolt to SATA device

Delock 61971 Thunderbolt to SATA 6Gbps HDD/SSD Drive Adaptor + AC AdapterSynchrotech is now taking pre-orders on the versatile Delock 61971 Thunderbolt to SATA 6Gbps HDD/SSD Drive Adaptor + AC Adapter. I can't wait. The device straddles the functionality of the two Seagate Thunderbolt to SATA adapters, with a good price point.

If you're like me with Macs that have Thunderbolt with no USB 3.0, the 61971 is the perfect solution for 7200RPM 3.5 inch drive backups, and running a MacBook Pro off an external SSD. The portability of the 61971 is great for 2.5" HDD/SSD on the road, but it's power supply makes it useful when in a fixed location for backups to spacious 3.5" HDD. Be sure to keep an eye on this space for a future review!


Just got mine today. Let the testing begin!

Delock 61971 Thunderbolt to SATA 6Gbps HDD/SSD Drive Adaptor + AC Adapter

It's Time Machine compatible. The Delock Thunderbolt to SATA adapter making backups painless. Now I need some speedy 6Gbps drives and SSDs.!

Delock 61971 Thunderbolt to SATA 6Gbps HDD/SSD Drive Adaptor + AC Adapter

Monday, July 29, 2013

Connecting an iPhone to the M-510 Portable Bluetooth A2DP Music Receiver

Portable Bluetooth A2DP Music Receiver M-510Got a loaner M-510 Portable Bluetooth A2DP Music Receiver to test out over the weekend. We plugged it into a Bose Wave II Radio using the included double male 3.5mm stereo audio cable. Our test devices were an iPhone 3GS and an iPad with Retina display (4th generation). Both devices were running iOS 6.1.3. Getting the M-510 to work with iOS devices was a snap, and the sound quality was surprisingly good for typical mobile device playback.

The M-510 Portable Bluetooth A2DP Music Receiver supports the Bluetooth Advanced Audio Distribution Profile (A2DP) utilizing Low Complexity Subband Coding (SBC). SBC is applied to existing audio CODECs, in other words transcoding on the fly. This is fine for typical medium to higher quality AAC and MP3 stored on portable devices like iPods, iPhones, and iPads. However, if you're expecting lossless formats like FLAC, ALAC, or even high quality lossy formats like lame --preset insane encoded files to sound the same, they won't. Highest quality audio is better served over WiFi with AirTunes/AirPlay enabled audio equipment. That said, the M-510's quality is acceptable for 256 kbps or lower quality iTunes AACs or MP3 files, which is what most people have on iDevices and other portable players. Overall the M-510 is an inexpensive way to add wireless playback ability to devices without that capability. If you're looking for really high fidelity, you're not shopping the under $40 devices market to begin with.

The M-510 Portable Bluetooth A2DP Music Receiver's other big plus is that it provides the choice between an AC adapter and running off a single AAA battery. That last option provides a lot of flexibility when you think of portable scenarios. Don't want to lug your expensive audio equipment outside, but have an old boombox with a 3.5mm line in? Add the M-510 and now that boombox becomes remote speakers for your iPhone 5.

Pairing the M-510 with the iOS devices is a simple as visiting Settings > Bluetooth" and then finding Music Receiver in the list of devices

Connecting an iPhone to the M-510 Portable Bluetooth A2DP Music Receiver

Tap on Music Receiver and it will then read as Connected.

Connecting an iPhone to the M-510 Portable Bluetooth A2DP Music Receiver

Later if you choose to remove the saved connection by clicking arrow to the right of the word Music Receiver and then tapping Forget this Device.

Connecting an iPhone to the M-510 Portable Bluetooth A2DP Music Receiver

During playback, clicking the AirPlay icon on the bottom right of the screen (in orange next to the volume control) allows choice of where the audio signal is to be sent.

Connecting an iPhone to the M-510 Portable Bluetooth A2DP Music Receiver

Here the M-510 is selected. We can easily switch to the iPhone's internal speakers by clicking the iPhone button.

Connecting an iPhone to the M-510 Portable Bluetooth A2DP Music Receiver

Tuesday, June 11, 2013

EverythingHerePlus tests Delock's 91694 CompactFlash FireWire Reader with Xubuntu Linux

Delock FireWire 800 to UDMA CompactFlash Drive Read-Writer 91694Just in case no one has tested the Delock FireWire 800 CompactFlash reader under Linux, the good folks at EverythingHerePlus have. They write about it here and here. The CompactFlash cards they tested aren't of much interest for DSLR folks, so I won't post the actual benchmarks here. Those interested can check out the previous mentioned posts. They used the benchmarking feature of the linux app Disk Utility 3.0.2, and listed their test platform as follows.

  • Xubuntu 12.04.2 LTS
  • Intel Core2 6300 @ 1.86GHz with 2GB RAM

For older Linux systems without SuperSpeed USB 3.0, using FireWire 800 or even FireWire 400 is going to provide much better performance reading high end CompactFlash cards. The Delock 91694 FireWire CF CompactFlash Reader FireWire 800/IEEE 1394B is an excellent piece of hardware. I'll try to get them to test some higher speed CompactFlash on their setup soon.

Tuesday, May 21, 2013

Jason Felice: gambit-objc v0.1.0 for Gambit Scheme released

On Sat, May 18, 2013 at 12:12 PM, Jason Felice <jason.m.felice <at> gmail.com> wrote: Hi!

I've just released gambit-objc 0.1.0.  This is the "it has the basics, and the implementation is complete enough for real projects" release.

* It gives you access to Objective-C class objects.  The easiest way is:

  (import-classes (NSString NSDictionary))

  after which, you can refer to them.

* It dynamically dispatches Objective-C methods:

  (: NSString stringWithUTF8String: "hello, world")

* It supports marshaling of native Scheme objects to C/Objective-C types for parameter and return values, including structures, selectors, all integral types, and UTF8 strings.  It wraps Objective-C objects with foreign.

* It has a objc-repl, an extended version of gsi which supports square-brace syntax, like so:

  [NSString stringWithUTF8String: "Hello, world!"]

You'll find a minimal sample Cocoa app in the distribution as well.

There are many cool things that can be added.  I'd love to collaborate, help people use it, and otherwise enable its adoption.

I'm really happy with how elegant it ended up (after a couple partial implementations were scrapped).  My next focus will be making it easy to boot on iOS and bring into iOS projects.

-Jason

Wednesday, May 1, 2013

Delock FireWire 800 to CompactFlash UDMA Drive Read-Writer 91694

I got to spend several days testing the Delock FireWire 800 to CompactFlash Reader. It worked spectacularly with the 16GB Sandisk Extreme 60MB/S UDMA CompactFlash cards that I use in my Canon 7D. I'll be posting benchmarks here soon.

Delock FireWire 800 to CompactFlash UDMA Drive Read-Writer 91694

The Delock FireWire 800 to UDMA CompactFlash Drive Read-Writer is a must for pro photographers and other demanding users of high speed CompactFlash memory cards. Capable of exploiting the high speeds of the latest generation of CompactFlash memory cards, the FireWire readers 800 boasts incredible read speeds. The Delock FireWire 800 to UDMA CompactFlash Drive reader supports all the recent high-speed CompactFlash standards including PIO Modes 0-4, DMA Modes 0-2, and UDMA Modes 0-6. it features a single CompactFlash slot for CompactFlash Type I and II including Hitachi Microdrives and other CFII+ rotating media. It supports FireWire 800 (and 400 with and optionally purchased adapter or cable) connectivity on both Macintosh and Windows Operating Systems. The FireWire 800 to CompactFlash uses FireWire bus power, so the CFFire800 reader plugs and plays with no external AC power. The Delock FireWire 800 to CompactFlash Drive requires no drivers and comes with a one year limited warranty.

Tuesday, March 26, 2013

Using Synchrotech's X4SD USB 2.0 SD Card Reader Four (4) Slot for SD Card duplication

X4SD USB 2.0 SD Card Reader Four SlotSynchrotech's X4SD USB 2.0 SD Card Reader allows simultaneous access to four SD Card style media. In Automating X4SD USB 2.0 SD Card Reader Four (4) Slot Operations Synchrotech outlines several techniques for automating the copying of files to the device's multiple slots. Here we explore making exact binary copies of media using the device. A common use of this process is duplication.

There's various ways to do do device duplication or byte-for-byte copies of media. Whether we're duplicating CD-ROMs, hard drive disks, SRAM PC Cards, or other removable media, the Unix dd is frequently preferred for these types of operations. While we can execute card to card duplications from one X4SD slot to another, the most common use for the reader is to write an existing SD Card image to all four slots simultaneously. To that end we'll create a binary image of a master SD Card and then use that master to write to blank cards.

Creating an image of the SD Card

dd works with block devices, so we need to unmount the SD Card. To make this simple, we'll be using just one of the X4SD slots at this stage. We'll be using Mac OS X for our example and detail the difference for OpenBSD and Xubuntu. First, we need to identify the mount point of the inserted card. Calling mount in the terminal shows us the information we need (we're leaving out the rest of the output here).

/dev/disk1s1 on /Volumes/NO NAME (local, nodev, nosuid)

We use that information to unmount the mounted device.

[kyoto:~/Desktop] rds% sudo diskutil unmount /Volumes/NO\ NAME
Volume /Volumes/NO NAME unmounted

OpenBSD and Xubuntu would use umount /[devicepath]. Using the block device reference to the X4SD slot, we can copy the card to a binary file using dd.

[kyoto:~/Desktop] rds% sudo dd if=/dev/disk1s1 of=sdcard.bin
1951677+0 records in
1951677+0 records out
999258624 bytes transferred in 1203.276878 secs (830448 bytes/sec)

Writing the image to SD Cards

Inserting a new card into the X4SD, then unmounting it, we can create a duplicate of the original. We then test it using cmp to see if it is identical to the binary file.

[kyoto:~/Desktop] rds% sudo dd if=sdcard.bin of=/dev/disk1s1
1951677+0 records in
1951677+0 records out
999258624 bytes transferred in 1203.276878 secs (830448 bytes/sec)
[kyoto:~/Desktop] rds% cmp /dev/disk1s1 ~/Desktop/sdcard.bin
[kyoto:~/Desktop] rds% 

Here we write to all four slots simultaneously on a Xubuntu machine. It's feasible that using hubs and multiple X4SD, we could write to more than four cards at once on a machine with enough CPUs/CPU cores. However, there's a practical limit to the amount of I/O operations one would want to run at the same time. Perhaps writing to each bank of cards sequentially would be the best practice? Since I was only provided a single test unit, that remains an academic question.

rds@okinawa-lin2:~$ sudo dd if=sdcard.bin of=/dev/sdc1 & \
&& dd if=sdcard.bin of=/dev/sdd1 & \
&& dd if=sdcard.bin of=/dev/sde1 & \
&& dd if=sdcard.bin of=/dev/sdf1 &

1951677+0 records in
1951677+0 records out
999258624 bytes (999 MB) copied, 270.799 s, 3.7 MB/s
1951677+0 records in
1951677+0 records out
999258624 bytes (999 MB) copied, 423.987 s, 2.4 MB/s
1951677+0 records in
1951677+0 records out
999258624 bytes (999 MB) copied, 775.1 s, 1.3 MB/s
1951677+0 records in
1951677+0 records out
999258624 bytes (999 MB) copied, 860.479 s, 1.2 MB/s

Appendices

Determining Media Paths

Here's the abridged results of running mount on our various test systems with the X4SD plugged in and all four of its slot occupied. This output will look different based on what's connected to an individual system.

OpenBSD
sd0i on /mnt/s1 type msdos (local)
sd1i on /mnt/s2 type msdos (local)
sd2i on /mnt/s3 type msdos (local)
sd3i on /mnt/s4 type msdos (local)

Xubuntu Linux
/dev/sdd1 on /media/BF2C-1214 type vfat (rw,nosuid,nodev,uid=1000,gid=1000,shortname=mixed,dmask=0077,utf8=1,showexec,flush,uhelper=udisks)
/dev/sdf1 on /media/02A3-1214 type vfat (rw,nosuid,nodev,uid=1000,gid=1000,shortname=mixed,dmask=0077,utf8=1,showexec,flush,uhelper=udisks)
/dev/sde1 on /media/3A3A-1214 type vfat (rw,nosuid,nodev,uid=1000,gid=1000,shortname=mixed,dmask=0077,utf8=1,showexec,flush,uhelper=udisks)
/dev/sdc1 on /media/5AED-1214 type vfat (rw,nosuid,nodev,uid=1000,gid=1000,shortname=mixed,dmask=0077,utf8=1,showexec,flush,uhelper=udisks)

Mac OS X
/dev/disk2s1 on /Volumes/NO NAME 3 (local, nodev, nosuid)
/dev/disk4s1 on /Volumes/NO NAME 2 (local, nodev, nosuid)
/dev/disk3s1 on /Volumes/NO NAME (local, nodev, nosuid)
/dev/disk1s1 on /Volumes/NO NAME 1 (local, nodev, nosuid)

My Test Systems

Here's the results of running uname -a on our various test systems.

OpenBSD okinawa-bsd2.my.domain 5.1 GENERIC.MP#207 amd64
Linux okinawa-lin2 3.2.0-39-generic #62-Ubuntu SMP Wed Feb 27 22:05:17 UTC 2013 i686 i686 i386 GNU/Linux
Darwin kyoto 8.11.0 Darwin Kernel Version 8.11.0: Wed Oct 10 18:26:00 PDT 2007; root:xnu-792.24.17~1/RELEASE_PPC Power Macintosh powerpc

Code example disclaimer

Technology Musings grants you a nonexclusive copyright license to use all programming code examples from which you can generate similar function tailored to your own specific needs.

All sample code is provided by Technology Musings for illustrative purposes only. These examples have not been thoroughly tested under all conditions. Technology Musings, therefore, cannot guarantee or imply reliability, serviceability, or function of these programs.

All programs contained herein are provided to you "AS IS" without any warranties of any kind. The implied warranties of non-infringement, merchantability and fitness for a particular purpose are expressly disclaimed.