>learning zig
>building sqlite from scratch in zig
>doing all that in nvim
>"knocking on heaven's door" playing on repeat
>having cracked frens here on X the everything app
>reading 20th century boys
>feeling most alive
>life is good
Just dove into
@stanfordnlp
's DSPy framework and decided to craft a little project to get the hang of it.
Wrapped it in
@FastAPI
to experiment with how they'd mesh together.
The coolest part? It's all local.
I used
@ollama
for language and embedding models, plus
@trychroma
for
Excited to share new RAG Demo Application Template!
code:
Built with
@FastAPI
&
@Gradio
, powered by
@stanfordnlp
DSPy, and made fully local with
@Ollama
.
It's an example for devs exploring DSPy, RAG, or creating AI-driven apps locally.
low-level programming bizarre adventure day 32
>bittorrent in zig was on today's menu. it can now parse the torrent file. God bless people like openmymind his posts about json parsing came in handy.
>doom (2016) ost is the music of choice
>lfg
low-level programming bizarre adventure: embedded crusade day 37
>done some basic stuff on pico w like led blinking, connecting oled display
>reading pico datasheet
>embedded programming is cool
>lfg
low-level programming bizarre adventure day 6
>finished 65 ziglings exercises
>started building http server in zig as codecrafters challenge
learned about tcp/ip, how to bind to a port, receive simple get request and respond to it appropriately
so this is how pointers work in zig
stand arrow is like a pointer. it can point to different stands (data), change what it points to (reassignment), or point to nothing (null). when it pierces a stand, it's changing data through a pointer
Pushed some updates to my DSPy FastAPI wrapper project: now with
@ArizePhoenix
for better observability. Refactored the code too, so it's cleaner than ever.
code:
Just missing a frontend to complete the setup. Anyone interested in teaming up on that?
Just dove into
@stanfordnlp
's DSPy framework and decided to craft a little project to get the hang of it.
Wrapped it in
@FastAPI
to experiment with how they'd mesh together.
The coolest part? It's all local.
I used
@ollama
for language and embedding models, plus
@trychroma
for
low-level programming bizarre adventure day 30
>sqlite in zig can now count rows in table.
>learned about b-tree indexes, sqlite root page, cell representation.
>doom ost is the music of choice today
>life is good
sqlite in zig
created a DbInfo struct with a read function that extracts information from a database file. the function reads the page size from byte 16, verifies the page type at byte 100, and then reads the table count from bytes 103-104
comptime in zig is like king crimson's abilities. it predicts code outcomes (epitaph) and skips runtime calculations (time erasure). comptime functions are resolved before execution, just like diavolo foreseeing and manipulating battles
low-level programming bizarre adventure day 2
>finished 34 ziglings exercises (defer now is a jojo reference)
>watching dude the builder zig master playlist
>continuing learning zig by
@karlseguin
>"i can't stop the loneliness" playing in the background
>life is good
low-level programming bizarre adventure day 38
>sqlite in zig can now read data from multiple columns
>basically adding more and more to the sql parser
>japanese jazz is back on the menu
>life feels good man
low-level programming bizarre adventure day 4
>finished 51 ziglings exercises
>`.?` is a JoJo referenced
>read about zig's comptime
>japanese jazz is still undefeated
not much learning today, slow day. i need to lock in more
low-level programming bizarre adventure day 1
>done 17 ziglings exercises
>going through "learning zig" by
@karlseguin
>el huervo - rust playing in the background
low-level programming bizarre adventure day 11
>learned basics about cpu, ram. kernel/user mode. system calls. timeslices and their target latency and granularity
>error handling is jojo referenced
>reading terminal-doom dev's blog about zig
>rock the casbah is today's music
oke, i made a repo called "ziglands" with all the jojo references i've done so far.
in this repo, you'll find dotfiles and explanations.
ziglands vol.1: phantom code
1. stairway to heaven't - defer
2. arrow through the heart - pointers
3. livin' on a prayer - optional
low-level programming bizarre adventure day 3
>finished 44 ziglings exercises
>pointers in zig are now a JoJo reference
>watching dude the builder zig master yt playlist
>japanese jazz playing on repeat
>lfg
low-level programming bizarre adventure day 12
>finished all current ziglings exercises
>watched andrew kelley's talk on practical data oriented design (dod)
>zig is great
>japanese jazz is back on the menu
kitty and zig just had a baby and it's DOOM in terminal.
couldn't find the goat who made it here on X the everything app.
but here da links:
repo:
his gh profile:
low-level programming bizarre adventure day 9
>learned about global, stack, heap memory
>watching any additional memory-related videos
>started doing zig exercises on exercism
>listening to creedence clearwater revival
>life is good
i begin my zig arc.
and i'll start by building a god-chosen db - sqlite in a god-chosen language - zig from scratch by going through
@codecraftersio
tutorials
>learning zig by making JoJo references
>convinced colleague at corpo to use nvim and learn zig also
>surrounded by cracked frens on X the everything app
>goated japanese jazz playing on repeat
>naoki urasawa is a genius
>feeling blessed and grateful
>life is good
low-level programming bizarre adventure day 13
>revised ziglings, to cement what i've done
>learning about concurrency, threads, event loops
>starting to do zig challenges on exercism
>i really want to stay at your house playing on repeat
the .? operator in zig, like a stand arrow in JoJo, forcefully unwraps optional values: it's powerful when it works (giving a stand) but crashes the program if the value is null (arrow rejection)
so the `.?` syntax in zig is essentially saying, "i'm certain this optional value is not null, so just give me the value. if i'm wrong, crash the program." right?
this is mad good.
iot and embedded system simulator: esp32, stm32, arduino, raspberry pi pico, displays, sensors, motors and wifi simulation.
thanks to
@lelouchdaily
low-level programming bizarre adventure day 24-25
>finished 3 chapters of rust's "the book"
>finished 15 rustlings (ziglings are so far better)
>watching videos on embedded software development in rust
>life is good
low-level programming bizarre adventure day 7
>going through zig builtins
>watching zig master playlist by dude the builder on yt
didn't code much, just reading & watching. i want to dive deep into memory stuff, is cs50 memory lecture a good start?
low-level programming bizarre adventure day 26
>learned about dithering
>building pixzel - image to pixel art converter in zig
>added color palettes for pixel art
didn't push updates to the repo yet, i think i'm on to something, need some more time to make it better. LFG
Introducing Dynamite Dogs - built during
@BurningHeroesFA
's hackathon to generate docs & posts from GitHub repos.
Stack
@llama_index
,
@ollama
,
@langfuse
&
@Gradio
Claude 3 Haiku prompted by Opus for same quality at ~$0.01/request (40x cheaper).
Code:
low-level programming bizarre adventure day 18
>reading kent beck's tdd book
>started doing codecrafters shell in zig challenge
>got out of prison realm
>jeanette porque te vas - is the music of choice
>life is good, love you all
za warudo acts like a labeled switch in zig. it jumps between time states (cases) using continue :za_warudo, mimicking dio's time control. each case represents a moment in the fight. we transition states until reaching 'end', where we break, ending the time stop ability
built an image-to-pixel art converter in zig - pixzel. currently supports png input/output only.
next steps:
>customizable color palettes
>improved color quantization and dithering
low-level programming bizarre adventure day 28
>added .tables functionality to sqlite from scratch in zig. ngl, it was hard but now i can list the table names.
>kid cudi was my companion today
>life with challenges -> good life.
std.process.child.init() in zig is like summoning a stand. it creates a new process (stand), executes external programs (stand abilities), and allows interaction. just as jotaro calls forth star platinum, our code summons a child process to perform tasks
@iamjosephyoung
As Kazakh jigitt I can say that they not allowing people buy/sell bitcoin with bank accounts. They want to launch a crypto exchange lead by the government. And in order to enter this exchange u have to open an additional bank account from approved banks
low-level programming bizarre adventure day 8
>finished 75 ziglings exercises (we're getting there)
>comptime is JoJo referenced
>http server in zig can now parse the request path and respond with a body
>still gathering knowledge on memory
>japanese jazz remains undefeated
zig's memory allocators are like the speedwagon foundation's resources.
the general purpose allocator (gpa) is their long-term support, flexible but needs manual cleanup. the arena allocator is for missions, freeing everything at once. the fixed buffer allocator is for quick,
so the `.?` syntax in zig is essentially saying, "i'm certain this optional value is not null, so just give me the value. if i'm wrong, crash the program." right?
low-level programming bizarre adventure day 31
>sqlite in zig challenge was on today's menu. now it can read data from a single column.
>hotline miami ost is the music of choice
>lfg
pixzel now supports color palettes 🎨
here's the list of predefined palettes:
1. retro
2. grayscale
3. muted
4. one dark
5. tokyo night
6. gruvbox
7. nord
8. catppuccin
9. dracula
10. solarized
11. github dark
12. monochrome
13. monokai
you can also use your own custom palette
low-level programming bizarre adventure day 19
>still reading kent beck's tdd book
>done 6/12 stages on codecrafters. shell in zig can now do exit, echo, type (shit)
>enjoy the silence music of choice
>life is good
a blog post about how uber migrated their build system to support arm64 architecture using zig as a cross-compiler, which simplified their toolchain management by requiring only one toolchain per host platform
instead of separate toolchains for each host-target combination