Archive for January 15, 2016

Friday, January 15, 2016

Interact: Better iOS Contact Management

David Sparks:

As I explained earlier, I’d pretty much given up on managing Contact groups on iOS. Interact fixes that. I am now able to add, edit, and delete groups on my iPad and and iPhone and (even better) then see them appear nicely organized when I returned to my Mac. Note that this only works in the default system account and it must be using the vCard protocol. (iCloud and Google both work but if you have more than one account, it will only work in your primary account.) Since I manage all contacts in one iCloud account, I had no problem but this could be a limitation if you use more than one service.

In addition to adding, removing, and editing groups, you can also add and remove group members. Just select a group and then tap on the Add Contacts to Group button and you are off to the races. It was all very intuitive and, as a Beta testor, I was witness to the hard work the developer went through to make it as easy as possible for users. For instance, to remove a member from the group, just tap on the “X” button next to their name.

A nice touch is the ability to see all of the groups a specific contact belongs to.

This last bit is not even possible in the Mac Contacts app.

Update (2016-01-16): Dr. Drang:

Let’s say you got an email from a new client whose contact info is in a signature block but who, unfortunately, doesn’t include a link to a vCard. Instead of laboriously typing the bits of information one at a time into their respective fields, with Interact you can swipe through the entire signature block, copy it, and paste it into Interact’s Contact Scratchpad. Interact will parse the text and create a new contact entry for you with little or no extra effort on your part.

NSStringFromClass and NSClassFromString in Swift

Natasha Murashev (tweet):

Not sure when it happened, but I was extremely to see a more native solution in @aligatr’s blog post!

// This now works!!!
String(MyTableViewCell)

Joe Groff:

NSClassFromString is in progress too.

The Resolution of the Bitcoin Experiment

Mike Hearn:

But despite knowing that Bitcoin could fail all along, the now inescapable conclusion that it has failed still saddens me greatly. The fundamentals are broken and whatever happens to the price in the short term, the long term trend should probably be downwards. I will no longer be taking part in Bitcoin development and have sold all my coins.

Why has Bitcoin failed? It has failed because the community has failed. What was meant to be a new, decentralised form of money that lacked “systemically important institutions” and “too big to fail” has become something even worse: a system completely controlled by just a handful of people. Worse still, the network is on the brink of technical collapse. The mechanisms that should have prevented this outcome have broken down, and as a result there’s no longer much reason to think Bitcoin can actually be better than the existing financial system.

Architecture of the Web Inspector

Diego Pino García:

The Web Inspector is an important component of the WebKit project. It’s an application structured in 3 layers: a frontend, a backend and a target. This abstraction allows detaching the inspector from the target (inspected WebKit browser).

The frontend is a web application composed of HTML + CSS + JavaScript. It implements a Model-View-Controller pattern and makes heavy use of ECMA2015 features. The backend exposes information of WebKit’s WebCore and JavaScriptCore elements.

Communication between frontend and backend is provided by several dispatchers that communicate both parts through the WebKit Remote Debugging Protocol (a JSON-RPC 2.0 based protocol). The protocol defines several domains. Each domain defines commands and events which are the messages the frontend and the backend exchange with each other. Actual implementation of backend commands is provided by agent classes that live in WebCore and JavaScriptCore side. On the frontend side, several observer classes can listen and respond backend notifications.

Update (2016-01-16): Timothy Hatcher:

As the years progressed, we rapidly added to the tool — exposing more features and evolving the UI to adapt to new developer workflows. To commemorate the past 10 years of Web Inspector, we put together this timeline of major events and past blog posts for posterity.