HN user

ryanmjacobs

582 karma

notryan.com webfpga.io

Posts34
Comments107
View on HN
cgit.freebsd.org 2y ago

FreeBSD: Fix frequency calcuation for bell (2021)

ryanmjacobs
3pts1
ebics.net 2y ago

How Much Is Lattice Ice40 FPGA

ryanmjacobs
2pts0
en.wikipedia.org 3y ago

Null Island

ryanmjacobs
1pts0
drops.dagstuhl.de 4y ago

Is a Dataframe Just a Table? (2019) [pdf]

ryanmjacobs
3pts0
www.youtube.com 5y ago

Realistic Tom Cruise Deepfake – AI Tom Cruise

ryanmjacobs
4pts0
blainsmith.com 5y ago

Year 5 School Bachelor's Degree (2020)

ryanmjacobs
2pts0
zfs.rent 5y ago

Show HN: Zfs.rent

ryanmjacobs
403pts219
please-unsubscribe.com 5y ago

Show HN: Please-unsubscribe.com – fwd emails to unsubscribe from marketing

ryanmjacobs
218pts245
notryan.com 6y ago

Show HN: My sans-JavaScript server dashboard

ryanmjacobs
12pts9
news.ycombinator.com 6y ago

Ask HN: How much of technology is directed towards developing better technology?

ryanmjacobs
1pts0
blog.notryan.com 6y ago

Fun Facts on Producing Minimal HTML

ryanmjacobs
101pts88
blog.notryan.com 6y ago

I Am a Programmer

ryanmjacobs
5pts0
blog.notryan.com 6y ago

Show HN: HTTP Blog Server – 100 Lines of C in a Closet

ryanmjacobs
6pts0
www.youtube.com 6y ago

Krazam – The Hustle (2018)

ryanmjacobs
2pts0
youtu.be 6y ago

Microservices

ryanmjacobs
1pts0
github.com 6y ago

Bashtop

ryanmjacobs
5pts0
www.youtube.com 6y ago

Minecraft with Nvidia RTX Beta

ryanmjacobs
1pts0
web.eecs.utk.edu 6y ago

Setjmp()/Longjmp()

ryanmjacobs
2pts0
www.i-programmer.info 6y ago

JQuery 3.5 – Still Relevant

ryanmjacobs
2pts0
www.bloomberg.com 6y ago

Phantom Debt

ryanmjacobs
2pts0
twitter.com 6y ago

Rails dev sponsored on GitHub (Twitter)

ryanmjacobs
3pts0
cloudflare-ipfs.com 6y ago

Isbgpsafeyet.com

ryanmjacobs
1pts1
www.pruefziffernberechnung.de 6y ago

On the 2ROT13 Encryption Algorithm [pdf]

ryanmjacobs
1pts0
notryan.com 6y ago

No Laptop, No Phone

ryanmjacobs
2pts1
samueli.ucla.edu 6y ago

New terahertz-band laser offers broad tunability

ryanmjacobs
1pts0
www.kickstarter.com 7y ago

Flashing FPGAs with Your Phone

ryanmjacobs
4pts1
www.kickstarter.com 7y ago

Show HN: WebFPGA – Rapid FPGA Development for Beginners

ryanmjacobs
8pts2
most.definitely.notryan.com 7y ago

Letter to HN: On Youthful “Success”

ryanmjacobs
2pts0
www.urbandictionary.com 8y ago

Urban Dictionary: Hacker News

ryanmjacobs
65pts10
rmj.us 9y ago

Motorized, Live 360° Video (Before Facebook Did It)

ryanmjacobs
3pts0

Oh that's embarrassing -- you're right, the first example doesn't make sense. Kinda pointless actually haha

I use it for code like this:

  raw = IO.popen(%W[gzip -d -c -- #{path}]){_1.read}
  raw = IO.popen(%W[gzip -d -c], in: pipe){_1.read}
  raw = IO.popen(%W[git status --porcelain -- #{path}]){_1.read}
Useful because it eliminates /bin/sh footguns (e.g. `md5sum hello&world` forking or `~john` expanding), plus you get kernel.spawn() options. `open("| ...)` only made sense for the second example.

Anyway, I find "_1" more eye-pleasing than:

  IO.popen(%W[gzip -d -c #{path}]){|io| io.read}

FYI, one of my favorite Ruby idioms is to capture command output with `open(...){_1.read}`

  pp open("|ls -lh /usr/bin/ls"){_1.read}
  "-rwxr-xr-x 1 root root 135K Aug 30 04:57 /usr/bin/ls\n"
or to quickly print tabular data
  open("|column -t -s \\t", "w"){_1 << tsv_data}

Oh damn. I have been using `_1`, `_2`, etc. extensively for years... I didn't know about that footgun.

I'd like know if `it` is merely an alias for `_1`, or if protects from this "arity issue" too.

I'm pleasantly surprised to see this improvement:

  Tempfile.create(anonymous: true) removes the created temporary file
  immediately. So applications don’t need to remove the file.
  [Feature #20497]
I use a similar pattern a lot:
  file = Tempfile.new.tap(&:unlink)
  file << "... some really large data to pipe"
  system("md5sum", in: file.tap(&:rewind))
It's a neat trick to leverage the filesystem for large amounts of data (e.g. "psql \copy" generation), without littering tempfiles everywhere. Once the last fd disappears, the filesystem releases the data; so you don't have to "trap" signals and add cleanup routines. (Hint: you can also use these unlinked-tempfiles for command output, e.g. huge grep output, etc.)

On Linux systems, `open(..., O_TMPFILE)` is typically used, which provides additional safety. The created file is initially unnamed (no race condition between `open` and `unlink`).

When I needed safety, my non-portable solution was to use Ruby's syscall feature. (Btw, I love that you can do this.)

  require "fcntl"

  SYS_OPEN   = 2
  O_TMPFILE  = 0x00410000
  O_RDWR     = Fcntl::O_RDWR

  def tmpfile
    mode = O_RDWR | O_TMPFILE
    fd = syscall(SYS_OPEN, "/dev/shm", mode, 0644)
    IO.for_fd(fd)
  end
But... Another pleasant surprise from the PR (https://bugs.ruby-lang.org/issues/20497).
  Linux 3.11 has O_TMPFILE to create an unnamed file.
  The current implementation uses it.
Excellent to see :) Makes the PR even better!

Rest in peace, Bram. I was introduced to Vim by my father when I was a kid, and have been using it for the past 15 years. Your software has touched many lives.

I had the same exact situation. I used the Apple card almost exclusively in 2022 because of the 1% card + 2% apple pay rewards.

Doing taxes right now and I spent about 10 minutes manually exporting+emailing OFX/QFX files to myself for Quicken. Kind of a pain. Every other card I have supports automatic data pulling.

Probably will move my main card to something that has automatic integration.

[dead] 5 years ago

I found out because my CircleCI jobs were failing to `npm install`. Guess the deploy will have to wait...

Ah. Yeah, that's what I have been doing. It took about an hour to send 100G initial ZFS seed over the network between different datacenters. Then I suspended all of the VMs and sent the remaining incremental.

The --raw/-w flag does send the compressed data.

It always feels brittle to me because of how manual the process is. Maybe it's time to create some decent scripts with safe logic and checks...

I've been doing this with several production PostgreSQL instances.

PostgreSQL on ZFS is great.

I have zstd compression enabled and I average 3.50x compression ratios.

(Probably some pretty awful CPU tradeoffs in there, but system load and query times seem fine. My database is 50 GB before zstd compression, so enabling it helps a ton.)

I also have ZFS snapshots taken hourly and shipped offsite. It's awesome that I don't need to pause PostgreSQL or anything to take the snapshot. It's atomic and instant.

This is fantastic. I am definitely going to look into the blktrace calls. They look useful.

---

I've been looking for a way to copy virtual machine disks over the network with minimal downtime.

I.e. Copy the entire 50 GB disk over. Suspend the VM. Do a quick pass that picks up the changed blocks. Resume the VM.

Does anyone have a tool for that? It would be similar to how QEMU/KVM does it for VM migrations. (They only support doing it for RAM though.)

---

Also related, you can use the sysrq feature on Linux to remount the root file system as read-only. Then run `dd if=/dev/sda | ssh user@destination.com 'cat > sda.img'` to transfer the root partition consistently.

I've used this twice to migrate VPSs off of Cloud providers and onto my physical servers to convert to .qcow2 images. Worked perfectly :)

I'm not sure if you are required to reboot afterwards, but I always do. It would be nice to "un sysrq remount".

Location: Sacramento, CA

Remote: PREFERRED

Willing to relocate: YES (to Bay Area)

Technologies: PostgreSQL, C, linux, Node.js/TypeScript/React.js

Resume: https://notryan.com/resume.pdf

Email: ryan [at] rmj.us

---

I'm looking for a full-time role centered on infrastructure and metrics. Firmware development would be cool too! I have experience in insurance + FinTech + major PMS systems (Entrata, RealPage, Yardi).

Notable works:

* https://zfs.rent

* https://webfpga.com

For example, I've had fewer headaches using the regular Java Kafka bindings or JeroMQ than by using the "Clojure-ified" versions of these libraries.

As someone who is trying to decide how to interop Clojure + ZeroMQ, do you have any pointers for working with JeroMQ within Clojure?

Yesterday, I was browsing/evaluating the Clojure libraries for ZeroMQ, and all them haven't seen git pushes in the last three years and have between 10 and 120 stars on GitHub -- but JeroMQ has recent activity and >1.8k stars, so I'd like to stick with that for sake of support/documentation/etc.

--

(Caveat: ... not that GitHub stars are the best metric for quality... but they're not a terrible one...)

All FPGA synthesis runs for https://webfpga.com are on Arch Linux based containers. There isn't a lot of traffic. We get around 5-10 synthesis runs per day from .edu accounts. It's been reliable, lightweight, and stable.

When developing the platform, we tried Ubuntu/Debian/CentOS, and at the time (about 1.5 years ago), Arch Linux was the most reliable OS for getting the 32-bit deps to work with existing commercial chains, and new toolchain compiles (IceStorm, NextPnr, etc). I think this is because Arch typically includes the development headers by default.

As long as the regression tests continue to pass, we will likely continue to roll with Arch Linux. We only tend to rebuild images once a month or so, since our backend is fairly feature complete already.

--

I think the trick is:

* Use containers, e.g. dockerhub's archlinux

* Assume that you will never be able to run pacman on a live system. Instead, rebuild a new image with a Dockerfile with your new packages -- then deploy that.

Yes! I'm bookmarking this repo. As soon as there is a more concrete plan, I will definitely pledge my time to help out.

I hope we all learned our lesson on this one -- let's not get acquired by RedHat/IBM this time around :)

Three cheers for Kurtzer!

Well this sucks... IBM/RedHat is really shooting themselves in the foot here. Stable CentOS versions have always been my go-to for VPS services. Install it once and you're good -- plus no Ubuntu snap stuff... I have 5+ CentOS 8 installs and I was really banking on the LTS timeline. I wish they would have kept that going alongside their CentOS 7 support.

I'm debating whether or not to downgrade to CentOS 7 to at least keep going until 2024, instead of 2021 with CentOS 8.

Hopefully, some other player steps up and creates a similar offering.

Also, I've been irked lately about them deprecating virt-manager and pushing podman. I don't mind alternatives, just keep the feature parity when you switch. Cockpit is fairly limited compared to virt-manager.

Show HN: Zfs.rent 6 years ago

Hahaha no I have several sites running with that Let's Encrypt cert. I'm working on separating them out, but until I get my DNS Let's Encrypt process automated, I'm just extending the cert via certbot.sh :/