I often use my side projects for experimenting with concepts and one area of interest is onboarding. Too often there are major hurdles and complexities in getting started contributing or developing web projects.
With Cuttlefish the goal is to be as approachable as possible and be productive after running a single command.
So I’m happy to say today I landed a few PRs in the main branch that add zero configuration project tooling in the guest when using vagrant🎉
Dependency management, linting, pre commit hooks etc are all ready to go after a vagrant up. I’m pretty chuffed.
It’s optional so you can still bring your own tooling and use the built in PHP webserver.
Hopefully that should make it easy to get up and running and contribute.
Cuttlefish is my hackable web/blog framework. I’m doing most of the hacking and eventually you might blog.
Rubber ducking a bit. Working on the coupling of the controller name being linked to the content structure. For example /posts/x loads the post controller with the post model and content from content/post/x.md.
It felt intuitive but I’m not happy deriving a path literally from a class name. In Particular the post archive is an archive controller with a post model. Also feeds/post vs feeds/auctions or something.
Originally I went with contentpath being based on a controller name property. But because the model already specifies the fields available in the content that didn’t seem right
So doing some work around each model having a content path property but not 100% if that’s the right relation.
Feels like It’s doing two things. Routing and content types.
For instance if I want a /blog I’d probably create a blog controller with a post model with records loaded from content/blog.
Looks like the controller is registered to a path via the router and it dictates the content path after all.
Search Firefox bookmark contents, with this commandline client. Fafi extracts the content of the bookmarks and stores them into a searchable SQLite database
New in this release:
- skip .test domains
- new argument—max-exists (replaces —stop-when-exists)
- incremental indexing based since last indexed bookmark
- user chooses firefox profile to index when multiple profiles are detected
- update dependencies (python 3.8 required)
- security updates
View on Github
This latest personal site design iteration improves the reading experience.
Post margins are condensed and subtle delineation guides the eye. The byline, categories and tags post meta are now hidden on the homepage, reducing clutter. I highlighted hovered articles for clarity.
Please visit and feedback.
Delete your old tweets with Twelete, my new release https://github.com/svandragt/twelete.
Tweets are temporary messages, and thus others should not keep your tweets. You have the right to be forgotten, without paying for the privilege.
Set this up on a cheap VPS; Raspberry PI, or locally. Feedback welcome!
PyShed is a simple Docker image for running zero configuration Python projects with Poetry dependency management.
You can use it to run a Python project without needing a Python setup. I use it for Django projects for example.
Verion 0.2 uses pip to install poetry. I also fixed a environment path issue that was generating warnings.
Repoman is a script to export and import a list of git repositories.
It helps me have all my active projects available on multiple laptops.
Version 0.2 switches input and output to stdin and out, so that piping operations can be used to direct input and output to and from repoman.
# On computer 1
$ repoman.sh | tee repoman.lst
$ ls *.lst
# On computer 2
$ cat repoman.lst | repoman.sh
⏳ Cloning freshcookies
Cloning into 'freshcookies'...
Resolving deltas: 100% (8/8), done.
⏳ Cloning repoman
Cloning into 'repoman'...
Receiving objects: 100% (7/7), done.
$ ls -d */
For more information, please refer to the examples in the readme.
It’s not often one can say they contributed to 32% of the web, but yes today is that day. I’m proud to have been part of the HumanMade team that worked with Google on the first iteration of the effort to bring sitemap functionality into WordPress!
Sitemaps help WordPress sites become more discoverable by providing search engines with a map of content that should be indexed.Pascal Birchler – https://make.wordpress.org/core/2020/06/10/merge-announcement-extensible-core-sitemaps/
WordPress 5.5 might ship sitemaps out of the box, and will make millions of sites easier to index, and provide a foundation for plugin authors to extend.
This should help increase the relevancy of information from WordPress sites in search engines.
Repoman is a script to export and import a list of git repositories using an intermediate repoman.lst file.
When exporting, Repoman scans the working directory for .git folders and save its relative path with the git remote.
When importing, repoman will restore this directory structure and clone each repository.
Why use this?
It’s considered bad practice to use cloud sync solutions to sync working copies.
Repoman helps you work on the same projects on multiple devices, by syncing repoman.lst instead.
Get Repoman 0.1 on GitHub