HN user

pasxizeis

209 karma
Posts28
Comments53
View on HN
agis.io 2mo ago

Dabbling in Erlang, part 2: A minimal introduction (2013)

pasxizeis
40pts8
github.com 7mo ago

Show HN: Wasm decoder with focus on helpful errors/diagnostics

pasxizeis
2pts0
news.ycombinator.com 1y ago

Ask HN: Is Google Cloud Run down for anyone else?

pasxizeis
3pts1
github.com 1y ago

Show HN: pglockanalyze - See the locks your Postgres migrations will acquire

pasxizeis
8pts0
agis.io 3y ago

Go transitioning to contiguous stacks (2014)

pasxizeis
2pts0
open.spotify.com 3y ago

Tell HN: Song on Spotify unexpectedly interleaved with another unrelated song

pasxizeis
1pts1
github.com 5y ago

Show HN: Optimally distribute and run RSpec suites among many (CI) workers

pasxizeis
1pts0
github.com 6y ago

Show HN: A Ruby IO object that can be composed of other regular IO objects

pasxizeis
1pts0
news.ycombinator.com 6y ago

Ask HN: What is your monolith's CI build model?

pasxizeis
2pts0
github.com 6y ago

Show HN: Experimental system call tracer written in Go

pasxizeis
1pts0
github.com 6y ago

Show HN: General-purpose build server written in Go

pasxizeis
2pts0
engineering.skroutz.gr 6y ago

Speeding Up Our Build Pipelines

pasxizeis
59pts24
delaportation.com 7y ago

Delaportation is all about teleporting your files

pasxizeis
1pts0
news.ycombinator.com 7y ago

Ask HN: Interested in decentralized web. Where to start?

pasxizeis
1pts0
github.com 7y ago

Show HN: A library for end-to-end testing Go servers easier

pasxizeis
6pts2
github.com 8y ago

Show HN: Mistry – an efficient build server

pasxizeis
3pts1
engineering.skroutz.gr 8y ago

Introducing Kafka to a Rails application

pasxizeis
6pts0
twitter.com 8y ago

Deloitte data breach

pasxizeis
2pts0
github.com 8y ago

Show HN: A pure-Ruby implementation of systemd's sd_notify(3)

pasxizeis
1pts0
github.com 8y ago

Show HN: Mcdetect – a tool that detects mixed content issues with Headless Chrome

pasxizeis
4pts0
engineering.skroutz.gr 9y ago

Rewriting a web analytics tracking infrastructure in Go

pasxizeis
11pts0
grigoria.gr 11y ago

Users have time. They just don’t want to spend it with you

pasxizeis
2pts0
grigoria.gr 11y ago

It's all about consistency

pasxizeis
1pts0
github.com 11y ago

A Git Style Guide

pasxizeis
42pts6
agis.io 11y ago

Dabbling in Erlang: A minimal introduction (comparing with Ruby)

pasxizeis
2pts0
agis.io 12y ago

Contiguous stacks in Go

pasxizeis
17pts2
agis.kontext.gr 12y ago

Dabbling in Erlang, Part 2: A Minimal Introduction

pasxizeis
75pts17
agis.kontext.gr 13y ago

Diving into Erlang and functional programming, part 1

pasxizeis
3pts0

As a means to learn about both WebAssembly and Rust, I started writing a WebAssembly binary decoder (i.e. a parser for `.wasm` files) from scratch.

Recently it hit v3 spec conformance. (I'm executing the upstream spec test suite.)

I don't plan to make it a highly-performant decoder for use in production environments, but rather one that can be used for educational purposes, easy to read and/or debugging issues with modules. That's why I decided not to offer a streaming API, and why I'll be focusing on things like good errors, good code docs etc.

https://github.com/agis/wadec

P.S. I'm new to the language so any feedback is more than welcome.

I followed the same testing approach when writing a Wasm binary parser (technically, a decoder)[0].

It was pretty helpful having the official spec suite available and a major boost of confidence that your parser is compliant.

Nevertheless, it was my own tests that found a regression in the latest published version of the spec[1], which shows how important it is to have a variety of implementations.

[0] https://github.com/agis/wadec

[1] https://github.com/WebAssembly/spec/issues/2066

Tangential: I decided to write a Wasm parser (more precisely, a decoder the the Wasm binary format) from scratch, as a means to learn both Wasm and Rust[0].

It was the first time I was writing this sort of thing, but I found the spec very clear and well-written.

Fun fact: I was surprised when the test from a toy parser surfaced a real regression in version 3 of the spec[1], released roughly 4 months before.

[0] https://github.com/agis/wadec

[1] https://github.com/WebAssembly/spec/issues/2066

I'd say jump straight to the specification (maybe v2, which is simpler).

But I occasionally saw one or two articles around where they explain how the binary format works, which could be a good introduction before jumping to the spec.

As a means to learn about both WebAssembly and Rust, I started writing a WebAssembly binary decoder (i.e. a parser for `.wasm` files) from scratch.

Recently it hit v2.0 spec conformance. 3.0 is next on the roadmap. (I'm executing it against the upstream spec test suite.)

I don't plan to make it a highly-performant decoder for use in production environments, but rather one that can be used for educational purposes, easy to read and/or debugging issues with modules. That's why I decided not to offer a streaming API, and why I'll be focusing on things like good errors, good code docs etc.

https://github.com/agis/wadec

P.S. I'm new to the language so any feedback is more than welcome.

Really happy to see Pat keeping it up! His first Ruby under a Microscope book but also his blog posts are amazing and a major source of inspiration for me. I did meet him personally in a Euruko conference. Such a great person.

As a means to learn about both WebAssembly and Rust, I started writing a WebAssembly binary decoder (i.e. a parser for `.wasm` files) from scratch.

Recently it hit v2.0 spec conformance. 3.0 is next on the roadmap. (I'm executing it against the upstream spec test suite.)

My aim is probably not for it to become a highly-performant decoder for use in production environments, but rather one that can be used for educational purposes and/or debugging issues with existing modules. That's why I decided not to offer a streaming API, and why I'll be focusing on things like good errors, good code docs etc.

https://github.com/agis/wadec

P.S. I'm new to the language so any feedback is more than welcome.

As a Rust newbie and seasoned Go dev, I'm pretty interested to knownwhere would people experienced in both OCaml and Haskell, would put it in the spectrum.

As a means to get into WebAssembly, I started writing a WebAssembly binary decoder (i.e. a parser for `.wasm` files) from scratch.

Recently I started executing the upstream spec tests against it, as a means to increase spec conformance. It's non-streaming, which is a non-starter for many use cases, but I'm hoping to provide a streaming API later down the road. Also, the errors interface are still very much WIP.

All that said, it's getting close to a fully-conformant one and it's been a really fun project.

https://github.com/agis/wadec

P.S. I'm new to the language so any feedback is more than welcome.

A CLI tool to make reasoning about Postgres locks a bit easier.

Given a database[1] and a set of DDL statements/migrations you want to check, pglockanalyze will open a transaction, execute the statements, read the pg_locks view to analyze the locks they acquire and rollback (or commit, depending on the flags you passed) the transaction. Then, it will output the results for each statement.

I think there's merit in this idea, that said it's very much an experiment so there could be flaws and/or corner cases that this strategy won't work well for.

It's meant to act as a complement, not a replacement, to things like static analysis and the official Postgres docs.

https://github.com/agis/pglockanalyze

[1] typically an ephemeral database spawned by your CI pipeline

A CLI tool to make reasoning about Postgres locks a bit easier.

Given a database[1] and a set of DDL statements/migrations you want to check, pglockanalyze will open a transaction, execute the statements, read the pg_locks view to analyze the locks they acquire and rollback (or commit, depending on the flags you passed) the transaction. Then, it will output the results for each statement.

I think there's merit in this idea, that said it's very much an experiment so there could be flaws and/or corner cases that this strategy won't work well for.

It's meant to act as a complement, not a replacement, to things like static analysis and the official Postgres docs.

https://github.com/agis/pglockanalyze

[1] typically an ephemeral database spawned by your CI pipeline

A "Postgres lock diagnostics" tool for migrations. We've been bitten a few times, by seemingly innocent migrations that ended up acquiring locks we did not expect (yes, RTFM).

So I thought: what if, when you opened the PR, you had a tool that actually executed your migrations, saw what locks they acquired (in runtime) and then reported it as a comment to your PR? This would provide you with yet another data point you could use to reason about whether your migration is safe to deploy or not. For example:

    ALTER TABLE users ADD COLUMN email TEXT:
      acquired AccessExclusiveLock on relation `users`
It does this by opening a transaction, executing the statement, and observing the `pg_locks` view from _a different_ connection before the initial transaction is rolled bac (or committed, depending in the flags you passed). The idea is to be able to use it as a CLI, as a library or with a ready-made GitHub Action (which will take care of commenting in your PR).

It's in early-stage and very much a PoC yet, but I think there's merit in the idea.

https://github.com/agis/pglockanalyze

P.S. Also, an excuse to learn Rust - so any feedback from Rust ppl more than welcome

Pglocks.org 1 year ago

Shameless plug: I wrote a tool[1] that executes a given migration against a test database (e.g. in your CI) and reports back what locks it acquired.

The rationale being to have a "lock diagnostics report" commented in your PR's migration file.

It's a prototype and has a few rough edges and missing functionality, but feedback is more than welcome.

[1] https://github.com/agis/pglockanalyze

Not sure what happened here, but this track[1] at around the 55th second, is suddenly (and unexpectedly) cut off and another, totally unrelated (different artist, different genre) starts playing. The original track is from a Greek hardcore hip-hop group.

First time encountering this in a streaming platform so I found it interesting to share.

[1] https://open.spotify.com/track/4YPTB10Kzq7TMPrL5qHFVk?si=B8i...

Correct. It might sound obvious to some, but if you're an organization from the Rails 0.x era (~2011) you have a lot of legacy code and infrastructure that albeit not fancy new tech, it works.