Laxaro

View the latest news and breaking news today

inessential

Read Latest News Article in inessential.



syncing and immediate and deferrable actions

there are, as i mentioned previously, two types of syncable actions: immediate and deferrable.an immediate action is something like adding a feed: it requires that the server is reachable right now, so that the feed actually gets added.a deferrable action is something like marking articles as read. the sooner the server knows, the better, sure — but it can wait if necessary. it can even wait for weeks or months.i’ve decided to make it simple and categorize these actions like this: any structural action that affects the list of feeds and folders (or tags) is an immediate action, while any action that affects the status (read, starred) of articles is deferrable.or, in ui terms: if it’s something you do in the sidebar, it’s immediate; ...




inessential: evergreen diary #6: proposed sync design

most of the time, a user will do a thing — mark some articles as read, for instance — and then evergreen will tell the server (feedbin, feedly, etc.) right away. that’s good and easy.the hard part is this: what happens when the server is not reachable for some reason?continuing the example: evergreen could, in the case of the unreachable server, refuse to mark those articles as read.it could insist that syncing works only when the server is reachable — which is not that weird, especially given that it can’t pull new data from the server unless it’s reachable.but it’s weird enough. consider that selecting an article marks it as read. this policy would make it impossible to even just read what you’ve already downloaded.offli...




inessential: evergreen diary #6: proposed sync design

most of the time, a user will do a thing — mark some articles as read, for instance — and then evergreen will tell the server (feedbin, feedly, etc.) right away. that’s good and easy.the hard part is this: what happens when the server is not reachable for some reason?continuing the example: evergreen could, in the case of the unreachable server, refuse to mark those articles as read.it could insist that syncing works only when the server is reachable — which is not that weird, especially given that it can’t pull new data from the server unless it’s reachable.but it’s weird enough. consider that selecting an article marks it as read. this policy would make it impossible to even just read what you’ve already downloaded.offli...




the omni show #6 with liz marley

this episode features liz marley, omnigraffle engineer, formerly a tester and pm.she talks about switching from testing to writing code — a...




inessential: evergreen diary #5: send to marsedit

the latest build of evergreen, fresh from the lab, now adds marsedit to the sharing menu in the toolbar.when you choose the command, it sends the current article to marsedit — which opens it in a new window, and then you can edit and add your own commentary before posting to your blog.* * *see sendtoblogeditorapp.m for the code that packages up the article and sends an apple event.the code is not marsedit-specific — other apps in the p...




inessential: evergreen diary #4: send to micro.blog

the latest build of evergreen adds micro.blog to the share menu in the toolbar, if you have the micro.blog mac app.it sends the title and link of whatever you’re reading over to the micro.blog mac app, and you can edit it before actually posting.this is hugely important. rss readers exist not to just make reading easy but to make the web a conversation.the next release will (probably) include marsedit, for the exact same reason. if you have ideas for other apps to include, let me know (see the bottom of the evergreen site for contact info).ideally, every app like micro.blog and marsedit would have a sharing extension — but, where they don’t, i can add them as long as they support some kind of way to do so.technical detailsmicro.blog su...




inessential: app idea: inside story

i had this idea around the time apple came out with bonjour (née rendezvous), and all these years later i realize i’m never going to get around to it.here’s the scoop:the idea is microblog posts (tweet-like) but that live inside a specific network only.you run a mac app that:lets you post short messages.shows short messages from people inside your network.the app runs a small webserver that’s discoverable via bonjour, that has a specific service name. that webserver publishes a feed of your posts.the app also downloads a feed from every other app it finds (and caches those feeds, for when other apps are offline).in other words, it’s instant office microblogging with no centralized server. completely peer-to-peer.the design is what y...




inessential: mentions: proof-of-concept

ben curtis posted feed_searcher to github — it creates custom search feeds, and even...




inessential: app idea: mentions

“hold on — i need to check my mentions.”ten years ago or more we had several blog-specific search engines and services: technorati, blogbridge, and others.one of the great things about these services was not just being able to search for something but being able to set up persistent searches: that is, you’d get a search as an rss feed, and in your feed reader you’d get results from all over the place on the thing you’re searching for.in the obvious and common cases, you’d set up searches for people linking to your blog, writing about the apps you work on, mentioning the place where you work, and mentioning you.i’d like to see something like this for today, but where the scope is just the apple/mac/ios community. it would craw...




inessential: evergreen diary #3: on punting

i have a vision for 1.0, and then, as time goes on, i have to cut it back beyond where it hurts. i have to keep punting. i hate this part of shipping software.but i also love it because it reminds me that i have the stomach for it. shipping software is an emotional skill.after shipping — no matter what — there will be people who absolutely cannot believe that feature x wasn’t included. in fact, it’s the one thing they totally need.and they’re right. not wrong. and i would have loved to have included feature x, loved i not quality (the app maker’s honor) more.* * *i wondered if evergreen as open source instead of as a for-pay app would affect what and how much i punt. i hope the answer is: not at all; the decisions would have bee...




the omni show #5 with mark boszko

in this episode i finally get around to talking to mark boszko, the show’s intrepid producer and the omni group’s video producer.i’ve known mark for more than ten years — we met at a sxsw conference many years ago, long befor...




inessential: 2018: some hope

mike monteiro writes of twitter ceo jack dorsey:jack let it happen. he watched as a once-entertaining, once-illuminating, once-vital network to global communication became a garbage fire of hate. he did nothing to stop it. or curb it. he didn’t see a problem.our current crises of democracy and good faith did not just blow in with the wind and transform the air without our knowledge or consent.these crises were made by people, and we knew what they were doing, and we agreed to this.jack dorsey is one of those many people. just one. but one with a kind of power that nobody in the world should have: the power to directly control a vast amount of the world’s communication.it’s not that dorsey failed to consider the good of the world. or, r...




evergreen’s parser as separate open source framework

i copied evergreen’s parsing framework, rsparser, to a separate repository on github.it has no dependencies other than system-supplied libraries. it’s offered via the mit license.it builds a mac framework only at the moment, but adding an ios target should be easy. it’s the one issue in the bug tracker (at least so far).otherwise it’s fast and stable and does the jobs it’s designed to do.things it ...




inessential: wkwebview workarounds

in evergreen i’m using wkwebview instead of webview, because it’s the new and improved webkit view. nshipster writes:boasting responsive 60fps scrolling, built-in gestures, streamlined communication between app and webpage, and the same javascript engine as safari, wkwebview is one of the most significant announcements to come out of wwdc 2014.sounds great! i’m on board.one of the best parts about it — easily enough to sell me — is that a crash in wkwebview won’t crash my app.(back when i was doing netnewswire, crashes in the old webview — the predecessor to wkwebview — were the most common crash. but, to be fair, many if not most of those were actually flash crashes.)i’ve also heard, though i’m not sure how to verify,...




inessential: evergreen diary #2: random notes

i’ve been working on evergreen for about three years, and so i considered writing about playing such a long game — but then daniel released marsedit 4.0 after seven years.i tip my fedora to the master.* * *but there is at least one difference: it’s taking so many years just to get to one-point-oh. i’ve never been on any kind of project that took so long just to get to the initial release.the app’s been built from the bottom up. since i knew in advance what i needed, i could write code that wouldn’t get actually used for years.here’s a small example, written almost two years ago: rshtmlmetadata.h.the scoop: it always bugged me that in netnewswire, when it was mine, the favicon downloading system never checked the metadata in a ...




the omni show episode #4 with andrea mcvittie, omni slack group

yesterday we published an episode with andrea mcvittie, user experience designer at the omni group.andrea will brook nae interference with the puppies. be nice!she also talks a bit about how design works at omni and about design and ethics. after we posted the episode, she followed up with a tweet where she codifies ...




the omni show episode #3 with brian covey, support manager

new episode is up!brian is the support manager at the omni group, and he has a bunch to say about how support — and the support humans — work at omni, includi...




inessential: the omni show

i’m the host of a new podcast: the omni show. here’s the announcement on the omni blog with all the details. there’s a twitter account, @theomnishow, you can follow.i’m super-excited to be doing this, partly because my co-workers at omni are interesting, and partly because some of it may actually be useful — that is, learning how we think about ux, testing, engineering, support, and so on might be helpful for other people. that’s my hope.our first episode is with kristina sontag, software test manager, and the second episode is with curt clifton, omnifocus engineer. the next two episodes will feature support and ux. we’re covering all the bases. :)i’ve done podcasts before (see identica...




on fixing that nsnull crasher in overcast

i don’t normally head home after lunch, but today i was on the bus going back to ballard, about to open ibooks on my phone and get back to reading the caledonian gambit (which i’m thoroughly enjoying), when i decided to check twitter first — and saw marco’s tweet about overcast’s oldest crash.i’ve written before about how i love fixing crashing bugs. partly because i’m adamant that an app should, at a minimum, keep running — and also because it’s fun detective work. (i’ve even written a series of blog posts on how not to crash in the first place.)so i took this one as a challenge. here’s how i figured it out:the exception reported [nsnull doublevalue]: unrecognized selector. now, nsnull is a stand-alone code smell: th...




inessential: accessibility

as a young developer i didn’t pay that much attention to accessibility. i figured that most people didn’t need those features, and it was something i could get to later. plus: adding those features wasn’t easy back in those days.things have changed.for one thing, supporting accessibility features — at least on macs and ios — has gotten much easier. it’s almost delightful with how much you get for free and how easy it is to add what’s missing. apple deserves a huge amount of credit for this.but there are two bigger things i keep thinking of.first thing: i want to say that access to computing and communications power is a human right. it’s not, not really — but it would be wrong to deny someone access when, with a little ex...