About Archives RSS Kinopio

Subscribe to New Posts by Email

 
Subscribing…
Subscribed
Error
  • Jun ’16 Designing Glitch – Where We Started
    glitch
    design

    🎹 Updated to replace HyperDev with Glitch


    So last week (in 2016) we launched Glitch (then known as HyperDev/Gomix), a cool way to write a real web-app. It’s been almost a year since DanielX and I first presented the idea to FogCreek.

    Let’s look back 👀✨

    If you turn off the lights, squeeze a lemon in your eye, and squint real hard, you might see some similarities to Glitch today. The asset management stuff wasn’t too far off though.

    Real rough, but good enough to help us convey our vision for web development without the boring parts.

    The next thing we were told to do is come up with some high-level product principles. These also started rough, but we’ve sharpened them up over time – and as the team has grown:

    1. Be the fastest, easiest way to get your own web app and start working on it.
    2. Glitch is real coding. Copy and pasting an answer from Stack should just work like it would on your local machine. If you want, you can take your code and run it on Heroku or wherever.
    3. You should get instant, direct feedback when you edit your app.
    4. You should always feel safe that you won’t lose your work and that you can try crazy ideas without irreversibly breaking your project.
    5. The editor should be a fun place to be because it’s fast, approachable and puts the emphasis on your content and your team.

    (Secret principle #6 is steal from Trello whenever possible)

    While we haven’t nailed all of these yet, we’re steadily working towards them.

    Having these tentpoles made it easier for us prioritize and push for doing the right things – and to figure out what to cut:

    New Project Setup 👎:

    Early on, starting a new project meant making a couple of tough feeling choices. And instead of actually making something, you’d be off researching the joys of Ruby, debating it’s performance and wondering whether you should use Ember, Angular or whatever’s hot on the streets this month.

    This was also an example of us being too opinionated and trying to be too prescriptive about the ‘best way’ to code.

    This clearly violated our first product principle of getting you started fast. So throwing this out and relying on our users to make interesting, remix-able projects felt like a better call.

    Sidenote: I thought using emojis as an interface element would be at least slightly controversial in 2015. 🌈.

    Inserting Snippets For Common Tasks 👎:

    To make it easier to do common coding tasks, I wrote a feature that would let you search and insert pre-made code snippets into your document to do things like init a Slack bot in a js file or scaffold an animation with keyframes in some css.

    This made sense in theory, and was easy to sell people on as a magical feature, but it turned out to be too magical to actually be good:

    In user tests, no one seemed to know what they expected the feature to do. In FogCreek hackathons, nobody really used it even after they were told what it did.

    There were also a lot of hard, scary questions around this feature like:

    • Where would the snippets come from? Who would write and maintain them?
    • How would we do non-trivial snippets that required changes across multiple files? (Silently editing files the user couldn’t see sounded sketchy.)
    • Should we add packages to projects if a snippet required it?
    • Would we be endlessly porting and updating snippets people relied on?

    So eventually we cut the scope of this and simplified it into the ‘Add Packages’ button that appears when you’re in package.json. This feels way more predictable, and will be way easier to maintain and adapt to other languages and package management systems.

    On-the-fly Language Selection 👎:

    Another feature that lived for months in the beta was the ability to change the language of your document and have it auto-magically just work. So if I was in a js file and I wanted to step up my game, I could select coffee and be cool AF.

    Language selection made it easy to experiment with languages and was a nice, contextual way to show users our currently supported languages. People seemed to like it. When it worked.

    In order to do this you had to be using our hyperweb-init library in your project. hw-init did a bunch of things, like setting up express, language compilation and watching. In theory, I thought this might make getting started easier because new users wouldn’t have to trace through boilerplate init code in server.js

    If you’ve ever started an XCode project with Core Data support, you know how shitty boilerplate code can be.

    But actually what happened in testing is that people actually felt less comfortable when they couldn’t see their express init code. Again we crossed over into too magical territory.

    Additionally, going from something like js to coffee was easy, but what about from coffee to python? How would hyperweb-init work in other languages that might not have existing libs for server-side compilation of coffee or less? If I changed server.js to swift, what impacts does/should that have on package management?

    *phew* When your edge-cases have so many branching paths that they start to resemble an AI problem, it’s time to step back and try something else.

    Over the next couple months we slowly trimmed the fat off the welcome-project, and removed any first-party dependencies to better walk the line between simple and transparent.

    Wrapping Up For Now

    So we talked about some things, had some laughs. But I’ve still got so many more Glitch rabbit holes to dive into for later posts.

    In the meantime, If you’re curious, all of my design files are up on github. glitch.sketch is the window into my soul: it’s a little bit of a trash fire in there, but it’s pretty entertaining. I wear my inspirations on my sleeve in these files.

    Glitch-design on github

    Comments…

  • Jun ’16 The Designer's Curse
    glitch
    life

    I’m glad HyperDev is finally out there, and I’m proud that people seem to really like it. But I also can’t not see all the other things we need to do with it.

    I’m with this turtle life

    🐢

    Comments…

  • May ’16 Music and Software
    biz

    Once upon a time…

    Artists Engineers
    Selling albums Selling versions
    Selling albums Selling versions
    CDs Boxes
    Record shops Computer stores

    The awkward teen years…

    Artists and producers Engineers and designers
    Live performances Subscriptions
    Releasing singles Releasing features
    Streaming Web apps, app stores
    Spotify, Apple Web, iOS, Android

    Not too long now…

    👯

    Art and Engineering get closer everyday. Subscriptions push constant iterative improvements. Platforms help us discover new stuff, but as the the relationship between creators and their fans becomes more personal, the best stuff is just between us.

    Comments…

  • Jan ’16 The Kid Pix Way
    learning

    In software, like with art and fashion, sometimes what’s old is new again. When it comes to playful creative software, Kid Pix is a kind of software product we don’t see much anymore.

    In 1989, Craig Hickman released Kid Pix for his infant son who enjoyed Mac Paint on the original Macintosh, but because he wasn’t able to read yet, struggled with the menus and traditional art tool (brushes, paints, pens) based UI metaphors. Kid Pix is charming and engaging in a way that’s aged remarkably well.

    The first time I used Kid Pix it had color and I was a wee tyke in grade 4. It definitely made an impact, probably for no other reason than because it was fun, and had wacky sound effects. Kids are easy that way.

    Looking back on it, Hickman was the rarest of people who type things for a living. Both a talented programmer and an ace designer who used empathy and observation to build a creation tool with a real sense of fun, whimsy and imagination.

    According to his handy retrospective, Hickman designed Kid Pix around some interesting principles:

    • Every feature should either be obvious or should explain itself through use.
    • Be satisfying to use by making the process of drawing as important as the picture created.
    • The program would include tools that would be surprising and visually unusual. Things like like effect filters, stickers and stamps that weren’t based on traditional art tools.
    • The eraser should be whimsical. Because reasons. And because destruction should be as fun as creation.
    • Uses system standard UI conventions to help users new to computers learn basic principles.

    I’ve learned in the last couple months how important laying-out and describing your product principles upfront can be. It’s work that pays for itself over and over again – especially when you add teammates.

    Good principles force you to make tough, sometimes moral, choices upfront based on what personally feels right. They may not be perfect from the start, but just like life, changing as you grow and learn new things is totally cool.

    In grade 4, Kid Pix was simply a good time with colors.

    20 or so years later, it still is. But now it’s obvious how good Hickman really was. His process was timeless, so was the result.

    Comments…


Subscribe to New Posts by Email

 
Subscribing…
Subscribed
Error

I make Kinopio, the thinking canvas for whiteboarding, research, moodboards, and note-taking that works how our brains work.
No sign up required.

Connect your Thinking →