fix dead links

This commit is contained in:
Cyryl Płotnicki 2023-08-19 10:38:57 +01:00
parent c84b20b4de
commit df6aba4c46
27 changed files with 91 additions and 77 deletions

5
.gitignore vendored
View file

@ -1,7 +1,8 @@
.direnv/
public/
tmp/
resources/_gen/
node_modules/
/assets/jsconfig.json
assets/jsconfig.json
hugo_stats.json
/.hugo_build.lock
.hugo_build.lock

View file

@ -1,2 +1,4 @@
DirectoryPath: public/
IgnoreDirectoryMissingTrailingSlash: true
IgnoreEmptyHref: true
RedirectLimit: 32

View file

@ -8,11 +8,6 @@ My name is Cyryl and I hope you're having a great day !
## Interesting random tidbits about me
I am [running](https://blog.cyplo.net/posts/2018/05/pair-with-me-on-rust.html) remote pairing sessions, helping people with Rust.
My recent focus is [adding fuzzer](https://twitter.com/cyplo/status/1094606119421521922) infrastructure to their projects.
I started a [blog post series](https://blog.cyplo.net/series/rust-testing-tricks/) on testing in [Rust](https://blog.cyplo.net/categories/rust.html) where I share the tricks I've learned.
I was in both leadership and individual contributor roles, I have respect for all sides involved in the process.
I like testing, I taught various aspects of TDD in an apprenticeship course.
@ -30,7 +25,7 @@ As all of the above is on the bleeding edge - I find, report and fix bugs throug
Helping client teams grow - working within software teams and teaching technical concepts as well as improving the process.
Running workshops (e.g. Legacy Code Retreat, advanced git, **TDD**).
Running **Rust** pairing sessions and intro to Rust workshops.
// Running **Rust** pairing sessions and intro to Rust workshops.
Facilitating open-space conferences.
Teaching at the apprenticeship programme.
@ -85,7 +80,7 @@ The links provided are for the slide decks.
- Mastering Git
- Legacy Code Retreat - running a full-day workshop on test-driving changes in legacy code.
- A secret to secure software (ssshhh it's TDD)
- ["Conferences you did not know existed and now you know you just need to go to"](https://blog.cyplo.net/posts/2016/03/13/conferences.html)
- ["Conferences you did not know existed and now you know you just need to go to"](/posts/2016/03/13/conferences/)
- "Languages are communities" - impromptu talk about how communities are the most important thing when choosing your programming language.
- ["Tor and what it's good for"](https://github.com/cyplo/talks/tree/master/tor_for_beginners)
- ["Erlang for the .Net people"](https://github.com/erlang-wroclaw/erlang_tech_night) - introduction to Erlang with some live coding by me and my friend Fabian

View file

@ -4,7 +4,7 @@ date: 2022-10-30
---
- [legdur](https://sr.ht/~cyplo/legdur/) - legdur is a simple CLI program to compute hashes of large sets of files in large directory structures and compare them with a previous snapshot. Think having your photo collection you acquired over time and worrying about bitrot.
- [genpass](https://sr.ht/~cyplo/genpass/) - A simple yet robust commandline random password generator written in Rust. Has an extensive generative test suite, including tests against a Rust port of Dropbox's password strength tester zxcvbn.
- [netlify deployer](https://pypi.org/project/netlify-deployer/) - A Python CLI tool to deploy a website to Netlify using their incremental API client. Not the best code but works like a charm. This blog [uses](https://git.sr.ht/~cyplo/blog/tree/master/item/.build.yml#L21) it.
- [my dotfiles](https://sr.ht/~cyplo/dotfiles/) - all of the settings for all of my machines, automated using Nix
- [bakare](https://sr.ht/~cyplo/bakare/) - work in progress on writing a modern backup solution in Rust
- [genpass](https://git.cyplo.dev/cyplo/genpass) - A simple yet robust commandline random password generator written in Rust. Has an extensive generative test suite, including tests against a Rust port of Dropbox's password strength tester zxcvbn.
- [netlify deployer](https://pypi.org/project/netlify-deployer/) - A Python CLI tool to deploy a website to Netlify using their incremental API client. Not the best code but works like a charm.
- [my dotfiles](https://git.cyplo.dev/cyplo/dotfiles) - all of the settings for all of my machines, automated using Nix
- [bakare](https://git.cyplo.dev/cyplo/bakare) - work in progress on writing a modern backup solution in Rust

View file

@ -5,8 +5,10 @@ tags: [dotnet, ai, google, mono]
category: artificial intelligence
---
> Update 2023: things fall off the face of the internet after a while; removed dead links
It seems that being so much into other programming things I missed the
[Google AI Contest](http://ai-contest.com/) announcement. It's
[Google AI Contest]() announcement. It's
supercool that they sponsor such challenges but also it's really uncool
[so like warm ?] that apparently I won't have time to participate.

View file

@ -7,11 +7,11 @@ category: games
I have always been fascinated by works of Adrian Chmielarz, from the
times of Metropolis Software on. Naturally then, I am following really
closely on the development of
[Bulletstorm](http://www.bulletstorm.com/). Damn, I even hoped to
[Bulletstorm](https://www.bulletstorm.com/). Damn, I even hoped to
talk to The Guy or Mieszko Zielinski at the
[gameaiconf](http://gameaiconf.com/>) in Paris, but
[Alex](http://aigamedev.com/) told me that "whoa,
[PCF](http://www.peoplecanfly.com/) are so busy with the new IP that
[gameaiconf]() in Paris, but
[Alex]() told me that "whoa,
[PCF](https://www.peoplecanfly.com/) are so busy with the new IP that
they didn't have time to come this year, next year they'll be here,
hopefully".
@ -23,7 +23,7 @@ that they take this game everywhere with them. To dinner, breakfast,
party. That's the way I do like to work.
Now back on track, an interview which triggered this urge to flush my
thoughts here. [Interview with Tanya Jessen](http://techland.com/2010/10/14/origins-tanya-jessen-lead-producer-on-bulletstorm/),
thoughts here. [Interview with Tanya Jessen](https://techland.com/2010/10/14/origins-tanya-jessen-lead-producer-on-bulletstorm/),
producer at Epic.
People make games so other people can have fun. How selfless.

View file

@ -11,7 +11,7 @@ these days. The question remains where to put them.
Previously I had my site published within one of the polish hosting
companies for free, as my friend was involved in its operations. Thanks
[Kajetan](http://www.kajetanwandowicz.com/) for 5 years of support !
[Kajetan]() for 5 years of support !
And maybe it'd stay that way if not of that desire of mine to tinker and
have control of every aspect of the technology power. Some platform with
ability to boot the system I want up would be appreciated.
@ -40,7 +40,7 @@ their 'live' tech support line just to hear that it was really bad of me
to change the resolv.conf and I just shouldn't do that. In the meanwhile
their DNSes went back so I in fact did revert the resolv.conf after all.
It's [OpenVZ](http://wiki.openvz.org/Main_Page>)-based hosting, so
It's [OpenVZ](https://wiki.openvz.org/Main_Page)-based hosting, so
policy of "no-no's" is pretty much embedded in the very system. No
kernel reinstallation. No swap space. No system clock write access. No
clicking too fast in the administration panel. Back to google then my search for VPS

View file

@ -5,9 +5,11 @@ tags: [server, tilaa, ubuntu, virtualization, vps]
category: server
---
> Update 2023: the landscape has changed considerably over the last 13 years, a lot of the companies mentioned in this post have died, I've removed dead links
After some not so pleasurable experiences with the previous VPS hosting
provider I started my search for some other one. This time not only
google was involved but also [aardvark](http://vark.com/) and some of
google was involved but also [aardvark]() and some of
the "top XX best hosting providers" sites. Two results kept showing up.
[server4you](http://www.server4you.com/) and
[tilaa](https://www.tilaa.nl/). Which one to choose then ? I wanted
@ -30,7 +32,7 @@ are some things I like or don't about its services.
- friendly, responsive staff
- 2x RAM amount of swap space - seems great compared to no swap on other VPSes
- [KVM](http://www.linux-kvm.org/page/Main_Page)- and [qemu](http://en.wikipedia.org/wiki/QEMU)-based, you get full control of your system
- good overall system responsiveness - I experienced occasional lags when using [OpenVZ](http://wiki.openvz.org/Main_Page) virtualization before, there's no such thing here
- good overall system responsiveness - I experienced occasional lags when using [OpenVZ](https://wiki.openvz.org/Main_Page) virtualization before, there's no such thing here
- they work fast - the day the new Ubuntu 10.10 was released, they had the VPS image ready !
- their motto "We try to be good open source citizens" just convinces me
- the only disadvantage is the price, it's 8.95 euro net montly, it's also easy to miss that info on the site

View file

@ -5,6 +5,8 @@ tags: [macosx, virtualbox]
categories: [freedom, mac, server]
---
> Updated 2023: sadly nawcom is no more, I've removed dead links
It all started with my work assignment of installing MacOSX Server 10.6
on the XServe rack. Briefly speaking, after debugging some hardware problem
with the CPU temperature meter, I managed to install the base OSX server
@ -26,8 +28,8 @@ and launch was single-core. Both 32 and 64bit guests seem to be working
fine. But what's the point of having many cores there if only one can be
used per a VM ? Some time after that I found brilliant blog pair by
[prasys](http://prasys.info/) and
[nawcom](http://blog.nawcom.com/). It seems that the latter one
produces what's called [ModCD](http://blog.nawcom.com/?p=446) which
[nawcom](). It seems that the latter one
produces what's called [ModCD]() which
allows booting with the processor checks disabled. Recipe for amd64:
- create new MacOSX vm in VirtualBox

View file

@ -11,7 +11,7 @@ aliases:
Ever cried over damaged disk holding your bitcoin wallet ? Ever
formatted storage holding a perfectly valid and the only copy of your
wallet.dat ? Yes, me too. Well, there's
[Photorec](http://www.cgsecurity.org/wiki/PhotoRec), an opensource file
[Photorec](https://en.wikipedia.org/wiki/PhotoRec), an opensource file
recovery software. It just skips the partition and filesystem info and
scans for plain file signatures on the disk. Unfortunately it does not
recognize Bitcoin's Wallet as a file format. Bitcoin wiki
@ -33,7 +33,7 @@ detection magic. Let's see whether it works on the wallet.
```
Uhoh. Do not abandon hope for not all is lost ! Photorec [provides a
way](http://www.cgsecurity.org/wiki/Add_your_own_extension_to_PhotoRec)
way
for you to add custom signatures. The only missing ingredient appears to
be the knowledge possed by the `file` command. Just check your linux installation for
`file`'s detection signatures. On my system these are to be found

View file

@ -5,15 +5,15 @@ tags: [BCM43224, crunchbang, dell, linux]
category: linux
---
Update:
**Please note that I no longer host this kernel as it is very old and also Crunchbang is no more.**
> Update 2023: crunchbang is no longer a thing, replaced by [bunsenlabs](https://www.bunsenlabs.org/)
> Please note that I no longer host this kernel as it is very old and also Crunchbang is no more.**
Some time ago I got my hands on [CrunchBang Linux](http://crunchbanglinux.org/) distro, which is great. The only thing there that could be better is that my Broadcom BCM43224 WiFi card is not working. But I'm used to it, as many
Some time ago I got my hands on [CrunchBang Linux](https://en.wikipedia.org/wiki/CrunchBang_Linux) distro, which is great. The only thing there that could be better is that my Broadcom BCM43224 WiFi card is not working. But I'm used to it, as many
Linux distros do not provide it. As I happen to
know from my Fedora experiences that it is resolved in kernel version
3.4 . Also as that kernel tends to be generally faster on my machine, I
decided to compile just this one. Here you are. [Vanilla 3.4.4](http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.4.4.tar.bz2)
kernel, [compiled](http://crunchbanglinux.org/forums/topic/18060/how-to-compile-the-kernel-from-source/)
kernel, [compiled]()
for Intel Atom and with BCM43224 support. This is a 64bit kernel.
Download [crunchbanglinux-kernel-3.4.4-intel\_atom.tar.bz2]
and:

View file

@ -6,7 +6,7 @@ category: talks
---
I recently gave a two hours presentation on Erlang 101 along with
[Fabian](http://fabiankrol.com/). Because of the generous support
Fabian. Because of the generous support
from Infusion I was able to speak at Institute of Computer Science at
University of Wroclaw. The event was a blast, and that is an opinion of
the people other than me also ;) Thanks for everyone who was there and

View file

@ -20,7 +20,7 @@ Disk /dev/sde: 500.1 GB, 500107862016 bytes
```
First one is an SSD drive, I used it for OS
installation.  I went for [Crunchbang](http://crunchbang.org/) as I
installation.  I went for [Crunchbang](https://www.bunsenlabs.org/) as I
was already familiar with it, however now I'm thinking of just getting
newest Debian there, as it's finally released. Nothing fancy about the
OS, a regular install really.

View file

@ -22,7 +22,7 @@ calibration for you. Game on you say ? Indeed.
- 4x USB
- HDMI
- typing on its keyboard, just clicks with me
- survived [OHM2013](https://ohm2013.org/site/) camp - not scared of
- survived [OHM2013](https://ohm2013.org/) camp - not scared of
humidity and hot air
## What I do not like so much:

View file

@ -5,13 +5,17 @@ tags: [cygwin, dotfiles, linux, mac, vim]
category: open source
---
> Update from 10 years into the future ! It's 2023 and the repo is still going strong, using lots of Nix and friends tho and also hosted elsewhere - edited the URLs.
> All my dofiles live [here](https://git.cyplo.dev/cyplo/dotfiles/) now. Removed the links from the article below as they don't work anymore.
Hi ! Just letting you know that I've been working for some time on
structuring my dotfiles and finally published them to
[github](https://github.com/cyplo/dotfiles). These contain e.g. my
[vimrc](https://github.com/cyplo/dotfiles/blob/master/.vimrc) and
[font](https://github.com/cyplo/dotfiles/tree/master/.local/share/fonts)
[configs](https://github.com/cyplo/dotfiles/tree/master/.config/fontconfig/conf.d).
I've [patched](https://github.com/cyplo/vim-colors-solarized)
structuring my dotfiles and finally ~~published them to
[github]().~~ (No github anymore, selfhosting!)
These contain e.g. my
[vimrc]() and
[font]()
[configs]().
I've [patched]()
the famous [solarized](http://ethanschoonover.com/solarized) theme
for vim to allow better
[gitgutter](https://github.com/airblade/vim-gitgutter) symbols

View file

@ -4,8 +4,10 @@ date: 2014-03-17 10:08:21
tags: [pocorgtfo]
---
> Update 2023: I no longer host PoCorGTFO here, it's very much available elsewhere on the internet and I couldn't afford the costs for this server sadly.
Hey to all you curious folks the new issue of PoC or GTFO is well,
out ! The best minds in infosec on exploits and more. Lots of hardcore
programming knowledge to obtain. For your convenience, as its not that
easy to get this on the webs, Ive took a liberty of uploading them
[here](/pages/files)
[here]()

View file

@ -5,6 +5,9 @@ tags: [observability]
series: sunpowered
---
> Update 2023: I no longer hosts those dashboards anymore and the server no longer runs in the form described.
> You could argue I still run sunpowered servers, as my new house has solar PV ;)
Some, rather long, time ago I've added a [custom python](/posts/2014/04/21/adding-voltage-current-measurements-sunpowered-pi/)
data acquisition and graphing to my sunpowered RaspberryPi installation
on the balcony. Since then I've upgraded it to Raspi2 and ported the
@ -23,7 +26,7 @@ compile the software there. I've [changed the original python scripts slightly](
to upload the data to influxdb instead of graphing directly via
matplotlib. Then configured grafana to display some cool graphs and that
was pretty much it - you can see the result at
[data.cyplo.net](http://data.cyplo.net/dashboard/db/sunpowered).
[data.cyplo.net]().
Right now I'm testing 2 different sizes of solar panels and
batteries, hooked at the same time. The ADC is connected as it was

View file

@ -7,7 +7,7 @@ tags: [social, conferences]
# Go to conferences. It's good for you.
Ever wondered why to go to conferences ? Is it worth it, especially if
you [do not feel confident](http://sarah.thesharps.us/2016/02/02/first-timers-guide-to-foss-conferences/)
you [do not feel confident](https://sage.thesharps.us/2016/02/02/first-timers-guide-to-foss-conferences/)
that the conference is on something that would be in an immediate realm
of your day-to-day interests ? Just go ! You might end up learning
something and meeting new people. And new people mean more variables to
@ -20,7 +20,7 @@ having another misfit ? Here you go.
Now imagine something niche within the industry. To me, AI comes to
mind. Mages in robes in their towers, sending out autonomous robot
armies against each other. Right ? There's a conference for that ! At
[nucl.ai](http://nucl.ai/), in July, in Vienna, you can meet AI
[nucl.ai](), in July, in Vienna, you can meet AI
professionals from academia and industry alike, most of them coming from
game development background. The atmosphere is very newcomer-friendly,
the only requirement is that you're interested in AI, not necessarily

View file

@ -127,6 +127,6 @@ Start the debugging session by pressing `F5` again - this should result in the b
## Questions ?
Any questions ? Ask on [https://users.rust-lang.org/](https://users.rust-lang.org/) and ping me the link to the post on [Twitter](https://twitter.com/cyplo) or email it to me at [blog@cyplo.net](mailto:blog@cyplo.net). This way the answer will be visible to everyone in the community.
Any questions ? Ask on [https://users.rust-lang.org/](https://users.rust-lang.org/) and ping me the link via email to me at [blog@cyplo.net](mailto:blog@cyplo.net). This way the answer will be visible to everyone in the community.
Keep on Rusting !

View file

@ -15,7 +15,7 @@ We can work on any of the following:
- Any project of yours !
- Contribute back to a larger open source project (I am a contributor to e.g. [cargo](https://github.com/rust-lang/cargo/), [rustc](https://github.com/rust-lang/rust/) and [rustup](https://github.com/rust-lang-nursery/rustup.rs/))
- A project of mine - e.g. [genpass](https://github.com/cyplo/genpass)
- A project of mine - e.g. [genpass](https://lib.rs/crates/genpass)
Ping me an [email](mailto:rust@cyplo.dev) to schedule a session - can be a remote one or in person somewhere in London.

View file

@ -36,7 +36,7 @@ Cargo prints `worker::should::consume_message_from_queue` when running this test
Use e.g. the `atomic` types family or `RefCell` itself to get an immutable handle to a internally mutable data.
Useful when you don't want your production code to accept anything that can mutate but you still want to control that value from the test.
See injecting the system clock example in [my previous blog post](/posts/2018/07/rust-injection.html).
See injecting the system clock example in [my previous blog post](/posts/2018/07/rust-injection/).
# Write the test first
@ -58,6 +58,6 @@ Rust allows for more cool tricks and generally writing less test code than menti
# Let's talk !
Have any questions ? Would like to pair on Rust ? Curious about TDD ? Ping me !
Email is good - [hello@cyplo.net](mailto:hello@cyplo.net) or try [Twitter](https://twitter.com/cyplo).
Email is good - [hello@cyplo.net](mailto:hello@cyplo.net).
thanks !

View file

@ -10,7 +10,7 @@ I am fascinated by the concept of fuzzing. It fits well with my desire to test w
It's a type of automated testing, especially good with finding edge cases in your code. It runs totally outside of your code and knows nothing about it - it just throws random data at it. Modern fuzzers instrument your code to be able to tell if by changing input they change the code paths covered and by doing that they try to achieve maximum coverage. While this sounds like a very naive approach it can lead to finding incredibly interesting bugs. For that reason fuzzers are oftentimes used in the security community for finding vulnerabilities. Fuzzing is a type of a black box testing - but how you define that box is entirely up to you. It can be the whole program, it can be a single function. It just needs a clear entry point with ability to manipulate input data.
An example may be in order. We'll look into one provided by [Rust Fuzzing Authority](https://github.com/rust-fuzz) - people behind [cargo fuzz](https://fuzz.rs/book/cargo-fuzz.html) and [afl.rs](https://fuzz.rs/book/afl.html).
An example may be in order. We'll look into one provided by [Rust Fuzzing Authority](https://github.com/rust-fuzz) - people behind [cargo fuzz](https://rust-fuzz.github.io/book/cargo-fuzz.html) and [afl.rs](https://rust-fuzz.github.io/book/afl.html).
Imagine you're trying to see if you've handled all cases in your url parser. You can just do
```rust
@ -40,7 +40,7 @@ When thinking about other types of tests that are driven by randomness and are g
## Want help with fuzzing your open source project ?
If you're not sure what fuzzing is, or you want help with adding fuzzer support to your open source project - just tell me ! Either by [email](mailto:fuzzing@cyplo.dev) or on [Twitter](https://twitter.com/cyplo). I'm happy to jump on a call, pair program or whatever you fancy ! I know the most about the Rust fuzzing space, but happy to help with other languages as well - this allows me to learn :)
If you're not sure what fuzzing is, or you want help with adding fuzzer support to your open source project - just tell me ! [Email](mailto:fuzzing@cyplo.dev) works best ! I'm happy to jump on a call, pair program or whatever you fancy ! I know the most about the Rust fuzzing space, but happy to help with other languages as well - this allows me to learn :)
I also run a fuzzing server where I can test your project overnight and see if we find anything.

View file

@ -5,13 +5,16 @@ series: my-setup
tags: [tools]
---
> Update 2023: my dotfiles are self-hosted now at [git.cyplo.dev](https://git.cyplo.dev/cyplo/dotfiles);
> They also have a different structure than described here; I've removed now-dead links to github.
Here's a list of software and some hardware I find useful, either things that I use daily or things that make an unusual task pleasant instead of incredibly difficult.
This is constantly evolving, so please mind the publish date of this post to gauge how dated it is. The best place to get most recent settings I currently use is my [dotfiles](https://github.com/cyplo/dotfiles) repository, especially the [nixos](https://github.com/cyplo/dotfiles/tree/master/nixos) configuration.
This is constantly evolving, so please mind the publish date of this post to gauge how dated it is. The best place to get most recent settings I currently use is my [dotfiles]() repository, especially the [nixos]() configuration.
## Laptop and OS
My daily driver is [Thinkpad T480](https://www.thinkwiki.org/wiki/Category:T480#Lenovo_ThinkPad_T480) running [NixOS](https://nixos.org/). I like the hardware for its matte screen, nice keyboard and general sturdiness. It's also black and black is nice.
The device-specific config lives [here](https://github.com/cyplo/dotfiles/blob/master/nixos/boxes/foureighty.nix).
The device-specific config lives [here]().
I use [home manager](https://github.com/rycee/home-manager) to manage my dotfiles.
I still haven't found a good way of having all this setup ported exactly to non-NixOS operating systems.
@ -22,18 +25,18 @@ NixOS's ability to boot into a previous version of the whole system is another b
## Networking gear
I had a lot of problems with network speed over wifi previously, because of that I bought a Netgear [Nighthawk X4S R7800](https://www.netgear.co.uk/home/products/networking/wifi-routers/R7800.aspx) router and installed [OpenWRT](https://openwrt.org/) on it. After all this change, I am able to run very frequent multi-gigabyte backup transfers over wifi and everything works nicely.
I had a lot of problems with network speed over wifi previously, because of that I bought a Netgear [Nighthawk X4S R7800](https://www.netgear.com/home/wifi/routers/r7800/) router and installed [OpenWRT](https://openwrt.org/) on it. After all this change, I am able to run very frequent multi-gigabyte backup transfers over wifi and everything works nicely.
## Graphical interface
I started running [i3](https://i3wm.org/) recently because of the strain Gnome3 was putting on my system, and I am liking it so far, mostly for the speed of navigation and little resource usage. There's [polybar](https://github.com/polybar/polybar) on top and not much else in terms of bells and whistles present.
I use [autorandr](https://github.com/phillipberndt/autorandr) to keep track of different display devices on different machines - it will automatically set the best resolution for whatever the screen combination I am currently using. See [config](https://github.com/cyplo/dotfiles/blob/master/nixos/user-xsession.nix) for more details.
I use [autorandr](https://github.com/phillipberndt/autorandr) to keep track of different display devices on different machines - it will automatically set the best resolution for whatever the screen combination I am currently using. See [config]() for more details.
[Firefox](https://www.mozilla.org/en-GB/firefox/new/) remains my browser of choice, I highly recommend you try it, it is so much faster now than it used to be. Make sure to switch the tracking protection on.
## Secrets management
I have a [veracrypt](https://www.veracrypt.fr/en/Home.html) encrypted container, where my secrets reside, with a small set of scripts to [mount](https://github.com/cyplo/dotfiles/blob/master/tools/mount-vault) and [unmount](https://github.com/cyplo/dotfiles/blob/master/tools/umount-vault) it. The container is synced between different machines using [syncthing](https://syncthing.net/).
I have a [veracrypt](https://www.veracrypt.fr/en/Home.html) encrypted container, where my secrets reside, with a small set of scripts to [mount]() and [unmount]() it. The container is synced between different machines using [syncthing](https://syncthing.net/).
Inside the container, among other things, there is a [password store](https://www.passwordstore.org/) directory, which I use from either command line or from Firefox, using [this plugin](https://github.com/passff/passff)
## Sync
@ -61,14 +64,14 @@ I settled on [Fira Code Retina](https://github.com/tonsky/FiraCode) for most of
## Terminal
I find [termite](https://github.com/thestinger/termite) quite fast, while supporting extended character and colour sets.
My shell is [zsh](https://www.zsh.org/) with minimal [oh-my-zsh](https://github.com/robbyrussell/oh-my-zsh) [config](https://github.com/cyplo/dotfiles/blob/master/nixos/programs/zsh.nix). I always run it inside a [tmux](https://github.com/tmux/tmux/wiki) session though, and no matter how many terminal windows I open, I am always greeted with the same state. All history and window state is shared between all terminal windows all tmux windows as well - it is always the same one tmux session. Because I am always running tmux, sometimes I end up in a situation when I ssh into some box and need to run tmux there - for that reason I have my main tmux session having different leader key than the default, this way I can choose which tmux session will receive my command - my machine or the one I'm connecting to. All of the above comes from a combination of [shell](https://github.com/cyplo/dotfiles/blob/master/nixos/programs/zsh.nix) and [tmux](https://github.com/cyplo/dotfiles/blob/master/nixos/programs/tmux.nix) settings.
My shell is [zsh](https://www.zsh.org/) with minimal [oh-my-zsh](https://github.com/robbyrussell/oh-my-zsh) [config](). I always run it inside a [tmux](https://github.com/tmux/tmux/wiki) session though, and no matter how many terminal windows I open, I am always greeted with the same state. All history and window state is shared between all terminal windows all tmux windows as well - it is always the same one tmux session. Because I am always running tmux, sometimes I end up in a situation when I ssh into some box and need to run tmux there - for that reason I have my main tmux session having different leader key than the default, this way I can choose which tmux session will receive my command - my machine or the one I'm connecting to. All of the above comes from a combination of [shell]() and [tmux]() settings.
Here's a small collection of other tools I found help a lot when on the terminal:
- [ripgrep](https://github.com/BurntSushi/ripgrep) - it is just so much faster than grep
- [fd](https://github.com/sharkdp/fd) - same but for `find`
- [bat](https://github.com/sharkdp/bat) - a cooler `cat`
- [genpass](https://crates.io/crates/genpass) for generating passwords
- [genpass](https://lib.rs/crates/genpass) for generating passwords
- [z.lua](https://github.com/skywind3000/z.lua) for faster navigation
And that's it !

View file

@ -1,4 +0,0 @@
pairing sessions update
- using genpass
- fuzzing

View file

@ -5,13 +5,13 @@ series: rust-testing-tricks
tags: [rust, testing]
---
Being able to precisely control what failures in underlying systems occur and at what time can be really useful in achieving a fast and stable test suite. While I am a big proponent of dependency inversion and being able to control dependencies via the explicit injection points in your API, sometimes it's impractical to do so. This is where [`fail`](https://crates.io/crates/fail) can help us immensely, providing an escape hatch for situations like those as it allows to inject failures into previously defined failure points.
Being able to precisely control what failures in underlying systems occur and at what time can be really useful in achieving a fast and stable test suite. While I am a big proponent of dependency inversion and being able to control dependencies via the explicit injection points in your API, sometimes it's impractical to do so. This is where [`fail`](https://lib.rs/crates/fail) can help us immensely, providing an escape hatch for situations like those as it allows to inject failures into previously defined failure points.
It comes at a price though. If you would mix your other unit tests and tests activating fail points you will notice some unexpected failures in the test suite. As `cargo test` runs tests in parallel by default, the tests activating a fail point can interfere with another test that did not want that fail point active at all that is ran at the same time. The crate authors [recommend](https://docs.rs/fail/#usage-in-tests) running all of the tests using fail points in a separate executable and using `FailScenario` to serialise test execution.
There is another way, that I found simpler for the way I write tests, if you allow for yet another helper crate. We can run each test in a separate process, effectively isolating it from the rest, stopping failures from spreading.
Let's take a look at an example from [`bakare`](https://git.sr.ht/~cyplo/bakare) - my experiment in writing a backup system.
Let's take a look at an example from [`bakare`](https://git.cyplo.dev/cyplo/bakare) - my experiment in writing a backup system.
`cargo.toml`

View file

@ -5,6 +5,8 @@ series: my-setup
tags: [tools]
---
> Update 2023 - updated links to the most current code store - git.cyplo.dev instead of sr.ht
Hello and welcome to the second edition of me doing a summary of the year of using tech tools.
Here's a list of software and some hardware I find useful, either things that I use daily or things that make an unusual task pleasant instead of incredibly difficult.
@ -12,12 +14,12 @@ This is constantly evolving, so please mind the publish date of this post, pleas
## Laptop, OS and other work hardware
- [Thinkpad T480](https://www.thinkwiki.org/wiki/Category:T480#Lenovo_ThinkPad_T480), the device-specific config lives [here](https://git.sr.ht/~cyplo/dotfiles/tree/master/item/nixos/boxes/foureighty/default.nix).
- [Thinkpad T480](https://www.thinkwiki.org/wiki/Category:T480#Lenovo_ThinkPad_T480), the device-specific config lives [here](https://git.cyplo.dev/cyplo/dotfiles/src/branch/main/nixos/boxes/foureighty/default.nix).
- CalDigit TS3 Plus usb-c hub
- Iiyama ProLite 27" 4K monitor
- IKEA BEKANT motorised standing desk
No dramatic changes here since the [last year](https://blog.cyplo.dev/posts/2019/11/tools/), I'm still on [NixOS](https://nixos.org/) on the T480. Thinkpad got a RAM upgrade to 48GiB and is handling it well, despite it being above it stated memory limit. I've also managed to get my `home-manager` config [called](https://git.sr.ht/~cyplo/dotfiles/tree/83ddcc09dc68389b129d598722eca9e90a6dff33/item/nixos/boxes/foureighty/default.nix#L33) from the main system configuration, so now I just need to do `sudo nixos-rebuild switch --upgrade` once and it does my `home-manager` setup as well. This allowed me to split the config into modules a bit better.
No dramatic changes here since the [last year](https://blog.cyplo.dev/posts/2019/11/tools/), I'm still on [NixOS](https://nixos.org/) on the T480. Thinkpad got a RAM upgrade to 48GiB and is handling it well, despite it being above it stated memory limit. I've also managed to get my `home-manager` config called from the main system configuration, so now I just need to do `sudo nixos-rebuild switch --upgrade` once and it does my `home-manager` setup as well. This allowed me to split the config into modules a bit better.
I'm really happy with the standing desk as it allows me to switch from sitting to standing and back very quickly.
@ -41,8 +43,8 @@ While I stopped having WiFi speed problems with the purchase of the Netgear R780
## Graphical interface
- [i3](https://git.sr.ht/~cyplo/dotfiles/tree/83ddcc09dc68389b129d598722eca9e90a6dff33/item/nixos/i3)
- [grobi](https://git.sr.ht/~cyplo/dotfiles/tree/83ddcc09dc68389b129d598722eca9e90a6dff33/item/nixos/i3/grobi.nix)
- [i3](https://git.cyplo.dev/cyplo/dotfiles/src/branch/main/nixos/i3)
- [grobi](https://git.cyplo.dev/cyplo/dotfiles/src/branch/main/nixos/i3/grobi.nix)
Running `grobi` now instead of `autorandr` but otherwise the config seems to be stabilising.
@ -52,7 +54,7 @@ Running `grobi` now instead of `autorandr` but otherwise the config seems to be
- [password store](https://www.passwordstore.org/) + [passff](https://github.com/passff/passff)
- [bitwarden](https://bitwarden.com/)
I have a `veracrypt` encrypted container, where my secrets reside, with a small set of scripts to [mount](https://git.sr.ht/~cyplo/dotfiles/tree/83ddcc09dc68389b129d598722eca9e90a6dff33/item/tools/mount-vault) and [unmount](https://git.sr.ht/~cyplo/dotfiles/tree/83ddcc09dc68389b129d598722eca9e90a6dff33/item/tools/umount-vault) it. The container is synced between different machines using `syncthing`.
I have a `veracrypt` encrypted container, where my secrets reside, with a small set of scripts to [mount](https://git.cyplo.dev/cyplo/dotfiles/src/branch/main/nixos/home-manager/scripts/mount-vault.nix) and [unmount](https://git.cyplo.dev/cyplo/dotfiles/src/branch/main/nixos/home-manager/scripts/umount-vault.nix) it. The container is synced between different machines using `syncthing`.
Inside the container, among other things, there is a `password store` directory, which I use from either command line or from Firefox.
For when I need to share a secret I use `bitwarden` as it allows for that in a quite an easy way.
@ -77,8 +79,8 @@ I made some progress on [bakare](https://github.com/cyplo/bakare), a small backu
## Editors
- vim [configured via nix](https://git.sr.ht/~cyplo/dotfiles/tree/83ddcc09dc68389b129d598722eca9e90a6dff33/item/nixos/home-manager/programs/vim.nix)
- VSCode [also configured via nix](https://git.sr.ht/~cyplo/dotfiles/tree/83ddcc09dc68389b129d598722eca9e90a6dff33/item/nixos/gui/vscode.nix)
- vim [configured via nix](https://git.cyplo.dev/cyplo/dotfiles/src/branch/main/nixos/vim)
- VSCode [also configured via nix](https://git.cyplo.dev/cyplo/dotfiles/src/branch/main/nixos/gui/vscode.nix)
Not much of a change here.
@ -88,19 +90,19 @@ I settled on [Fira Code Retina](https://github.com/tonsky/FiraCode) for most of
## Terminal
- [kitty](https://sw.kovidgoyal.net/kitty/) and [my config](https://git.sr.ht/~cyplo/dotfiles/tree/83ddcc09dc68389b129d598722eca9e90a6dff33/item/nixos/home-manager/programs/kitty.nix) for it
- [zsh](https://www.zsh.org/) + [config](https://git.sr.ht/~cyplo/dotfiles/tree/83ddcc09dc68389b129d598722eca9e90a6dff33/item/nixos/home-manager/programs/zsh.nix)
- [tmux](https://github.com/tmux/tmux/wiki) + [config](https://git.sr.ht/~cyplo/dotfiles/tree/83ddcc09dc68389b129d598722eca9e90a6dff33/item/nixos/home-manager/programs/tmux.nix)
- [kitty](https://sw.kovidgoyal.net/kitty/) and [my config](https://git.cyplo.dev/cyplo/dotfiles/src/branch/main/nixos/home-manager/programs/kitty.nix) for it
- [zsh](https://www.zsh.org/) + [config](https://git.cyplo.dev/cyplo/dotfiles/src/branch/main/nixos/zsh)
- [tmux](https://github.com/tmux/tmux/wiki) + [config](https://git.cyplo.dev/cyplo/dotfiles/src/branch/main/nixos/home-manager/programs/tmux.nix)
While I still like `termite` and `alacritty`, I have switched to `kitty` lately as it is still quite fast while providing for some fancy shenanigans like graphics in the terminal. I'm not fully happy with my setup yet, as, for example, kitty sometimes requires restart for the graphics feature to work.
Here's a small collection of other tools I found help a lot when on the terminal:
- [newsboat](https://newsboat.org/) - a new one on the list, I find it providing a cool and relaxing way of reading RSS in the terminal, see [here](https://git.sr.ht/~cyplo/dotfiles/tree/83ddcc09dc68389b129d598722eca9e90a6dff33/item/nixos/home-manager/programs/newsboat.nix) for my config, including my subscriptions list
- [newsboat](https://newsboat.org/) - a new one on the list, I find it providing a cool and relaxing way of reading RSS in the terminal, see [here](https://git.cyplo.dev/cyplo/dotfiles/src/branch/main/nixos/home-manager/programs/newsboat.nix) for my config, including my subscriptions list
- [ripgrep](https://github.com/BurntSushi/ripgrep) - it is just so much faster than grep
- [fd](https://github.com/sharkdp/fd) - same but for `find`
- [bat](https://github.com/sharkdp/bat) - a cooler `cat`
- [genpass](https://crates.io/crates/genpass) for generating passwords
- [genpass](https://lib.rs/crates/genpass) for generating passwords
- [z.lua](https://github.com/skywind3000/z.lua) for faster navigation
### TODOs for 2021:

View file

@ -9,7 +9,7 @@ I have a collection of photos & documents that I really care about.
I synch them between computers using syncthing and also run backups regularly.
What I didn't have was a way to quickly detect bitrot.
Enter [legdur](https://crates.io/crates/legdur)
Enter [legdur](https://lib.rs/crates/legdur)
`legdur` is a simple CLI program to compute hashes of large sets of files in large directory structures and compare them with a previous snapshot.
Think having your photo collection you acquired over time and worrying about bitrot.