HNHacker News
TopNewBestAskShowJobs

lf-non

894 karma · joined November 22, 2015

Independent software consultant enthusiastic about web platform, distributed systems, type safety and cloud infrastructure.

https://lorefnon.me

submissionscomments
lf-non··on Borgo is a statically typed language that compiles to Go
In the same vein, Go+ is also interesting, and its being actively developed.

https://goplus.org/

lf-non··on Flyweight: A Node.js ORM Specifically for SQLite
This approach is quite interesting.

I have used pgtyped for postgres, and missed not having something similar for sqlite. This library seems to perfectly fill the gap.

lf-non··on Flyweight: A Node.js ORM Specifically for SQLite
I have come to believe that select * should only be used in exploratory SQL and never in application code.

I know a lot of devs treat database schemas as sacrosanct and try not to modify the schema much once created. However, I do like being able to iterate on schema quite a bit during early stages of application and in case of dot-star queries I often end up with either run time errors or type errors that are quite far from the query itself. So now I have settled on ensuring that all columns are always specified in queries originating from application code.

lf-non··on NotepadNext – a cross-platform reimplementation of Notepad++
In editors like vim/emacs it is possible and common.
lf-non··on AWS Makes Cloud Formation Stack Creation Up to 40% Faster
Yes, purely from a user pov, the way fake stack traces are reported to point out the failing construct is quite nice.
lf-non··on AWS Makes Cloud Formation Stack Creation Up to 40% Faster
Plain CF sucks because it doesn't really provide any kind of abstraction capability. So in any kind of real world application the yaml gets humongous that is very hard to review.

I would have been perfectly happy to use CF if they added the notion of higher level constructs at CF level, but for whatever reason they haven't. So I use CDK because it provides the ability to reuse service compositions from third party libraries as well as across different internal projects.

CDK is imperative but imperatively building the configuration is not at all the same as imperatively managing the infrastructure. Even if with CDK the configuration is imperatively built you retain all the benefits of having declarative infra - version control, selective auto update, rollback to previous state etc.

Yes, while CF is clunky and slow, and I am sure everyone who uses it has at times gotten stuck with rollback failures, but CDK does provide a somewhat better dx on top of it.

lf-non··on Show HN: A user-friendly UI for viewing and editing Markdown files
I use bluestone, it supports inline previews: https://github.com/1943time/bluestone
lf-non··on Show HN: A user-friendly UI for viewing and editing Markdown files
I tried this out. I think this app will benefit from a clear identification of purpose and target user base and tailoring its features around that.

Eg. If it is trying to be a generic markdown file editor, I wouldn't want it to insert yaml frontmatter without being more explicit about it. If it is trying to be a note taking tool, I'd expect to be able to interlink local markdown files and navigate files through them (I couldn't get that to work). If non technical users are the primary audience, the git integration may not be ideal sync solution for them. If it is for technical users, we would likely want to be able to edit the front matter ourselves (to add options specific to jekyll/pandoc or whatever else will use that markdown) etc.

lf-non··on Rnote – An open-source vector-based drawing app
Butterfly can export to pdf/svg and is quite feature rich.

https://github.com/LinwoodDev/Butterfly

lf-non··on DBeaver – open-source database client
I'd generally agree with you. DBeaver interface is quite discoverable. I reach out for it whenever I need something more visual than pgcli - esp. things like ERD, inline editing, easy cross table navigation etc.

However, I'd also agree with the GP comment. Its use of SWT ui results in some rather weird oddities. The biggest one is that if we configure gnome to use dark mode in linux, we get this absolutely unusable UI with barely visible text in many places. It becomes very obvious in that case which of the widgets are coming from gtk and which are custom rendered - and the distinction between them is stark.

And there doesn't appear to be a clear way to fix it without actually disabling the dark mode at OS level. I'd be perfectly fine if it used some framework that rendered its own widgets that looked a bit different or even if it ignored the dark mode completely and stayed usable.

lf-non··on Learning Elm by porting a medium-sized web frontend from React (2019)
Ok, this is interesting. I'll try this out in a small project.
lf-non··on Learning Elm by porting a medium-sized web frontend from React (2019)
Are you actually using this in a non-trivial application?

The recurring complain I hear about scala are the bad compile times. I haven't used the language much, so not sure if this only applies to libraries that heavily use compile time metaprogramming.

But I really love that with modern tooling we can get a sub-second editor->browser feedback loop even for a three year old medium-large project on modern hardware. This was primarily one of the reasons I avoided Kotlin+Gradle JS target because among other issues the feedback loop was 2-3x slower.

lf-non··on The Claro Programming Language
This is very interesting, but I don't see any section in the docs about JVM interop. I am curious what is the effort needed to use a library written in java (and potentially other jvm languages) in claro.
lf-non··on Apache Superset
Full fledged BI tools like Superset and Metabase are amazing for their intended use cases.

But they may be an overkill if your primary use case is to infrequently build semi-interactive reports for non-technical end-users and your use cases are are mostly covered by standard graphs & tables. Esp. so if you are familiar with SQL and have access to the underlying data source. Two nifty utilities I have found to be very useful for latter kind of use cases are SQLPage and Evidence.

They make it very convenient to whip out some SQL and convert that to a neat professional looking web ui that can be forwarded to an end user. In case of Evidence it is a statically generated site, and in case of SQLPage it is a web app that connects to a live database.

SQLPage: https://sql.ophir.dev/

Evidence: https://evidence.dev

lf-non··on Work for you? Again? After you lied about the job and stole my stuff? No thanks
This may be culture specific but I wouldn't consider the cold shoulder response to be impolite.
lf-non··on Observable 2.0, a static site generator for data apps
The new direction seems very similar to what evidence has been doing for a while

https://evidence.dev

lf-non··on Show HN: Linen.team – A lightweight, thread-first Slack alternative
Interesting. Thanks for sharing.
lf-non··on Show HN: Linen.team – A lightweight, thread-first Slack alternative
Tangentially related, and agree with the complexity and churn that Next introduces, but curious: If am building a product where SEO matters, does SEO still really suffer in absence of SSR?

Sure TTFB (& potentially other web vitals) are better with SSR, but I still keep hearing SEO friendliness as a primary reason for SSR though prevalent crawlers like Google/Bing can index js loaded content.

lf-non··on Announcing Stride 4.2 with .NET 8 support
why would you call them a former dev if they are actively contributing huge features ?
lf-non··on Brplot – plotting app/lib in C
Interesting tool, but may not be a great choice for new users: All support and development halted in 2016.
lf-non··on Hono v4.0
I formed a similar impression. I tried using their graphql plugin only to discover that there was no way to pass a context to the graphql handler (at the time) which was surprising. I went back to yoga after that.
lf-non··on Hono v4.0
Yeah, I like Hono, but it was surprising to see a react alternative from them. I am not sure why they are trying to compete with preact/atomico.
lf-non··on Concrete.css
Oh pico looks very nice - and something I am likely to actually use. concrete is a bit too minimal for me.

I like the concept of classess css but most of the solutions I looked at (before pico) were just not very pleasing oob.

lf-non··on Loungy: An Application Launcher Written with GPUI, the Zed GPU UI Framework
Not to take away anything from this project (which looks pretty cool), but for folks using KDE on Linux you have a similar launcher built in called Krunner (Try Alt+F2). It is pretty well integrated and has a nice ecosystem of plugins.

Posting this primarily because I frequently run into people who use kde but have never used krunner.

lf-non··on Adding type safety to object IDs in TypeScript
It is also convenient to use a unique symbol for the brand (declare const brand: unique symbol). Then we can combine multiple brands in the same type and if we don't export that symbol type, we simply dont have a way to access the brand property at runtime.
lf-non··on The Bun Shell
It doesn't have to be an either-or proposition Yes?

People are free to experiment with alternative cli utils which are not burdened by backward compatibility while nushell also remains easily adoptable by users who are accustomed to coreutils.

lf-non··on Gleam's New Interactive Language Tour
That's great to know. Will be looking forward to what you come up with.

Kotlin recommend ksp [1] but underlying platform's reflection is also available. I am not sure it (or something similar) will be a great fit for gleam but have been planning to explore it deeper for some time.

[1] https://kotlinlang.org/docs/ksp-overview.html

lf-non··on Brig: A user interface toolkit for Node.js, which is based on Qt for rendering
Interesting project but last release was seven years ago.
lf-non··on Gleam's New Interactive Language Tour
Yeah its there by default but then there is nobody forcing the consumer to use it.

So in theory we could get the raw body, and then use something like Jackson's ObjectMapper.valueToTree to get an untyped object hierarchy and then convert that to properly typed domain objects through some manually authored utility methods. Nobody does that though because it is super convenient to have a library take care of that boilerplate for you with codegen or reflection which was basically the point of my original comment.

lf-non··on VNote: A pleasant note-taking platform
Yes. Joplin supports this (although sync gets slow when the number of notes is large). Syncing the encryption keys is your responsibility. I transfer them over the wire to devices I use without sharing them with a third party service.
← PreviousPage 2 of 13Next →