HN user

nullpilot

93 karma

Always looking for the next rabbit hole.

ml@nullpilot.de

Posts0
Comments37
View on HN
No posts found.

I believe Minuum is the only app I ever paid for on the Play Store, after having followed it since the Kickstarter campaign. It was the only option that made typing on a small touchscreen feel mostly frictionless for me, contrary to the varying degrees of frustration of other options. As a result, I now hardly type on my phone.

For the past decade or so my bookmark has been set to /feed/subscriptions and I can only recommend that. The one or two times a year I end up on the front page act as proof it should remain that way.

If you don't enjoy composing music, just don't do it

This supposes that the music is the end goal, and the very point of my comment is that it doesn't always have to be, and in those cases "just don't do it" also means not doing whatever comes after.

Just as you state below, this doesn't replace creating music for the creation's sake. I don't believe it will, or should. It merely replaces having nothing at all, or having the 100,000th video with the same upbeat stock sound.

If you're trying to maximize employment, composers aren't the first, second, or tenth place to go looking. If you're trying to say artists will bleed income, they already have for decades, and will continue to. The ones that make a living out of it mostly get their income from live performances and merch, and maybe adtech on social media platforms.

By the same logic synthesizers shouldn't have been invented that allowed people to make advanced sounds without tediously learning an instrument first, consumers should remain priced out of microphones and editing software, etc.

Like I said, I am not trying to feign ignorance on the drawbacks of the tech which is very real and far from negligible. I am not a tech bro AI maximalist. I just do believe that hyperbole will not put the djinn back into the bottle, and pretending like there isn't a real market between nothing and paying or being a composer isn't adding anything to the conversation.

Yup. Everything left and right of being an email inbox is a bit iffy, and that makes it feel a bit incomplete at times. Like I said, I like it a lot, and it provides a lot of value for the price I pay for it, but I wouldn't mind an option with just a slightly wider feature scope.

Yeah, you're right. Just a hosted inbox alone would be hard to differentiate in the market and I have no answer for that. For hosted email with auxiliary services there is room to carve out a market. At least that's where I see some value. As for being better: It really doesn't have to be. It just has to appeal to a different audience. I think non-VC funded SMBs that don't have Silicon Valley funds to spend on a dozen different per-seat products is a pretty big market.

What I am thinking doesn't have to compete with the whole Office or Google Docs suite, or HubSpot. There is imo enough value in being an economic all-in-one email solution for "the rest of us". Point DNS there, get email, CRM, maybe even a small transactional mail quota and some marketing email features.

I have two projects I would onboard yesterday if this existed, and I have spent more than a hot minute thinking about going for it myself, just to scratch my own itch. The main reason so far that I haven't is that Migadu + Resend is enough for my needs at this time, and I can do without CRM for now.

I think there could be, sort of. I am currently using Migadu, which works great and I don't plan on leaving. Their selling point is that the amount of domains you add is not limited. It's affordable and reasonable, and a great option as indie dev with multiple projects. No fictional per-seat pricing that does not correlate with costs to the provider.

What I think is outside their target market, but what would be a great next step for projects with slightly more needs would be a Google Workspace/Outlook sort of service with a similar approach. Simple CRM features, shared contact management, calendars, signatures, etc. Roughly what Proton is doing without the Silicon Valley pricing, or maybe even Hubspot.

I think the main conversation to be had is about incentives.

As operators of app stores, Google and Apple have no incentive to remove shovelware, as they earn a healthy share of every buck made by their creators, at almost no cost.

Similarly, ad networks have no incentives to remove harmful ads, as long as nobody complains enough to cut into profits.

And above all, social media platforms have little to no incentive to remove emotionally manipulative content. It's effectively a symbiotic relationship between the content and "the algorithm".

How do we change the incentives without resorting to censorship? I think the government bodies have in part failed to address these things, because the product to be regulated is information. It's always a slippery slope towards censorship, which makes for a perfect target for lobby work.

Duckduckgo for navigating around the web (bangs, searching docs, etc.) i.e. I know where I want to end up. Kagi for the rest.

Google pretty much only for image search and maps, and even those have better alternatives now.

This sounds like "I don't know what a wheel is, but if I chisel this square to be more efficient it might work". Sometimes, it's better to not reinvent the wheel, but just use the wheel.

I'm not sure I can follow. This isn't specific to MP4 as far as I can tell. MP4 is what I cared about, because it's specific to my use case, but it wasn't the source of my woes. If my target had been a more adaptive or streaming friendly format, the problem would have still been to get there at all. Getting raw, code-generated bitmaps into the pipeline was the tricky part I did not find a straightforward solution for. As far as I am able to tell, settling on a different format would have left me in the exact same problem space in that regard.

The need to convert my raw bitmap from rgba to yuv420 among other things (and figuring that out first) was an implementation detail that came with the stack I chose. My surprise lies only in the fact that this was the best option I could come up with, and a simpler solution like I described (that isn't using ffmpeg-cli, manually or via spawning a process from code) wasn't readily available.

You don't need to know this any more.

To get to the point where an encoder could take over, pick a profile, and take care of the rest was the tricky part that required me to learn what these terms meant in the first place. If you have any suggestions of how I could have gone about this in a simpler way, I would be more than happy to learn more.

No doubt that my limited understanding of these technologies came with some naive expectations of what's possible and how it should work.

Looking into it, and working through it, part of my experience was a lack of resources at the level of abstraction that I was trying to work in. It felt like I was missing something, with video editors that power billion dollar industries on one end, directly embedding ffmpeg libs into your project and doing things in a way that requires full understanding of all the parts and how they fit together on the other end, and little to nothing in-between.

Putting a glorified powerpoint in an mp4 to distribute doesn't feel to me like it is the kind of task where the prerequisite knowledge includes what the difference between yuv420 and yuv422 is or what Annex B or AVC are.

My initial expectation was that there has to be some in-between solution. Before I set out, what I had thought would happen is that I `npm install` some module and then just create frames with node-canvas, stream them into this lib and get an mp4 out the other end that I can send to disk or S3 as I please.* Worrying about the nitty gritty details like how efficient it is, many frames it buffers, or how optimized the output is, would come later.

Going through this whole thing, I now wonder how Instagram/TikTok/Telegram and co. handle the initial rendering of their video stories/reels, because I doubt it's anywhere close to the process I ended up with.

* That's roughly how my setup works now, just not in JS. I'm sure it could be another 10x faster at least, if done differently, but for now it works and lets me continue with what I was trying to do in the first place.

My experience that played out over the last few weeks lead me to a similar belief, somewhat. For rather uninteresting reasons I decided I wanted to create mp4 videos of an animation programmatically.

The first solution suggested when googling around is to just create all the frames, save them to disk, and then let ffmpeg do its thing from there. I would have just gone with that for a one-off task, but it's a pretty bad solution if the video is long, or high res, or both. Plus, what I really wanted was to build something more "scalable/flexible".

Maybe I didn't know the right keywords to search for, but there really didn't seem to be many options for creating frames, piping them straight to an encoder, and writing just the final video file to disk. The only one I found that seemed like it could maybe do it the way I had in mind was VidGear[1] (Python). I had figured that with the popularity of streaming, and video in general on the web, there would be so much more tooling for these sorts of things.

I ended up digging way deeper into this than I had intended, and built myself something on top of Membrane[2] (Elixir)

[1] https://abhitronix.github.io/vidgear/ [2] https://membrane.stream/

For a second I thought this was about a GPT based product hitting a certain valuation, but I'm much more entertained by the actual content. This is great.

GIMP Turns 27 4 years ago

Thanks! In a way it's a mix of generative and manual art, I guess. It starts with gradients or noise. Afterwards it's layers upon layers of color mapping, filters, distortion, more noise, more gradients, etc. - Basically creating artifacts from lossy transforms/mappings/distorts/layer modes and then building those up again into an image. Rinse and repeat.

Some examples of things I made use of:

Colors > Levels. Mostly to get noise to go across the whole range from black to white, not just some in-between. Multiple iterations of reducing the output levels and then stretching those out to the full range again can create interesting artifacts.

Colors > Curves. Same as above, and also final processing. I used a fixed set of gradients (UIGradients) and usually changed them up.

Colors > Map > Gradient Map. Combining the above with gradient mapping, or combining it with noise can result in interesting artifacts as well.

Colors > Desaturate > Color To Gray. Adds grain, texture and contrast around edges. Lots you can do with that, especially by distorting the result.

Filters > Distorts > Kaleidoscope, Filters > Map > Panorama Projection, Filter > Map > Paper Tile. With the exception of the galaxy one, all the ones in the album are somehow the result of those.

I did most of these in 2019 when I was deeply burned out, and clicking around for hours was all I was able to do. It really was kind of therapeutic.

So yeah, I am really glad GIMP exists.

GIMP Turns 27 4 years ago

I've been using GIMP for over a decade for a good chunk of my image manipulation needs, from quickly cropping screenshots, creating the occasional image macro, prototyping logos before opening Inkscape and editing pictures to creating whacky abstract stuff[1].

Thank you to the creators and maintainers.

[1] https://imgur.com/a/45mTATy

How do you feel about a keyboard that woulld learn from your typing behaviour (Also adapting to your language preferences)?

Minuum does that to make sense of what you type on the tiny board. It gets better over time and I've ported my data over from the last phone. But, given how much has happened in ML over the last few years, I have no doubt it could be done much better now. I enjoy it on a per-language level, but my experience with mixing dictionaries has always been awful and more of a hindrance than anything else. I eventually gave up and switched to just swiping through languages. That has been second nature since, with basically no mental overhead.

I personally wouldn't expect mixed-dictionary as a feature, and if it's there it would have to be pretty much flawless to convince me to give up that control. Then again, this might have been a problem that particularly affects Minuum, and with no overlap between the space that letters occupy, maybe it's much more manageable.

Either way, I'm excited for what you're doing and appreciate the opportunity to geek out about this topic. Thanks for reading!

First of all, congrats for shipping! I am fully on board with the idea that mobile keyboards need some rethinking and hope to see more to happen in that space.

I don't use my phone's default keyboard, but have been locked into a different solution for a while, for better or worse. Allow me to jump straight to the questions.

Which smartphone keyboard do you use?

I have been using Minuum since I found out there's a version for Android. I had stumbled across the Kickstarter campaign years prior but had forgotten about it until I got a Mini version of a popular smartphone at the time, and the default keyboard took up like half the screen. In a messenger I would see like two lines of the message I am responding to and in terms of user experience it was unacceptable. After making the switch to reclaim some screen estate, and learning about some other neat features (switching between languages with a single swipe was a killer feature at the time, I think Gboard does that now?) it grew on me and I haven't looked back or wished for an alternative once in 7 years or so. It has been unmaintained for years now but I'm still using it. For the peace of mind alone I would happily pay for a maintained version or an alternative, because not having a keyboard I enjoy devalues my phone to the point that I would actively avoid using it, and I am dreading the day I upgrade to a new phone and can't get the same experience anymore.

Is this something you see as an improvement?

I might just not be the target audience, but I think the approach Minuum took is much more intuitive. It's the exact opposite, the keys are much smaller and put much closer together, but the words I type are almost always recognized, and deleting the word to retry if it's not is fast. The solution provided here is the opposite of what I want personally, provided there is a solution for me that gives me a great experience and free screen estate on top of it.

Also, the thought of using different layouts on mobile vs laptop/PC when my time is split proportionally between the two sounds alienating.

What features do you enjoy most in a smartphone keyboard? What other elements of our daily typing experience should be rethought for the digital age?

Screen estate. It's the number one priority besides efficiency imo. The screen should be filled with the things I want to see, not the things I have to see, as much as possible.

Fast dictionary switching. All the communities I interact with are in English. My contacts mostly aren't. This context switch happens frequently, and should be free of needless friction.

Full word deletion to retry if things don't work out. I don't know if it's me or a symptom of the keyboard I use, but deleting words letter by letter is weirdly stressful, especially with auto correct trying to be smart between every keystroke. Being able to have the word gone with one swipe is much closer to the experience I have on the computer keyboard, and I find that to be very reassuring in a way.

What do you think of the privacy issues surrounding smartphone keyboards?

This is huge. Really. My tolerance for the invasion of privacy keeps dwindling and uncomfortable compromises keep getting more frequent.

Your permission comparison is a big selling point and the main driver that would bring me back to this solution should my preferred option eventually disappear as I dread it will.

Again, thank you for investing time in this space. It's very much needed. Sorry I don't have more positive things to say, but I hope it can still be valuable feedback in some way.