Shared posts

05 Apr 05:49

State of Embedding in Gecko

by Chris Lord

Following up from my last post, I’ve had some time to research and assess the current state of embedding Gecko. This post will serve as a (likely incomplete) assessment of where we are today, and what I think the sensible path forward would be. Please note that these are my personal opinions and not those of Mozilla. Mozilla are gracious enough to employ me, but I don’t yet get to decide on our direction 😉

The TLDR; there are no first-class Gecko embedding solutions as of writing.

EmbedLite (aka IPCLite)

EmbedLite is an interesting solution for embedding Gecko that relies on e10s (Electrolysis, Gecko’s out-of-process feature code-name) and OMTC (Off-Main-Thread Compositing). From what I can tell, the embedding app creates a new platform-specific compositor object that attaches to a window, and with e10s, a separate process is spawned to handle the brunt of the work (rendering the site, running JS, handling events, etc.). The existing widget API is exposed via IPC, which allows you to synthesise events, handle navigation, etc. This builds using the xulrunner application target, which unfortunately no longer exists. This project was last synced with Gecko on April 2nd 2015 (the day before my birthday!).

The most interesting thing about this project is how much code it reuses in the tree, and how little modification is required to support it (almost none – most of the changes are entirely reasonable, even outside of an embedding context). That we haven’t supported this effort seems insane to me, especially as it’s been shipping for a while as the basis for the browser in the (now defunct?) Jolla smartphone.

Building this was a pain, on Fedora 22 I was not able to get the desktop Qt build to compile, even after some effort, but I was able to compile the desktop Gtk build (trivial patches required). Unfortunately, there’s no support code provided for the Gtk version and I don’t think it’s worth the time me implementing that, given that this is essentially a dead project. A huge shame that we missed this opportunity, this would have been a good base for a lightweight, relatively easily maintained embedding solution. The quality of the work done on this seems quite high to me, after a brief examination.

Spidernode

Spidernode is a port of Node.js that uses Gecko’s ‘spidermonkey’ JavaScript engine instead of Chrome’s V8. Not really a Gecko embedding solution, but certainly something worth exploring as a way to enable more people to use Mozilla technology. Being a much smaller project, of much more limited scope, I had no issues building and testing this.

Node.js using spidermonkey ought to provide some interesting advantages over a V8-based Node. Namely, modern language features, asm.js (though I suppose this will soon be supplanted by WebAssembly) and speed. Spidernode is unfortunately unmaintained since early 2012, but I thought it would be interesting to do a simple performance test. Using the (very flawed) technique detailed here, I ran a few quick tests to compare an old copy of Node I had installed (~0.12), current stable Node (4.3.2) and this very old (~0.5) Spidermonkey-based Node. Spidermonkey-based Node was consistently over 3x faster than both old and current (which varied very little in performance). I don’t think you can really draw any conclusions than this, other than that it’s an avenue worth exploring.

Many new projects are prototyped (and indeed, fully developed) in Node.js these days; particularly Internet-Of-Things projects. If there’s the potential for these projects to run faster, unchanged, this seems like a worthy project to me. Even forgetting about the advantages of better language support. It’s sad to me that we’re experimenting with IoT projects here at Mozilla and so many of these experiments don’t promote our technology at all. This may be an irrational response, however.

GeckoView

GeckoView is the only currently maintained embedding solution for Gecko, and is Android-only. GeckoView is an Android project, split out of Firefox for Android and using the same interfaces with Gecko. It provides an embeddable widget that can be used instead of the system-provided WebView. This is not a first-class project from what I can tell, there are many bugs and many missing features, as its use outside of Firefox for Android is not considered a priority. Due to this dependency, however, one would assume that at least GeckoView will see updates for the foreseeable future.

I’d experimented with this in the past, specifically with this project that uses GeckoView with Cordova. I found then that the experience wasn’t great, due to the huge size of the GeckoView library and the numerous bugs, but this was a while ago and YMMV. Some of those bugs were down to GeckoView not using the shared APZC, a bug which has since been fixed, at least for Nightly builds. The situation may be better now than it was then.

The Future

This post is built on the premise that embedding Gecko is a worthwhile pursuit. Others may disagree about this. I’ll point to my previous post to list some of the numerous opportunities we missed, partly because we don’t have an embedding story, but I’m going to conjecture as to what some of our next missed opportunities might be.

IoT is generating a lot of buzz at the moment. I’m dubious that there’s much decent consumer use of IoT, at least that people will get excited about as opposed to property developers, but if I could predict trends, I’d have likely retired rich already. Let’s assume that consumer IoT will take off, beyond internet-connected thermostats (which are actually pretty great) and metered utility boxes (which I would quite like). These devices are mostly bespoke hardware running random bits and bobs, but an emerging trend seems to be Node.js usage. It might be important for Mozilla to provide an easily deployed out-of-the-box solution here. As our market share diminishes, so does our test-bed and contribution base for our (currently rather excellent) JavaScript engine. While we don’t have an issue here at the moment, if we find that a huge influx of diverse, resource-constrained devices starts running V8 and only V8, we may eventually find it hard to compete. It could easily be argued that it isn’t important for our solution to be based on our technology, but I would argue that if we have to start employing a considerable amount of people with no knowledge of our platform, our platform will suffer. By providing a licensed out-of-the-box solution, we could also enforce that any client-side interface remain network-accessible and cross-browser compatible.

A less tenuous example, let’s talk about VR. VR is also looking like it might finally break out into the mid/high-end consumer realm this year, with heavy investment from Facebook (via Oculus), Valve/HTC (SteamVR/Vive), Sony (Playstation VR), Microsoft (HoloLens), Samsung (GearVR) and others. Mozilla are rightly investing in WebVR, but I think the real end-goal for VR is an integrated device with no tether (certainly Microsoft and Samsung seem to agree with me here). So there may well be a new class of device on the horizon, with new kinds of browsers and ways of experiencing and integrating the web. Can we afford to not let people experiment with our technology here? I love Mozilla, but I have serious doubts that the next big thing in VR is going to come from us. That there’s no supported way of embedding Gecko worries me for future classes of device like this.

In-vehicle information/entertainment systems are possibly something that will become more of the norm, now that similar devices have become such commodity. Interestingly, the current big desktop and mobile players have very little presence here, and (mostly awful) bespoke solutions are rife. Again, can we afford to make our technology inaccessible to the people that are experimenting in this area? Is having just a good desktop browser enough? Can we really say that’s going to remain how people access the internet for the next 10 years? Probably, but I wouldn’t want to bet everything on that.

A plan

If we want an embedding solution, I think the best way to go about it is to start from Firefox for Android. Due to the way Android used to require its applications to interface with native code, Firefox for Android is already organised in such a way that it is basically an embedding API (thus GeckoView). From this point, I think we should make some of the interfaces slightly more generic and remove the JNI dependency from the Gecko-side of the code. Firefox for Android would be the main consumer of this API and would guarantee that it’s maintained. We should allow for it to be built on Linux, Mac and Windows and provide the absolute minimum harness necessary to allow for it to be tested. We would make no guarantees about API or ABI. Externally to the Gecko tree, I would suggest that we start, and that the community maintain, a CEF-compatible library, at least at the API level, that would be a Tier-3 project, much like Firefox OS now is. This, to me, seems like the minimal-effort and most useful way of allowing embeddable Gecko.

In addition, I think we should spend some effort in maintaining a fork of Node.js LTS that uses spidermonkey. If we can promise modern language features and better performance, I expect there’s a user-base that would be interested in this. If there isn’t, fair enough, but I don’t think current experiments have had enough backing to ascertain this.

I think that both of these projects are important, so that we can enable people outside of Mozilla to innovate using our technology, and by osmosis, become educated about our mission and hopefully spread our ideals. Other organisations will do their utmost to establish a monopoly in any new emerging market, and I think it’s a shame that we have such a powerful and comprehensive technology platform and we aren’t enabling other people to use it in more diverse situations.

This post is some insightful further reading on roughly the same topic.

05 Apr 05:48

Basketball shot charts, make your own

by Nathan Yau

Stephen Curry shot chart

Based on data from the NBA stats API and using the visual layout popularized by Kirk Goldsberry, Todd Schneider gives you BallR, made with R and Shiny.

BallR lets you select a player and season, then creates a customizable chart that shows shot patterns across the court. Additionally, it calculates aggregate statistics like field goal percentage and points per shot attempt, and compares the selected player to league averages at different areas of the court.

Fun.

The best part though is that Schneider made the code available on GitHub. See how it was done or roll your own.

Tags: basketball, shot chart

05 Apr 05:48

Android – Mixed message

by windsorr

Reply to this post

RFM AvatarSmall

 

 

 

 

 

Lollipop’s growth is not good news.

  • After 18 months of being available, Lollipop has finally become the largest version of Android with 36.1% of Google Android devices now using this version.
  • KitKat is at 34.3% while Jelly Bean is at 22.3% while the latest version Marshmallow is struggling for relevance with just 2.3% of all Google Android devices in the hands of users.
  • The general view of commentators is that this is good news for Android, but this is something with which I cannot agree.
  • The latest version of Marshmallow has been available for 6 months but still only 2.3% of Google’s own devices are using it.
  • This is bad news because all of the improvements and innovations that Google announced nearly a year ago are benefitting only a fraction of its user base.
  • This leaves the vast majority with an inferior user experience which results in less traffic and lower revenues to Google.
  • Furthermore the fact that almost all Android handsets are not upgradeable to later versions (see here) makes the outlook for rapid Marshmallow penetration very poor.
  • As a result of most devices not being upgradeable, I can only conclude that Lollipop is growing because handset makers are still shipping new devices with the older code.
  • With most devices are being upgraded, the only way to get a new software into the hands of the user is to sell him a new device.
  • Hence, as handset makers are selling new devices with an older version of Android, it will take even longer for Google to get its innovations into the hands of users.
  • I think that good news would have been large increase in Marshmallow with a corresponding decline in Lollipop representing a rapid switch from shipping with Lollipop to Marshmallow.
  • As it stands today, the outlook is that the fragmentation problem in Android is not getting better meaning that the Google ecosystem on Android remains vulnerable to both market share loss from competing ecosystems as well as persistent malware (see here).
  • This is why I continue to believe that Google will end up taking complete control of Android as it is the only way in which it can get a grip on fragmentation and also distribute its new versions in a timely manner.
  • I am currently expecting that this may happen with Android 8.0 which I expect to be announced in May 2017.
  • Despite these problems, iOS continues to drive Google’s short term revenues, which tempers my concerns with regards to share price weakness over the next few quarters.
05 Apr 05:48

Disrupting mobile

by Benedict Evans

Until pretty recently, the PC ecosystem was the centre of gravity of the tech industry: it was where the investment and innovation was centred. It took that role away from mainframes, minicomputers and workstations slowly and in stages over the previous 30 years or so. Crucially, though, PCs didn’t start out selling to customers of mainframes, minicomputers or workstations - rather PCs were able to access a new and much larger pool of customers, and that gave PCs scale that, a decade or two later, allowed them to replace almost everything else. PCs could be sold to so many more people that their economies of scale became overwhelming. Eventually, there was no way that, say, the workstation industry could match the investment of the PC industry, and Sun and SGI were overtaken. And today, even a ‘data centre’ just means millions of 'personal computers'. Ecosystem scale won.  

Much the same thing is happening now as the mobile ecosystem supplants the PC ecosystem. In a few years' time, annual unit sales of ARM/iOS/Android computers will be around 10x the unit sales of PCs - over 2bn versus sales of perhaps 200-250m PCs. The install base will be 3-5x larger - 1bn to 1.5bn PCs versus 4-5bn ARM/iOS/Android devices. So, this is now where the economies of scale are and where the investment is focused. Today, if you are innovating in sensors or cameras or radios or pretty much any other component, you are far more likely to target ARM and mobile. And over time, these economies of scale (amongst other things) mean that mobile will supplant the PC just as the PC supplanted everything before it.

But again, the first step is that the new ecosystem gets scale from a new and much larger customer base, and only afterwards can the new ecosystem start supplanting the old one. 

(This of course won’t happen quickly - the Apple II shipped in 1977, the IBM PC in 1981 and the Mac in 1984, yet IBM’s install base of mainframe computing was still growing through the 2000s. But the centre of gravity moves.)

This process prompts a question, though. The process observed is that the next ecosystem first goes out and gets scale by addressing a new, untapped customer base, and that it’s that scale that lets it overtake the old ecosystem’s performance and so supplant it later on. But mobile is everyone on earth. So what’s the next untapped market, that the next ecosystem after ARM/iOS/Android would use to get to scale? We can’t get to more human customers, because mobile will already have reached them all. 

IoT will result in many more individual ‘things’, but a lot of that will actually be using components from the same smartphone supply chain, a lot will be controlled from smartphones, and a lot (gas turbines, railway locomotives, toasters) don’t really look like a distinct new platform at all. VR is clearly a subset of the PC world now and the smartphone world (and perhaps the console world) soon. 

One could propose AR (and having had the Magic Leap demo, it is indeed part of the future), but I don’t know if that’s more of an entirely new platform than VR - it’ll still be smartphone CPUs, for example. On the other hand, one could also argue that the shifts to PC and then to mobile were as much about interface technology as about ecosystem, and AR is certainly a new step in computer interaction, just as multitouch succeeded the mouse-based GUI and that in turn succeeded the command line. 

However, one could also propose another kind of shift. Microsoft’s moment of victory was in 1995 with Windows 95, yet that was also in hindsight the end of its dominance of tech, as the agenda moved to the internet. It never again got to decide what programming languages, document formats or network protocols everyone would use. And yet Microsoft sold a awful lot of copies of Windows after 1995, because after all, how else were you going to get online? Windows mattered less and less, but sales grew and grew. 

Equally, today we are starting to see an explosion in AI, as it leaves research labs and universities and turns into products and companies, that could have a similar scale and effect. Just as the web didn't replace Windows, but made it a commodity, AI might shift our attention away from mobile. 

05 Apr 05:46

Some thoughts on the evidence behind Open Badges

by Doug Belshaw

A couple of weeks ago, prompted by a post I wrote about Open Badges and HR, Alan Levine wrote a post entitled Seeking Evidence of Badge Evidence. He made many good points in it, which led to Nate Otto (Director of the Badge Alliance) to invite Alan, myself, and a couple of others to engage in a panel session during today’s Open Badges community call.

This post is me thinking out loud about Nate’s proposed questions:

  1. What type of evidence are people collecting for badges today?
  2. What are challenges and barriers to effectively using evidence with badges?
  3. What services and capabilities could be solutions to these challenges?
  4. Who should hold and control badge evidence? Issuers? Earners?

I’m going to answer these in two sections rather than point by point.

Problems with badge evidence

The claim I/we often make about Open Badges is that, unlike LinkedIn profiles or CV’s, they’re a bunch of evidence rather than a bunch of claims. I think we mean a couple of things by that.

First, we mean that we’ve got something to show for the experience we claimed to have had. In other words, even if the badge issuer doesn’t use the (optional) ‘evidence’ metadata field, there is still some kind of social proof to back up our claims.

The second thing we mean by badges being a bunch of evidence rather than being a bunch of claims is pointing to those that do in fact use the ‘evidence’ metadata field. At this point these seem few and far between. I think this is because:

  • Organisations are still largely using badges in a ‘command and control’ top-down kind of way. In other words, creating one badge that is issued to many different individuals. This makes adding evidence onerous.
  • Badges are being issued for relatively low-level things such as participation in workshops and conferences, rather than credentialing more high-stakes knowledge/skills/behaviours.
  • People are misusing the criteria field as they are inexperienced (as we are all are, initially) in badge system design.
  • There’s a lack of understanding about the best ways to deal with the evidence that sits behind badges. Whether due to privacy concerns, fears around cost or compliance, or institutional policies, adding evidence is seen as a burden rather than a gamechanger.

Some suggestions

Most of the clients I deal with have some sort of background in education, and many have experience in designing assessment systems. However, because Open Badges are opendistributed, and put the learner in control, they need assistance in how to think differently.

Here are some suggestions that I’ve made several times to organisations large and small:

1. Provide appropriate levels of credibility

As I’ve learned during my long-term consultancy with City & Guilds, credibility comes through the triangulation of validity, reliability, and viability. If you’re issuing a PhD-level badge, for example, the amount of ‘social proof’ required will be an order of magnitude greater than those badges issued for participation in an event.

2. Put learners/users at the centre of your system

One of the greatest barriers in terms of pushback issuers are likely to get from users of their badging system is privacy. Granular permissions around the evidence that sits behind a badge are important, especially if that evidence happens to be visual in nature (e.g. photos/videos).

There are ways around this using existing systems such as YouTube, Google Docs, and Flickr, but perhaps an extension to the Open Badges specification could provide a standard on which badge issuers could build?

3. Ask employers what they want

Open Badges aren’t only for helping people into a job, on the job, and onto the next job, but this is a common use case. Given this, if you’re a badge issuer, it’s probably worth thinking through in detail who is likely to be the viewer/consumer of your badges. Talking to them about what they would consider sufficient evidence is likely to be an interesting and enlightening conversation.

Conclusion

Being able to provide trusted evidence is a gamechanger when it comes to credentialing. One of the main reasons that Alan found it difficult to find ‘evidence of evidence’ is that we’re still using the same old metaphors and structures for issuing credentials.

As I argued in my Open Badges in Higher Education keynote and afterwards in the Q&A part of Serge Ravet‘s session, if we find more useful metaphors for people that ‘certificates’ then we’re likely to see different kinds of credentials — and hopefully with many more pointing to evidence than we have now!

Image CC BY-ND Bryan Mathers

05 Apr 05:45

Building "Interesting" Previews on Demand with Tonic Endpoint

When people share content on Facebook, they expect that the content will show up a certain way in the news feed: with their own title, description, and most importantly a relevant picture. Of course, Tonic is largely about text, whether in the form of source code or the properties in an object viewer, so we had to find a way to generate pictures that made sense. Building a prototype to do that with Tonic turned out to be so simple that we wanted to share the process.

What are we doing?

The first thing to figure out was what should be in the picture? We could generate an image that contained the source code easily enough, but in many instances the results are more interesting than the code itself. And sometimes the opposite is true: an interesting chunk of code might just output something true, which is hardly worth turning into a picture.

We settled pretty quickly on the idea of turning the entire document into an image, and then taking it from there. There are a number of tools out there for turning HTML into an image, and after checking out a few, we decided to try moving forward with wkthmltoimage. It has the nice feature of being a self-contained binary, making it simple to run and deploy. And it can take HTML as a string, or a URL to a webpage that it will render directly.

Getting the image

wkhtmltoimage is cross platform, making it pretty easy to download to an OS X machine and see what an image of one of our notebooks would look like. Things worked ok out of the gate, but there was room for improvement. In order to actually make improvements, though, and to eventually deploy this as a production tool, we needed a way to generate these images programatically. We needed an API. What a great excuse to play around with Endpoint!

Creating an API with Endpoint is incredibly simple: implement one function in your notebook. The only thing our API had to do was take in a URL and then return an image of that URL. Part one was a straightforward “hello world” type Node.js problem, but part two required creating an interface to the tool running in another process. Fortunately, someone has already done that work on npm. Unfortunately, the library expected wkhtmltoimage to already be installed on the machine.

Endpoint requests, and Tonic notebooks generally, are running in generic linux sandboxes somewhere “in the cloud,” so it isn’t super simple to just install a new binary. You can always script the install process as a series of exec calls, but that’s slow and cumbersome. But if you recall that wkhtmltoimage is a self contained binary, you might reach a much easier conclusion: ship a version of the library that vendors in the binary directly. So that’s what we did.

Forking the library on Github, downloading the dependency, and publishing a new package to npm took a few minutes. And less than a minute after that, the new package was available for use in Tonic. After that, writing the code to respond to incoming requests with an image was just a few lines.

var ToImage = require("wkhtmltoimage-linux"); var URL = require("url"); exports.tonicEndpoint = function(request, response) { var query = URL.parse(request.url, true).query; response.writeHead(200, {'Content-Type': 'image/png'}); ToImage.generate(query.url, { format: "png" }).pipe(response); }

And since we specified a custom example for our package, you can play around with your own copy of this server by just visiting the package page.

“Interestingness”

Facebook wants a specific aspect ratio for the images it displays, but notebooks will be many different sizes, so the next task was to figure out how to choose the right section of the page to show in a preview. Again we ended up turning to an existing solution, with an existing package already up on npm: [SmartCrop.js].

Just as before, we wanted our image to be generated with an API, and so again we created a new Endpoint. With the same basic skeleton, this API was only a bit more complicated. First, we actually get the screenshot as an image from our existing endpoint. Then we load it into [node-canvas], and pass the image to SmartCrop. Finally, we stream the resulting image to the response.

var Canvas = require('canvas'); var SmartCrop = require('smartcrop'); var URL = require("url"); var got = require("got"); var BaseURL = "https://tonicdev.io/boucher/screenshot-page/1.0.0" var defaultWidth=640; var defaultHeight=480; exports.tonicEndpoint = async function(request, response) { var query = URL.parse(request.url, true).query; var width = parseInt(query.w, 10) || defaultWidth; var height = parseInt(query.h, 10) || defaultHeight; var opts = {width, height, canvasFactory: (w, h) => new Canvas(w, h)}; var img = new Canvas.Image(); var imageURL = `${BaseURL}?url=${encodeURIComponent(query.url)}` var imageData = await got(imageURL, { encoding: null }); img.src = imageData.body SmartCrop.crop(img, opts, function(result) { var canvas = new Canvas(opts.width, opts.height); var ctx = canvas.getContext('2d'); var crop = result.topCrop; ctx.patternQuality = 'best'; ctx.filter = 'best'; ctx.drawImage(img, crop.x, crop.y, crop.width, crop.height, 0, 0, canvas.width, canvas.height); response.writeHead(200, {'Content-Type': 'image/png'}); canvas.pngStream().pipe(response); }); }

There are a lot of parameters you can tune for your own use (adding those to your API is left as an exercise for the reader).

Deploying to production

In just a few hours, we had a working API for generating “interesting” previews for our Notebooks. There were a few more steps though. First, we spent some time optimizing the visual display of our notebook previews. For example, there was no need to show navigational elements. We created a simpler, cleaner page, and eliminated the need to load any javascript at all to make things faster.

Next was generating open graph meta tags in order to have Facebook see our previews. There’s plenty of documentation on how to generate these in Facebook’s developer center. One thing you may want to pay attention to if you’re doing this yourself is that Facebook won’t refetch an image it has already fetched, so if your image may change over time (as ours does), you’ll need some kind of query paramter to force the image to update.

Facebook also expects images to load in just a couple of seconds. Unfortunately, this doesn’t always work for us when generating a preview of a larger notebook. We ended up building a caching layer for our previews, generating them upfront and storing them for a period of time in s3.

The last step we did was move our code off Endpoint and into our own deployment environment. There are a few reasons this made sense for us, and probably will for you too if you’re moving beyond a prototype. The most obvious is that Endpoints have limits. They only allow a fixed number of requests per day, and have a memory use cap as well. Deploying to our own infrastructure lets us put our own restrictions in place, like keeping our traffic with our own private network. And making the transition was as simple as downloading the code from our Notebook and adding it to our git repo (with a few modifications).

Wrapping Up

This is just a small sampling of the ways we’re using Tonic ourselves to continue building Tonic. It’s become an invaluable tool for us when experimenting with new features and ideas, or when just trying to simplify a problem down to its smallest reproducible example.

As always, we love to hear what our users are doing with Tonic, and what they’d like to see us work on next, so please get in touch!

05 Apr 05:45

Interview with Faruk Ateş

Ignacio Villanueva is interviewing web professionals. Here’s his interview with yours truly. We talk about lessons for beginning and intermediate web developers, exciting new things and more.

Short URL: http://farukat.es/p713

05 Apr 05:44

Android N’s multi-window multitasking mode

by Rui Carmo
Click on the image to zoom in

Took them long enough. Thing is, which devices will it be worth using in?


05 Apr 05:41

Hustle Is The Secret Ingredient In Professional Photography

by Guest Post

Guest Post by Cybele Sandy, AUGUST

I was having coffee with a colleague the other day and remarked that I felt that in terms of making it in New York as a photographer, talent was only a small part of the battle. My colleague’s answer? “Oh, I actually think talent counts for only 30% of the equation”. This from an executive at one of the top-tier media conglomerates.

Increasingly, I’ve come to the conclusion that hustle is the secret ingredient.

I’ve been in the business for a decade now and I am still amazed that getting to look at art, all the livelong day, is my job. It’s something I truly love: communing with artists, delving into their process and getting them where they need to be professionally is what has made this stage of my career (I’ve at various times been a television producer, in-house marketing executive for a restaurant chain and co-founder of a fashion non-profit) so incredibly fulfilling.

However, the time I’ve logged has taught me a great deal in terms of who makes it and who doesn’t. Leslie Sweeney, one of the founders of the iconic firm Art + Commerce, once remarked to me that “this is such a subjective business”. You go with your gut a lot, what appeals to you viscerally. The first impression I get when I review a portfolio is generally the truest. I have an especially soft spot for new artists, the kids who are only just beginning to dip their toes into these murky waters.
There are so many gifted shooters out there, who seemingly keep missing that big break, while others with less ability seem to move forward effortlessly. What is it, really, that separates the wheat from the chaff? What accounts for the rise and longevity of a Martin Schoeller or an Inez and Vinoodh?
I think the secret ingredient is hustle.

If I may, therefore, I’d like to line up what I believe fuels that flame:

1. Work. It’s not enough to be a good shooter anymore. There’s so much out there visually that standing out truly takes a borderline obnoxious form of persistence. In my own day-to-day, I’ve realized that to get things done, to get through to the people with whom I want to develop partnerships or cultivate as clients, I have to keep knocking at that door constantly. So too must the artist. The good news is that your natural creative bent will allow you to dream up ways to distinguish yourself without becoming a pain. Don’t be discouraged. Keep pushing.

2. Promotion, Including Lo-Fi. A photographer with a defined promotional strategy wins the day. Social media and online promotional activities are huge and important, but their very ubiquity in today’s business transactions makes a printed piece all the more distinctive. In defining your promotional budget (and you should have one) set aside funds for at least 1 printed piece that lands on the desks of the editorial staff or art buyers you’d like to work with. I’m a particular fan of useful promotions, so think of what you’d appreciate. Talk to an editor about his/ her workday and perhaps an ingenious idea may emerge, for example: a beautifully wrapped box with 5 prints in varying sizes, perfect for the office or home gallery wall. You’d be remembered because that sort of thing rarely happens and people love to get an unexpected package in the mail.

3. A Head for Business. Signing with an Agent does not abdicate your responsibility to know what is being done and what has been signed on your behalf. Take the time to read your contracts. In the digital age, they have become increasingly complex, as companies of all stripes recognize the content value and longevity of the images they commission. Often artists are so eager to be on board with a title, they will go straight to the signature page, only to discover later on that they’ve signed away all their rights. Even if you agree to take a hit financially for exposure, sit with the Assigning Editor and see what else they might be able to do in terms of promotion that might be helpful to you. Maybe you do a piece for the magazine on selfies that slides in some of your personal work. Or perhaps you can negotiate for 2-3 advertorials, that both pay and align you with a big brand. And when you do get an Agent, be sure they’re a good fit. Do your due diligence and ensure that they have the relationships they claim to, because we necessarily talk a good game. Insist on a 12 month plan-of-action and check in often to review how things are going and adjust strategy if necessary. As I once told an artist having issues with his Assignment Agent: “The squeaky wheel gets the grease.”

4. Network Cultivation. Be out. Be visible. If you’re not a social animal, unfortunately you’ll have to become “that guy”. When I first started, I realized that a lot of important stuff gets discussed during the inevitable smoke breaks, so I made sure I was out there too. I’ve witnessed photographers get jobs over cocktails. If you’re not a drinker, corral a few editors for a coffee. Go to the openings of established artists- there are sure to be influential people present. And be prepared for opportunity with a quick little flip book on your phone and a sleek business card.

5. Shoot. A Lot. While you’re building your network, hone your art. Stretch yourself. One of the things I admire about the incredible Inez and Vinoodh is that they never settle. They are at the top of their game but they are always reaching, as if they only started yesterday and that’s why their work is consistently surprising and brilliant. I’m also still a big fan of technical prowess- you should know the correct way to light a set, for example, and not rely on the “take-a-ton-of-pictures-and-hope-some-come-out-right” methodology. All of this takes practice.

6. Niceness. We’re all human and people like to work with the people they like. Personality counts heavily toward landing an assignment and if you’re overbearing or throw up a wall in the face of suggestions, no one is going to want to spend hours dealing with that. This is particularly important during celebrity assignments. An A-list cover shoot has made (and broken) many a career. You want publicists to go: “The photographer has to be X” aka you.
That said, you need to be able to be the boss of your set. Be polite but firm, in charge but open.

The moral of the story? Anything worth having requires planning and considerable effort. This is applicable to anything in life, but particularly necessary in making it in the arts in a city teeming with talent.

Guest Post by Cybele Sandy, AUGUST

------------------------

Visit our sponsor Photo Folio, providing websites to professional photographers for over 7 years. Featuring the only customizable template in the world.

------------------------

29 Mar 07:07

Towers in Communities: How High is Too High?

image

My Vancouver eastside neighbourhood of Commercial Drive was featured in the media recently for opposing another “high-rise” tower. 

Commercial Drive is well-loved, walkable, family-friendly neighbourhood that is an edgy mix of single-family homes, low-rise apartments, social housing that surrounds a funky retail street.

Previously, its residents came out united and vehemently opposed to a proposed 36-storey tower that was a drastic contrast from the current predominantly low-rise form in the neighbourhood. The massive proposed tower was surreptitiously added into a draft community plan, allegedly by senior staff at the City of Vancouver after an extensive public engagement process - where it had never been mentioned.

The result of this action caused a huge uproar and completely derailed the community planning process to the point that it had to be halted and revamped. Since then, there have been trust issues between the City of Vancouver and local residents when it comes to community planning.

Unfortunately this simmering resentment is threatening to boil over in opposition to a new, more modest 12 storey tower with social housing proposed by Boffo Properties at Venables and Commercial - an area of the community that is in desperate need of revitalization.

image
image

Before/After of Proposed New Development at Venables and Commercial

The new tower will replace a rundown building that is currently home to the Kettle Society, a non-profit that supports people struggling with mental health issues. It will house the Society’s new drop-in centre, in addition to 30 supportive housing units.

“It’s a legacy to ensure that the folks we serve will still be a part of the Commercial Drive community — that they will have a safe place to come,” said Nancy Keough, executive director of The Kettle Society in a CBC interview.

Of course, 200 market housing units will also be added, which will allow the developer to support the new Kettle facilities while also raising the buildings height substantially.

“We do need to be able to fund the social component of it and this is a project that is self-sustaining,” said Developer Daniel Boffo.

About 25 per cent of units will be two or three bedrooms, according to Boffo. This addition of family-friendly housing stock is something analysts say Vancouver desperately needs.

image

A small group of residents called “NO VENABLES TOWER”  are coming out against the development, claiming it is too high. According to their petition with just over 1000 signatures:

“Having a 15-storey tower — or anything taller than its current four-storey zoning — right at Venables and Commercial would really change the nature of our neighbourhood forever. “

While I understand the group’s fear of change, there are a few things that need to be pointed out.

Height: First of all, the proposed building is not that high and there is a 12-storey tower of seniors housing one block away. It is also in a high traffic area - Venables Street - that is predominantly light industrial and commercial buildings. In other words, this is not an enormous tower landing on a single-family neighbourhood.

The issue of affordability: Not sure if you have heard, but Vancouver is in the midst of a housing affordability crisis. Virtually no young person can afford a single family home in the city and land is at a premium. We need to start building homes that people who want to live, work and raise families in the city can afford. I see all the “NO TOWER” signs on lawns of people already comfortably ensconced in their single family homes that they probably purchased over a decade ago. They don’t want Commercial Drive to change, but they don’t realize that if we don’t create affordable homes for young people, the area might suffer the same fate as the west side of Vancouver, where homes are being sold to foreign investors who are not particularly “invested” in the community.

Distrust left over from the Grandview Woodlands Community Plan:  Unfortunately, the City of Vancouver made a poor decision in how it proposed a massive tower at Broadway and Commercial a few years ago (they admitted this too). As a result, there is still negative feelings in the community that will likely affect any future proposed tower. Even I was not in favour of the previous tower. It was too dense, too high and out of character with Commercial Drive. However, I do think the current Boffo development is an appropriate scale and I support it as a new home for the Kettle Society, and social and market housing.

Legitimate fear about change: People who live on Commercial Drive are passionate about their community and want to see it preserved. But we have to ask ourselves - what are we really preserving here? In this case, a neglected part of the neighbourhood - the corner of Venables and Commercial Drive - that is full of old, rundown buildings and is not very walkable (the only real anchor of that area is a bakery called Uprising Breads, which will not be affected by the new building). The new tower would breathe life into a vacant part of the community. The risk is that with one tower comes a whole lot more, which may or may not be appropriate. Each new development deserves to be debated by the community.

I hesitate to call the NO TOWER coalition “NIMBYs” because my fellow former city planning commissioner Dr. Setty Pendakur rightly states that: “If we classify any disagreement with development and densification as NIMBY, then we might as well forget about civilized conversation and serious and positive citizen participation. I remember similar outcries in the mid-sixties and early seventies when we marched against city centre freeways.”

We need healthy conversation on what is best for Commercial Drive. But as a resident, I believe this is a good addition to the neighbourhood. Share your thoughts in the comments.

You can add your support for the Kettle Boffo Project here

If you are against the project, you can sign the petition here.

29 Mar 05:35

Upward strivers choking out all the pragmatists

by Stowe Boyd
29 Mar 05:34

The secret Google inter-gadget ‘remind me’ command

As you may know, Google.com aspires not just to display lists of Web results; increasingly, it tries to show you the information you’re looking for, without your having to click through to a Web page. Try Googling a math equation, a unit conversion (“gallons in 83 liters”), or a historical fact (“when did Lincoln die”), for example.

But here’s one that very few people realize: Google.com also has a built-in reminder service — one that lets you record a reminder on your computer, while you’re working, that later pops up on your phone. Great because (a) you don’t always have your phone with you, and (b) a keyboard and mouse is easier to use for recording things than a touchscreen.

Into the Google search box, you can type, for example, “Remind me to walk the dog at 8 pm.” Or, in the Chrome browser, click the little microphone button and speak your reminder: “Remind me to change clothes when I get home.”

The reminder you’ve just created shows up automatically on your iPhone or Android phone, courtesy of the Google app and its notifications.

It’s wireless inter-gadget magic!

image

Adapted from the New York Times bestseller “Pogue’s Basics,” available here.

29 Mar 05:30

Review: Ulysses 2.5 for iPad and, now, iPhone

by David Chartier
Ulysses 2.5 for iPad

Ulysses 2.5 for iPad

Maybe I'm biased because I'm a writer, but when it was announced in 2010, the iPad struck me as a device which could become a great tool for, amongst many things, my craft. A number of good writing apps (and accessories) have appeared in that time, but when I found Ulysses about a year ago, something clicked.

Made by an 11-person team in Germany called The Soulmen, Ulysses is pitched to authors, bloggers, students, and every writer in between. Much more than a typical 'distraction-free' Markdown editor that hooks up to Dropbox, I think of Ulysses as a writing environment. It has a full suite of tools including a post-Finder document system, the most thorough Markdown shortcut keyboard I've ever seen, the ability to split and merge documents, a unique approach to attachments, and so much more.

I'm writing this review because The Soulmen just released Ulysses 2.5 for iPad, Mac, and, for the first time, iPhone, though I'll focus on the iOS version for this review. The company told me this is the largest iOS update it's ever released, and having helped test the beta for the last couple of months and perusing the release notes, I believe it. Surprisingly, not only is this major upgrade that makes the iPad edition universal, it's free to existing owners.

Ulysses arrives on the iPhone

Ulysses arrives on the iPhone

With the modern maturity of the App Store and no shortage of writing apps with myriad specialties, though, how does a premium app stand out from the crowd?

Let's find out.

Overview

I call Ulysses a writing environment, though not really a publishing environment (more on that in a bit), because you're surrounded with a rich set of writing tools. Put another way, it's one of the very few apps that feels relatively complete. That doesn't mean it's finished or there's nothing left to fix or add. It's more that Ulysses leaves me with the fewest questions, frustrations, and frictions of any writing app I've used.

I should point out that if you're more of a Viticcian writer who uses Python scripts and Workflow to dynamically pull in data for charts and other impressive components, Ulysses probably isn't the right tool – it focuses largely on prose. According to The Soulmen's Rebekka Honeit, Ulysses users include novelists, book authors, bloggers (professional and hobbyist), journalists, scholars, students, technical writers, preachers, lawyers, and copywriters.

Startup

The foundation of Ulysses' environment is its panel-based organization system for documents, which are called "sheets" (there's a good reason for that in a bit). If you've ever used Finder's three-column view on a Mac, it should feel familiar. Even if it doesn't, the first thing you see once you open the app is a top-level "First Steps" section with a bunch of good core tips organized in sheets. It's a simple, clever onboarding to introduce your new surroundings.

Ulysses supports Groups (Folders) and sub-groups for organization, but things get interesting with Favorites and Filters. You can mark a sheet as a Favorite to make it appear in a dedicated, top-level Favorites section. It's a great tool for focusing on current projects and getting back to them quickly, and one of my favorite features.

One of the little things I like about working in Ulysses versus traditional files and folders is the ability to customize Groups with small icons. It's definitely a small detail, but I find it strangely handy. The (admittedly generic) apple icon on my MacLife group, and the iPhone icon on my groups for Finer Things in Tech and now MacStories, help me identify them more quickly.

Filters in Ulysses are similar to Smart Folders in OS X's Finder. You can create them in any group or sub-group to search for keywords and basic metadata like date created and edited, and focus them on any other group. They don't have as many criteria as Smart Folders, but they're useful enough to open quite a few doors for busy writers with large libraries.

Now for the fun part: your library is stored in iCloud. In fact, Dropbox isn't even an option. While Ulysses does support iOS 9 Document Providers, the files you open from other apps will live in a separate "External Files" section, and they're treated more like imported files, not something constantly in sync with other devices.

Fortunately, in my experience of using it for nearly all my work across Mac and iPad for the past year (and iPhone during the beta), sync in Ulysses is probably the best, fastest, and most reliable iCloud experience I've had.

My biggest complaint so far about sheet and group organization in Ulysses is a lack of an archive option. To be fair, this concept doesn't seem to be a thing in most text editors or OS X. Even Google Drive lacks it, which is especially disappointing since Google practically invented, or at least popularized, archiving in modern consumer products with Gmail.

But as my projects and library have grown, I found myself wishing for a way to archive aging pieces that I no longer need within easy reach, but want to retain for posterity. To this end, I decided to bring over a Finder habit and create an "archive" group, with sub-groups all named "project archive," and moved older sheets accordingly. It works, but it's tedious, and I'd love to see Ulysses gain something official to solve this problem.

The Editor

When it comes to actually writing, Ulysses has a powerful editor that supports Markdown in a few unique ways. For starters, it crosses the bridge between writing strict text Markdown and displaying it in style, which The Soulmen refer to as "plain text enhanced."

Editing this article with the sheet list on left and right sidebar hidden.

Editing this article with the sheet list on left and right sidebar hidden.

For example, if you use underscores for emphasis, those words will appear italicized in between those underscores while you're writing. If you add a link, a simple popup editor appears to help you add the URL and optional title. But when you're done, the linked words take on a highlighted aspect, obfuscating the URL from your actual text. There's also a great trick here: if you select some words and paste a URL from your clipboard, Ulysses does the right thing and creates a proper Markdown link. This is even more convenient on an iPad with the dedicated paste button in the keyboard shortcut bar.

Throughout my career, this has been a divisive topic among the writers I know. Some prefer to write in completely in HTML (yes, I think they need to consult a physician), while others like the cleaner look of Markdown. I realized years ago that I prefer writing and proofreading in rich text because I get to see the text and flow the way my readers will.

You can add a link simply by selecting text and pasting, or you can use Ulysses' popup tool.

You can add a link simply by selecting text and pasting, or you can use Ulysses' popup tool.

Eventually, I warmed up to Markdown as a compromise for writing text but dealing with HTML-based CMSes. If you like writing this way, or are considering trying it, I think Ulysses walks this line really well.

For the distraction-free fans in the room, Ulysses offers some great options, most notably a full-screen mode which hides any visible sidebars and most of the top toolbar interface. On the opposite side of that coin, if you could use some distraction or a second app for research, chat, or anything else, Ulysses 2.5 brings full support for iPad Pro and Split View.

A handful of themes, including a night mode, can set your preferred mood. If none of those fit your workflow, you can download plenty more user-created themes from the Ulysses style directory. Unfortunately, you can only create themes with the Mac edition, but you can download them on any device. Of course, I hope The Soulmen bring theme creation to iOS down the road.

Ulysses offers even more editor customization, though. You can control line height, paragraph spacing, and text zoom, as well as whether some core Markdown features trigger, such as automatic lists when starting a line with a dash. Traditional book authors in the audience can add indentation for the first line in paragraphs.

If you're a fan of alternative markup styles like Textile or Minimark, Ulysses has you covered. In fact, the default markup is Markdown XL, a slight modification of John Gruber's Markdown that supports things like annotations and footnotes. If you ever switch markups in the middle of a sheet, Ulysses will make all necessary tag and markup conversions.

Speaking of unique advantages, Ulysses also supports in-line images. A popup tool similar to the link tool appears to help you add image metadata, and you can choose from supported Document Providers. In-line images work when exporting to PDF, DOCX, and ePub formats, though not if you copy as plain text or HTML. But I'll get into moving your work elsewhere in a little bit.

Finally, Ulysses is one of the (too few) apps that support custom fonts in iOS. If you have a TTF or OFT file laying around in something like Dropbox or iCloud Drive, you can use the new Ulysses app extension to open it in the app and install the font for the rest of of iOS apps that support them. In fact, all my Ulysses writing is done in Museo Sans (thanks to Justin Williams for introducing me to it back in the day with Elements, the first iOS Dropbox text editor, may it RIP).

The Shortcut Bar

Ulysses has the most thorough Markdown bar I've encountered in a writing app, offering shortcuts for nearly everything I am aware Markdown can handle, including options for code blocks, indentation, and even special characters like (+) which can be tedious to reach on some devices. Previously, the bar was implemented in a fairly standard form, sitting in a dedicated space above Apple's typing suggestions bar.

In Ulysses 2.5, the shortcut bar has been significantly redesigned on iPad and integrated directly into Apple's typing suggestions bar (on the first-ever iPhone version, though, it's still an extra bar above Apple's text suggestions due simply to less screen space). This brings the advantage of recovering some horizontal space for viewing another line or two of text and, as far as I can tell, it retained every command from the previous implementation.

Ulysses 2.5 features a completely redesigned shortcut bar integrated into Apple's standard toolbar.

Ulysses 2.5 features a completely redesigned shortcut bar integrated into Apple's standard toolbar.

The drawback, however, is that all commands have been condensed into three buttons on the right side of the bar. As a user of the previous version, I'll admit it took me some time to get used to this shift, but now I like it. Commands were pretty spread out in the previous iteration, sometimes feeling arbitrary and tough to find or rediscover. Now, with just three top-level sections, the organization makes more sense. Once I remembered that nearly every command required two taps in the previous iteration anyway, this new design clicked, and it's easier to find commands if I haven't used them in a while.

On the left of the shortcut bar are Apple's standard undo, redo, and paste options, as well as two of of my favorite custom Ulysses tools: an in-document search tool and a metrics bar. The Search tool brings up a bar with a couple modifiers, as well as a very, very welcome find-and-replace option.

Metrics in Ulysses can include sentence and paragraph length, and new reading time measurements.

Metrics in Ulysses can include sentence and paragraph length, and new reading time measurements.

The metrics tool offers the standard character and word counts, but it goes much farther by offering a number of other counters you can toggle. There are paragraph and page counters (for those who publish on trees), as well as four new "reading" metrics: slow, average, aloud, and fast. These are a great idea that I think appeared first, or was at least popularized by, Medium, and it's nice to have them available no matter where you're going to publish.

The Power

One of the significant ways Ulysses stands out and earns its price tag is with a variety of feature, power, and polish in the vein of what I've already mentioned, spread throughout the app. In my experience with nearly every app you could name, you'll be hard-pressed to find much of this elsewhere.

Backup

If you have reason to not trust iCloud but you're still reading, Ulysses features a great automatic backup system similar to Time Machine for a Mac. It includes hourly backups for the last six hours of work, daily backups for the last five days, and weekly backups for the past two months.

You access this system from the top level of your library, where you first started in the app. Tap the Backup button in the lower left and the library pane flips over to the backup interface, while a black and yellow hazard bar appears at the top to drive home the notion that you're not just editing your current sheets anymore. In the left pane are timestamps for each of the aforementioned periods, and tapping one will display your library as it was at that time. Restoring sheets is relatively painless, and tapping Done in the upper right of this pane will return you to your present library.

Again, I've never had a real problem with Ulysses (or its iCloud backend) losing data. But it never hurts to have a safety net, especially in a professional writing tool.

Sidebar

One of Ulysses most significant strengths is a notes and attachment panel on the right which brings some great organizational power. It contains four tools: Tags, Writing Goals, Notes, and Attachments.

Tags are fairly straightforward – you can add multi-word keywords to your sheets for all kinds of organization and filter purposes. For example, when I write short tips posts for Finer Things in Tech, I tag them similar to the way they're tagged on the site, including tags like OS version, "iPhone app," and "gestures." Then I have a couple filters in their corresponding groups for things like iOS 9 and iPhone apps to make research easier down the road. With 2.5, Ulysses now displays those keywords in sheet lists, and the action menu (accessible by swiping left on a sheet in a list) now has an option to edit tags right from the list.

Writing Goals is another of my favorite Ulysses features, and it does exactly what it might sound like. You can set a goal for any number of metrics, including words, sentences, lines, paragraphs, and pages, then set a limit of "about," "at least," or "at most." Your progress towards this goal is displayed as a colored pie chart in the sidebar, and any sheet that has a goal gets a small badge of that chart on it in a sheet list.

Even better, if you're working on a large, multi-sheet project like a book or, say, a lengthy review of an iOS writing app for MacStories, you can assign a goal to an entire Group. That Group also gets a small badge counter when viewing a list of Groups.

A clever touch is the share option. If you add a word count goal and tap it in the sidebar, a share button allows you to post an update on your progress to any app or service that supports it, complete with a color photo of your word count pie.

Notes and attachments are fairly straightforward. You can add snippets of ideas and things to remember, or perhaps a basic outline for a sheet, as simple text notes. While attachments has a photo icon, you can add a few other types of files (such as PDF, but not all types) from a Document Provider, allowing you to keep other relevant materials close at hand and easy to Quick Look for reference or to share. While Dropbox isn't much of an option elsewhere in Ulysses, it can provide supported documents as attachments.

Left: Word count goal badge in group and list views. Right: My iPad sidebar for this review, including keywords, a word goal, and a screenshot attachment.

Left: Word count goal badge in group and list views. Right: My iPad sidebar for this review, including keywords, a word goal, and a screenshot attachment.

The nice thing here is that, while this sidebar contains four tools, everything you add appears in one single sidebar, chronologically. If you add some tags, a word count goal, and an attachment, they will all appear vertically, in the order you added them. I really like the convenience of this, so I don't have to flip between sections just to review all of this, but I wish there was a way to order these things. I'd love to tell Ulysses to always place my tags at the bottom of the sidebar, allowing any word count goals and attachments to take priority at the top.

Management and Exporting

Ulysses document management goes beyond groups, sheets, and filters. A big part of the reason The Soulmen went with a "sheets" metaphor is because of a variety of ways to split, combine, and export your work.

For example, most book authors I've seen who use Ulysses will use multiple sheets for the entire book (based on something like separate chapters), then merge them all or export them all as one large PDF or ePub. Update: I previously lamented that you could not split sheets on iOS and asked for the feature to arrive in an update. Turns out it's already here: simply long-press anywhere in a document, and the text menu that appears has a split option. Your sheet will be split at that point, and the lower portion placed in a new sheet.

Speaking of exporting, when it's time to take your work to its next step, Ulysses supports a wide variety of formats and customizability. It also takes a unique approach by merging the preview and export tools into a single screen that updates live as you change formats and features.

Of course, you can export your work as plain text, including Markdown and even TextBundle, a new plain text format that supports in-line images. Things get more interesting when you dabble with the HTML, PDF, ePub, DOCX, and now Medium, new in 2.5. Ulysses provides a number of contextual customization options, including full HTML or just a "snippet" version which lacks things like header and body tags (great for converting Markdown to paste into most CMSes). A gripe here is that, while Ulysses supports annotations and footnotes, it's only when using Markdown XL and exporting to PDF or DOCX. I think this would make some respectable waves if annotations and footnotes came to HTML export.

The other formats can set things like author and even cover photos. The new Medium support is impressive, as well, since it's the first direct publishing option Ulysses has ever had, and it even supports multiple Medium accounts. I am a little bummed, though, that WordPress – which now claims to power 25 percent of the web – didn't show up first, or at least in tandem.

App Extension and Automation

For the first time, Ulysses 2.5 has an app extension and support for a variety of x-callback actions. Combined with its dedicated Inbox, Ulysses can serve well as a single tool for collecting writing ideas and bringing them to fruition.

I typically use Drafts to collect nearly all my ideas, including stuff I want to do around the house, potential tweets, and most things in between. Thanks to a Launch Center Pro shortcut and, more recently, Drafts' Apple Watch complication with speech-to-text dictation, this works great. But since I got into the Ulysses 2.5 beta with iPhone support, I've experimented with using the extension and Inbox to collect things I know I want to write about, and I like it. I'll still use Drafts for other things but these additions to Ulysses have certainly inspired some tinkering with my workflow.

The callback support features the usual suspects: you can create actions in Launch Center Pro and Workflow to create new sheets, groups, and filters. But you can also open Ulysses and skip straight to your Favorites or the dedicated Last 7 Days section, another way Ulysses helps you save time and get straight to your current projects.

I do have a complaint here, combined with the aforementioned attachments sidebar. While you can select text in other apps, trigger the app extension, and import into Ulysses as an impetus to write, the extension stops short of letting you add supported file types as attachments to existing sheets. I don't know if this is a limitation of iOS, but I'd love to have this option. To be fair, Apple's new Notes extension can append new text to existing notes, but I wouldn't be surprised to hear adding something from other apps to an existing document is a private API for now.

Polish Throughout

I won't spend a lot of time on this section, but Ulysses is one of those rare apps that is truly polished through and through.

The search and metrics bars animate in and out to get your attention. Sheets with word counts have a small, live badge in the upper right that stays grayed out most of the time, but gains color once you get close to your goal, and turns red if you go over. Sheets in list view get a cloud indicator when they're uploading or downloading changes, and yes a little arrow inside the cloud indicates whether changes are going up or down. The First Steps sheet about adding notes in the sidebar has a note that quips about thanking you for reading it, because it hasn't been looked at in a while. When you hide the keyboard, the markup menu at the bottom right of a sheet describes why you might want to use the other markup options.

It goes on and on. Some of these things are large, some are small. But collectively, they add up to a fantastic experience you just won't see elsewhere.

The Mac Version

Since this is an iOS review, the Mac is another section I won't spend much time on, but it's worth every penny all on its own. The interface is largely the same so you should feel at home on any platform, and Rebekka told me iOS and the Mac have near feature parity. The only significant differences are the aforementioned abilities to create and share custom themes, and to split an existing sheet into multiple sheets.

Improvements

I mentioned a few improvements I would love to see come to Ulysses, including WordPress support and an official archiving system. The only other major improvement I'd like to see is support for exporting one's work to other apps, complete with Group and Sub-Group hierarchy.

I don't plan on going anywhere anytime soon, but since Ulysses creates basic text files, our work should be fairly portable. Who knows what will happen down the road. Even if this feature had to remain Mac-only due to current iOS limitations, this option would be a welcome safety net for those who decide or need to move elsewhere.

Final Thoughts

If you haven't pieced it together yet, I'm a very big fan of Ulysses. The combination of post-Finder organization, rich text editing, and flexible export options means I can start nearly all of my professional and personal writing in Ulysses, yet send it along to its final destination, no matter where that may be.

Before the 2.5 beta, my tech writing and content strategy workflows often spanned multiple apps depending on the project at hand. Without iPhone support, I occasionally had to avoid Ulysses altogether. Now I don't have to, and my workflow feels so much swifter and simpler because of it.

Ulysses is certainly not perfect, but what app is? If you need more than a basic text editor and a Dropbox folder – and I wager you do, even if you don't know it yet – I cannot recommend Ulysses enough. It is clearly built with a true love for writing by a company that listens to and takes care of its customers. Your writing, and your readers, will be better for it.

Ulysses 2.5 is available on the App Store.

29 Mar 05:29

Handwriting Recognition with Apple Pencil on iOS

by Federico Viticci

Serenity Caldwell, writing for iMore, would like to see iOS gaining handwriting recognition at a system level, especially now that iPad users have the Pencil:

There are plenty of reasons why Apple hasn't yet implemented system-level handwriting recognition in iOS: For one, you need an exceptionally good pen input, and — until the introduction of the Pencil — no third-party stylus had the precision or the lag reduction to be a truly useful tool.

There's also both the processing power and stigma to consider. Like Siri, handwriting recognition works as a transcription service; in order for it to translate your physical marks into typed characters, however, it needs a substantial dictionary and the power to transcribe your words using your phone's processor or online servers. That means more cloud infrastructure or more powerful iOS devices — or both — as well as the engineers to craft a smart dictionary.

If Apple does add this to the Notes app – and I believe it would make sense – OCR for images and documents would also be another welcome text-related improvement.

29 Mar 05:29

Getting Started with Workflow

by Federico Viticci

Speaking of iMore – they asked me to work on a guide to get started with Workflow, which was published today.

Workflow is the Minecraft of iOS productivity: By deeply integrating with native iOS features and apps, Workflow's hundreds of actions are the building blocks that will help you save time when performing any kind of repetitive task. For both novices and more advanced users, Workflow is a beacon for iOS automation, and there's nothing else like it on the App Store.

It's the most powerful app on my iPhone and iPad — I wouldn't be able to work without it, and, almost two years after its release, I'm still discovering its infinite potential. And, with luck, this article can help you along your Workflow journey, too.

I'm happy with how this turned out. If you're intimidated by the many features of this amazing app, hopefully this should be a good place to start playing with it.

29 Mar 05:01

King Edward bike lanes

by Stephen Rees

This item was inspired by one of Ken Ohrn’s posts on Price Tags. Not that I am complaining, you understand. One must acknowledge that an effort is being made to improve cycling safety here, but at this particular location not much more was needed to produce something that would actually be safe. Designated lanes are better than sharrows – or nothing at all – but a painted line does not really do much to actually separate out two different  modes. A kerb would be better: a boulevard or barrier even more so.

The road is very wide with a large park like central median with mature trees. While the posted speed is the standard 50 km/hr the combination of the median and the broad paved area encourages much faster speeds. I observe that when I or my partner drive at the posted speed, everyone else is moving much faster. Since these improvements were made that has got a bit better at busy periods.

W/b at Valley looking east

This is the intersection of King Edward and Valley. It was formerly one moving traffic lane with parking permitted at the kerb. Paint has been used to designate a bike lane between the parked cars at the curb and the general purpose (GP)  traffic lane. You will also note that only a very short length of the curb lane becomes a right turn lane at the intersection.

If the double white line had been moved towards the curb by a metre then the parked cars would have acted as a buffer between the moving vehicle traffic and the bicycles, and the risk of dooring by a driver reduced. Of course, the risk of dooring by a disembarking passenger would have been greater and the bus stops required a different treatment.

e/b at Valley

The bus stop is on the far side of the intersection (of course) and the bollards have been put in now to stop the parking space being used as a queue jumper. Traffic backs up down the hill from the traffic light at Arbutus Street. You will also observe that there are no cars parked when the picture was taken (mid afternoon, weekday). That is because there is ample off street parking provided within the Arbutus Village development on the right. There is really no need for parking along this side of this part of the avenue. Prior to this work there were essentially two travel lanes – and a bit of a freeway mentality for the car drivers.   The green paint patches are for the driveways at the Village entrances/exits.

Now some will say that additional road width would be needed to allow for a proper protected bike lane. It seems to me that a narrower GP travel lane is already in place but has not done very much to reduce speeds. I suppose old habits die hard. Moreover there is plenty of space available but we do get awfully close to a knee jerk reaction when trees and lawn are threatened. Up at the Arbutus Intersection the paved right turn lane has been extended – simply because the large number of hefty off road pick ups and all wheel drive SUVs had created a longer informal turn lane out of the uncurbed median.

Screen Shot 2016-03-09 at 3.23.31 PMThis is the Google map view

Screen Shot 2016-03-13 at 4.20.14 PM


Filed under: bicycles, Traffic, Transportation Tagged: bike lanes, Vancouver
14 Mar 20:04

When It Starts To Go . . . .

by Ken Ohrn

. . . .  It REALLY starts to go.  And now it’s moving fast.

Janette Sadik-Khan, former New York City Transportation commissioner, will be speaking in Vancouver on March 22 at the Vancouver Playhouse (in part with Gordon Price) while promoting her new book “Streetfight:  Handbook for an Urban Revolution”.  In this article in NY Magazine, she traces her history and her personal experiences during installation of bike lanes there. It’s pretty clear that New Yorkers have sharper tongues and elbows than we Vancouverites.  But in both places the streetfights have been just as bitter.

However, she persevered, installed bike lanes, and this started happening, as it did here:

There may have been a more practical explanation for the end of the media frenzy: The polls started coming in. A Quinnipiac University poll found that 54 percent of New Yorkers said that bike lanes were “a good thing.” This was the first of many polls that would be released in the coming months, two putting bike lanes’ popularity as high as 66 percent — higher than the approval numbers for the politicians who railed against the lanes.

As time went on, she writes: “ . . bikes, and all New Yorkers, won”. And, she writes something that seems familiar to me:

None of the bike-lane opponents’ predictions has come to pass. City streets have never been safer, more economically thriving, or offered more transportation options than they do today. My successor as Transportation commissioner is greatly expanding the network of bike paths and doubling the size of the city’s bike-share system.

NYC.Bikes.Aug.2014-033

Meanwhile, here in Vancouver, I’ve been thinking along similar lines.  Those with long (if capricious) memories like mine may recall our ancient history. Ten years ago, no respectable person would speak the word “bicycle” in polite company, and separated infrastructure (a.k.a. a bike lane) was a distant fantasy. The press gleefully published bicycle-related hit pieces, and open-line broadcasters reached new lows in divisive fulminating rhetoric.

But oh my, how things have changed. For example, I am elated at the Arbutus Greenway announcement, which will create a 9 km long bike facility (design pending) from Marpole to False Creek — a major north-south bikeway, bike route, greenway — whatever you call it.  In earlier times, it might have become condos, strip malls and parking lots. But not now, when the place of the bicycle in the transportation mix has been re-affirmed at the ballot box.

As in New York, we have seen a head-snapping turnaround in the public conversation here about bikey stuff. Strong positivity in some strong places, and benign indifference in others, has replaced near-universal negativity. Granted, a few cranks continue to whale away at discredited negative tropes, but they are fading fast into a tiny minority, and are really only found now in online comment sections and smoke-filled partisan back rooms.

These changes, and the Arbutus Greenway, prompted me to list big wonderful bikey things that have happened recently, or are in the works.  It’s an impressive list. Not every item is all about bikes, but big bike stuff is a big part of all of them. The message is really clear.

They’re all about change.  And it’s really starting to change fast.

Recent Bikey Stuff

Bike-share

Stanley Park Causeway upgrade — done and in use

Burrard / Pacific Intersection and surrounding area upgrades (Burrard Bridge east side bike lane) — construction underway

Downtown upgrades and new bike lanes – final design stage

Iron Workers Memorial Bridge sidewalk upgrades

Point Grey Road

Burrard / Cornwall intersection upgrades

King Edward Avenue West improvements

 

Bikey Stuff In Planning

10th Ave bikeway upgrades

South False Creek seawall upgrade

Commercial Drive bike lane

Southwest Marine Drive improvements

Numerous spot improvements all over town

Viaducts changes include Quebec St bike lanes and active bridge for bikes

False Creek flats include bike connections and train track crossing

Kent Avenue bike lanes

Arbutus Greenway

Granville Bridge

Cambie Bridge

 

Future Bikey Stuff

Repeal the mandatory helmet law

Un-gap the map

 


14 Mar 19:03

"The United States has always been governed by the authority of ideas, rather than the idea of..."

“The United States has always been governed by the authority of ideas, rather than the idea of authority.  Nothing is more important than to be clear to all Americans that the tradition of vigorous political debate and compromise will continue. The sooner Donald Trump is relegated to the margins of our national life, the better off we and the world will be.”

-

Larry Summers: Donald Trump is a serious threat to American democracy

14 Mar 19:03

via Samatha Kim Attwood, From “Femin-ish” to Feminist, or How...

14 Mar 19:02

Tricia Wang, Why Big Data Needs Thick Data

Tricia Wang, Why Big Data Needs Thick Data:

A working definition of Thick Data:

Thick Data is data brought to light using qualitative, ethnographic research methods that uncover people’s emotions, stories, and models of their world. It’s the sticky stuff that’s difficult to quantify. It comes to us in the form of a small sample size and in return we get an incredible depth of meanings and stories. Thick Data is the opposite of Big Data, which is quantitative data at a large scale that involves new technologies around capturing, storing, and analyzing. For Big Data to be analyzable, it must use normalizing, standardizing, defining, clustering, all processes that strips the the data set of context, meaning, and stories.Thick Data can rescue Big Data from the context-loss that comes with the processes of making it usable.

14 Mar 19:02

springwise: Unused mobile data can be turned into monetary...



springwise:

Unused mobile data can be turned into monetary donations

At the end of each month huge amounts of unused, prepaid mobile data goes to waste. Now, Swedish mobile operator Three is enabling their customers to donate the monetary equivalent of their leftover 4G data to UNHCR, to contribute to their work in Syria, through its #datadonate scheme. READ MORE…

This is a smart idea. Who’s doing this in the US?

14 Mar 18:16

Twitter Favorites: [paulrodneyives] Great to see @CityofCourtenay councillor Erik Eriksson helping raise $ for #Jumpstart @ComoxRecreation @TownofComox https://t.co/pnq8VKg6wu

Paul Ives @paulrodneyives
Great to see @CityofCourtenay councillor Erik Eriksson helping raise $ for #Jumpstart @ComoxRecreation @TownofComox pic.twitter.com/pnq8VKg6wu
14 Mar 18:15

Twitter Favorites: [knguyen] This piece by @katelosse about the fetishization of failure in tech is excellent https://t.co/krgOfFDJ4A

Kevin Nguyen @knguyen
This piece by @katelosse about the fetishization of failure in tech is excellent nytimes.com/2016/03/06/opi…
14 Mar 18:15

Twitter Favorites: [tinysubversions] Can someone please quote this tweet with some bland nonspecific praise about the tweet so that I can quote the bland nonspecific praise?

Darius Kazemi @tinysubversions
Can someone please quote this tweet with some bland nonspecific praise about the tweet so that I can quote the bland nonspecific praise?
14 Mar 18:15

Twitter Favorites: [Planta] From 16 years ago, finally framed, Allan Fotheringham and me. Taken by Leona Lin. https://t.co/SRRGU4PtVd

Joseph Planta @Planta
From 16 years ago, finally framed, Allan Fotheringham and me. Taken by Leona Lin. pic.twitter.com/SRRGU4PtVd
14 Mar 18:15

Twitter Favorites: [katecrawford] Please tell us why you unsubscribed from linear time: A) too many events B) time no longer relevant C) time is spam https://t.co/BnwMS0gINr

Kate Crawford @katecrawford
Please tell us why you unsubscribed from linear time: A) too many events B) time no longer relevant C) time is spam twitter.com/newhive/status…
11 Mar 22:18

Galaxy S7 and S7 edge now shipping to Canadians

by Ian Hardy

While the official launch date of the Samsung Galaxy S7 and S7 edge is on March 11, some lucky Canadians have started to receive shipping notifications, telling them their device is on the way, while others have even gotten their device ahead of time.

Screen Shot 2016-03-10 at 9.09.30 AM

The Galaxy S7 and S7 edge will be widely available in Canada and as part of the launch, Samsung and the company’s Canadian carrier partners are offering a free Gear VR headset. The GS7 will be available at Rogers, Bell, Telus, Fido, Virgin, Wind, Koodo, Eastlink, Videotron, MTS and SaskTel.

Related: Samsung Galaxy S7 and Galaxy S7 edge review

(Thanks to everyone who sent this in!)

11 Mar 22:17

Samsung Galaxy S7 pre-order numbers lower than the Galaxy S6 in South Korea

by Rajesh Pandey
A new report claims that pre-order of Samsung’s latest flagship handsets, the Galaxy S7 and Galaxy S7 edge, have been underwhelming in the company’s own home market: South Korea. Continue reading →
11 Mar 22:17

Download Android N developer preview for Nexus 6P, Nexus 5X, Nexus 6, Nexus 9 and Nexus Player

by Rajesh Pandey
Google has just released the first developer preview of Android N for a bunch of Nexus devices and one Android One smartphone. Android N packs in a lot of new features and if you are itching to try it out, grab the factory images from below and follow our guide to taste the upcoming version of Android on your device right away. Continue reading →
11 Mar 22:17

Google releases Android N Developer Preview for Nexus 6P, Nexus 5X, Nexus 6, Nexus 9, and Pixel C

by Rajesh Pandey
Google has released the Developer Preview of major versions of Android at its I/O conference, but this year, the company is surprising everyone by releasing the preview build of Android N today.  Continue reading →