HN user

terlisimo

347 karma
Posts0
Comments82
View on HN
No posts found.

well...

1) GoL is turing complete

2) there are algorithms that calculate digits of Pi or e.

so... yes?

but if I just took any old Pi-digits algorithm and encoded it on GoL, its appearance would not be meaningful or "elegant" to our senses. You're probably asking "what does the shortest/most elegant program to calculate Pi in GoL look like, and does it maybe have some unexpected relation to other mathematical terms like, I dunno, Euler's identity or... Mandelbrot set?" And then you would probably need to answer the question "Well, how would you like the digits encoded and represented?".

All of a sudden your question becomes a bit ambiguous. Or did I misunderstand what you meant?

I mean.... I think I feel what you're asking, like... is there some primal version of Pi that can be encoded in GoL initial condition with as few bits as possible but I'm afraid that the answer is something like "well, that depends on what you mean by [...]"

Nvidia drivers are not open source.

Nvidia has open-sourced the kernel module "driver", which recently have been declared stable enough for general consumption.

But the kernel-mode driver is only a small part of what you would call the graphics card driver, and the bulk of it is still very much a proprietary blob.

The true open source driver for NV cards is Noveau[1] which works ok with older cards but is slow to support newest cards and features. Performance, power mgmt and hw acceleration are usually worse or not working at all compared to the official drivers.

[1] https://nouveau.freedesktop.org/FeatureMatrix.html

I hear ya, that sounds familiar.

The amount of deliberate damage anyone on my team can do is pretty much catastrophic. But we accept this as risk. It is appropriate for the environment. If we were running a bank, it would be inappropriate, but we're not running a bank.

I pushed back on risk management one time when The New Guy rebuilt our CI system. It was great, all bells and whistles and tests, except now deploying a change took 5 minutes. Same for rolling back a change. I said "Dude, this used to take 20 seconds. If I made a mistake I would know, and fix it in 20 seconds. Now we have all these tests which still allow me to cause total outage, but now it takes 10 minutes to fix it." He did make it faster in the end :)

The abbreviated story I told was perhaps more dramatic-sounding than it really played out. I didn't just say "Nothing." mic drop walk out :)

The client was satisfied after we owned the mistake, explained that we have a number of measures in place for preventing various mistakes, and that making a test for this particular one doesn't make sense. Like, nothing will prevent me from creating a cron job that does "rm -rf * .o". But lights will start flashing and fixing that kind of blunder won't take long.

I agree.

I didn't want to add a wall of text for context :) And that was the only time I've said something like that to a client. I was not being confrontational, just telling them how it is.

I suppose my point was that there's a cost associated with increasing reliability, sometimes it's just not worth paying it. And that people will usually appreciate candor rather than vague promises or hand-wavy explanations.

A personal anecdote:

One of my guys made a mistake while deploying some config changes to Production and caused a short outage for a Client.

There's a post-incident meeting and the client asks "what are we going to do to prevent this from happening in the future?" - probably wanting to tick some meeting boxes.

My response: "Nothing. We're not going to do anything."

The entire room (incl. my side) looks at me. What do I mean, "Nothing?!?".

I said something like "Look, people make mistakes. This is the first time that this kind of mistake had happened. I could tell people to double-check everything, but then everything will be done twice as slowly. Inventing new policies based on a one-off like this feels like an overreaction to me. For now I'd prefer to close this one as human error - wontfix. If we see a pattern of mistakes being made then we can talk about taking steps to prevent them."

In the end the conceded that yeah, the outage wasn't so bad and what I said made sense. Felt a bit proud for pushing back :)

My preferred way of disabling Windows Defender is to boot Linux, mount windows partition and rename windows defender directories to *.disabled or whatever.

Example (assuming it is mounted at /mnt/ntfs):

mv "/mnt/ntfs/Program Files/Windows Defender" "/mnt/ntfs/Program Files/Windows Defender.disabled"

mv "/mnt/ntfs/Program Files (x86)/Windows Defender" "/mnt/ntfs/Program Files (x86)/Windows Defender.disabled"

mv "/mnt/ntfs/ProgramData/Microsoft/Windows Defender" "/mnt/ntfs/ProgramData/Microsoft/Windows Defender.disabled"

Antivirus service fails to start and that's about it, no other side effects.

To revert just rename back.

I have dual boot set up, but I believe the Ubuntu USB install image supports NTFS.

I had these two dual-18-core xeon web servers with seemingly identical hardware and software setup but one was doing 1100 req/s and the other 500-600.

After some digging, I've realized that one had 8x8GB ram modules and the slower one had 2x32GB.

I did some benchmarking then and found that it really depends on the workload. The www app was 50% slower. Memcache 400% slower. Blender 5% slower. File compression 20%. Most single-threaded tasks no difference.

The takeaway was that workloads want some bandwidth per core, and shoving more cores into servers doesn't increase performance once you hit memory bandwidth limits.

I've witnessed a few sustained (hours/days long) DDOS attacks that were straight up extortion: owners contacted with "give us money or we will keep your site offline".

Most of the time I see attacks lasting 15-20 minutes. I'm assuming it's either someone doing it "for the lulz" or some cyber warfare outfit testing their big guns.

I always consider the possibility of someone using DDOS to mask a more sophisticated attack.

Chiptune.app 3 years ago

Oh, wow! Such a compact cpu routine! Thanks for the link.

I wrote mine in C too and it's basically a 1k line switch statement for every 6510 instruction :) I went the extra mile and made it cycle-accurate though.

libsidplayfp is probably the best emulator out there. It actually emulates voltage levels at one stage. The wiki has a bunch of info on SID reverse engineered from die shots https://github.com/libsidplayfp/SID_schematics/wiki

Chiptune.app 3 years ago

To be fair, nobody called c64 music "chip music", it was just "music/tunes" because c64 music is really just code so in a way all of it was chip music (excepting some digi tunes).

The term chip music was coined on amigas and newer computers to differentiate it from regular sample based music.

Chiptune.app 3 years ago

also the 6510 CPU and even some of the C64's CIA timers

yes, but also the VIC timers and the PLA. So basically you need all of the c64 chips emulated, at least in part :)

I wrote a simple SID player for fun and I feel like it's 20% shy of being a full c64 emulator, all it needs is video output and keyboard/joystick input.

Yep. A ton of proprietary software (like anything from IBM) supports only RHEL or SLES.

If you open a support ticket and say "Hi I'm using Debian/Arch/Nix" they will just laugh and close the ticket.

you’ll never count to “orange” - “orange”

Ok but I don't see how that relates to the idea of storing sequences of numbers (the basic function of a filesystem) in Pi. Orange is not a number so it doesn't make sense to look for it in any sequence of numbers. "Orange" can however be represented as a sequence of ASCII characters, and if every sequence of numbers is contained in Pi, then an ascii representation of any string can also be found.

This will get large very quickly.

Right, but here's a thought...

Suppose the place in Pi where your sequence is located is huge. You could maybe (probably) find a sequence earlier in Pi that is a pointer to your actual location :) So the metadata would need like 3 things to make this work. 1) length of your data, 2) checksum of your data and 3) pointer into Pi. If hash of (pointer+length) doesn't match checksum, it's a pointer (which may point to a different pointer etc).

That might make it compress a bit better. Although you may need huge amount of RAM just to dereference the pointers.

DSSV Pressure Drop sounded like a Culture ship name to me so I looked that up. It's not, but the name of the DDSV, "Limiting Factor", is. Apparently they also named their utility boats after Culture ships.

To those who don't know: "The Culture" is a... society(?) of godlike AI ships/minds from the series of SF books by Ian M. Banks.

SpaceX named their landing barges after Culture ships too, the "Of Course I Still Love You", "Just Read The Instructions" and "A Shortfall of Gravitas".

https://theculture.fandom.com/wiki/List_of_spacecraft

I saw a big one in the evening during army bootcamp. For a second or two it was as bright as day.

One of the guys says "wtf was that?" and another replied "it's a falling star" (literal term we use for shooting stars in our language).

A third guy asks, "so why do stars fall?". Silence.

I ventured, "uh, guys... stars don't fall. Stars are like the Sun, just really far away. What we saw was a meteor, a rock that flew through space and burned up when it hit the atmosphere."

Half the squad looked at me like I just said that babies are delivered by storks. I could tell they thought that was total bullshit but couldn't offer an alternative explanation and call me on it.

It was then that I realized how smart and educated the average person is. Army service was mandatory back then so everyone had to go.