This Week in Rust

I have some thoughts on Rust today1.

  1. On the march to the big 1.0 release, I sense a destabilization in the community, and perhaps the language and compiler. Too many major foundational changes in too short of a time.
  2. For experts, these changes might be fine, and might be well received. For casuals (e.g. me), the chaos from standard library changes and language features is hard.
  3. I have not invested too heavily into Rust (except naming my cat as such).
  4. As an example, I welcomed the changes to Show a few weeks ago when they split the trait into Show and String. Putting them into my implementation worked, but it was annoying. And now? Show and String trait names have changed again.
  5. While I admire what Rust is doing, I often don’t know what Rust is doing.

  1. I wrote these originally on Twitter

Ex-Motorola CEO admits to cancelled fingerprint reader

According to the ex-CEO, who now works at Dropbox, the dimple on the back of the device was meant to house the sensor. “The secret behind that is that it was supposed to be fingerprint recognition, and Apple bought the best supplier.” Woodside said. “So the second best supplier was the only one available to everyone else in the industry and they weren’t there yet.”

The fingerprint reader came out with the iPhone 5, if I recall correctly. Does that mean the Nexus 6 was in concept then? So early? Woodside might say Nexus 6 here, though I believe he means the Moto X as well.

Honestly, fingerprint recognition is not very important to me. I live dangerously without any phone-screen authentication.

Google’s wireless service could launch nationwide in first half of the year

But Google is working on a technology that would see wireless providers bid for connections in real time, ensuring that the user gets the smallest price. Indirectly, this competition could lead to smaller prices, the source said.

Apple had dreams of being a carrier for their customers too. At the time, GSM was new and carriers were smaller.

TED #1

I think there is a lot to say for a show that brings hosts and guests together without a strict structure or topic. I think the bulk of what there is to say boils down to this: it’s fantastic.

The Extra Dimension is sort of like The Fringe, but with no seeding episode to draw from — in effect, it’s the show we use to record something we have to say, without needing an entire series for it. It’s kind of nice, actually.

~Rust: Hash Maps

Another insightful post from the author of the BTree implementation in Rust. This time, there really is no code, but lays a sound foundation for the upcoming posts on Rust’s implementation.

Jeff Bezos’ Fire Phone Story

“And I thought, This is a CEO who cares about design; what a wonderful place to be.” Eventually, however, this designer grew frustrated, as did others. “In essence, we were not building the phone for the customer—we were building it for Jeff,” this source says. With Bezos managing every critical decision, teams began second-guessing themselves trying to anticipate how he would react.

There’s a lot to read here, but it’s definitely worth it. Here’s another.

Yet Bezos had profound reasons for preferring a top-of-the-line smartphone. Multiple sources indicate that the premium phone represented a “repositioning of the brand away from being so utilitarian and toward becoming more of a lifestyle brand like Apple,” as the high-ranking Lab126 designer phrases it. Bezos expressed some of these sentiments himself in a memo he wrote years ago, entitled “” In the memo, first revealed by journalist Brad Stone in The Everything Store, Bezos describes his vision to transform Amazon into a brand such as Apple, Nike, or Disney, which are “widely loved by their customers, and are even perceived as cool.”

Rust changes, derive and more

The `derive` attribute is used to derive some standard traits (e.g., `Copy`, `Show`) for your data structures. It was previously called `deriving`, and now it is `derive`. This is another minor change, but makes it more consistent with other attributes, and consistency is great!

Very helpful information for catching up with Rust 1.0.0-alpha changes.

There is no reason the compiler could not have mentioned this minor change.

JavaScript Equality

While I love JavaScript and the power it gives you over the web, it is an awful language.

[] == '' // true


“The Software and Services Apple Needs to Fix”

Glenn Fleishman:

General reliability. The point of owning a Mac is to not have to reboot it regularly. There have been times in the past between OS X updates where I’ve gone weeks to months without a restart. With Yosemite, I typically have to reboot my laptop at least once a day, and my desktop every few days of use. Rene Ritchie of iMore notes that no two machines he owns have the same issues, even. Apps will spontaneously quit for no reason, sometimes in cascades, requiring a restart.

My MacBook Air is far too frail to compensate for instability issues arising from Yosemite, so I continue using Mavericks.

iPhone: 8 Years Old

Eight years ago today Steve Jobs got up on stage and introduced a widescreen iPod with touch controls, a revolutionary mobile phone, and a breakthrough Internet communications device: The iPhone.

More on Snapdragon 810 Overheating

Back to the issues, sources from Korea and analysts with US investment firm J.P. Morgan are convinced that the Snapdragon 810 is suffering from crippling overheating issues. Apparently, this problem is caused by the high-performance Cortex-A57 cores overheating when clock speeds reach 1.2 to 1.4GHz, which is a surprising problem for a core designed to run at speeds approaching 2GHz. This then causes the chip to throttle back on performance, to prevent the whole system from overheating.

Photo Comparison: Nexus 6 & iPhone 6+

Allegedly, in a comparison, people liked the Nexus 6 photos better on average than the iPhone 6+ photos. It is kind of a broken test, because the range of these pictures is limited to daytime shots only. What do you think1?

  1. Unfortunately, the original poll-study-thing is not linked on the aforementioned page, which means you cannot see the pictures without their origins given away. 

Ustwo’s Monument Valley Piracy Angle

A few days ago, Ustwo tweeted this:

Quips that pride iOS and disdain Android are common, but surely such a statement would be put the business of a premium game developer like Ustwo in dire straits.

Dan Gray, Ustwo developer, in a Re/code interview responds:

Re/code: First off, how was that 95 percent statistic determined?

Dan Gray: Five percent are paid downloads, so the ratio is 9.5 to 1, but a portion of those are people who have both a phone and a tablet, people who have more than one Android device with them. So a small portion of that 95 percent is going to be taken up by those installs.

Counting purchases and installations is a bit fisher than I would have thought initially. Downloads from unique accounts should be the primary statistic then, not installs.

CES Counter-rumors: 12” MacBook Air

Screen space is never at a premium for me on my regular desktop, but on my MacBook Air? Two side-by-side Sublime windows and it is over.

With a smaller physical size, I might worry about the ability to see with increased resolution. Another concern might be the ergonomics of the keyboard. I love my MacBook Air’s current keyboard; my hands shutter at the thought of scrunched key spacings.

But just one port? You get no mouse, you get no flash drive, you get nothing, except charging or just one more thing.

Apple Watch, Launching in March?

I wondered, with Brian Mitchell, if the Apple Watch launched in spring, would another model come out later in the year, or would a spring cadence be used going forward? Apple has recently avoided the after holidays doldrum in the spring months, at least leading up to WWDC.

Rust: Btree Implementation

In my Algorithms class a few years ago, my professor said it would take a couple weeks to suss out a good Btree algorithm from the algorithmic aether. From his warning, it is not something I would want to do (or be qualified to partake in).

Here is the story of a naive to a complex but performant Btree implementation in Rust.