HNHacker News
TopNewBestAskShowJobs

sephoric

617 karma · joined August 30, 2018

I'm very good at hand-crafting Mac apps among a very few other things. Check out my website, https://sephware.com/ or say hi at contact@sephware.com :)
submissionscomments
sephoric··on Show HN: Fff – A terminal file manager written in bash
This is very cool, thanks for resubmitting it, I actually checked out the source code this time, as opposed to last time only reading the readme.

Having learned all that you needed to in order to write (and rewrite) this, do you have any similar future projects in the works?

sephoric··on Porting 30K lines of code from Flow to TypeScript
If it's as cheap and powerful as AWS then I'm on board too. But I doubt it is, Amazon's got it down to an intricate science that seems like it can't be beat.
sephoric··on Porting 30K lines of code from Flow to TypeScript
I'm starting to think Microsoft's strategy with things like VS Code, Monaco editor, and Typescript is "blow the developer away with how amazingly productive they are so that they will want to use more of our products". Because it's just so high quality yet also gratis/libre (MIT license), that I can't see what else they could be trying to do.
sephoric··on Porting 30K lines of code from Flow to TypeScript
If the return type was Array<Leaf | Aggregator>, wouldn't TypeScript be able to infer the right type U in Array<T>.concat => Array<U> ?
sephoric··on Porting 30K lines of code from Flow to TypeScript
> Lower quality editor/IDE integrations (when compared to TypeScript)

This is one of my favorite aspects of TypeScript, the first-class support it receives in Monaco Editor (part of VS Code) which is one of the reasons I also chose first-class TypeScript support when making Autumn, since I could embed Monaco right into it and get countless amazing IDE features for free.

> unfortunately, we had to change a very small amount of runtime code to fix some logic that TypeScript could not understand

Would be very curious what this is, I've only found maybe one or two things TypeScript could not understand, and they were already under active development in the Github repo.

sephoric··on I bought a Google Home, and now I can't listen to music at work
We actually canceled our shared Spotify account due to many similar friction points. The main benefit of Spotify was being able to discover new music, and I found it wasn't much better at that than subscribing to specific YouTube channels. The $10/month that I was paying to Spotify now goes towards about 10 DRM-free $1 songs per month, and considering how long I've been paying for Spotify, I think it's worth it. I imagine more of this $1 goes to the artist, too, compared to the royalties they'd probably have gotten from Spotify.
sephoric··on Ask HN: How do you motivate yourself to keep working on a project?
I guess that depends on what you mean by success. If nobody ever remembers my successes, if I never make "disrupt" any industry, if I never get to retire, if my works are never immortalized, even if all my software becomes obsolete one day when the SDKs that I'm using no longer exist (which has already happened a few times), as long as I can pay for my family's food by solving problems for other people, I will be satisfied.
sephoric··on Ask HN: How do you motivate yourself to keep working on a project?
Along these lines, I always try to be purpose driven: I make software because I'm good at it and because it makes me money. I need that money to buy food and clothing for me and my wife and our kids and to pay for having a roof over our heads. If I were better at something else, or not good enough at software, I would use that skill to accomplish the same task for the same reason. Usually it is enjoyable and rewarding to solve problems using software. But it can often be stressful and difficult. That's part of any job though, they can all be stressful and difficult. Going to a different career path will not relieve you from stresses and difficulties, it will only change what they are. So instead, if you enjoy writing software and are good at it, just learn how to overcome these difficulties and stresses in a good and healthy way, and keep remembering that at the end of the day, you're probably doing it for a higher goal.
sephoric··on Notion – All-in-one workspace for notes, tasks, wikis, and databases
This is one thing I've wanted. A local app that lets me store all my data with markdown syntax, syntax highlighting, in local files and directories, specifically for macOS although a cross platform app would be fine. One that doesn't require an account or the internet at all for it to work. I've wanted this kind of app for many years (and wouldn't be opposed to making it if no existing solution is all that great at it).
sephoric··on Illegal number
Wow. I thought this was going to be some silly alternate meaning of "illegal" within software, like a famous invalid memory address or something. Nope, it's actually a number that's against the law.
sephoric··on Ask HN: What should a systems/low-level software engineer know?
The only thing I can imagine that would be good for is learning how to write a C compiler :)
sephoric··on Ask HN: What should a systems/low-level software engineer know?
A bit on the more unusual side, one thing my son and I found very instructive on "lower level" concepts is the fact that within PICO-8, which is already a very user friendly high-level environment, you can use peek(), poke(), memset(), memcpy and similar functions on any memory address that PICO-8 uses. Literally all the capabilities that PICO-8 gives you, it exposes memory for it and explains the conventions it uses to read/write that memory, so that you could do it yourself. We were able to make a simplistic "paint" program that draws a pre-drawn cursor sprite and changes pixels whenever you drag the mouse, all using memset(), peek() and poke(), and avoiding line(), spr() and doesn't use any Lua tables. It entirely does this by reading and writing memory. It was a fun experience in learning certain useful low-level memory concepts.
sephoric··on Show HN: JournalBook – Privacy centric, offline first, personal journal app
Thanks I appreciate it and glad you enjoyed the dancing windows as much as I did :)
sephoric··on You can now set your status on GitHub
Now if they just evolve their "discussions" (formerly issues) into "live discussions", and then add one more feature to allow separating it by "tag" or maybe "topic" per repo, they can pretty much replace Slack.
sephoric··on You can now set your status on GitHub
Linux today isn't worse, but laptops are much more prevalent now, and they're harder to support drivers for than desktops. Especially Apple laptops which I've been using for a long time now, they're notorious for not being that easy to get Linux running smoothly on. Some people can manage it but more people have trouble. I've wasted dozens and dozens of hours trying to get Linux working smoothly on this thing and I just gave up a few years ago. But when desktops were king and the internet just started to become mainstream and everyone was flooding into that new space, it was a great time for desktop Linux.
sephoric··on You can now set your status on GitHub
True, I may be thinking of 2000s Linux. Compiz and the wobbly windows examples were fresh in my mind from the other day's HN discussions.
sephoric··on You can now set your status on GitHub
And what else is the point of that except to let other people know about your hour-to-hour business? Their gif uses "Shipping [software]" as an example, and even has a "Busy" checkbook they they demonstrate ticking off. When features exist, people use them, and when some people use them, other people are socially pressured into using them to conform to peer expectations. This is the beginning of a bad thing for Github unless MS changes direction. That said, Github arose out of the ashes of Sourceforge completely and utterly failing to deliver frictionless value (and the advent of git), so maybe this will eventually provide an opportunity for an existing (or new?) competitor to rise up and take Github's place in the space of "simple network of git repos".
sephoric··on Show HN: JournalBook – Privacy centric, offline first, personal journal app
Really glad to hear that you enjoy my app that much! I put a ton of hard work into it and honestly yours is the first feedback I've heard about it at all, beside a close friend who beta tested it briefly. If you have any thoughts on features or APIs you'd like to see in Autumn, please don't hesitate to use the in-app Feedback form :) In particular, if you wouldn't mind sending me a copy of your current script, I'd love to see how you're using Autumn!
sephoric··on You can now set your status on GitHub
I hate to say it but I feel like the 90s was a better time all around for the casual computer user.

- You had total customization over your computer, every app was skinnable including Windows or MacOS itself

- Linux was in a great spot, finally becoming usable as a desktop OS with a ton of fun toys and UI/UX experiments that got a lot of us into Linux before we knew about CLIs

- Products were sold per-unit instead of *aaS, so when you bought something, you knew you could use it as long as you needed to

- Social networks didn't exist, so if you wanted to interact with people, you had to learn something - which is what made geocities and later MySpace fun, since people had to learn a little HTML in order to update their friends on their current status, and could use that new skill to decorate their "home" page

I miss the 90s. I want to bring that back. That's why I got my kids PICO-8, at least it's a little taste of the good old days!

sephoric··on You can now set your status on GitHub
All sarcasm aside, this feature is absolutely the wrong direction. Github may have some things in common with social networks, but it operates on a longer-term scale. It's the difference between a book and a paragraph. People who care about this sort of daily minutia can find it plentifully on Twitter and Facebook. Github is great for finding out what people have been up to, without caring about what they're doing this second, and that's what was great about it.
sephoric··on Show HN: JournalBook – Privacy centric, offline first, personal journal app
Yeah, I sometimes wonder about those statistics. But I'm not curious enough to invade people's privacy or use any of the other modern marketing manipulations to boost sales. I think if you make a thing and pour love into it, people will love using it, and maybe even want to give you a little money. I've seen this first hand many times and been on both sides of it. That's why I like Show HN, and give apps like JournalBook an honest look, especially when it's clearly a passion project by a single person.

Edit: Thanks for the bspwm link btw, I've been wanting to add a class to Autumn called TileWM (to complement the existing GridWM) but I couldn't wrap my head around binary space partitioning, although I knew that's what tiling WMs usually use. The page you linked to describes and visualizes it really well and now I think I understand it well enough to finally implement it. Although, given the nature of Autumn, someone could probably implement this feature sooner using Autumn itself :D

sephoric··on Show HN: JournalBook – Privacy centric, offline first, personal journal app
In my mind, this completely contradicts "privacy centric" and "offline first", which to me are very important goals. Even though the notes in the app are only ever stored on my computer, and even though it's metadata being sent, I would rather offline and privacy focused apps not use my network at all. That's what I aspire to anyway when I write apps for sephware.com, and I wish everyone would do the same.
sephoric··on Show HN: Markdeck – author cool slides, text-only, offline-ready, collaborative
I've never heard of that, thanks for sharing it. I'm much too busy with interesting projects and client work to join yet another online social network, even one that's offline-friendly, but it's still really interesting to know it exists :)
sephoric··on Understanding Perlin Noise (2014)
When I first learned about noise (many years later than I should have), I remember finding out that Perlin noise was patented, so I looked into OpenSimplex[1] instead which is Java but has been ported to other languages. It turns out Love2d has love.math.noise built in which does the same thing. Would be great if PICO-8 had it too, although I think this one[2] is free too. But one of the coolest things was realizing that Minecraft landscapes are mostly just multiple applications of noise functions on top of each other, which means it only needs to store changes to the environment, and that it can completely regenerate the same environment using noise functions. Sometimes I envy game developers, until I remember how their working conditions are usually very horrible.

[1] https://gist.github.com/KdotJPG/b1270127455a94ac5d19

[2] http://staffwww.itn.liu.se/~stegu/simplexnoise/Noise.lua

sephoric··on Thoughts on Rust, a few thousand lines in
What's the point of the [] version then? It seems inherently more dangerous, and Rust emphasizes safety. I know it wants to be pragmatic as well as safe, but this seems like a strange default.
sephoric··on The State of Software Security in 2019
Interestingly this is in stark contrast to the recent article about learning C++ in 2018 and being perfectly happy with it. I think part of this is because C++ is such a vast language with a huge and diverse ecosystem that it's kind of like saying you should stay out of Africa because it's so dangerous, when it's such a huge place and many parts of it are relative safe. Maybe the two authors experienced different "parts" of C++ and are referring to that subsection only.
sephoric··on Show HN: Markdeck – author cool slides, text-only, offline-ready, collaborative
I love that "offline-ready" is a feature that's becoming more and more supported and prominent. I don't know anyone else in the power user community who doesn't have home internet, but since getting rid of ours, I've made that feature a high priority of all apps I've been dreaming up and selling.

I've even gone so far as to remove the concept of "live data sync" from all my apps, partially because it's so incredibly error prone and hard to get right, partially because it tends to make software seem laggy and slow since it shows stale data while loading live data in the background, and partially because usually it's unneeded as a built-in feature if you're just using files, which can then be synced with any of the many file syncing service (iCloud, Dropbox, OneDrive, Box).

Although it's very doubtful other power users will adopt internet-less lives, if more of us did, not only would we be more productive, but we'd all have more incentive to make "offline-ready" a much better experience and even move to "offline-first" like I aim to.

sephoric··on Despite promises, cell carriers are still selling your real-time location data
I actually don't carry a phone with me. My wife has a flip phone that she uses to contact our kids' schools, and that's it. We also don't have home internet anymore. And when I do use the internet, I make sure to use Safari or Firefox with strict privacy settings enabled. Living without home internet in 2019[1] isn't that hard, it's actually easier and more rewarding and enjoyable than having home internet.

[1]: https://sephware.com/blog/2019-01-04-being-a-software-develo...

sephoric··on Game dev: Linux users were only 0.1% of sales but 20% of crashes and tickets
From the article:

> "We eventually laid out a guide with known good versions of Linux and graphics drivers, but it didn't matter. Part of the allure of Linux is the customizability, so few actually stuck to it, and generally wanted to run the game on older hardware we didn't support."

It seems that it's because Linux users are unwilling to upgrade their hardware. From a philosophical standpoint, I agree with them, we shouldn't need to buy a new computer every 3-5 years, it's very wasteful and I am very against planned obsolescence and perceived obsolescence. That said, I can see the benefits of writing code to work on the machine you have in front of you, and not doubling your QA work by testing it on older machines that no longer even receive OS upgrades.

sephoric··on PICO-8 Fantasy Console
We had the same experience, much easier to use since it has a built in sprite and map editor and easier functions. Don't forget to read the manual (accompanying txt file) because it is extremely instructive and you'll miss out on a lot of basic functionality if you don't! It explains not only the API, but how to use the various editors, and even the very helpful differences in PICO-8's own Lua compared to PUC-Rio's Lua.

As a word of caution from one parent to another, I know it's common lately to encourage children to software careers, and even push them toward it, but I've found it's far better to encourage them to cultivate whatever interests and skills they have a natural inclination for. My daughter told me she doesn't want to learn PICO-8 or Scratch, so immediately I backed off and let her cultivate the crafts and crocheting interests and she seems far happier than many young people I've met.

← PreviousPage 3 of 5Next →