Profile

Cover photo
Verified name
Ian Bicking
Works at Mozilla Corporation
Attended Earlham College
Lives in Minneapolis, Minnesota
8,909 followers|1,287,381 views
AboutPostsPhotosYouTube

Stream

Ian Bicking

Shared publicly  - 
 
+James Long talks at length about the mobile web and performance concerns/etc: http://jlongster.com/Radical-Statements-about-the-Mobile-Web

His conclusions end up being largely that the DOM isn't going to work to create high quality mobile applications.  Now I'm biased, because I really like the DOM, and am personally invested in its success, but I think the alternate evolution from the tension he describes isn't so much the DOM will be fast enough, but that there's another path of competition.

A pattern of success I see: availability beats fidelity.  Native apps have better fidelity.  On mobile apps can have as good or better availability too, so... not an immediately optimistic statement.  The DOM isn't helping the web much here, but I think it could.  I think having a declarative, concrete representation of an interface has the potential to build availability (using a very broad definition of "available" – available to a multitude of uses, including ones not planned on by the original author/developer).

Do 60fps, retina displays, "beautiful" interfaces, and so on form the feature set that will drive our future platforms?  IMHO only if we're lazy, if we accept content and the DOM as opaque, and if we give up on high-level (i.e., platform-level) mediation and enhancement of experiences.
I drafted a long post about the mobile web, but then Flipboard released their new mobile site with a detailed explanation of why they used canvas instead of the DOM to layout content. Subsequent blog posts ensued in response. Since the topic of 60 FPS mobile apps has already been discussed ...
3
Add a comment...

Ian Bicking

Shared publicly  - 
 
I've generally liked git subtree instead of git submodules, but it has some serious usability problems.  Interesting to see git subrepo, which mostly uses the git subtree model but with improvements that all touch on the actual problems I've had: https://github.com/ingydotnet/git-subrepo/blob/master/Intro.pod#git-subtrees
8
2
Eric Hanchrow's profile photoRichard Flosi's profile photoMohamed Zenadi's profile photoDieter Hsu's profile photo
2 comments
 
I'll need to look into this at some point. You know, when I'm not so busy. I've done a lot of reading and while was discouraged from git submodule initially, I think that is probably what I would try first. What problems did you have?
Add a comment...

Ian Bicking

Shared publicly  - 
 
Postgres has pub/sub capabilities built into it: http://www.postgresql.org/docs/9.1/static/sql-notify.html – something I did not previously know.

Just some slides, but it shows a reasonable model for handling websocket traffic in a Node/SocketIO process with the database as a coordination layer: https://denibertovic.com/talks/real-time-notifications/ (does totally have a SQL injection attack built in to the example though).  Some might find this a useful way to add realtime updates to a traditional app server (e.g., something like Django that isn't very WebSocket friendly).
Real time notifications using Postgres and Socket.io
14
3
victor noagbodji's profile photoAlexander Shorin's profile photomonkut h's profile photoTobias Rho's profile photo
 
thanks for sharing.
Add a comment...

Ian Bicking

Shared publicly  - 
 
Using React, and server-side rendering, there are so damn many options and choices of how to lay things out.  It gives me little confidence in our choices, because the simple quantity makes it seem unlikely that they were all good or even reasonable choices.  Probably in a few days I'll feel okay about it, but geez...
4
Ian Bicking's profile photoDavid Ascher's profile photoCraig Landry's profile photoBlair McBride's profile photo
5 comments
 
So easy that you're likely to change your mind numerous times during any given project ;)
Add a comment...

Ian Bicking

Shared publicly  - 
 
I'd like to have a space to keep secure, collaborative text notes (maybe just one long log) to coordinate deployment notes, manually log activity, etc.  It would be nice to be able to append via curl (i.e., an API I can use from a shell script).  Thoughts?
1
Ian Bicking's profile photoMatthew Gregg's profile photoBrantley Harris's profile photoTim Hughes's profile photo
7 comments
 
I use sparkleshare to store all my notes in git. It is like dropbox but with git as the backing store. Best part is if I am editing sphinx documents I can stick a githook in there to build my docs.
Add a comment...

Ian Bicking

Shared publicly  - 
 
A thought I had with React.js server-side rendering: the basic pattern is to make the markup on the server, then fix up the markup (including event handlers, or controls dependent on status).  The result is that while you are doing server-side rendering, it doesn't have to be very accurate.  It can be stale.  It can serve everyone unauthenticated UI. (Though this could cause bad stuttering depending on what the live updates shift around.)  It's more like a first approximation.  And also a robot view of the page, which again can be an approximation.

This also makes full-page caching more appealing.  E.g., using Varnish instead of an object cache like memcached.

I'm still a little fuzzy on how we would want to deal with getting the fully accurate data from the server.  I think it makes sense to send this data with the page itself.  But if we aren't guaranteeing anything about that data, then you still need to get the "real" data, which maybe means sending the data twice (though a cheap 304 would be common).

I can imagine actually using <script src="/page-state.js?url={this_url}&if_modified={date_page_was_generated}"></script> at the bottom of pages, thus immediately triggering a fetch.  You wouldn't even want a 304 in this case, because you want to serve back an empty file if there's been no modifications.
4
Richard Flosi's profile photoIan Bicking's profile photo
2 comments
 
+Richard Flosi I'm thinking I could just punt on rendering authentication server-side, because why not?  Though it means my templates will need to account for "logged in", "not logged in", and "don't yet know", which maybe isn't worth it.  It makes the page super cacheable to ignore auth and stuff, but maybe that's not worth it.
Add a comment...

Ian Bicking

Shared publicly  - 
 
A Hayekian theory of artificial intelligence... I think that could mean something. What?
1
Christian G. Warden's profile photoEvelyn Mitchell's profile photoDarius Bacon's profile photoIan Bicking's profile photo
4 comments
 
http://www.whatisthought.com/eric.html I assume – economic models of intelligent agents.  Interesting stuff.

In my first thinking, I wasn't thinking about economic analogy, but really thinking about the direct influence of economic signals on the definition and development of artificial intelligence.  That is, only in doing work that offers a reward do we really understand intelligence for what it is.  

That is, we define "intelligence" as solving one of a number of quintessential problems.  But in doing so we make a lot of assumptions about the approach, while effective intelligence might take other forms.  I don't know, my thoughts are kind of half baked.
Add a comment...

Ian Bicking

Shared publicly  - 
 
I gave this podcast a relisten the other day: http://www.econtalk.org/archives/2013/09/tyler_cowen_on.html

It's a conversation on the future, based on Tyler Cowen's deliberately boring predictions.  I'd call them "conventional" predictions, but they aren't – conventional predictions tend to be breathless and designed to gain attention, rather than trying to be correct.  Cowen's predictions aren't radical, but then they start to talk through the implications and it feels like it matters.  As a father, I feel an obligation to prepare my children for this future.  I'm not going to stop the future, I can only change it in small ways, but I can have a significant effect on the children in my life.  I haven't really decided what this implies for me in practice.

One thing that struck me this time through is there discussion of politics towards the end.  Cowen thinks that the highly privileged will grow in number, he talks about something like 15% of the population living like the millionaires of today.  I haven't read his book so I don't know how he comes to that, but it feels reasonable, I see that expansion happening now.  That class of people is highly invested in The System.  I imagine it could be like the new political middle class – that is, a group of people who have enough resources to hold some political autonomy and initiative, while also being a high enough quantity of people to matter in the polls and as part of the on-the-ground political conversation.  The result of this would be a more conservative politics, specifically more resistant to populism on the right and left.  Combine it with an aging population and things start to look downright boring.

Another thought I had as they were talking about higher education – they talk about how the best presenters will have a larger audience, the best schools will still have a clear tenure track, but it's unclear what everyone else does.  What will we be looking for in the next generation of professors?  MOOCs to me seem more like an exercise in revealing the weaknesses of our current system.  The system tells itself that teaching is important, and the instructional material is important, and assignments and blah blah blah... but the result is a bunch of web pages and videos and online forums, and it's kind of pathetic-looking.  To the degree higher education succeeds at its goals (and I don't think it's particularly successful), it doesn't understand quite why.

The new class of worker they talk about is the coach.  This is something computers don't do particularly well.  I think in part because the computer can never imbue a topic with importance. Computers cycles are cheap.  No one is giving up anything to have a computer email you, or talk to you, or remind you of things. To make oneself accountable, even self-accountable, requires some sacrifice. And there's something about a human coach that embodies that.

What might it mean if we combine a coach with the MOOC, or a whole set of available tools and environments?  This coaching happens at various times in upper education, but it's very ad hoc. Who teaches you study skills? Who has an honest conversation about your motivations and fears? Who do you go to when you don't think things are working? Sometimes there is a trusted person, a teacher, parent, professor – but usually no one.

Imagine after high school, you decide on a set of goals.  Not a five-year plan, just some next steps. Maybe you don't know what you want to do next, so you want to explore a breadth of topics. Maybe you want to accomplish something specific. Maybe you want to progress along an academic track. Then you make a plan. Maybe you need to understand why your work is relevant, so you need some real world experience. Maybe you want to find yourself, and so you want something more like the less worldly environment of a college campus. For the price of a college education (which apparently we consider a reasonable price for that post-high-school experience) you can buy a lot of personal attention and a lot of different experiences.

A coaching model could seem like a lot of wimpy handholding.  Like a formalization of laziness.  And maybe it would be – but in part it just seems like an honest attempt at guidance.  Much more honest than our current educational system, which throws people into a structure and calls it a meritocracy that some people succeed and some do not, when it simultaneously is an educational institution where it's supposed to help people succeed.
7
2
Sam Penrose's profile photoIan Bicking's profile photoAde Oshineye's profile photoBaun Johltz's profile photo
5 comments
 
Just saw this come up on Hacker News: http://www.antipope.org/charlie/blog-static/2015/02/a-different-cluetrain.html

Some similar data points with a much different conclusion. In comparison I find it terribly exaggerated. Specifically the implication that a security apparatus implies violence, not an intolerance for disruption
Add a comment...

Ian Bicking

Shared publicly  - 
 
Another blog post in my Product Journal series.  This one thinking through what I want to build when I'm targeting internal demos.
I've been trying to work through a post on technology choices, as I had it in my mind that we should rewrite substantial portions of the product. We've just upped the team size to two, adding Donovan Preston, and it's an opportunity to share in some of these decisions.
2
Evelyn Mitchell's profile photo
 
"Now I wonder if part of the danger of a rewrite isn’t the effort, but that it’s an excuse to go heads-down and starve your situational awareness." That is a keeper quote.
Add a comment...

Ian Bicking

Shared publicly  - 
 
The Shipping Culture Is Hurting Us: http://bitbashing.io/2015/02/16/shipping-culture.html (a _Get off my lawn!_ style rant)

Starting it I thought it might be similar in sense to my MVP post from a few weeks back (http://www.ianbicking.org/blog/2015/01/product-journal-mvp.html).  But no, it's mostly about technology choices.  And I think that's quite the point.  For instance, to quote:

"The problem is that these technologies, being so beginner-friendly and aggressively marketed, rapidly pick up steam and become the “cool” things to use, regardless of actual merit or lack thereof. Nothing illustrated this more to me than when I went to my first (and only) hackathon last year. I went with the assumption that I would see a wild variety of projects using a wild variety of technologies. Instead, I found the vast majority of contestants there writing some web app, usually with Node.js and MongoDB. It certainly didn’t help that MongoDB people were there, at the hackathon, marketing their wares."

Were the people at the hackathon trying to show off some awesome Noding and Mongoing?  Probably not, they were probably trying to make something they thought was cool.  Nothing the author talks about in this article actually is about making something cool, it's all tools.

I think there's reason to be skeptical of "shipping culture" as a way to make cool things.  Maybe it's because I'm sensitive to the obligation of work in the wild.  The danger of investing in conventional wisdom. But the tech?  It's like letting yourself be bogged down by legacy you haven't even acquired yet – all the obligation of having shipped something without any of the reward.
9
Aaron Hamid's profile photoMatt Kline's profile photovictor noagbodji's profile photoIan Bicking's profile photo
4 comments
 
To be fair, though I haven't started with this part of the project, I am getting ready to start something using PostgreSQL, and it does make me feel strangely light to expect to use a product that is very reliable and thorough in all its features. Like... maybe it's okay to use something that isn't deliberately halfassed?  Why is it again that we all use MySQL?  It's like we don't let ourselves have nice things, even when they are readily available.
Add a comment...
 
I receive a notification from an app that led with "FYI" – i.e., nothing actionable expected.  A thoughtfully humane indicator.

Might not work in email notifications because every human-like indicator has been coopted for marketing purposes.  Casual language is almost a negative now, at least if you admit your email comes from a bot you can establish an honest relationship with the recipient.
2
Add a comment...

Ian Bicking

Shared publicly  - 
 
Any pointers to the state of the art in open source article text extraction? Having a hard time separating the wheat from the chaff.
1
Ian Bicking's profile photoAri Hershowitz's profile photoEric Casteleijn's profile photo
5 comments
 
At a previous job we used Goose with some success. We used the Python port, with modifications for our particular use case. The Java original, or the Scala rewrite might be better maintained.
Add a comment...
People
Have him in circles
8,909 people
Tojo Chacko's profile photo
VIPIN KUMAR's profile photo
Douglas Stanley's profile photo
Michael William's profile photo
FAYE AUDRA's profile photo
Tanim Hassan's profile photo
Nox Dineen's profile photo
Deny Heringer's profile photo
Andy Grover's profile photo
Work
Occupation
Computer Programmer
Employment
  • Mozilla Corporation
    present
  • Imaginary Landscape
  • The Open Planning Project
Places
Map of the places this user has livedMap of the places this user has livedMap of the places this user has lived
Currently
Minneapolis, Minnesota
Previously
Minneapolis, Minnesota - Richmond, Indiana - Chicago, Illinois
Story
Introduction
I'm a programmer.  I work in Mozilla Labs, where we try to figure out new ideas for the web and browsers.

I've been doing open source programming since sometime in college.  All my actually important contributions (and many projects) have been in Python: Paste, WebOb, WebTest, pip, virtualenv, FormEncode, MiniMock, and a bunch of others, quite a few of which no one else ever cared about ;)

Since moving to Mozilla, and because of events in my personal life, I've stepped away from most of those old projects.  Hopefully it will leave room for new projects, but I also find myself in a period of reinvention, moving from server to client, from Python to Javascript, and frankly I'm just older.  I remain dedicated to free/open source software; and while that is practical and has been professionally rewarding, I am more motivated by the principle and politics of open source than the engineering.

I work remotely out of my home, in the Powderhorn neighborhood of Minneapolis.
Education
  • Earlham College
    Computer Science and Math, 1995 - 1998
  • South High School, Minneapolis, Minnesota
    1991 - 1995
Basic Information
Gender
Male