HNHacker News
TopNewBestAskShowJobs

yumaikas

1,472 karma · joined July 15, 2013

Serial lurker, https://junglecoder.com and https://pisc.junglecoder.com. yumaikas on twitter
submissionscomments
yumaikas··on Show HN: Memory Pill
This is a problem that can also be solved with a pill container, at least for longer term meds taken at regular intervals.

I could see this being handy for as-needed meds, however

yumaikas··on Elvish is a friendly interactive shell and an expressive programming language
So, trying out elvish a bit tonight, I've noticed that there are a lot of little quirky places that whitespace is significant in elvish? One example is lambda syntax. Do you have any plans on making that less of a thing, or is it here to stay?
yumaikas··on Crush: A command line shell that is also a powerful modern programming language
Eh, having used both Tcl and Lua, I definitely think Lua is the better of the two when it comes to a scripting engine for games.

And I think Lua is more elegant than TCL overall. TCL's stringiness really gets clumsy in certain types of programs, and it's a much larger target than Lua overall.

Not to say that TCL is bad, but I'm glad that dict-based languages prevailed over TCL's string-based-ness

yumaikas··on Ask HN: I hate coding, but it's all that's on my resume. What do I do?
I'll echo what other people have said about taking care of your mental health first.

If you're strapped for cash as a software dev, either you're not budgeting appropriately (take a sober look at how often you eat out), or you're not making nearly as much as you could (look for a different job), or you've set yourself up to live beyond your means (switch cars, or look for a different living situation). I've been in both of the first two situations before, and getting out of them had as much to do with a different mindset and finding good people to be around. I've always tried to live within my means (aka not taking on more than a couple weeks worth of debt if I can afford not too). That being said, taking that close look at your finances can be difficult when you're not in a good place mentally, so if you can get some help there, I'd recommend it.

If you have family, or really close friends, you might see if you can crash with them for a while, working on a career pivot during that time, or just looking for a different workplace.

I lost a tech job in December of 2018, and didn't get back into tech until August of 2019, and ended up working fast food for a few months. It was a nice time for clarifying some things, and establishing my identity beyond "guy who writes code". Before I was let go, I was struggling with getting things done and fitting into my workplace.

A big YMMV on this, but do try to take some time to walk and start considering some angles to life that might seem more crazy than you'd normally consider.

yumaikas··on The Shareware Scene, Part 5: Narratives of Doom
Yes, 2D assets can be reused, once you have a 3D asset, it can be used with a lot more spectacle. Of nothing else, when you're animating a change of visual angle, it's a whole lot more convincing and easier (animate some positions) vs the 2D alternative of having to animate or rotoscoped each of the pixels and frames for that gun motion.

And spectacle was one of the biggest sellers of games.

yumaikas··on Robpike/Lisp: Toy Lisp 1.5 interpreter in Go
Probably J, if I had to guess. I'm unaware of how much production use it has.
yumaikas··on On Coding, Ego and Attention
So, I've not really had that set of things, but when I went through a phase of working in fast food, that was helpful for helping me disentangle who I was from my ability to work as a software developer.

I suspect that sort of thing won't be much help to you, however, because for me, my motivations have been relational more than power-based.

That, and I find enough joy from programming just from the utility of things I've worked on, rather than needing it to be a vehicle for influence.

Still, I'm very interested to see where things go for you.

yumaikas··on Tacit knowledge is more important than deliberate practice
It's also worth bearing in mind that tacit knowledge can lead you astray. And that tacit knowledge can be developed without having to be in the same room as someone. It's just that it's learned and communicated _differently_ than explicit knowledge.

I think there's room to explore in the area of building exercises that try to build this tacit knowledge. Though some things are prohibitively expensive to learn outside of a work context. There are definitely a lot of things I've learned in a work context as a software developer that would have taken a lot longer to learn on my own.

yumaikas··on Ask HN: How do you manage self-study?
Also, I think it's highly worth reading https://chelseatroy.com/2018/04/20/leveling-up-a-guide-for-p...
yumaikas··on Ask HN: How do you manage self-study?
So, it sounds like you're facing is one of prioritization.

Remember that you can't learn _everything_ at once. You have to choose a focus. That could be a tool you want to exist, a hero you want to emulate, or a problem you want to solve. There's a section in Mastering Software Technique that discusses this: https://software-technique.com/ (it is a book, but one that I highly recommend for people wanting to learn software development better). Ultimately, that focus can shift over time as needed, and the most important thing about it is that it motivates you.

For me, I mostly manage self-study via projects. There are various things I'd like to build. Lately, I've been using Nim to build various tools I'd like to have, which has involved learning about different facets of Nim, and it's libraries.

For me, if what I want to learn is less concrete, having a personal wiki also helps. I currently use VimWiki at work to track what I need to write down, but anything that makes it easy to link between articles, and doesn't put too much of an editing barrier up is good.

yumaikas··on Ask HN: What is your blog and why should I read it?
I have a couple blogs, and a couple wikis, all written by me.

But, for starters, https://junglecoder.com

Why is it awesome? Because I write about things that I find _very_ interesting. Highlights include an article on Factor, a retrospective on 8 years of side-projects, and a poem about trying to debug code late at night.

yumaikas··on Ask HN: How can I pick a side project and stick with it?
So, I'll take a different tack: Are you interested in finishing projects or are you interested in learning new things? Because those goals aren't exactly 100% aligned.

It sounds like your motivation is more about learning new things. If that's the case, lots of small, half-baked projects can definitely be educational.

You're also mentioning projects that take significant ramp-up time before they might start to get a life of their own.

So, that being said, I have a couple of book recommendations:

If what you want to do is learn software development in a growing way, I highly recommend Mastering Software Technique: https://software-technique.com/. It's all about using bursts of time to learn new things as fast as you can. For your situation, it sounds close to what you've been practicing, with just a tiny bit more process.

If what you want to do is actually build something on the side for people other than yourself (which is _not_ a requirement for learning useful things), then I recommend https://jessicaabel.com/growing-gills/.

For me, I've embraced the non-essential nature of my side projects. I've had quite a few over the years, some large, some small. Being able to put one on the back-burner and come back it later has been very handy. Most of my sideprojects these days are ones I can get to "done" in a day or two, and I have a couple longer-running ones that I pick at off and on. My motivation for a particular project varies, some are meant to scratch a _very_ specific itch:

- https://github.com/yumaikas/dirx was basically done in a late night and a morning - https://idea.junglecoder.com/view/idea/274 I've done 3 times, first in bash, then in Go (in a rather late night, to scratch an itch), and then again in Nim (to learn Nim, and compare it against Go).

Some projects I have are a lot longer running. Both PISC <https://pisc.junglecoder.com> (now on indefinite hiatus) and Tabula Scripta <https://github.com/yumaikas/tabulaScripta> have run a lot longer than my typical project. One quality of both is that they have work at quite a few different levels of detail. Am I tired of parsing work? I can work on prototyping a game in PISC. Do I want to make the performance dramatically better for my artificial Fibonacci benchmark? Great time to break out the Go profiler. Do I want to make it way easier to concatenate strings in a stack-based language? Maybe today I figure out how to write an evalbot. (These are _all_ things I did in PISC at different times).

Tabula Scripta is still early days, I haven't had the time to use it for that sort of experimentation, but it will have a similarly broad set of applications and problems to solve.

And, like other people have said, it definitely helps to do you side projects in a different IDE/Language than your work. And if learning is a big motivator, keeping your projects smaller, or making them the sort of things that's easier to break into smaller parts can be very helpful.

yumaikas··on JITs are un-ergonomic
You might still run into GC problems, but none of the Go-based Luas (built on Go, rather than binding to another Lua library) I am aware of have a JIT built in.
yumaikas··on Lang5 – A Stack Based Array Language
I've found that there can be some cool stack combinators (like Factor's dip), but binding in stack based languages is nice in that it lets you effectively turn off having to think about the stack in depth, which frees up mental resources for thinking about the problem at hand.
yumaikas··on Wildcard: Spreadsheet-Driven Customization of Web Applications
I think a lot is possible if you could use spreadsheets to create all software (I even have an idea on the back burner to try in that direction).

That being said, $95/month isn't an accessible price point for anyone that isn't trying to integrate this into a business of some sort. Which might be fine for your market, but it doesn't work for most hobbyists, or people wanting to write personal projects. Heck, Adobe Creative Cloud can be had for half of that price.

I realize your market probably doesn't include those people right now, which is a valid business decision. I've got plans to try to make a scriptable web spreadsheet application that allows people to make their own websites with that sort of thing.

That being said, if you had a $5/month or $10/month tier, or an option to self-host without some of the fancier functionality, I'd be all over trying those out.

yumaikas··on Warming Up to Unit Testing
(author here)

Why:

Mostly, I think it's down to having a better understanding of where to try to break dependencies, specifically trying to abstract away from the outside world (akin to how they did it in the Moonpig billing system).

The how is still in progress. Perhaps the most notable instance I can think of it is that recently, due to work on breaking dependencies, I was able to stub out a RabbitMQ connection for an in-memory class, so that I was able to easily test how two components interacted without having to stand up an external service.

For me, looking back, I think it was the Moonpig article that's had the most influence on how I think about things.

Do you have any other questions?

yumaikas··on What eight years of side projects have taught me (2019)
I don't know exactly what I was thinking when I wrote the article, but, here's the best fix I think I can add (article edited to include it):

> Which means I’ll be able to use it for more things, and hopefully get that tight feedback loop back in place.

yumaikas··on What eight years of side projects have taught me (2019)
I don't at the moment, though I could write one up at some point.

The short answer, though, is that I knew I wanted green in the color scheme (due to having grown up in the tropics), and I liked how James Hague did his blog https://prog21.dadgum.com/

The rest was just iterating on that.

yumaikas··on What eight years of side projects have taught me (2019)
I've been trying out vimwiki for work of late, so far it's been going well for helping me process things.

In a quest to find ways to manage my focus, I've also taken up doodling. It's proven to be a good way to help keep me from falling down internet rabbit holes nearly as badly as I used to.

yumaikas··on What eight years of side projects have taught me (2019)
(author here)

I definitely recognize that not everyone has the energy to code at home after a day of coding at work. Often, I don't either. Side projects are a varying thing for me. I do try to make sure what I do code gets documented in some fashion, however.

yumaikas··on Kids do program – Experiences from the course
> good built-in documentation

As someone who was a beginner in QBasic, the docs left a _lot_ to be desired, especially the graphics ones. As a teenager, I had a hard time make heads or tails of them.

Granted, that isn't to say I wouldn't be able to navigate them pretty well today, but I distinctly remember struggling to understand large parts of QBasic back in the day

yumaikas··on Factor: A Practical Stack Languge
I recommend a 4-function calculator, if you don't mind trying GUI code.
yumaikas··on Find Yourself a Hobby for 2020
It definitely is. They have a theramin, and give demos using a Faraday cage and Tesla coil
yumaikas··on Jarvis, an Alfred Alternative for Windows
It's not an alfred alternative, but Everything Search, (https://voidtools.com) is really nifty.
yumaikas··on Ask HN: Haven't worked for a while, best guide/advice to start a hobby project?
Just wanted to second the recommendation to build something that already exists first. Like how artists do master studies, or still life, software developers can learn a lot by actually building something that already exists. It helps educate you about the nature of how certain things are built, and what considerations they have.

My first web project in Go was an email signup server. The second was a blog engine that still powers https://junglecoder.com. Both projects taught me a lot, and the blog took quite a while to finish up.

Getting something out the door and in front of other people, even if it's just your friends, is key.

yumaikas··on Ask HN: Haven't worked for a while, best guide/advice to start a hobby project?
So, I wouldn't worry a great deal about which stack land in. Once you get familiar with HTTP, you can switch languages later, if you feel the need.

If you're wanting an exercise to help you build up to the confidence to approach your own webapp projects, I actually recommend porting kbwiki (https://github.com/yumaikas/kbwiki) to the stack of your choice, if you're ok with reading Nim (it looks like python, though it's rather different under the hood).

The reason I suggest this is that kbwiki covers both basic HTTP auth, and running as an HTTP client. kbwiki also is a real, but small web app. I use it to power https://idea.junglecoder.com and https://feed.junglecoder.com. If there is another project that does a lot of what you want to do, porting it to a different language would be a good exercise.

After that, think of an idea of something you want to use, and then try to pick off a small part of it. Working with the Spotify API, maybe just try to build something that lets you list your playlists, or maybe just one playlist. Then, build out one more piece, and continue doing so.

Though, one thing I will say: Working with 3rd APIs is often much harder than just building out something that doesn't rely on them, due to having to implement authentication. So if you have a hobby idea that doesn't rely on a 3rd party API, I would bias towards that for your first project.

See if you can find a friend or someone to discuss ideas in more depth. Having that second opinion can help unstick you, or help refine your ideas. I'd be willing to discuss over email, if you'd like an ear (yumaikas94 at the google one).

Also, be willing to do things that don't follow best practices as such (as long as you're cognizant of the fact). I've written 3 webapps in the last year, none of which implement their own authentication, because they are designed for one single trusted user. I have a Jenkins status checker I use at work that relies on me copying the "remember me" cookie out of my browser into the filesystem.

For now, don't worry about being "current" techwise, worry about building up a portfolio of different things. Get building, and eventually, as you build projects, you'll find a groove, and then, if you want to build things that are sophisticated on the front end, you'll end up looking into React/Vue/Angular. If you like backend webapps, Python, Go, or JS/Node will start to stand out.

If you take a left turn, and decide to instead go into desktop apps (I highly recommend making at least one or two in your life, but no rush), C# or Java might look attractive.

My overall point with the last two paragraphs is this: Learn tech that will let you build what you want to make, not just because it has a lot of articles written about it.

yumaikas··on Java JIT vs. Java AOT vs. Go for Small, Short-Lived Processes
A big part of that is that this benchmark is not representative of what general software is like, not in Go, not in Java.

For one thing, most software isn't churning on an array of integers. It's allocating and managing various types of objects.

I haven't written a ton of java, but I suspect that the various reflection-heavy frameworks also impose a lot of overhead into the resulting software that isn't necessarily inherently part of Java the language.

yumaikas··on Post Mortem of Ludum Dare 38 and Bullet Surfing
It depends, to be honest.

For me, Love2d, Pyxel Edit and Bosca Ceol have worked well.

There are things like music generators to help if you're super slow at music composition like me.

Also, having a small scope helps.

yumaikas··on Post Mortem of Ludum Dare 38 and Bullet Surfing
It's a mystery to me as well. I didn't post it. I still don't know how it got surfaced. I've not been actively promoting that blog.
yumaikas··on Post Mortem of Ludum Dare 38 and Bullet Surfing
I am the author of this article (and game).

It's been a while since I participated in a game jam, but I highly recommend doing it at least once or twice.

← PreviousPage 4 of 9Next →