Archive for February 8, 2016

Monday, February 8, 2016 [Tweets] [Favorites]

Apple Services Everywhere

JC Torres:

It seems that the age of platforms keeping to themselves and shutting out rivals is on the verge of ending. Now platform makers are actually playing to the strengths of their rivals as well. Apple has surprisingly made available not one but two Android apps, though one of them has been critically panned by Android users. Just recently, Apple updated its Apple Music app to add a feature that is technically impossible on the iPhone: saving music to a micro SD card for offline listening.

That move hinted that Apple was serious about its Android app, and apparently that was indeed more than the case. Under Cook, Apple has been trying to portray an image of a services company more than just a hardware and OS maker. Those services include iCloud apps and storage, Apple Pay, and iMessage, just to name a few.

Apple:

In addition to providing a web interface for users to access the same data as your app, you can now easily read and write to the CloudKit public database from a server-side process or script with a server-to-server key.

Update (2016-02-09): Nathan Ingraham:

Cook may feel he needs to fight back and bring more Apple apps to Android -- but he first needs to make sure the company’s software runs better on its own hardware than it currently does.

What It’s Like to Take on Venture Capital Investment

Matt Henderson:

This is fascinating insight into the, I suppose unsurprising, mindset of many venture capital investors. They’re not looking for a profitable business; instead, they’re looking for growth that provides the opportunity for a 100x exit. And their expectation is that you, the founder, will work to achieve that at any cost. And since their investment also brings the expectation of participation and inclusion in the running of the business, any company owner considering taking on investment would be well advised to make sure at the outset that everyone’s on the same page in terms of objectives.

Finally, it’s also worth noting that not all investors in Gimlet shared the mindset of Chris Sacca. We also discover that Marco Arment—of Tumblr, Instapaper and Overcast fame—is also an investor in Gimlet at a participation of $150,000. In interviews with Marco, he encourages Alex to forget about the ambitions of the other investors, focus on what he’s good at, and above all, listen more to his wife!

Julie Bort and Matt Weinberger (via Slashdot, Hacker News):

We’ve been hearing about a lot of drama going on at $2 billion startup GitHub, the hugely important and popular site used by millions of computer programmers where 10 or more executives have departed in recent months.

[…]

Its once famous remote-employee culture has been rolled back. Senior managers are no longer allowed to live afar and must report to the office. This was one reason why some senior execs departed or were asked to leave, one person close to the company told us.

[…]

Underlying the drama is the fact that GitHub is trying to grow the company’s revenues by landing more big enterprise contracts. And it’s doing a good job of that, several sources — even the disgruntled ones — told us.

That means there’s an effort to hire more enterprise salespeople, with all the suit-and-tie salesforce culture that typically includes. (GitHub employs over 80 sales folks according to LinkedIn.)

[…]

Meanwhile, the company’s millions of developer users, many of whom use the site for free or for a small monthly fee, also want GitHub to pay more attention to them. A bunch of active and influential users sent a letter in January called “Dear GitHub” in which they asked for a bunch of product features, too. At least one person told us that this letter alarmed some of the leadership team.

From “Result” to “throw” and Back

Olivier Halligon:

Problem is, Result is not built in the Swift standard library, and a lot of functions use throw to report synchronous errors anyway. Like in practice, to build a User from a NSDictionary we might have a init(dict: NSDictionary) throws constructor instead of a NSDictionary -> Result<User> function.

So how to mix both those worlds? Easy: let’s extend Result just for that!

Dealing With Bit Sets in Swift

Umberto Raimondi (via Natasha Murashev):

In case of multiple integers in the same expression, Swift can only infer the type of free integer literals when they are used with some typed variable of one single type, as before, no implicit conversion toward the bigger integer type is performed.

[…]

The only drawback of this safety-first/no-assumptions approach, is that when you need to perform a lot of type conversions, you code starts to become bloated with all those truncating conversions.

But luckily, in Swift we can extend base types with new methods and we can use this to add some utility methods that truncate to a specific size to all the integer types[…]

[…]

All the alternative approaches to manipulate bit sets presented in this post are part of Bitter, a library that try to offer a more “swifty” interface for bit sets manipulation.

The Evolution of a Haskell Programmer

Fritz Ruehr:

Some time later, I came across Iavor’s “jokes” page, including a funny bit called “The Evolution of a Programmer“ in which the traditional imperative “Hello, world” program is developed through several variations, from simple beginnings to a ridiculously complex extreme. A moment’s thought turned up the factorial function as the best functional counterpart of “Hello, world”. Suddenly the Muse struck and I knew I must write out these examples, culminating (well, almost) in the heavily generalized categorical version of factorial provided by Uustalu, Vene and Pardo.

[…]

On a more serious note, I think that the basic idea of the joke (successive variations on a theme, building in complexity) can serve a good pedagogical purpose as well as a humorous one.

Update (2016-02-09): Comments from Hacker News.