Suggestion: add some metadata at the top level, including a bounding box that includes all nodes so that you can encapsulate a canvas and include it within another context before having created all the elements within it. It's redundant information and it needs to be kept in sync with the nodes and edges, but it's very useful for applications working with your data.
Also, this is not very json-ish, but optimizing your serializer so your metadata is always written first is pretty handy for embedding, since it allows you to use a pull parser and do useful things before the entire doc is parsed. (e.g. picture a huge doc being embedded and starting out as just a box and having its elements filled in async. You can't do that well if you don't know the bounding box ahead of time)
+1 for bounding box. It would save a lot of computation when trying to determine the initial scale for the canvas, especially if text is involved. It would also make the format useful for fixed-size canvases, not only infinite ones.
> There is no way I'm going to suffer the ergonomic hell that is a laptop for a second longer than I absolutely have to
I agree with this, but intentionally choosing a trackpad to put on your desk is just accepting a portion of this hell, in my opinion. The trackpad is an RSI torture device to me, because of the way you have to hold the muscles in the back of your hand tense so all but one finger is a little higher than the others.
On the flip side, one of my colleagues was overjoyed when Apple released the Magic Trackpad, because it's worlds better for her to use with her arthritis than any kind of mouse she's tried.
For me it's either a trackpad or a trackball. I find that any pain comes from moving my wrist and the Magic Trackpad is large enough that I move my entire arm and not the wrist.
It's great that we have options, so that people can pick what works for them. It is a little sad that Apple is pretty much the only option for an "external" trackpad though.
Back in the 90s I had a 102-key keyboard with a built in trackpad (and dual PS2 connectors to hook up to the PC) that was actually pretty nice—except if I tried using the trackpad when my fingers were damp in which case it was hell. I bought it in anticipation of moving to a laptop (which didn’t actually happen for another 5 years), but it was the first step in my becoming a trackpad aficionado.
You and me both. A friend introduced me to vertical mice. I regretted the purchase for the first hour, then came to kind of like it, and now you couldn’t pry it away from me.
I've connected an Apple Magic Trackpad (external bluetooth trackpad that sits on your desk) to an ubuntu machine and it's wonderful. There are still some software things to solve to get the acceleration perfect and things like scrolling working, but having trackpad hardware that isn't trash goes a really long way.
I tried doing this with a Thinkpad but the BT connection would cut out periodically and I gave up. Did you have to do anything special to get it working?
This is a fascinating comment to me. I understand not really feeling jazz, but it doesn't even sound like a song to you? My only suggestion is to jump into the middle of a few songs and try to hear the rhythm and song structure. They can often be difficult to pick up when they start slow. All Blues might be the easiest. I sincerely wish you luck, because it's really incredible music.
You mean just for fun? I'm having a hard time imagining real value in doing something like karma-farming on HN. Not to mention, that would be more like anti-karma-farming.
> they had to make sure their site layout worked on WebTV
They weren't big enough to benefit from the fact that one of the components of WebTV's architecture was an entire "page patching" database and proxy that would fix HTML from popular sites that didn't work correctly on their browser.
There's mess and there's "override $PATH in 50 files" mess. "The old code is a mess" is a really easy conclusion to come to when trying to grok a complicated codebase, and it's not always correct.
Genuine question, is your experience that it is often more your lack of understanding than the code actually being a mess? I ask because while I've been guilty of judging too soon myself, it's much more common the code is just bad, written by someone who's already left. (I work in healthcare and startups though, so different industries are probably different. Also, I've probably been the person who wrote that bad code too!)
It's usually a little of both. Sometimes it's a little messy but before you get full understanding, it appears a lot messier. But having the experience of coming across code that I think sucks until I fully understand it and recognize it as something I wrote two years ago (but maybe someone moved to a new location, so I didn't remember it) makes me a little more humble when it comes to judging code.
Note also that a dedicated email service like Fastmail has a lot fewer ways you can accidentally violate TOS than, say, GMail. Your google account can get TOS'd for activity on YouTube, Drive, Chat, Photos, Docs, Blogger, etc. When was the last time you heard about someone getting TOS'd for the contents of an email being misunderstood?
Also, this is not very json-ish, but optimizing your serializer so your metadata is always written first is pretty handy for embedding, since it allows you to use a pull parser and do useful things before the entire doc is parsed. (e.g. picture a huge doc being embedded and starting out as just a box and having its elements filled in async. You can't do that well if you don't know the bounding box ahead of time)