Advertisement · 728 × 90

Posts by Luis Vaz // Rastrian

🫶

1 month ago 1 0 0 0
Post image

Build Your Own Compass: Stop Renting Your Taste

My new blog post, check it out here:
blog.rastrian.dev/post/build-y...

“A mentor’s success metric is simple: the student becomes harder to manipulate.”

1 month ago 2 0 1 0

Nice

2 months ago 0 0 0 0
Video

👋👋👋👋

3 months ago 0 0 0 0

well, 25 days to a important date

4 months ago 0 0 0 0
Preview
GitHub - Rastrian/Spore: Spore is a simple CLI tool for tunneling local TCP ports to a remote server. Spore is a simple CLI tool for tunneling local TCP ports to a remote server. - Rastrian/Spore

Spore is a minimal TCP tunnel implemented in Elixir/OTP. It forwards a local TCP port to a remote server, similar to Bore. Protocol and behavior follow the Rust original so clients and servers can interoperate when configured the same.

github.com/Rastrian/Spore

Inspiration: bore.pub

6 months ago 3 0 0 0
Preview
Why Reliability Demands Functional Programming: ADTs, Safety, and Critical Infrastructure > In banking, telecom, and payments, reliability is not a nice to have. It is table stakes. The most reliable systems I have worked on reduce entire classes of bugs before the code even runs. Function...

Why Reliability Demands Functional Programming: ADTs, Safety, and Critical Infrastructure

new blog post here:

blog.rastrian.dev/post/why-rel...

6 months ago 4 1 0 0
Preview
Hands on with Windows 11 Notepad's new markdown support Notepad now lets you use markdown text formatting on Windows 11, which means you can write in Notepad just like you could in WordPad.

Notícia da BleepingComputer

"Hands on with Windows 11 Notepad's new markdown support" #bolhasec

7 months ago 1 2 0 0
Advertisement
Preview
Beyond the NAT: CGNAT, Bandwidth, and Practical Tunneling ## Introduction Home internet in the 90s felt simple. You plugged into [Ethernet](https://en.wikipedia.org/wiki/Ethernet), got an [IPv4](https://en.wikipedia.org/wiki/IPv4) address, and you could expo...

Beyond the NAT: CGNAT, Bandwidth, and Practical Tunneling

new blog post here:

blog.rastrian.dev/post/beyond-...

7 months ago 7 4 1 0
Preview
Improve the deployment time for opam2web The opam2web image for opam.ocaml.org is huge weighing in at more than 25 GB. The bulk of this data is opam archives, which are updated and copied into a stock caddy image. There are two archives, ocaml/opam.ocaml.org-legacy, which hasn’t changed for 5 years and holds the cache for opam 1.x and ocaml/opam:archive, which is updated weekly. The current Dockerfile copies these files into a new layer each time opam2web builds. FROM --platform=linux/amd64 ocaml/opam:archive as opam-archive FROM ocaml/opam.ocaml.org-legacy as opam-legacy FROM alpine:3.20 as opam2web ... COPY --from=opam-legacy . /www ... RUN --mount=type=bind,target=/cache,from=opam-archive rsync -aH /cache/cache/ /www/cache/ ... And later, the entire /www structure is copied into a caddy:2.8.4 image. FROM caddy:2.8.4 WORKDIR /srv COPY --from=opam2web /www /usr/share/caddy COPY Caddyfile /etc/caddy/Caddyfile ENTRYPOINT ["caddy", "run", "--config", "/etc/caddy/Caddyfile", "--adapter", "caddyfile"] This method is considered “best practice” when creating Docker images, but in this case, it produces a very large image, which takes a long time to deploy. For Docker to use an existing layer, we need the final FROM ... to be the layer we want to use as the base. In the above snippet, the caddy:2.8.4 layer will be the base layer and will be reused. The archive, ocaml/opam:archive, is created by this Dockerfile, which ultimately uses alpine:latest. FROM ocaml/opam:archive AS opam-archive FROM ocurrent/opam-staging@sha256:f921cd51dda91f61a52a2c26a8a188f8618a2838e521d3e4afa3ca1da637903e AS archive WORKDIR /home/opam/opam-repository RUN --mount=type=bind,target=/cache,from=opam-archive rsync -aH /cache/cache/ /home/opam/opam-repository/cache/ RUN opam admin cache --link=/home/opam/opam-repository/cache FROM alpine:latest COPY --chown=0:0 --from=archive [ "/home/opam/opam-repository/cache", "/cache" ] In our opam2web build, we could use FROM ocaml/opam:archive and then apk add caddy, which would reuse the entire 15GB layer and add the few megabytes for caddy. ocaml/opam.ocaml.org-legacy is another 8GB. This legacy data could be integrated by adding it to ocaml/opam:archive in a different directory to ensure compatibility with anyone else using this image. This is PR#324 let install_package_archive opam_image = let open Dockerfile in + from ~alias:"opam-legacy" "ocaml/opam.ocaml.org-legacy" @@ from ~alias:"opam-archive" "ocaml/opam:archive" @@ from ~alias:"archive" opam_image @@ workdir "/home/opam/opam-repository" @@ run ~mounts:[mount_bind ~target:"/cache" ~from:"opam-archive" ()] "rsync -aH /cache/cache/ /home/opam/opam-repository/cache/" @@ run "opam admin cache --link=/home/opam/opam-repository/cache" @@ from "alpine:latest" @@ + copy ~chown:"0:0" ~from:"opam-legacy" ~src:["/"] ~dst:"/legacy" () @@ copy ~chown:"0:0" ~from:"archive" ~src:["/home/opam/opam-repository/cache"] ~dst:"/cache" () Finally, we need to update opam2web to use ocaml/opam:archive as the base layer rather than caddy:2.8.4, resulting in the final part of the Dockerfile looking like this. FROM ocaml/opam:archive RUN apk add --update git curl rsync libstdc++ rdfind caddy COPY --from=build-opam2web /opt/opam2web /usr/local COPY --from=build-opam-doc /usr/bin/opam-dev /usr/local/bin/opam COPY --from=build-opam-doc /opt/opam/doc /usr/local/share/opam2web/content/doc COPY ext/key/opam-dev-team.pgp /www/opam-dev-pubkey.pgp ADD bin/opam-web.sh /usr/local/bin ARG DOMAIN=opam.ocaml.org ARG OPAM_REPO_GIT_SHA=master ARG BLOG_GIT_SHA=master RUN echo ${OPAM_REPO_GIT_SHA} >> /www/opam_git_sha RUN echo ${BLOG_GIT_SHA} >> /www/blog_git_sha RUN /usr/local/bin/opam-web.sh ${DOMAIN} ${OPAM_REPO_GIT_SHA} ${BLOG_GIT_SHA} WORKDIR /srv COPY Caddyfile /etc/caddy/Caddyfile ENTRYPOINT ["caddy", "run", "--config", "/etc/caddy/Caddyfile", "--adapter", "caddyfile"] I acknowledge that this final image now contains some extra unneeded packages such as git, curl, etc, but this seems a minor inconvenience. The Caddyfile can be adjusted to make everything still appear to be in the same place: :80 { redir /install.sh https://raw.githubusercontent.com/ocaml/opam/master/shell/install.sh redir /install.ps1 https://raw.githubusercontent.com/ocaml/opam/master/shell/install.ps1 @version_paths path /1.1/* /1.2.0/* /1.2.2/* handle @version_paths { root * /legacy file_server } handle /cache/* { root * / file_server } handle { root * /www file_server } } In this configuration, the Docker push is only 650MB rather than 25GB. The changes to opam2web are in PR#245 Test with some external URLs: * https://staging.opam.ocaml.org/index.tar.gz * https://staging.opam.ocaml.org/archives/0install.2.18/0install-2.18.tbz * https://staging.opam.ocaml.org/cache/0install.2.18/0install-2.18.tbz * https://staging.opam.ocaml.org/1.2.2/archives/0install.2.12.3+opam.tar.gz * https://staging.opam.ocaml.org/1.2.0/archives/0install.2.12.1+opam.tar.gz * https://staging.opam.ocaml.org/1.1/archives/0install.2.10+opam.tar.gz * https://staging.opam.ocaml.org/opam_git_sha * https://staging.opam.ocaml.org/blog_git_sha * https://staging.opam.ocaml.org/opam-dev-pubkey.pgp

#OCaml #OCamlPlanet

7 months ago 0 1 0 0
Preview
Beyond the NAT: CGNAT, Bandwidth, and Practical Tunneling ## Introduction Home internet in the 90s felt simple. You plugged into [Ethernet](https://en.wikipedia.org/wiki/Ethernet), got an [IPv4](https://en.wikipedia.org/wiki/IPv4) address, and you could expo...

Beyond the NAT: CGNAT, Bandwidth, and Practical Tunneling

new blog post here:

blog.rastrian.dev/post/beyond-...

7 months ago 7 4 1 0
Preview
Opening the Gate: My first blog post This blog is meant to be a place for discussion. Most posts will circle around technology, **software engineering, DevOps, networking, tunneling, programming languages, and AI/LLMs**, but the scope is...

Opening the Gate: My first blog post

OSS 🐫 (OCaml) blog with RSS + GH Issues management

blog.rastrian.dev/post/opening...

7 months ago 8 4 1 0
Preview
AI promised efficiency. Instead, it’s making us work harder. AI tools were supposed to free up our time—but they’re increasing our cognitive load and making us less productive. Here’s what’s really happening (and how to use them without burning out).

afterburnout.co/p/ai-promise...

8 months ago 2 2 0 0
Preview
For the first time, OpenAI models are available on AWS | TechCrunch This is a juicy competitive move for both companies after AWS faced an onslaught of criticism over its progress with AI.

For the first time, OpenAI models are available on AWS

8 months ago 20 5 1 1

Lean FRO Year 3 Roadmap
www.youtube.com/watch?v=xIHG...

8 months ago 1 1 0 1
Advertisement

alchebra linear

8 months ago 28 7 3 1

The best time to start learning OCaml was 10 years ago, the second best time is now

8 months ago 10 5 0 0

Prender em casa ainda não é suficiente.

Quero esse bandido no sistema prisional. Chorando numa cela.

8 months ago 70 8 1 0

Exatamente

8 months ago 1 0 0 0

Sem querer ser agressivo com o amigo, acho esse um péssimo take.

Não, você não tem que virar (merd)engenheiro de prompt, mas também não vai te fazer mal algum conhecer a ferramentas e ter a capacidade de usar elas.

Usar de fato ou não, aí é escolha sua.

8 months ago 9 2 0 2

“Mas ela vai eventualmente diminuir a carga de trabalho e contribuir pra diminuição de postos de trabalho”

Sim, se não atingir um platô, isso pode ser realidade, mas justamente por isso que adaptar e ter um conhecimento fundamental forte te blinda da concorrência mais do que ignorar uma ferramenta.

8 months ago 0 0 0 0

A grande questão é justamente que a engenharia de software moderna trata muita coisa como silver bullet stuff, isso é, você acha que tá tendo um ganho de produtividade quando tá gastando muito mais tempo de contexto tentando nivelar algo, e é justamente nesse ponto em que muito dev se perde.

8 months ago 0 0 1 0

Não usem ferramentas, como um martelo, faça tudo na mão.

Diversas empresas vão exigir o uso minimamente so ferramental, e a grande questão é justamente saber quando usar e o que tirar de benefício, se você nunca testar a ferramenta nunca vai saber o impacto.

Ela só não pode ditar seu aprendizado.

8 months ago 0 0 1 0

Mixed Feelings.

1) Algumas empresas vão requerer o uso de AI
2)Vão dizer que se não tá usando AI direito o erro é seu, aprenda context engineering
3) Vão colocar no seu lugar alguém que saiba usar a AI para ser mais produtivo

Sabe o que resolveria isso? ESTADO FORTE! SINDICALIZAÇÃO etc.. etc...

8 months ago 14 3 2 0
8 months ago 41 13 0 0
Advertisement
8 months ago 1571 402 9 3

Por que não estamos violando o elo de confiança com a Fundação Cacique Cobra Coral.

8 months ago 1367 271 14 0

Vocês sabem quem no seu dia mais fraco e com mais tesão...

8 months ago 10 1 2 0
Post image Post image

atualização dos gatinhos

8 months ago 10 2 1 0
8 months ago 0 0 0 0