HNHacker News
TopNewBestAskShowJobs

alschwalm

277 karma · joined February 22, 2015

submissionscomments
alschwalm··on The LD_DEBUG environment variable (2012)
LD_AUDIT is another one worth knowing about (though I admittedly use it less often than LD_DEBUG) https://man7.org/linux/man-pages/man7/rtld-audit.7.html
alschwalm··on Show HN: I wrote a tool in Rust for tracking all allocations in a Linux process
Yeah, that was my assumption as well, good to have it confirmed though. Thanks for your excellent work on bytehound!
alschwalm··on Show HN: I wrote a tool in Rust for tracking all allocations in a Linux process
Interesting approach. How is performance compared to something like https://github.com/koute/bytehound
alschwalm··on Show HN: Unblob – extraction suite for 30+ file formats
Looks nice! Kind of reminds me of binwalk: https://github.com/ReFirmLabs/binwalk
alschwalm··on Btrfs in Linux 6.2 brings performance improvements, better RAID 5/6 reliability
I'm curious how the benchmarks are for Btrfs on 6.1, given the improvements that (I think) landed in it: https://www.phoronix.com/news/Linux-6.1-Btrfs
alschwalm··on Lisp-stick on a Python
Looks like it: https://docs.hylang.org/en/stable/api.html#let

I recall hearing it had been implemented a while back, seems like it's true!

alschwalm··on Nyxt 3 Pre-release 1 (a Lisp powered web browser)
I've also hit this issue. About a year ago I made an effort to use blink, but after a bit of work I recall essentially discovering that any support was effectively abandoned. I wish they would remove the note in the FAQ about supporting multiple engines, as it doesn't seem to be the case.
alschwalm··on The Little Book of Rust Macros
It is definitely also worth mentioning the now-stabilized procedural macros [1] (unless I missed where they are described). proc macros power some of the more complex macro usage in the rust ecosystem (like rocket and actix-webs router macros, any sort of custom derive, etc).

[1]: https://doc.rust-lang.org/reference/procedural-macros.html

alschwalm··on Ask HN: Who wants to be hired? (August 2021)

  Location: Huntsville, AL, USA
  Remote: Yes
  Willing to relocate: No
  Technologies: Rust, C, C++, python, Xen, KVM, hypervisor development, Linux kernel development, IDA Pro
  Résumé/CV: https://alschwalm.com/resume/resume.pdf
  Email: adamschwalm@gmail.com
I am currently a technical lead for a hypervisor product. My career has primarily been focused on low-level security and performance for quasi-embedded systems, but I also have experience with reverse engineering and machine learning applications. I am passionate about using modern technologies like rust to improve the security posture of products and would like to continue to work in that area.
alschwalm··on Ask HN: What are some tools / libraries you built yourself?
https://github.com/alschwalm/transient - A tool for quickly creating short-lived virtual machines for doing kernel or hypervisor testing, made after I got tired of dealing with races and general complexity from libvirt-based tools.
alschwalm··on Linux Hypervisor Setup (Libvirt/QEMU/KVM)
VirtIO is very usable via QEMU, without libvirt (naturally, because in the configuration described in the article, libvirt is just calling QEMU). It is usually as simple as `qemu-system-x86_64 -drive file=/path/to/my/disk,if=virtio`.
alschwalm··on 1Password for Linux beta
I'm concerned about self hosting a service like this as well, so I put mine behind an nginx reverse proxy that requires a client cert for auth. That way, an attacker won't even be able to reach the bitwarden server to try to get in (unless there's a vulnerability in nginx).
alschwalm··on Show HN: Transient – A tool for creating VMs for testing and development
We were actually previously using vagrant (-libvirt) for our CI, but moved away from it to this because vagrant does not seems to work very reliably when run in parallel. For example image downloading doesn't seem to have a filesystem lock, so one would succeed and the others failed.

In general, we wanted to be able to spin up our test VMs under docker containers to eliminate issues with differences between our CI shell-runners. Using libvirt based tooling makes that pretty hard. Calling to qemu directly, on the other hand, makes this easy.

There are some other benefits as well such as having direct console access which is not provided by vagrant, but can be very useful for kernel tests.

alschwalm··on Zero Cost Abstractions
There is a typo under the 'optimal performance' section. "A zero cost _abstractoin_ ought..."
alschwalm··on United States v. Microsoft Corp. Dismissed [pdf]
Shameless plug: If you enjoy that, you may like a version that I made that sinks the audio and transcripts with puppies[1], available here: https://www.youtube.com/channel/UCn1ibFnn3NcXjQHY47o0yWg/vid... Though this particular case is not available yet.

[1]: The idea was originally inspired by Last Week Tonight, I just automatically generate them.

alschwalm··on Vim Clutch – A hardware pedal for improved text editing (2012)
Wow this is really detailed. Thanks!
alschwalm··on Vim Clutch – A hardware pedal for improved text editing (2012)
The keyboardio is the only keyboard I know of that has the palm keys, but I've been interested in buying or making a keyboard that has them. Any writup on your build?
alschwalm··on Why Is It Taking 20 Minutes to Mine This Bitcoin Block?
The article on the "hitchhiker's paradox" that this links to made this much more clear to me (as well as being shorter): https://the8layers.com/2016/10/30/how-long-will-you-wait-hit...
alschwalm··on Show HN: Generate high-res images of code samples with Chrome Headless
I tend to like https://www.draw.io/ for that sort of thing (there is a chrome app if you want to run offline).
alschwalm··on uBlock Origin Maintainer on Chrome vs. Firefox WebExtensions
Wait, what? I know that hw accelerated video decoding is generally not available on linux chrome, but I'm pretty sure that lots of other things are. From my chrome://gpu

    Canvas: Hardware accelerated
    CheckerImaging: Disabled
    Flash: Hardware accelerated
    Flash Stage3D: Hardware accelerated
    Flash Stage3D Baseline profile: Hardware accelerated
    Compositing: Hardware accelerated
    Multiple Raster Threads: Enabled
    Native GpuMemoryBuffers: Software only. Hardware acceleration disabled
    Rasterization: Software only. Hardware acceleration disabled
    Video Decode: Software only, hardware acceleration unavailable
    Video Encode: Software only, hardware acceleration unavailable
    WebGL: Hardware accelerated
    WebGL2: Hardware accelerated
But this is with an integrated GPU, so maybe things are different for discrete cards.
alschwalm··on Hy – A Lisp-flavored Python
There is a description of the problem here: https://github.com/hylang/hy/issues/1056

I think it really comes down to python having limited scoping capabilities (I think you can only really make new scopes with function declarations), this can maybe be hacked around, but at too high a performance cost to be usable.

alschwalm··on Hy – A Lisp-flavored Python
Hy is a great project. One unfortunate thing, though, is that no one has been able to successfully implement `let`, which makes writing idiomatic lisp almost impossible. I'm curious if anyone can actually prove it can't be done or is just very difficult (or too slow to be useful).
alschwalm··on On Password Managers
The problem I tend to think of is that they store the urls in the clear, so an attacker (who can bypass SSL) will potentially be able see which sites you have passwords saved for. There's a writeup that mentions it here: http://www.martinvigo.com/even-the-lastpass-will-be-stolen-d...
alschwalm··on Generating executable files from scratch
Presented graphically here: http://i.imgur.com/xMyblyM.png

Though the graphic, like this post, doesn't talk much about elf segments.

alschwalm··on 'Crash Override': Malware That Took Down a Power Grid
Maybe a reference to the protagonist from Hackers: http://www.imdb.com/title/tt0113243/
alschwalm··on Reversing C++ Virtual Functions: Part 1
Author here. This is a pretty introductory post, but I wanted to do something basic before going more in-depth. The next part (hopefully!) will contain a tool release (in the form of an IDA plugin) for automating things.
alschwalm··on When noexcept?
It is probably also worth noting that there is a good optimization opportunity when using noexcept move constructors. std::vector::push_back has a strong exception safety guarantee, so the normal behavior when the vector is at capacity is to create a new buffer and copy construct each item in the vector into it. If the copy constructor of any element throws, the original buffer is still in a coherent state.

If the type has a move constructor that is noexcept, then each element can be move-constructed without fear of an exception occurring. For many types, this is vastly more efficient.

alschwalm··on Ripgrep code review
I'm a fan of the graphics as well. Does anyone know what they were made with? I see the org-mode reference at the bottom of the page, but I assume that doesn't include the images.
alschwalm··on Sqlite Performance
Anyone have any thoughts on why removing the superfluous assignments had such a dramatic effect? That was a surprise to me.
alschwalm··on How does gdb work?
I think just DIE's would be sufficient, definitely don't need accelerator table stuff.

I've actually considered looking more at the LLVM dwarf writing components. Do you have any experience with that?

Page 1 of 2Next →