I’m looking into projects like tinysearch, Stork, lunr.js, elasticlunr.js, minisearch, flexsearch, etc. They have different capabilities ranging from:
Full word matching only
Partial word matching
Fuzzy search
Wildcard matching
Boolean opterators
I’ll be implementing an inverted index and seeing what else I’m capable of adding to it over the course of a few days. It will be written in Go but since I’m aiming to target tinygo as a compiler (to shrink the Wasm binary size) there are some restrictions.
Interesting, I’ve been using and contributing to Bluge which can do offline indexing too.
But if you are implementing yourself then it should be even more fun!
I’ve been toying with the idea of implementing a ngram index over roaringbitmaps for front-end search, looking forward to reading/watching what you do!
Yesterday I finally got an old project of mine running again on my new NixOS server, it was more complicated than I thought because of some issues with fastcgi and nginx and that the programming language it uses dictates that some features have to be changed at compile time, but NixOS made that easier than it would’ve been otherwise. I really enjoy NixOS, it makes me want to do things with my linux servers again. I think over the weekend I’ll add some features that were long overdue and fix some bugs.
Other than that I might make some progress on this cryptography puzzle game I’m playing called Cypher. It’s a neat game, I’m learning a lot about cryptography that I probably wouldn’t have looked into otherwise.
I managed to publish my ebook after about a month’s delay (or rather, my estimation was off by a month), so I’m taking a mini-break.
Read Half a Soul yesterday and liked it a lot, especially the characters - romantic fantasy set around 19th century London. Currently reading The Misenchanted Sword and enjoying it a lot as well, especially the humor.
My faithful desktop of ~7 years is on its last legs, so I’m planning to visit a few shops for a quote.
Get on the ice and enjoy the snow with our 7yo, it’ll be above 0℃ after Sunday.
Tech:
Continue splitting up buildRustPackage in nixpkgs into separate composable hooks, this makes it easier to reuse the same functionality for mixed Rust-Python (or pick another language) packages. (Work done so far: #112500, #112804)
Get on the ice and enjoy the snow with our 7yo, it’ll be above 0℃ after Sunday.
So refreshing to see this. I live in Boston, and get kinda tired of listening to people whine as if the cold and snow were an insurmountable obstacle to be avoided like radioactive waste.
Learn to wear appropriate clothes and enjoy the outside in winter. Revolutionary idea, I know :)
It’s a developer tool for myself and I’m avoiding a lot of “What’s the best way to do ____ in Rust?” and other unknowns since I write C++ professionally. I just want it done since I’m doing it on my personal time, and Rust’s been great. I can write Rust just fine, but there’s a big difference between being able to write in a language, and architect well in a language and thought it’d go a lot quicker in C++ for me.
The big issue is that I’m going to be able use this tool at work, I also can’t be bringing random code from the internet into it. I’ve also been frustrated with Rust’s module system, and it also helps me simplify interfacing with a bunch of C interfaces I’m using by avoiding binding generators, etc.. I expected the rewrite to be complete hell and failure, but it’s been going surprisingly well so far.
Finishing the algorithms exercise I’m stuck on - it’s an island counting problem. You get a grid of 1s and 0s and you have to properly count the connected series of 1s.
3 tests are passing but the two trick data set tests - squares and circles, are failing.
One of the things I am loving about Pybites is that for every problem you get a test suite that not only ensures you got AN answer but that you’re also providing for irregular or tricky cases.
This is exactly the kind of algorithmic complexity I need to become WAY more comfortable with.
This code is undoubtedly the worst code I’ve seen anywhere. Indentation is mix of tabs and spaces (4 spaces for 1 level, 1 tab for 2 levels, 1 tab + 4 spaces for 3 levels), the game’s state is stored on ncurses WINDOWs, dozens of utility functions are scattered all over the place and used maybe once or twice, and its authors don’t seem to know much about .h files and function prototypes (just to name a few defects).
I’m going to have a super long weekend. Like taking off all of next week long weekend. My girlfriend and I realized that we haven’t taken time off since Christmas of 2019.
There’s a fair bit I want to get done, but thus far we are intentionally not planning anything until we had some time to rest. Buuuuuuut prospective things to do include
Finishing work on a workbench
Mapping out garden for warmer weather.
Worrying I have turned into my parents.
Working on an audiobook to podcast project I started a while back.
I’ve been kicking around the idea of writing a blog post detailing simple step by step example of various cryptography algorithms. did this as a freshman in college for a discrete mathematics class and am thinking that level of understanding is kind the ideal target for it. Soatok’s Crackpot Cryptography and Security Theater, which I recommend, was an impromptus bringing this to front of mind.
a few very simple step by step examples of how various cryptography algorithms work. I
Reflashing the sonoff zigbee bridge and making zigbee devices addressable from mqtt server.
Continue to work on my email forwarding service https://hanami.run feature-wise and marketing
Enhance my SMTP server: I shipped the SMTP server lastweek and users love it but it has no rate limiting right now and vulnerable to timeing-attack. So going to add rate limit to defend against brute force and fix the timing issue to avoid side channel attack
Marketing: Probably continue to comment and answer questions on social media about email forwarding. Also setting up and start write a few blog post
${HOME}: Dealing with subzero temperatures in Texas. That’ll be fun. I have no idea what I’m doing from a homeowner’s perspective (I’ve been in colder temperatures before, but it was always in an apartment…)
${WORK}: I’m…tired.
${PLAY}: Working on my custom regex engine. It’s so close!
Going to try and start the rewrite of bramble so that all of the execution steps are derivations. Bramble is a reimplementation of a lot of Nix’s build patterns and I originally had it designed so that there was a build step (very much like Nix) and then a run step (like any old bash script, but with a higher level language abstraction and dependency guarantees).
The run step just feels like too strong of a departure from the clean reproducability of derivations and was dramatically complicated when I added multiple runtime environments. I think I can just make everything a derivation (like nix) and then just add a few more features to allow for the types of flexibility the run step was originally designed to support.
Code:
Other:
Can you give more details about the full text search engine?
(╬ ಠ益ಠ)
I’m looking into projects like tinysearch, Stork, lunr.js, elasticlunr.js, minisearch, flexsearch, etc. They have different capabilities ranging from:
I’ll be implementing an inverted index and seeing what else I’m capable of adding to it over the course of a few days. It will be written in Go but since I’m aiming to target tinygo as a compiler (to shrink the Wasm binary size) there are some restrictions.
Interesting, I’ve been using and contributing to Bluge which can do offline indexing too.
But if you are implementing yourself then it should be even more fun!
I’ve been toying with the idea of implementing a ngram index over roaringbitmaps for front-end search, looking forward to reading/watching what you do!
Yesterday I finally got an old project of mine running again on my new NixOS server, it was more complicated than I thought because of some issues with fastcgi and nginx and that the programming language it uses dictates that some features have to be changed at compile time, but NixOS made that easier than it would’ve been otherwise. I really enjoy NixOS, it makes me want to do things with my linux servers again. I think over the weekend I’ll add some features that were long overdue and fix some bugs.
Other than that I might make some progress on this cryptography puzzle game I’m playing called Cypher. It’s a neat game, I’m learning a lot about cryptography that I probably wouldn’t have looked into otherwise.
Test suite for pijul
Messing with ocaml
Finishing my cryptography exercises for this semester. Two tasks are left:
I managed to publish my ebook after about a month’s delay (or rather, my estimation was off by a month), so I’m taking a mini-break.
Read Half a Soul yesterday and liked it a lot, especially the characters - romantic fantasy set around 19th century London. Currently reading The Misenchanted Sword and enjoying it a lot as well, especially the humor.
My faithful desktop of ~7 years is on its last legs, so I’m planning to visit a few shops for a quote.
Real life:
Get on the ice and enjoy the snow with our 7yo, it’ll be above 0℃ after Sunday.
Tech:
buildRustPackage
innixpkgs
into separate composable hooks, this makes it easier to reuse the same functionality for mixed Rust-Python (or pick another language) packages. (Work done so far: #112500, #112804)nixpkgs
.So refreshing to see this. I live in Boston, and get kinda tired of listening to people whine as if the cold and snow were an insurmountable obstacle to be avoided like radioactive waste.
Learn to wear appropriate clothes and enjoy the outside in winter. Revolutionary idea, I know :)
I will hopefully finish porting an old Rust project to C++ and then continue working on it.
What made you decide to switch from Rust to C++?
It’s a developer tool for myself and I’m avoiding a lot of “What’s the best way to do ____ in Rust?” and other unknowns since I write C++ professionally. I just want it done since I’m doing it on my personal time, and Rust’s been great. I can write Rust just fine, but there’s a big difference between being able to write in a language, and architect well in a language and thought it’d go a lot quicker in C++ for me.
The big issue is that I’m going to be able use this tool at work, I also can’t be bringing random code from the internet into it. I’ve also been frustrated with Rust’s module system, and it also helps me simplify interfacing with a bunch of C interfaces I’m using by avoiding binding generators, etc.. I expected the rewrite to be complete hell and failure, but it’s been going surprisingly well so far.
Finishing the algorithms exercise I’m stuck on - it’s an island counting problem. You get a grid of 1s and 0s and you have to properly count the connected series of 1s.
3 tests are passing but the two trick data set tests - squares and circles, are failing.
One of the things I am loving about Pybites is that for every problem you get a test suite that not only ensures you got AN answer but that you’re also providing for irregular or tricky cases.
This is exactly the kind of algorithmic complexity I need to become WAY more comfortable with.
I’m resurrecting the old rogue v3.6 code.
This code is undoubtedly the worst code I’ve seen anywhere. Indentation is mix of tabs and spaces (4 spaces for 1 level, 1 tab for 2 levels, 1 tab + 4 spaces for 3 levels), the game’s state is stored on ncurses
WINDOW
s, dozens of utility functions are scattered all over the place and used maybe once or twice, and its authors don’t seem to know much about.h
files and function prototypes (just to name a few defects).Sounds like a fun project!
I’d also guess it’s K&R C so you’ll need to convert to ANSI as well?
Re-arranging my studio in my (new) house and running a few metres of CAT6 into it.
I’m going to have a super long weekend. Like taking off all of next week long weekend. My girlfriend and I realized that we haven’t taken time off since Christmas of 2019.
There’s a fair bit I want to get done, but thus far we are intentionally not planning anything until we had some time to rest. Buuuuuuut prospective things to do include
Ice skating. Only opportunity this year, probably.
Tech:
Non-Tech:
Project Euler. Only one more until I’ve solved the first 50 problems. :)
/edit: woohoo! Level 2 achieved! 🕺
Continue to work on my email forwarding service https://hanami.run feature-wise and marketing
Enhance my SMTP server: I shipped the SMTP server lastweek and users love it but it has no rate limiting right now and vulnerable to timeing-attack. So going to add rate limit to defend against brute force and fix the timing issue to avoid side channel attack
Marketing: Probably continue to comment and answer questions on social media about email forwarding. Also setting up and start write a few blog post
Write a guest blog post
${HOME}: Dealing with subzero temperatures in Texas. That’ll be fun. I have no idea what I’m doing from a homeowner’s perspective (I’ve been in colder temperatures before, but it was always in an apartment…)
${WORK}: I’m…tired.
${PLAY}: Working on my custom regex engine. It’s so close!
Subzero °C or °F?!
F! It’s supposed to get down to 0 or possibly -1 this weekend. We’re going to be having nightly freezes until next Saturday, looks like. Crazy.
Wow… that’s crazy. Be careful if you have to drive!
Going to try and start the rewrite of bramble so that all of the execution steps are derivations. Bramble is a reimplementation of a lot of Nix’s build patterns and I originally had it designed so that there was a build step (very much like Nix) and then a run step (like any old bash script, but with a higher level language abstraction and dependency guarantees).
The run step just feels like too strong of a departure from the clean reproducability of derivations and was dramatically complicated when I added multiple runtime environments. I think I can just make everything a derivation (like nix) and then just add a few more features to allow for the types of flexibility the run step was originally designed to support.
Learning about Guix, working on LIPO32SUCTION, gaming.
Lego and snow with the kids. I spent too much time on evenings this week making my nginx log analyzer.
Making a proof of concept TUI with crossterm and tui-rs. I will also read some stuff (as always) and drink tea. Chill weekend.