Hacker Newsnew | past | comments | ask | show | jobs | submit | tanin's commentslogin

Nice. I've built desktop apps in a few other frameworks e.g. Java Swing, JavaFX, JetBrains Compose, SwiftUI, QT. Nothing is as easy as JS/HTML/CSS. I've realized that the main reason is its robust capabilities e.g rich auto-layouting/positioning capabilities.

Meanwhile in other UI frameworks, you either don't do it or you draw the damn things yourself lol. So, most of the times I'd just not do it.

Adding if is great. It would reduce the need for JS a bit more, which would make the code more maintainable.


I wish there would be a language like Ruby but strong type or statically typed.

I like its rich standard library style and encapsulation style (e.g. .map with lambda).

I've moved to Scala purely because Ruby is not typed. In a large codebase, it becomes really difficult to refactor. Even renaming stuff is convoluted.


Ruby is strongly typed

wondering why https://crystal-lang.org/ hasn't been mentioned in the comments

The fact that the student debt crisis is going on shows that colleges are not worth it. If it was, most would have been able to pay it back.

My impression is, unless you can get into a top X college, it isn't worth it.

This also depends on the cost of course. My university in Thailand back then was 1,000 USD per year, so that seems worth it, even tho it isn't in the top 20.


Took me a few minutes to go from "what is going on?" to "oh this is not the Scala".


That is why I actually like Scala. I want every tool to be available at my disposal, and I can choose what to use or not use. I want it to be reasonably succinct and type safe.

I don't want the language to dictate how I use it. I'd prefer the language not to look out for me. There might be some, but a lot of languages look out way too much. Golang for example doesn't allow you to compile if there is an unused var. Java with private as the default.

It is great that there is a production-ready language that differs from other languages.


Right now I tend to not use an external library unless the code would be large e.g. http server and/or the library is extremely popular.

Otherwise, writing it myself is much better. It's more customizable and often much smaller in size. This is because the library has to generalize, and it comes with bloats.

Using AI to help write is great because I should understand that anyway whether AI writes it or not or whether it's in an external library.

One example recently is that I built a virtual list myself. The code is much smaller and simpler compared to other popular libraries. But of course it's not as generalizable.


I'm working on 3 projects right now:

---

Backdoor: https://github.com/tanin47/backdoor

A self-hosted database querying and editing tool for you and your team. Modern and elegant UI. Supports Postgres and ClickHouse. It can be embedded into any JVM app or runs as a standalone.

---

Embeddable Java Web Framework: https://github.com/tanin47/embeddable-java-web-framework

A lightweight production-ready Java web framework that comes with batteries (e.g Svelte, Tailwind, Github Actions, browser testing).

It is packaged into a single fat jar with no external dependencies. The starting size is 350KB. This is great for embedding into your larger JVM app or runs a lightweight website.

---

PlayFast: https://github.com/tanin47/playfast

An opinionated production-ready PlayFramework that comes with batteries (e.g Svelte, Tailwind, Github Actions, browser testing).


This looks interesting. I have a window laptop/tablet that I'd like to convert it into a simpler machine. I'll try it out.

More screenshots would be appreciated. I was clicking around for a while only to realize there's only one screenshot that looks like Lotus 123...


The details I never really thought about until I encountered timezone issues was:

There are points in time that don't exist, and there are points in time that are ambiguous.

If we adjust the time forward by 1 hour, then then 2:30am doesn't exist. If we adjust time backward, then 2:30am is ambiguous.

2am-3am is only safe for certain countries.

America/Santiago (Chile), for example, adjusts their daylight saving on midnight. On a certain day, midnight doesn't exist because it immediately jumps to 1am. If you are building an analytics chart by day, you will encounter this issue. I wrote about several weird time zone edgecases here: https://tanin.nanakorn.com/edgecases-for-timezones/

To add more confusion, IIRC Java and Ruby handle these cases differently where Ruby raises exceptions (e.g. InvalidTime and AmbiguousTime) but Java doesn't.

I caused 3 incidents in a row at Stripe in my first month because of this. I thought I was gonna be fired. Luckily I wasn't...


At this point, PH is more for SEO because, once you hit the top, tons of other websites will link to your product.

FinFam looks amazing. It's an interesting take on personal finance because I never really have a view of my own net worth. And, because of that, I have been having a feeling for a while that it causes me to be "too frugal" most of the times.


Yep, from a founder's perspective PH is mostly an SEO thing. I'm not sure if it's the _best_ SEO thing, but I guess that's part of being a first-time founder!

Re: feeling too frugal, my friends came up with a name for it, "poor man brain" lol. I talk a little about it here: https://sedimental.org/announcing_finfam.html


Yeah, I think a lot of people who break into tech have a bit of a struggle to adjust to a high TC. I still remember back in the days having a convo about how Subway offered $8 for a foot long and we could eat it for both lunch and dinner during weekend... such a good deal. Meanwhile the company we were at was going IPO. Good old days lol.


The backlinks derived from PH are generally considered harmful, and rightfully so. It's gamed beyond belief. There is not much to gain from being at the top of PH other than talking about it to legacy VCs.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: