HNHacker News
TopNewBestAskShowJobs

star-techate

39 karma · joined August 14, 2018

submissionscomments
star-techate··on Perkeep: personal storage system for life
key words:

1. child porn

2. steganography

if I were the dev I'd add a 'list all' just to avoid anyone thinking the above were a good plan.

star-techate··on Perkeep: personal storage system for life
Fossil's also very easy to put online, needing at a minimum a two-line bash file to function as a CGI script.

Maybe more relevant to private data, the builtin wiki makes a good personal knowledge database.

The next version of fossil will have a forum (seen already at https://fossil-scm.org/forum/forum ). With the time sorting for threads, that might be good for temporal data that you wouldn't want to put in a wiki.

star-techate··on From ‘why I hate Detroit’ to ‘why I stayed’
Civilization collapses entirely

oh wow, power is very fluid. it's easy to break into power anywhere now. You don't have these awful elites preventing you from doing whatever you want to do.

star-techate··on newLISP v.10.7.4 Development Release
Gauche Scheme ... even Chicken Scheme could be used for a lot of sysadmin tasks
star-techate··on Why Can’t Apes Talk?
Nobody really is, or they'd be worrying about the evidence for talking snakes.

This is some kind of "the grass is greener on the other side" stuff. Local myths are absurd, but foreign myths are evidence.

star-techate··on Blogging with org-publish in Emacs
No, but it'd be easy. You need

1. a request to return org-mode data (or for requests to contain it in a mechanically distinguishable manner, an option if your normal output is org-mode plus some JavaScript that renders the page from org-mode)

2. some Emacs code to populate a buffer with org-mode data extracted from an HTTP request

That's it. Neither of those are technically difficult. Although there's lots of room for improvement, and that's where people might start to get interested. For example, you could develop org-mode as an alternative to Jupyter notebooks.

star-techate··on A List of Career Limiting Moves to Blow Up Your Future
> 3. Not speaking Swahili. If your boss is from Swaziland, then you need to know everything there is about Tanzania or Kenya.

Ha ha, pretty good. They snuck a serious-sounding joke item into an otherwise good list.

> 14. Writing an open letter to your boss.

Needs to go on a separate list, titled something like "Fun Ways to Quit Your Job"

> BONUS: Being a jackass outside of the work place.

Needs to go on a separate list, titled "The author of a list tells you how he vindictively sabotaged someone's career for expressing mild annoyance in a way the author did not care for."

Replace it, on this list, with "having a social media account".

Just don't.

star-techate··on What I've learned since quitting Elm
Yeah, there's no amount of bigoted "Haskell uber alles" posturing that can replace a simple, supported argument. None of the reading you think you've done, and I haven't, has succeeded in distinguishing your output from that of a complete poser.
star-techate··on Ask HN: Which types of tech jobs are best for people that can't handle stress?
1. avoid metrics. Ask during the interview how they gauge your work performance, how people get bonuses, etc. As a rule you'd much rather be judged by a person, your direct manager, than by an Excel sheet. Yes, hostile managers can be a source of stress, but they'll be that in any case. Metrics are simply an additional potential source of stress.

2. avoid having to deal with backups. Think of all the warnings about test coverage. Or about advocacy for compile-time checks, and for more thorough checks, for information in the editor as you're coding. Backup systems are all about finding out that shit's broke after it's too late and when you most urgently need it. They are an incarnation of stress. And if you do it well, nobody will ever even know. It's not "heads - bonus, tails - no bonus", but "heads - you can come into work tomorrow for the same pay, tails - you can't".

star-techate··on Artificial Intelligence Is Now a Pentagon Priority. Will Silicon Valley Help?
^ everybody remember this line for when it's given in response to an angry Congressman.

I imagine another line will be "it's marginally better than statistical human shooting, according to three studies!"

And then in the 'big house' people will refer to you as "Butterstats" or something. Because you were screaming "marginally better" the first night they left you in your cell.

Yo, butter stats, how's your appeal going?

star-techate··on Should I use WordPress or build my own website?
> I don’t want you to have to sign up to Wordpress just to leave comments and communicate with me.

Then don't restrict your comments like that. WordPress pages don't gather 8000+ spam links because it's only capable of accepting wordpress users' comments.

WordPress is flexible enough and rich enough in plugins and themes that I wouldn't it an alternative to "building my own website", but rather as one technology you can use to do that.

star-techate··on Artificial Intelligence Is Now a Pentagon Priority. Will Silicon Valley Help?
> Let's say a technology could be developed that allowed your government (wherever you are) to kill any person with almost zero cost and no chance of detection.

oh yeah, I remember that Hitman mission.

"Would it be morally justified for an assassin to kill me?" is a good question to add to the project-acceptance checklist.

star-techate··on Artificial Intelligence Is Now a Pentagon Priority. Will Silicon Valley Help?
It's really not, as people by themselves don't pose much of a military threat. What you really want to do is break all the stuff that lets those people actually threaten you.

Granted, much of that stuff is arranged in the form of compounds that contain people, or is stored on such compounds.

There are a few steps to "deciding who is innocent", but the big steps are Step 1: the President decides that the military can start making spot decisions like "that guy just shot me" within a specific set of circumstances. Step 2: "that guy just shot me! I'm shooting back!"

Better military technology improves step #2. It also improves subtler cases like "can I shoot this guy" / "does he have a weapon?" / "yes he totally does [false]" / "ok shoot him" -- by allowing the supervisor in this case to confirm what he's being told, before he gives the go-ahead.

But step #1 is the biggie. As soon as the President says that the military can go to a place and kill people, it gets very dangerous for the people there. Apart from turning the entire planet into a panopticon, I don't think technology can change this much.

star-techate··on Sites similar to this one?
What specifically do you find appealing about this site?
star-techate··on Bat: A cat(1) clone with wings
I wouldn't care much for the git features, but this is probably a bit faster than https://github.com/ofavre/vimcat
star-techate··on What I've learned since quitting Elm
> I'll just bet that you haven't read anything, because you disagree with people I think are, like, super-duper smart :)

Maybe if I read enough Foucault, or drink enough bleach, we'll be able to continue this conversation as equals :)

star-techate··on What I've learned since quitting Elm
You can learn things in one language that you might as easily learn in another. The argument here is that you wouldn't learn these things from Elm.
star-techate··on What I've learned since quitting Elm
> pure immutable languages need laziness

https://mercurylang.org/

If you put the most valuable thing in the universe inside a box that can't be opened or permeated by any force in the universe--then that thing is no longer valuable. Go find the former #2. If you have a programming ideal and that ideal requires laziness--then you've messed up. You have to conclude that there was something flawed about the ideal.

I'm a lot more confident about laziness being bad than about what you're thinking of as "a pure immutable language" being bad, but part of the problem about laziness is that it's a feature apart from the language it's in. If you implement a cache with a hash table in any normal language, then you can later on check and see how much data you have cached, keep track of your cache hit rate, empty the cache, pre-load your cache from a previous run, and so on. To work with your cache, you have the language itself at your disposal. If you implement a cache with a lazy list in language X, then language X can't help you. You'll need to hope that whatever Gods dangled laziness before you, also have some tools dangled elsewhere.

star-techate··on What I've learned since quitting Elm
Laziness is a superficially useful anti-feature.

I'd suggest waiting with OCaml until dependently-typed languages become more practical.

star-techate··on Elm 0.19 Broke Us
The actual reason is probably "when people use primes, they post code that gets syntax-highlighted by tools that don't know about primes, and this results in Elm code looking broken and stupid."
star-techate··on Elm 0.19 Broke Us
Evan probably talks about you in the first minute of https://www.youtube.com/watch?v=uGlzRt-FYto
star-techate··on Elm 0.19 Broke Us
That has its downsides, but if the people maintaining the language are too lacking in strong opinions about the language, you'll have other kinds of problems: bad features get into the language and now everyone must be prepared to deal with errant use of those features in the wild; there are too many too similar ways to do the same thing, so the language becomes hard to learn and teach; there are features you never normally use, so you're terribly confused when you accidentally invoke them (suppose you have `val` and `var` as two ways to bind variables, but everyone only uses `val` because `var` has some weird extra semantics.)
star-techate··on Elm 0.19 Broke Us
"Extremely quickly" -- if you can always take all sides of every branch in control flow. And you'll find only the same errors -- if you restrict the types you define to those supported by the dynamic language. If you don't restrict yourself, however, you can start catching classes of error at compile-time that in a dynamic language you could only look for by writing your own runtime checks.

And runtime checks aren't free - they cost CPU, they can have their own bugs, and they can be tedious to write. "In general", rather than even try to be as careful in a dynamic language as you could be with an advanced type system, you'll just settle for not being careful.

star-techate··on Reading files quickly in Rust
Simple file I/O is such a great task to blog about as there's a long evolution of 'discovery' permitted:

1. oh wow, syscalls are really slow. We need to get as much done as we can with as few of these as possible

2. that's kind of annoying though, what if we had ... some kind of ... transparently buffered ... interface?

3. woah that buffered I/O thing I discovered last time, I just found out that my C programs have been using that this whole time! what cheaters!

4. hmm, even though I have 9000 CPUs each trying to process I/O from this single filesystem, I'm not getting the 9000x speedup I would expect. wait, wait. I just had a thought. try and keep up with me here. Filesystems must exist somewhere in reality, right? On some part of my macbook? What part is that?

5. oh wow spinning disks have really weird performance characteristics

6. oh wow it's enormously faster to read serial data even in RAM! Even though it has 'random-access' right in the name, random access is slower! This is going to be an epic-length blog series guys! We're rediscovering everything!

star-techate··on PyPy.js: Python in the web browser
1. I'll copy&paste this to test it!

2. uh ok I'll paste it into an editor and remove the added indentation and then copy&paste that to test it

3. ... ok. I'll look at the code and reformat every single line and copy&paste that

the oldest complaint abides

star-techate··on Commons Clause
Certainly, it'll be a lot easier if you pick your redis-user in advance and look what its actual requirements are, so that you can focus on a solid implementation of those features.
star-techate··on Commons Clause
It's an in-memory key-value store. Its primary function is to let transient processes not have to hit the disk to update state. Go ahead and write one this weekend, in that shiny new language that you're interested in, and then finish it up by adjusting the redis bindings of a popular CMS to work with your daemon as well.
star-techate··on Commons Clause
Aye, sounds like it's a good time to develop another memcached replacement.

Tip: if your memcached replacement doesn't trivially allow the rooting of its server, and if you don't also defiantly leave the exploit in while explaining that "you must be --- this tall --- to use redis without it behaving like a malware installation", and that any dirty normies deserve that fate, then you're already better than redis! :)

star-techate··on Show HN: Rb – Turns Ruby into a command line utility
Well the thing is, matz did it a decade ago when he carefully copied all these features that Perl came up with or itself carefully copied from awk and sed.
star-techate··on Show HN: Rb – Turns Ruby into a command line utility
That's the author's oneliner. I don't know what that code is for either, which is part of I rewrote it in the second set of examples.

It's normal for a oneliner to be somewhat inscrutable though, since they're often extremely dependent on their inputs. Like if it's important to fetch the 3rd, 5th, and 7th column--why? You can't tell without the input.

Page 1 of 2Next →