HNHacker News
TopNewBestAskShowJobs

sebcat

1,241 karma · joined October 24, 2012

Mowgli could not help laughing when the Bandar-log began, twenty at a time, to tell him how great and wise and strong and gentle they were, and how foolish he was to wish to leave them. "We are great. We are free. We are wonderful. We are the most wonderful people in all the jungle! We all say so, and so it must be true," they shouted. -- Kaa's Hunting
submissionscomments
sebcat··on “Lambda and serverless is one of the worst forms of proprietary lock-in” (2017)
> We were vendor locked when we paid for Unix or Windows servers, then we got Linux and BSD.

NT was released in -93, FreeBSD 2.0 (free of AT&T code) was released in -94. GNU/Linux also saw professional server use in mid/late 90's. People still lock themselves in though.

sebcat··on Where do Google's flaky tests come from?
When doing anything concurrently and/or in parallel, it is always good to have an input queue and an upper bound on the number of tasks (/threads/processes/...). Also an asynchronous flow.

You need to handle other problems (back-pressure, priorities, timeouts, ...) but if you need it you need it.

sebcat··on FaceTime bug lets you hear audio of person you are calling before they pick up
Probably Referer check, copy-pasting the URL works.
sebcat··on Websocketd
prior thread with some ad-hoc measurements: https://news.ycombinator.com/item?id=16714403
sebcat··on Websocketd
1) that's virtual size, and most likely (depending on OS/cfg) COW (assuming no call to execve).

2) that's a default - most systems allow tuning

You can have pretty decent performance with forking models if you 1) have an upper bound for # of concurrent processes 2) have an input queue 3) cache results and serve from cache even for very small time windows. Not execve'ing is also a major benefit, if your system can do that (e.g. no mixing of threads with forks). In forking models, execve+runtime init is the largest overhead.

It will not beat other models, but forking processes offer other benefits such as memory protection, rlimits, namespace separation, capsicum/seccomp-bpf based sandboxing, ...

YMMV

sebcat··on Problems plagued U.S. Navy destroyer Fitzgerald before fatal collision
Maybe the environment does not allow for good people, and/or for people to be good?
sebcat··on Ask HN: What should a systems/low-level software engineer know?
> You have to watch what compiler flags you use, like someone turning off stack cookies, not using clang's sanitizers. Check out https://clang.llvm.org/docs/AddressSanitizer.html it would have prevented the Heartbleed vulnerability if it existed at the time.

If that was true, then so would Valgrind have, and Valgrind was in wide use at the time.

It was however more complicated than that. If my memory serves me right - OpenSSL had its own memory management.

sebcat··on Using Web Technologies to Print a Book
Unsolicited code review:

    system("multimarkdown -s ../#{part}/story.md | sed -E 's/_([^_]+)_/<em>\\1<\\/em>/g' | sed -E 's/<h1 .+<\\/h1>//g' | sed 's/<p>%<\\/p>/<p class=\"section-break\">%<\\/p>/g' > output-#{part}.html")
IMO:

    s_<p>%</p>_<p class="section-break">%</p>_g
is easier to read than:

    s/<p>%<\\/p>/<p class=\"section-break\">%<\\/p>/g
Any reason to keep the %-sign?

Those sed commands could probably be reduced to one invocation of sed(1) instead of three.

    system("cat #{htmls} | #{wkhtmltopdf_cmd} --footer-html footer.html - body.pdf")
No need to use cat.
sebcat··on The Overloaded Soldier: Why U.S. Infantry Now Carry More Weight Than Ever
> Any thought on the cultural norms driving so much gear to be individual?

Fecal gravity. A lot times it could be fixed with better logistics, but the people making the decisions are not the ones who have to deal with the consequences of those decisions.

sebcat··on Programmer as wizard, programmer as engineer (2018)
Indeed, thanks!
sebcat··on Programmer as wizard, programmer as engineer (2018)
My understanding is that it is more like COM, CORBA and NetBeans. I guess it is one of those things that can mean different things to different people. At its core, it's just separation of concerns, usually branded and (re-)packaged. Often times, that core idea seems to get lost somewhere around the way...
sebcat··on 35th Chaos Communication Congress Live Streams
I have a vague memory from 2009 IIRC, walking past Alexanderplatz underneath the S-bahn towards the Berlin Congress Center. A somewhat "top-of-the-world-ma!"-moment in retrospect. I think we drove there, the four of us, in my parents Mitsubishi SUV. We had parked the car in a nearby garage. It didn't meet the environmental requirements of the city instituted a year earlier, but no tickets were issued on it.

We slept at The Gym. We saw Assange on stage. My first quad-copter encounter was at that event. I had my first Club Mate. The curry-wurst was good.

The four of us who went there together knew each-other from IRC, but I don't think we met before that. One of us ended up working for Google, one of us ended up co-founding a startup. One of us disappeared, one of us started working for a European network camera manufacturer.

Good times!

sebcat··on Fortnite teen hackers 'earning thousands of pounds a week'
> I knew my parents would have gone mental if I was caught

You hooked it up to the phone, didn't you? You screw up again and you won't get into college!

sebcat··on Browsers
Lack of official support for Chromium on platforms other than OSX, Windows and Linux worries me a little.

Both FreeBSD and OpenBSD maintain large patch-sets to be able to build Chromium. [1][2]

I don't know the current situation, but historically some of these patches have had problems reaching upstream because Free-/OpenBSD is not officially supported[3].

[1] https://svnweb.freebsd.org/ports/head/www/chromium/files/ [2] http://cvsweb.openbsd.org/cgi-bin/cvsweb/ports/www/chromium/... [3] https://codereview.chromium.org/180743014/#msg3

sebcat··on Write Your Own Virtual Machine
Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz

gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516

sebcat··on Write Your Own Virtual Machine
I googled and found a test[1]. Running this test with a few modifications (like removing unused variables and using PRIu64 instead of %llu) and disregarding the last two prints, I get:

switch = 5589926 goto = 5752079 goto_opt = 5618938

with -O0, and

switch = 2234105 goto = 2013742 goto_opt = 2016200

with -O2.

EDIT:

Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz

gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516

[1] https://gist.github.com/mmozeiko/7cc858985b57df30eebbf8c6e75...

sebcat··on Norwegian frigate sinking has far-reaching implications
While your narrative is a compelling one, I do not see how it maps to the sequence of events leading up to the collision.

According to the investigation, Sola TS was mistaken to be a stationary object further away, and the warning received over radio was believed to come from one of the outer portside ships. If that was the information I had at hand, I would not turn starboard either.

sebcat··on Norwegian frigate sinking has far-reaching implications
Pictures of the aftermath: https://mediearkiv.forsvaret.no/fotoweb/archives/5028-KNM-He...
sebcat··on Ask HN: Best Command-Line Applications?
A few of these (all?) are TUIs and not CLIs.

CLIs are command driven. TUIs are driven by user interactions. I'm sure more/better distinctions between the two can be made.

sebcat··on C library system-call wrappers, or the lack thereof
Similar to the BSDs: by providing wrappers for syscalls in their own libc.

Plan 9 has very few syscalls compared to Linux and the BSDs.

sebcat··on The ELF Virus Writing Howto (2003)
The following:

http://www.linuxsecurity.com/resource_files/documentation/vi...

is implemented here:

https://freeshell.de/~swestres/code/infect_ELF.html

Of course, you need w permissions to the elf you want to write to.

sebcat··on Chicken Scheme 5.0
I wrote an IRC bot[1] to get a feel for Scheme in general earlier this year. I chose Chicken for it, which got me to look into Cheney on the MTA and other implementation details which were really interesting.

The FFI is really nice, given that Chicken compiles to C.

The Chicken IRC channel was a lot of help early on.

All in all an enjoyable experience!

[1] https://github.com/sebcat/kylling/blob/master/kylling.scm

sebcat··on We posed as 100 Senators to run ads on Facebook. Facebook approved all of them
> So what you're saying is, because a senator could conceivably be running ads, then any ad that claims to be by a senator should be approved without scrutiny?

That was not said in the message you replied to.

sebcat··on A Look at the Design of Lua
> lack of a separate integer type (chars are strings, ints are floats)

> Even bit manipulation requires going through the FFI

This, and some of the other things, have not been true for years.

sebcat··on What I Learned from porting my projects to FreeBSD

    ag Needle < haystack
No need for cat
sebcat··on 42 (school)
> This seems to resonate well with the culture of piscines at 42

I do not understand this. What does "culture of piscines" mean? I assume it's not literally pool culture.

sebcat··on Go 1.11 got me to stop ignoring Go
Sounds believable, but at the time we were stuck at 1.6 and had a significant drop in traffic due to JSSE and non-existing support of "modern" TLS Cipher Suites and TLS extensions (we even had problems with SNI, years after introduction)...

We were using C because epoll made it possible for us to compete, but the Java reactivex stuff were lagging behind.

sebcat··on Go 1.11 got me to stop ignoring Go
Having introduced Golang in a business environment in 2014 and having seen the language solve real problems at that time, at scale, I feel that if your own reason to not use Go is GOPATH... Either Go does not solve any real problems for your use case, or your reasons to use Go is misaligned.

GOPATH is really not a problem, but efficient concurrency is. Go made the company I worked for go from 20 deployments for a service to 1 (I/O bound), reducing the costs for that service a lot. If you are willing to let the environment get in between that...

Of course, you could have implemented that system using assembler for all I care, but Go really made it possible within that organization, something Java, C and other languages failed at before Go was introduced.

N=1, ymmv, &c

sebcat··on LoJax: First UEFI rootkit found in the wild, courtesy of the Sednit group
> the products they release just don't have the same effectiveness they used to. If sales of antivirus is dropping, where will they get their funding from?

Anti-virus software was very easy to circumvent in the past. Getting the kernel32 address from the PEB, having your own PE loader and having most code xored with the Mersenne twister output in the data segment for obfuscation, as well as some runtime is_sandbox() heuristics and no AV would detect anything malicious.

Don't know if it got better or worse, but AV software was not very good at finding malicious code explicitly written to not run in plain sight in the past.

sebcat··on Evidence that addictive behaviors have links with ancient retroviral infection
Now all we need to cure addiction is the nam-shub of Enki.
← PreviousPage 3 of 14Next →