I’ve had mostly good experiences with Other World Computing’s Dual Drive Dock USB 3.1 (Amazon). It’s the only USB 3 drive dock I’ve used that did not spontaneously unmount my drives. Previously, the only reliable dock I’d found was the Thunderbolt-based Highpoint RocketStor 5212. At $69, the OWC is less than half the (now reduced) price of the RocketStor and only $20 more than the adapter needed to connect the RocketStore to a modern Mac with USB-C. Other advantages over the RocketStore:
- Master on/off switch.
- Separate power switch for each drive.
- No power brick.
- No light leakage from inside.
- Doesn’t use up a port on the Mac.
Unfortunately, the OWC dock does sometimes spontaneously eject one drive when swapping the other. This seems to occur much more often while the drive is in heavy use. The obvious workaround is to manually eject both drives before swapping. This somewhat reduces the utility of having a dual dock, but it’s still much more useful than a single dock, and I’ve not found anything better that uses USB 3.
(Another recent candidate was the $23 Sabrent lay-flat dock. Two of these were dead-on-arrival from Amazon with drives larger than 4 TB. Their replacements from the company both suffered from spontaneous ejections, interfered with my keyboard and mouse at boot time, and sometimes refused to mount newly inserted drives.)
Update (2018-05-10): I’ve also found that swapping drives with the OWC dock can cause drives connected to other USB devices to unmount.
Drive Dock Drive Enclosure Mac macOS 10.13 High Sierra Storage USB USB-C
Daniel Lemire (via Hacker News):
Alfred Klomp showed a few years ago that you could do much better using vector instructions. Wojciech Muła, myself and a few others (i.e., Howard and Kurz) decided the seriously revisit the problem. Muła has a web page on the topic.
We found that, in the end, you could speed up the problem by a factor of ten and use about 0.2 cycles per byte on recent Intel processors using vector instructions. That’s still more than a copy, but much less likely to ever be a bottleneck. I should point out that this 0.2 cycles per byte includes error handling: the decoder must decode and validate the input (e.g., if illegal characters are found, the decoding should be aborted).
Our research code is available so you can reproduce our results. Our paper is available from arXiv and has been accepted for publication by ACM Transactions on the Web.
C Programming Language Optimization Programming
Sean Gallagher (via Hacker News):
Twenty years ago this week, on December 29, 1997, Bill Gates bought Microsoft a $450 million late Christmas present: a Sunnyvale-based outfit called Hotmail. With the buy—the largest all-cash Internet startup purchase of its day—Microsoft plunged into the nascent world of Web-based email.
Originally launched in 1996 by Jack Smith and Sabeer Bhatia as “HoTMaiL” (referencing HTML, the language of the World Wide Web), Hotmail was initially folded into Microsoft’s MSN online service. Mistakes were made. Many dollars were spent. Branding was changed. Spam became legion. Many, many horrendous email signatures were spawned.
But over the years that followed, Hotmail would set the course for all the Web-based email offerings that followed, launching the era of mass-consumer free email services. Along the way, Hotmail drove changes in Windows itself (particularly in what would become Windows Server) that would lay the groundwork for the operating system to make its push into the data center. And the email service would be Microsoft’s first step toward what is now the Azure cloud.
E-mail History Hotmail Microsoft
Niklaus Wirth (PDF, via Andre Weissflog):
An entire potpourri of ideas is listed from the past decades of Computer Science and Computer Technology. Widely acclaimed at their time, many have lost in splendor and brilliance under today’s critical scrutiny. We try to find reasons. Some of the ideas are almost forgotten. But we believe that they are worth recalling, not the least because one must try to learn from the past, be it for the sake of progress, intellectual stimulation, or fun.
History Language Design Programming