HNHacker News
TopNewBestAskShowJobs

tumultco

660 karma · joined September 14, 2010

Founder of Tumult Inc., maker of Hype - http://tumult.com/hype/.

my token usage: tkmx.odio.dev/user/jmfd

submissionscomments
tumultco··on Why Objective-C
Best I can tell, it turned into Google Web Designer!

I'm on the outside, but best I can tell:

- You're thinking of a UI design tool called "Ninja"

- Google purchased Motorola Mobility and the Ninja project got cancelled

- Google launched Google Web Designer, that basically had an almost identical UI. As far as I can tell the internals are different, but probably shared some code or at least design work.

tumultco··on Xcode 26.3 – Developers can leverage coding agents directly in Xcode
Hit command-t for file > new > new window tab. Then if you want you can drag out the tab into a new window. Now you can view these both at once.

Window tabs are weird but powerful. You can even name them and then have the preferences > behaviors show or hide these named ones at certain times.

tumultco··on Subvocalization: Toward Hearing the Inner Thoughts of Developers (2011) [pdf]
I don't know about "working" but most recently it looks like AlterEgo has gotten closer to a shipping product and did a publicity launch ~a month ago.
tumultco··on Too much serendipity
To give some more context, Fleming's job was an antibacterial researcher, and also molds were also previously known to have these properties. In some ways, the lucky part was others finding his work and developing it. I found this video on the development of Penicillin a pretty interesting watch:

https://www.youtube.com/watch?v=mhXmkDapHWg

tumultco··on Making CRDTs More Efficient
I only have the "final" 13.5kb version to test against. It compresses very well:

  gzip:     6.95kb    (98.9%)
  brotli:   5.99kb    (99.0%)
tumultco··on Making CRDTs More Efficient
I was curious about this myself. I extracted the json for the "uncompressed" image:

https://gist.github.com/jmfd/8dbb96fcd8a1ba1e8ad6e9167bd70ce...

And then tried these commands against it:

  gzip:        39.56kb    (93.7%)
  zstd:        35.86kb    (94.3%)
  gzip -9:     35.51kb    (94.4%)
  bzip2:       24.35kb    (96.1%)
  zstd -19:    24.01kb    (96.2%)
  brotli:      21.42kb    (96.6%)
(I'm not up-to-date on default web server configs, but I imagine most would automatically transmit with gzip over the wire for json?)
tumultco··on Mimestream, a native Gmail app for macOS
Context is the rest of the sentence:

> and polish on the app for free forever

But even "bug fixes" are sometimes not cleaning up your own issues; for example, macOS updates regularly will break apps. It's like paying someone to lay down a lawn for you and expecting the grass will never need cutting.

tumultco··on Mimestream, a native Gmail app for macOS
> It also feels super shitty to launch 1.0 out of the blue AND then expire the public beta builds that we have been using for 3 years with 4 days notice...

The 1.0 has a 14 day trial, so that at least extends it to 18 days notice.

It really seems like the beta program might have been a victim of its own success (and ridiculously long duration).

It is interesting to look at it through the lens of what's the social contract between a beta user and a developer? I feel the basics are that users get access to features ahead of time in exchange for reporting bugs if they discover any, but nowadays perhaps folks think there should be more they get out of it? Of course it isn't fun to beta a pre-1.0 product and have the workflow disturbed because the price isn't palatable, but that's the risk?

tumultco··on A collection of 88x31 pixel web buttons from the 1990s and 2000s
If you're on a retina display, I recommend adding this CSS so it uses nearest-neighbor interpolation for the scaling:

  img {
    image-rendering: pixelated !important;
  }
tumultco··on Lexical – a web text editor framework that powers Facebook
Thanks for your work in developing this!

Does Lexical have a feature to set arbitrary CSS on a particular selection range? I've been looking for a solution to do this since the WebKit's -[WebView applyStyle:] is deprecated as part of WebView Legacy. It isn't clear to me from glancing at the docs if RangeSelection.formatText() or other methods can handle anything or just a subset of styling code. Thanks!

tumultco··on Jsc: My New Best Friend
It wasn't in the above list, but Apple did completely remove PHP in Monterey.
tumultco··on BBEdit 14
I made a revised icon that imho fits in better with the Big Sur's look and works at Dock sizes:

https://twitter.com/jmfd/status/1417595485653635073

tumultco··on Adobe to remove Flash Player from web site after December 2020
I'd say the difference in HyperCard and Visual Basic is that they also define their runtime environment. The IDE can grow with the runtime. Writing tooling against a vast runtime like the web is much more difficult and daunting.

A 1.0 would need to address a large enough surface area of the web to be useful. There's also a discordance between hand-coding "friendly" HTML/CSS and what would be exposed in a WYSIWYG tool. Further complications are all the new and old bugs in browsers.

That said, every day I was working on Hype 1.0 in early 2011, I would nervously check Hacker News for a "Show HN" post for a HTML5 animation app that would steal the thunder; luckily none came. This is even more surprising given Hype exports were mostly compatible with Internet Explorer 6 -- such an app could have been written long ago.

tumultco··on Jim Keller to Depart Intel
It echoes a Confucius quote I like: “Learning without thinking is useless. Thinking without learning is dangerous.” (Analects 2:15)
tumultco··on Reviving a 16-year-old Mac App
Note that we do have upgrade discounts available, and if you purchased v3 after Oct 14, 2017 it is a free upgrade to the corresponding v4 edition.

https://tumult.com/hype/support/upgrade-discounts/

tumultco··on Reviving a 16-year-old Mac App
Apps did start doing this before, definitely. I always felt they were arrogant in assuming they deserved a spot in my Applications folder. I should be able to put the app wherever I'd like. At the same time dmgs seem backwards-looking since disks were "old" technology so why use an image format for them? So I was personally against distributing my software this way, but Apple forced my hand with the Gatekeeper app translocation change.

Apple themselves ships some software, like the non-Mac App Store versions of Xcode, as xips (signed zips), but for some reason decided 3rd party developers cannot use these.

Apples recommendations are in the "Shipping your Signed Code" section of this tech note:

https://developer.apple.com/library/archive/technotes/tn2206...

tumultco··on Reviving a 16-year-old Mac App
I absolutely wondered the same thing when doing the update as the world isn't 2003 anymore. But I have found it useful even when doing modern web development as a quick playground to try snippets. "Live as you type" speed can change your iteration flow vs. an often slower rebuild+auto reload cycle.

This was more of a passion/craft project than one I expect will make a gigantic impact. A side motive was to help move out some code of our Hype app to an "app shell" where I can more quickly make other applications with the same trial/licensing/windowing/etc. components.

tumultco··on Reviving a 16-year-old Mac App
Which could sometimes be a ridiculous amount of time itself too!

https://twitter.com/rosyna/status/1194765305987227649

tumultco··on Reviving a 16-year-old Mac App
Exactly! The primary purpose of the `altool` for notarization is probably to do so in an automated manner, but it will not block while waiting for notarization. So to make this part of automation, nearly every developer needed to add polling loops and parse the response to figure out if it was done! The proper text to wait on also isn't obvious nor documented; if the status says "Package Approved" it may not even be complete yet.

Further, the first version would write status to standard error. Clearly a mistake, Apple did fix this in a future version... which of course broke everyone's automation around it. My polling script now logs the tool's stdout and stderr just in case.

tumultco··on Reviving a 16-year-old Mac App
Yes, it is really just a different set of tradeoffs now.

It isn't just notarization, it is also that notarization requires app hardening which has very strict rules. Shipping an app with 3rd party binaries that supports older versions of macOS is especially tricky to get right.

Also using direct distribution you have to deal more with Gatekeeper.

One particularly fun issue is that if you distribute your app as a zip and a user downloads (to their standard ~/Downloads/ folder) and runs it, then Gatekeeper will use path randomization (aka app translocation), which effectively makes the app look like it is on a read-only volume. Older versions of the sparkle update framework would not show update prompts if on a read-only volume (as what's the point?), and therefore if a user continued to run an app from their downloads folder they would never get updates!

Apple made this change without informing any developers that their users could be left behind for a while. I imagine this security feature prevented users from getting many security fixes.

The way to disable the app translocation is to have a user manually drag the app to their Applications folder, which is why so much software is distributed in DMGs now with the Applications folder symlink.

tumultco··on Reviving a 16-year-old Mac App
I've definitely seen apps that do provide instructions on how to do this; off the top of my head I know SwitchResX requires it for a lot of the features [1]. There was also the "varsectomy" bug debacle of Avid Media Composer users disabling SIP, which then lead to a bug where a Chrome update broke macOS [2].

I won't say "security" :) but I'm sure a lot of app developers do not want to be held responsible for jeopardizing users' machines or data.

While Whisk doesn't have to deal with SIP, it still has to get around sandboxing on the Mac App Store version to be able to read files that are associated with the .html page (like in an <img> tag). We pretty much need to throw up a scary dialog asking users to allow access via an Open Panel. On any "normal" (non mac app store) app this is implicitly granted, and I'm sure users don't give it a second though. I personally was worried about what the reaction to asking for permission would be and so wrote up a whole explanation on the sandboxing technology and reasons for our request [3]. Originally I did prompt the user to choose the root level of their file system, but App Store review would only approve of "project folders."

[1] https://www.madrau.com/support/support/srx_1011.html

[2] https://arstechnica.com/information-technology/2019/09/no-it...

[3] https://tumult.com/whisk/documentation/v2/app-security.html

tumultco··on Reviving a 16-year-old Mac App
Removing color from toolbar/sidebar icons and fixing all line weights reduces the personality of software as well as increasing usability cognition. Even with years of use, I still have trouble quickly discerning the difference between many of Mail.app's toolbar buttons!
tumultco··on Reviving a 16-year-old Mac App
Thanks! Apps back then also tried much more to adhere to the Mac HIG, and in doing so it was pretty easy to wind up with at least not an unattractive app.

I assume you are referring to the inspector panel on your other left; the two main reasons it is wider are (1) that it shows HTML5 validation error text descriptions in the 3rd tab and (2) this is the same width we use in our other application Hype, so they now look like they belong together. I did have a moment of feeling that I was contributing to the "war on information density" with this change.

tumultco··on Where are all the animated SVGs?
I'd be remiss to not point out: the latest version of Tumult Hype [1] added vector shape animation, line drawing, and morphing. It uses SVG under the hood, though SVGs cannot be imported currently.

The shape morphing intelligently figures out the best morph such that the from- and to- shapes can have vastly different control points.

[1] https://tumult.com/hype/whats-new/4.0/

tumultco··on The Call to Kill Adobe’s Flash in Favor of HTML5 Is Rising
Shameless plug: we've been building Tumult Hype over the past 4 years because we knew there'd need to be an HTML5 toolchain to let designers accomplish what they once did with Flash:

http://tumult.com/hype/

It isn't a Flash Professional clone though; we've made a lot of decisions based on the newer medium and newer ideas.

tumultco··on List of April Fools' Day Announcements
Introducing Tumult Hype Edition

http://blog.tumult.com/2015/04/01/introducing-tumult-hype-ed...

Light theme, Dark theme, and now the Gold theme!

tumultco··on Show HN: Hype Pro uses Matter.js for Physics animations without writing code
We're integrating with the awesome project Matter.js (http://brm.io/matter-js/) as a Physics engine for our HTML5 animation app. Here's a quick demo video showing it specifically in action:

https://www.youtube.com/watch?v=LHI-hNjiors

In developing, I'd often spend hours playing with it making complex rube goldberg setups and pinball machines :).

tumultco··on Astropad: Turn your iPad into a professional graphics tablet
Interesting, I'm on the iPad mini 2 (the first retina mini). I'll have to dig up my iPad 3 and try. I've heard that the Air 2 is especially bad since Apple change the surface.
tumultco··on Astropad: Turn your iPad into a professional graphics tablet
Of all the styli for the iPad, the Jot Touch 4 seems to be the best as far as accuracy. It is the only one I'd put in the "usable" category." Surprisingly the newer Jot Touch Pixelpoint is horrible compared to this (missing strokes, not keeping straight lines, not being able to detect near the edges of the screen) and I wish I could return mine.

The Cintiq is a nearly natural pen and paper experience, but if I'm on the go, the Jot Touch 4 + AstroPad has worked out well.

tumultco··on Matter.js – A 2D rigid body physics engine for the web
When I was evaluating engines for Hype Pro's [1] physics system, I compared based on file size, commit/project activity, how easy it would be to modify and integrate, and the license (for obvious reasons). I looked at Matter.js, Verlet, PhysicsJS, p2.js, JPE, Newton, and box2d-js. While many have their respective strengths, overall Matter.js stood a notch above the rest. The code has been easy to work with and Liam has also been responsive in fixing bugs or accepting patches. It is truly a gem of a project.

[1] http://tumult.com/hype-pro/

Page 1 of 3Next →