HN user

hendi_

1,799 karma

F(L)OSS nerd. Runs ohne-makler.net

email: richter@(domain).net

Posts81
Comments128
View on HN
www.youtube.com 5mo ago

Helix 02 [video]

hendi_
3pts0
swipe.futo.org 1y ago

Keyboard Swiping Data Collection

hendi_
2pts0
petapixel.com 2y ago

Photographer Disqualified from AI Image Contest After Winning with Real Photo

hendi_
82pts29
drs.faa.gov 2y ago

SpaceX received FAA approval for Starship flight 4

hendi_
67pts18
twitter.com 2y ago

March 14, 7:00 a.m. CT: Starship's third flight test

hendi_
71pts29
www.indiegogo.com 5y ago

Paperlike 253: The First 25.3 inch E-ink Monitor

hendi_
3pts2
github.com 5y ago

SixtyFPS: New GUI framework written in Rust

hendi_
7pts0
blog.jabberhead.tk 6y ago

Re: The Ecosystem Is Moving

hendi_
1pts0
help.gnome.org 6y ago

Gnome 3.34 Release Notes

hendi_
1pts0
www.craigmurray.org.uk 7y ago

Craig Murray: Ten Points I Can’t Believe About the Official Skripal Narrative

hendi_
1pts0
direkris.itch.io 7y ago

You Are Jeff Bezos

hendi_
62pts31
marc.info 8y ago

Gentoo Linux GitHub Repo Hacked

hendi_
1pts0
edition.cnn.com 8y ago

'Black lives don't matter,' lawyer says after jury awards $4 in police killing

hendi_
4pts1
forum.nim-lang.org 8y ago

Welcome to the new Nim programming language forum

hendi_
4pts0
www.postgresql.org 8y ago

PostgreSQL 10 released

hendi_
10pts1
puri.sm 8y ago

Librem 5 – A Security and Privacy Focused Phone

hendi_
9pts0
relm.ml 9y ago

Asynchronous, GTK+-based, GUI Library, Inspired by Elm, Written in Rust

hendi_
2pts0
pwnaccelerator.github.io 9y ago

Hunting for Vulnerabilities in Signal – Part 1

hendi_
1pts0
blogs.gnome.org 10y ago

“Gtk 4.0 is not Gtk 4”

hendi_
12pts6
blog.torproject.org 10y ago

Tracking the Impact of the WhatsApp Blockage on Tor

hendi_
1pts0
loklak.org 10y ago

Loklak: Distributed Tweet Search Server

hendi_
1pts0
mjg59.dreamwidth.org 10y ago

Freedom, the US Government, and why Apple are still bad

hendi_
6pts0
spideroak.com 10y ago

Semaphor by Spideroak to Give Team Collaboration Privacy

hendi_
5pts0
bitcoincore.org 10y ago

BitcoinCore: Clarifying Communications

hendi_
4pts0
fop.thecthulhu.com 10y ago

Fraternal Order of Police Data Dump

hendi_
379pts188
www.benthamsgaze.org 10y ago

Insecure by design: protocols for encrypted phone calls

hendi_
10pts2
www.scmagazine.com 10y ago

Facebook integrates Tor into Android app

hendi_
2pts0
www.torproject.org 10y ago

This is what a Tor supporter looks like

hendi_
2pts0
wogcc.state.wy.us 10y ago

DO Not USE SPECIAL CHARACTERS as They Are Interpreted by SQL

hendi_
45pts9
theintercept.com 10y ago

Drone Operators Say They Were Horrified by Cruelty of Assassination Program

hendi_
4pts0

I was an avid Firefox user and supporter pre-1.0, even before it was named "Firefox". I used Pocket a lot, its history is part of my. It's time for Mozilla to die. That'll suck, but it's the only way forward. Way too many bad decisions in the last 10 years.

Fuck you, Mozilla.

Google Pixel 9 Pro 2 years ago

Yes, it's fully automated OTA updates with GrapheneOS.

(running it since 9mo on my Pixel 8)

htmx 2.0.0-beta1 2 years ago

We use htmx (mostly via our django-livecomponents) on our production website, for several public facing features. We've initially replaced numerous small things that were built with Alpine before, and once we've gained confidence we rewrote our whole messaging app from reason/react app.

Fun thing, customers find the new version (htmx/django-livecomponents) to be more responsive than the old version (react+REST). New version is less lines of code and easier to hack on die to fewer context switching.

Give htmx a try, it's worth a shot!

Back when uploading Warez to unintentionally open FTP servers was still a thing this was quite handy. Apparently some server software used some low level API to create directories, so you could create folders named LPT1, AUX etc. and put your stuff in there. Many server admins who would usually delete your uploads quickly weren't able to access or delete these folders, and your stuff was up longer.

Your point a) is moot, this is not what this is about. When writing manual SQL nothing stops you from doing `SELECT * FROM persons WHERE age > 'eighteen'` (the `age` field is a number, obviously). Coming from Django I was often bitten by `Person.objects.filter(age__gt=trashhold) # boom!` (note the misspelled variable "threshold") or, if you prefer manual writin SQL: `Person.objects.raw("SELECT * FROM persons WHERE age > {}", trashhold) # boom! as well`. (Admittedly this is unrelated to type safety, just a disadvantage of Python being interpreted, but still something that Haskell/IHP protects me of.)

Regarding b), yes there are good reasons for prepared statements. I won't go into your argument "for scalability" (premature optimization cough) but cached query plans aren't perfect either: data and data typologies change, and so does the optimal query plan. See https://blog.soykaf.com/post/postgresql-elixir-troubles/ for a blog post about Elixir/Phoenix/Ecto users being bitten by that.

I wonder if the person who wrote this understands SQL to sufficient depth. Not saying either way, just asking.

I did not write the IHP code, just the above comment. But I've read many of CJ Date's books and have a good grasp on the relational model, and of SQL too. I simply don't see things as black/white, there are certain queries where I do prefer prepared statements and functions, or PL/pgSQL even, then there are ones where I use an external .sql file to keep things tidy. But most of the time (especially in the user facing part of a web app) I like my ORMs or SQL DSLs.

Important bit missing from the title: this is using Haskell (and Nix).

IHP is supposed to become the Django/Rails/Phoenix of Haskell.

I've been using Django professionally for since 2013, but have started using IHP a couple of weeks ago. It's still quite early but with surprisingly few rough edges, i.e. the developer ergonomics are much better than I expected. It has great documentation that is improving rapidly (as opposed to many other Haskell libraries, which provide little more than API docs or even just the typed function definitions) and offers a refreshing take on database management and migrations.

Some of its killer features:

- HSX, a JSX-like template language that looks like HTML while providing type safety

- Auto live reloading without the need to setup anything

- Documentation with examples: it lets you query the database without learning about monads

- it defines |> for you ;-)

- type-safe, composable SQL queries:

  projects <- query @Project
    |> filterWhere (#userId, userId)
    |> filterWhere (#deleted, False)
    |> orderBy #createdAt
    |> fetch

I've listened to the previous episodes when they were released initially last year. The promise of The Program sounded intriguing: set in a (dystopian?) future, narrated by ordinary people, often in an interview style, so I as a listener was (and still am) unaware of the full setting. And then the series took a break for about a year, but is now finally back. Finally!

The previous episode was as good as expected, and I can't wait to listen to the latest one. It's a bit sad that I work from home, I'd love to have to commute tomorrow so I could listen to it on the train...

The ideas, the writing, the chosen music, and especially the production quality is top notch. I don't know how he does it or where he's got his budget from, but this sounds better and more professional than almost all other podcasts, totally on par (or even better) with content produced by BBC etc.

If Black Mirror went back to its pre-Netflix roots and had an audio version, THIS would be it!

WebOS OSE 2.1 7 years ago

HP killed Palm in 2012; I suppose that's when Duarte changed jobs and went to Google.

Material Design was released end of 2014.