11
votes
What programming/technical projects have you been working on?
This is a recurring post to discuss programming or other technical projects that we've been working on. Tell us about one of your recent projects, either at work or personal projects. What's interesting about it? Are you having trouble with anything?
I’m working on a personal blogging / link sharing / web forum web site that has a lot of Tildes influence, but I intend to take it in a different direction. I’m calling it Keeper and it will be open source. Some of the ideas I’m considering:
Easy to install. It will be a Deno app that you can set up on Deno Deploy and run for free, under their free tier. (It also runs locally, and I believe it would also be easy to package up with Docker, but I’m not likely to implement that myself.)
Some support for federation. This will largely be old-school federation like blogging. Everyone can have their own website, and we can link to each other. But people expect better support for conversations nowadays, so there will be social features:
Logins and usernames will come from GitHub. It’s a central point of failure, but I’m hoping it’s good enough. GitHub seems like a fairly neutral, mature, reliable login provider that’s unlikely to care much what happens on Keeper websites. A big advantage for federation is that everyone can have the same username on all Keeper websites. Creating a GitHub login seems pretty easy, and this avoids implementing storing passwords and account recovery. Github has lots of ways to log in (including things like passkeys) and an account switcher, which allows for having alternative logins for people who want to preserve their privacy.
Some kind of support for cross-site notification. If you post to someone else’s Keeper and someone replies or mentions you, how do you get notified? I’m thinking some kind of webhook that forwards notifications to your own Keeper, or alternatively an RSS feed. (The old school way would be to send an email, but I’m hoping to avoid that. I don’t want people’s email addresses.)
Topics are top-level. There won’t be groups (use tags), and links will be special posts that go inside topics. People can post different links for the same news event and voting can be used to rank them. To avoid many quibbles over clickbait headlines, my convention will be to name topics as if they were a Wikipedia article.
Topics reflect the interests of the Keeper admin. This is what makes it a personal website, like a blog, rather than a common discussion forum. Create topics about things that you want to discuss on your own Keeper, and they can create topics on theirs. (Though, you could create open threads like bloggers do.)
More collaboration in the style of git and wikis. Many things can be added to or edited, though your edits might not be accepted. If you see a typo in someone else’s post, you can send them an edit that they can easily apply if they wish. There will be an automatic way of crediting contributors.
Limited support for contributions from strangers. Anyone with a GitHub account can log in, but by default, they won’t be able to make any public changes or bother other users. Their contributions go to a “slush pile” and you can do with them what you wish. (There will probably need to be spam filters eventually.) Invited guests can post publicly, and people can be given “guest host” privilege, which lets them create new topics. (I expect that to be very limited, though, to keep the site focused on personal interests.)
The Keeper admin will likely have other special privileges like posting images. (This is another incentive to set up your own Keeper website.)
Computational Science, Game Development, and Machine Learning
Modern C++20/23 research software to model microstructure, simulate defect interactions and the evolution of defect networks, and explore mesoscale informatics by leveraging data-oriented design. If done well, the same code scaffold could be applied to various problems across materials (metals, semiconductors, ceramics, polymers, composites, etc.), biology and nanotechnology.
For the Computer Scientists and Engineers here, it is a fascinating problem and the basic premise is as follows. Consider a tessellation in which each cell is hosting its own N-body “game loop” — “Barnes-Hut-Voronoi”— it seems deceptively achievable but there are some notable caveats:
Over the past decade, the main challenge has been to establish a tractable framework that balances algorithmic complexity and physical complexity. That is, a computational framework that scales reasonably with the microstructural features (e.g. numbers of cells and densities of defects) and events (i.e. interactions) whilst also retaining the essential science and customisation points for generalisation.
After having published some of the groundwork, the next step is to do some serious prototyping, and periodically post updates for suggestions and feedback.
Sounds complex. I hope you have a good team to work with?
As someone who is also a pretty beginner-level programmer, but has completed a few simpler projects, I feel like this too quite often.
However usually, I can ease my mind with a line of reasoning that goes something like this: Once I've initially understood, learned and really tried to grasp a concept, even if I do forget it later, I can always revisit the topic (should I ever need it again in the first place…), and most often, I will start to remember the important/difficult bits again pretty quickly. It's typically just so much easier the second time around, even if you feel like you know nothing anymore when you start revisiting it the second (or third, or later) time around. Same holds for closely related topics, or (nearly) the same topic in a different framework/language/setting.
It is a bit like learning to ride a bike, perhaps.
We use Filemaker at my workplace; we deal with many large organizations in processing their mail. Filemaker (whose company is an Apple subsidiary) is great for throwing together a solid interface quickly, but is not very high performing. Currently we upload records to a SQL database for one piece of software and into Filemaker and when talking about loadings millions of records at once it is a couple minutes onto the SQL server vs several HOURS in Filemaker. This also locks that PC's instance of Filemaker the entire time, to the point where the user that does this uses up to three PCs (their PC, a VM, and a third PC that is currently unused by anyone) at a time and they are still falling behind on keeping these records up to date.
I'm probably the most technical person at the place I work so I've slowly been setting up ODBC connections between Filemaker and said SQL Server so we largely only load files in one place. These databases are easily 15-20 years old (Back before Filemaker supported more than one table in each
application
, meaning each table had to be it's own .fmp file) from when this was something used to support the single in-house client. Which has now expanded to 150+.Anyways, while this cuts down on uploading files the performance is pretty subpar when looking through these records. Luckily Filemaker doesn't need to actually hit these records frequently, just occasionally and in small quantities. Now i'm just disentangling the stuff that uses the Filemaker records and pointing them one at a time to the SQL Server.
We really shouldn't be using Filemaker for what we are doing, but a) we don't have people with the technical knowledge to change (everyone is basically self-taught) b) they offer very low salary and don't look for people with the technical knowledge because they do not want to pay the price.
Wow, haven't heard of that product in a long time. A public school district I worked for almost 20 years ago used it and it was a nightmare. I'm curious how much it's changed (but not curious enough to set it up).
I’m doing some pretty silly stuff with a raspberry pi in order to automate playing some silly iPad games by attaching to the iPad as both a screen mirroring host as well as as a Bluetooth mouse.
Took some time yesterday to throw together a markdown based blogging platform. Wanted to build something super simplistic, basically just drop in a markdown file, create an account and it's posted. Felt like blogging should be as minimalist as markdown itself is.
It was also an opportunity to play around with Supabase, which I'm liking a lot so far. Paired with NextJS and TailwindCSS, it was relatively easy to throw the project together.
The project is open-source and you can play around with it at mdJournal.
I've been working on an open source self-help web app for the past 5 months. I need to do a few more things before I publish it:
I'm new to coding and it's been a hell of a journey so far. I can't WAIT to publish it here on Tildes within the next few weeks!