HNHacker News
TopNewBestAskShowJobs

hermanhermitage

718 karma · joined April 10, 2012

https://github.com/hermanhermitage
submissionscomments
hermanhermitage··on OCaml Programming: Correct and Efficient and Beautiful
That’s been my experience. Across the spectrum of languages I’ve found certain features such as dynamic memory, managed memory, memory safety, evaluation model, etc all have an impact on the transparency of understanding time and space characteristics. I spend most of my time in assembly and C, but love the sheer ranges of language options we have today. I put Haskell in the “Miranda” branch of languages which I love for tackling some problems but day to day but I’ve never got a handle on how that translates into predictable characteristics of the generated code.
hermanhermitage··on The Ultimate Conditional Syntax
Thanks for posting this. Lambda zero looks wonderful. Is there any background information beyond the GitHub repo?
hermanhermitage··on The lost language extensions of MetaWare's High C compiler (2023)
Every time Walter posts it reminds me my dream language would simply be C with https://www.digitalmars.com/articles/C-biggest-mistake.html and probably go lang style interfaces. Maybe a little less UB and some extensions for memory safety proofs.
hermanhermitage··on Defold engine code overview
I'm with you on this. I tried Defold for prototyping a game concept and was less than impressed. It got in the way in a framework sense, and didnt seem to provide much bang for buck (ie it consume more hours of my time learning its perculiar ways of doing things than it probably have taken to roll my own). Of course peoples mileage may vary. I was expecting things like auto atlassing, batch processing on import, proper layer z-order (versus using a 3d style z value). I recall the UI did weird stuff like sorting alphabetically, instead of by creation order or z-order. The message passing thing was annoying. I guess it was a bad choice for me. I'm probably more productive with a library and tools approach, rather than "opinionated" engine. It felt like someone was caught up in an architecture more suited to creating very large games and applied it here. It felt like it was created by too many programmers working to a feature list, rather than creating a useful cohesive tool.
hermanhermitage··on Practical Examples in Data Oriented Design
Excellent, thank you for those references.

I also recently picked up "Data-oriented design: software engineering for limited resources and short schedules" by Richard Fabian, which I've not had a chance to read properly but looks like it covers things in detail.

hermanhermitage··on Practical Examples in Data Oriented Design
Excellent, I'll check that out. As (at the risk of exposing my geriatric age) someone who did 3d engine and driver work back in the mid 90s to early 00s, I found the bitsquid blog really useful to warping my brain to the near era and the tradeoffs that matter today. Great stuff.
hermanhermitage··on Practical Examples in Data Oriented Design
Did you try with the speaker notes on? That gives a bit more detail.
hermanhermitage··on Practical Examples in Data Oriented Design
I recommend the old bitsquid blog as well - it gives a good snapshot of the thinking that goes into creating game engines these days.

http://bitsquid.blogspot.com

hermanhermitage··on An interview with Barbara Liskov
I'm not sure its preposterous. Based on what I've read she and her team focussed on teasing out abstraction and modularity features in CLU based on experience building previous large/medium scale software systems.

It doesn't preclude others inventing before, after or at the same time. Nor the same ideas being explored in other fields earlier with other terminology or focus.

I'm sure there is some field of human endeavour that has explored and documented the same ideas in a different context much earlier.

hermanhermitage··on Humans have salamander-like ability to regrow cartilage in joints
Fascinating - thanks for sharing. Another request for dosage levels here.
hermanhermitage··on Prince Of Persia Code Review (2013)
The native disk format was actually broken into sectors, see:

http://amigadev.elowar.com/read/ADCD_2.1/Devices_Manual_guid...

It read full tracks at a time, but you can see from the doc there were 11/22 sectors with no inter sector gaps, but there are separate sectors of 512 bytes which are addressed in the file system structures.

hermanhermitage··on OUP/M: CP/M-like operating system for 6502
For another CP/M take on 6502 see DOS/65 at http://www.z80.eu/dos65.html
hermanhermitage··on Sum Types Are Coming (2015)
Nomenclature varies, but I'm guessing the author of comment is using 'union' as the sum analog of tuples (unnamed fields) and 'sum' as the sum analog of struct/records (ie named fields).
hermanhermitage··on Isomorphic Go
"monoglot" might be a more accurate term, but "isomorphic" seems to have the mind share.

"isomorphic" would seem to imply having the same structural composition - eg. big ball of mud on the front end and back end, or broken into services implemented as objects (sequential) or actors (concurrent).

hermanhermitage··on How slot machines are designed to be addictive
A 'Compensator' is an element that dynamically controls the payout typically based on the current 'hold'. The hold being the amount of money in the machine.

If I recall 'Barcrest' has a range of patents covering compensators. (For those interested).

AWP is Amusement with Prize(s) https://en.wikipedia.org/wiki/Amusement_with_prize

Not sure about the Dutch market. I recall a game shipping to Netherlands called 'Golden Goals', so I believe they have class 3 gaming machines (at least in Casinos?).

Its possible the machine you are talking about has the BET (per line) set high, so that your current CREDIT amount is insuffient to activate all the available LINES. On most modern video slots there is a BET per line, a possible ANTEBET a number of LINES to wager on. The total STAKE = BET * LINE + ANTEBET. The LINE lights (or BET lights in USA) will illuminate based on which valid bets.

My advice is press the collect button, take your money and buy yourself a drink :) Gaming machines work on 'Negative Compound Interest' - thats all you need to know. If you keep re-'investing' you will only end up with a $0 balance.

Finally every Jurisdiction typically operates on different rules. These rules are normally publically available.

For instance NSW Australia has their rules outlined at: http://www.liquorandgaming.nsw.gov.au/Pages/gaming/gaming-ma...

This covers the national standards that are generally applicable to machines in Australia and New Zealand, and then variations and specializations for the particular market of NSW - management protocols, jackpot behaviour, prohibited features etc.

hermanhermitage··on How slot machines are designed to be addictive
2) The employees are not gambling, so they are not exposed to the addictive product.

3) Incorrect. Standalone progressives and linked progressives adjust the payout based on the outcome of previous games. Either the jackpot is awarded and reset, or the increment is added and will be available as a future payout. Furthermore some markets have had a history of compensators (eg fruit machine markets / awp).

hermanhermitage··on Mac-dev-playbook – Mac setup and configuration via Ansible
Looks like this is it:

https://github.com/ttaylorr/dotfiles/blob/work-gh/Makefile

hermanhermitage··on Using tmux properly
What i would like is to be able to extend terminal protocols to allow client side dotfiles that could be loaded in preference to the host dotfiles.

Limited to user prefs, Key bindings etc.

Wouldnt solve everything but would address the basics.

hermanhermitage··on Minimal Raspberry Pi VPU firmware
Love the design of the instruction set. It was a lot of fun reverse engineering it and mulling over the design space. Thanks.
hermanhermitage··on Use caps lock as a language switch
Yes, the first computer keyboards I used had both shift lock and caps lock.

If I miss anything, I would like it if shift + caps lock, behaved the same as shift lock.

hermanhermitage··on Use caps lock as a language switch
I use it heavily in Asm,C,C++ for #define's, enums, etc where ALLCAPS or ALL_CAPS tends to be its own namespace for certain things.
hermanhermitage··on In defence of Douglas Crockford
In, "they give me the shivers", they is singular.

https://en.wikipedia.org/wiki/Singular_they

hermanhermitage··on ​Attack on Australian Census site didn’t register on global DDoS sensors
My recollection was that https://spacetimeresearch.com/ (ex ABS guys setting up a plum contract) did all the data processing of the raw data, providing a representative but anonymous set to ABS masses for reporting.

The real data was locked away (no electronic access) and I recall destroyed after a certain point of time. There were no names attached to the real data, even though the real data was not accessible by any mortal.

The representative set had the property that if you say queried a statistic at the national level it would be correct, but if you queried that statistic on a narrower area it get more "representative" and less applicable to the precise area queried. The means etc would however all pan out.

The data was accessible at 7 granularities of geographic areas. Some of the areas may have only had 100s of residents, so you can see why the data was fuzzed.

We were co-located in a building with the ATO, but there was a strict protocol and security personnel denying any access by non ABS staff. We had no internet access, no floppy drives, (no USB back then from memory), no CD burners no easy way of getting data in or out.

hermanhermitage··on ​Attack on Australian Census site didn’t register on global DDoS sensors
Not sure how it's done these days, but many moons ago (round 1996 from memory) I worked for ABS on the census side of things.

What your friend says was utterly correct at that point in time.

Further more, you couldn't even dial up a post code and get meaningful data of that precise post code.

The more specific the geographic area the more "representative" the data got. Privacy was taken very seriously.

hermanhermitage··on Show HN: A Game Boy emulator in C++
I'm guessing to build from source, you would need to install SDL for development:

    sudo apt-get install libsdl2-dev
hermanhermitage··on C++14 for the Commodore 64 [video]
There's also https://github.com/puppeh/gcc-6502 and https://github.com/puppeh/gcc-6502-bits to get 6502 directly out of gcc.
hermanhermitage··on Open source VPU side bootloader for Raspberry Pi
Also, there are hardware blocks for JPEG and MPEG for best performance. See vcodec.h etc.

But the VPU 2D SIMD is good for non supported codecs.

hermanhermitage··on Open source VPU side bootloader for Raspberry Pi
Those headers are as I recall all part of Broadcom's release at https://www.broadcom.com/support/videocore.

The rest is a matter of looking at register traces and lot's of hard work on Kristina's part.

hermanhermitage··on Open source VPU side bootloader for Raspberry Pi
Not ARM, but there is http://www.lowrisc.org/, not sure of its status.
hermanhermitage··on Open source VPU side bootloader for Raspberry Pi
Context: This is a first step in allowing blob free development on the RaspberryPi.
Page 1 of 5Next →