I built Obsidian (https://obsidian.md/), a local Markdown file based knowledge base app. It supports internal linking and graph view, and recently added multi-pane capabilities too. It's looking more and more like an IDE for your knowledge by the day, and it's quite amazing at that.
I was continuously fighting my recipe planning. I did it for a long time in Google Keep. I can't manage recipes there, I have to add items to the shopping list manually. Changes in menu planning don't keep up with the shopping list, I forget to check the pantry. Etc. This time looked right to create something to mitigate the frustrations.
The technology is quite simple, it is a CRUD app in Flask with SQL backend. Everything is a docker container with data in a volume. UX is now quite limited, based on Fomantic UI. There is no goal to make it Saas, for friends I will just spin up a second instance.
I have been a software engineer for over a decade, but haven't been programming the last 5 years. Besides I am a fanatic home cook. So this looked like the perfect opportunity to have some fun again.
I finally finished a little convenience tool I made for fetching lyrics for your currently playing Spotify song, called Spotify Karaoke.
Currently I'm working on an Electron app for automatically importing/managing screenshots and recordings from your Nintendo Switch, off the SD card. It matches the file name IDs (Nintendo uses these seemingly random IDs for each game) with the actual game name, moves it into a custom folder structure, etc.
I always wanted to have my app in the App Store. I started little before quarantine, and eventually published my first iOS app — a simple day counter, Countdowns (free with no IAP). It was my excuse to try SwiftUI, and learn how to distribute an app in the App Store. https://rusinov.me/countdowns
I moved into a house late last fall, so I actually have some space to do so. This scratches multiple itches for me.
Itch the first: I've missed having a vegetable garden since I moved out of my parent's place and into apartment life years ago. While a small garden plot can't wholly replace the need to go to the grocery store for fruits and vegetables due to the inherent seasonality of growing food at small scale, it's damn hard to beat truly fresh fruits and vegetables that were picked not an hour before they landed on your plate. And any surplus left when the growing season is over can be preserved and stored for the winter.
Itch the second: It's _my_ creation, not my father's with which I am merely helping. When living with my parents, my father had his way that he'd like to lay the garden out. Granting that a man who grew up in a rural agricultural community probably knows a thing or about vegetable gardening, watching how he did stuff did always leave me wondering if there wasn't room for improvement. Since this is my garden, I can make my own experiments and decisions on how the garden is to be arranged, and what vegetables I want to grow (e.g dad loves beets; I do not). I've been reading about companion planting, and am eager to try things like growing corn and beans together, or growing chives near my peppers and tomatoes to keep aphids away (seriously, fuck aphids).
Itch the third: It lets me develop useful skills outside of my career in tech. While I have no delusions about quitting being a sys/net admin and going and becoming a farmer, I do think it's important to nurture useful skills outside one's main career.
Itch the fourth: I have something to automate with tech. Gardens do need to be watered. Under-watering will limit your yield, but over-watering is also harmful to both the garden and the wider ecosystem of one's immediate area. There's a goldilocks-zone when it comes to watering, and the just-right amount of water depends on a number of things: what you're growing, your climate, the soil, etc. There is a real danger that before the close of summer, the garden bed will have an automatic, multi-zone drip irrigation system, complete with soil-moisture sensors, controlled by a Raspberry Pi or similar SBC.
During April I built a loft bed frame out of framing lumber. I can post about that too if any of you are interested.
Since I can't play basketball with people, I built an app that helps me play basketball with myself. It uses object detection to identify me shooting and the ball going in or not and then creates a heatmap in real-time. Sort of like fitbit for basketball. I had to do some labelling myself, but it didn't take too long and it's working! I try to beat my shooting percentage from the day before. I put it on the Apple App Store to start and I'll build an android version next.
Took over all of cooking at home - all meals so as to give the spouse a break. Lesson learnt, cooking once in a while is fun but cooking every meal every day (in lock down from march 22nd) is really really hard since it requires meal planning and execution every day from the moment you wake up.
Decided to open source some of the personal projects of mine. https://github.com/vivekhub/password-generator and https://github.com/vivekhub/simplenote-backup. Nothing fancy but something I have been meaning to do and started doing it. Started learning K8S as well so that is a positive. Decided to setup a personal website https://www.vivekv.info as well and had to learn hugo to do that. So on the whole feeling good. Sorry about all the links and plugs but hey I am genuinely proud of what I have done :-)
I've been writing a modern Zettelkasten-based note taking implementation. Planning to open source and release the initial version in a couple of weeks, the MVP is coming along nicely.
I was looking for a Zettelkasten note taking app which would 1. work on laptop and phone 2. wouldn't have any vendor lock-in and 3. wouldn't go away if a single company folded - couldn't find one, so I started writing one. I'm writing it as a PWA to make it available ~everywhere and planning to use dropbox/google drive/whichever as the backend so users will have full control over their notes.
I'm amazed how much you can accomplish with modern web tech stack. I can literally bypass any need for a server by having the user connect to their cloud! I can just create a PWA and publish it as an app! On the downside I've learned that some features are hard to implement with above requirements using PWAs though. For example, only Chrome supports some level of filesystem access, so storing notes locally would mean discriminating by browser, which I don't feel great about.
1) Trail Router (https://trailrouter.com) - This is a running route planner that favours greenery and nature in the routes it generates. It can generate point-to-point or round-trip routes that meet a specified distance. I developed this because I am (or was...) a frequent traveller for work, and want to run in nice areas rather than by horrible busy roads when I'm visiting somewhere new. Naturally, the utility of this tool is limited at the moment for people stuck in lockdown!
2) Fresh Brews (https://twitter.com/FreshBrews_UK) - I've been touring the UK's finest craft beer breweries from my own home in recent weeks. New beer releases sell out very quickly and I was frequently missing out. Fresh Brews is a simple bot that monitors the online shops of my favourite breweries and posts when a new beer is released to the shop, or an item comes back into stock.
I've spent a decent amount of time learning over the time that this quarantine has been going on.
A major issue that I've seen is that of most beginner-focused educational content not being fast enough to learn with for the more experienced developer. This along with the fact that time is often a big issue for us. I've had numerous times where I had to learn a new framework within a 1-2 week time span in order to plug some work gap or speed up a project, and found no legitimate resources that could allow an intermediate developer like me to learn faster.
This is why I am currently creating content targeted specifically at intermediate to advanced developers and teaching new languages and frameworks (using the 'constructivist' method) in a way that makes the process of learning them much more efficient. In short, faster.
It's a little rough around the edges but you can check out the blog where I share my current tutorials here: https://fromtoschool.com.
I've recently written a Python app that selects a random location in an area defined by a user-supplied shapefile [1], grabs corresponding aerial imagery from Google Maps, and posts it as a geotagged tweet:
I've built this tool because satellite imagery can be extremely beautiful [2], and I was looking for a way of regularly receiving high-resolution satellite views of arbitrary locations such as the center pivot irrigation farms of the American heartland [3] in my timeline. Plus, for obvious reasons, it's nice to see the world without actually having to go outside right now.
Currently, I'm running two Twitter bots based on ærialbot:
I finally put my photos up on my personal website. The only constraint I gave myself was to build a site that doesn’t need Javascript to load.
In the end I ended up using Next.js as a static site generator that pulls all the routes from my directory structure, making it possible to add new photography collections and filters as I go.
Might be overkill for the use case but it was fun to learn. The irony is I had to write a bunch of JS to produce it.
Still need to optimize the image sizes and I am thinking about adding filters for b&w/color/format.
Hopefully, this will reduce the use of virgin plastic for creating art pieces in 3d printing community and you might be able to create beautiful and useful things out of waste plastic while cleaning plastic waste from the environment.
It's a profitable business.
I worked on this in my free time during quarantine.
I want to make the project more accessible so people around the world can develop local recycling unit. There is lots of work which needs to be done including making parts more standardized, demonstrating how parts fight together in a visual way and also have a microcontroller firmware to control diameter of filament. I don't have much experience with microcontrollers but I've ideas, so we'll see.
- Pirates of Silicon Valley (this largely follows Gates and Jobs): https://www.imdb.com/title/tt0168122/
- Micro Men (this is about the British tech scene in the 80s): https://www.bbc.co.uk/programmes/b00n5b92 https://www.imdb.com/title/tt1459467/