6 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?

8 comments

  1. mat
    Link
    Urgh, struggling with Google's API for their calendar. The API is pretty straightforward when it comes to calendar events, which is all I want to read. The difficulty is the authentication. I can...

    Urgh, struggling with Google's API for their calendar. The API is pretty straightforward when it comes to calendar events, which is all I want to read. The difficulty is the authentication. I can do it manually with OAuth2 but unless I can get my "app" (my very short and pretty much entirely single-use python script) verified by Google, which by all accounts is hard to do, I need to regenerate the auth token once a week, which is fiddly because the machine the script runs on doesn't have a gui and the web-based auth doesn't work in links. I am trying to get a service account (aka headless) solution working but while I have got the service account to authenticate, I can't get it to read my shared family calendar.

    It's very annoying because I've done all the fun bits of this - parsing the api output, formatting it for eink and updating the display. I've also done all the fun hardware bits by making a stand from wood and metal - if I can just get it to sit there and read my calendar without regular intervention this project will be done.

    I believe that Google Cloud Platform can be extremely powerful but holy crap it can get complicated and the documentation is often... let's say sparse.

    4 votes
  2. EgoEimi
    Link
    Been helping an engineer friend build an open source browser-based dev tool for his C/C++ engine that manages many objects in a game or simulation. The tool allows dev-users to inspect objects,...

    Been helping an engineer friend build an open source browser-based dev tool for his C/C++ engine that manages many objects in a game or simulation. The tool allows dev-users to inspect objects, object properties, monitor metrics, prototype code, and more.

    I'm a designer by profession but I'm also a strong frontend developer, so I'm both designing and building on the frontend (in Vue).

    I'm not encountering technical issues so much as I am facing collaboration issues, so I'm trying to think about how to improve collaboration. Failing that, I will move on from the project and look for a different one. But overall I'm reminded why I hesitate to make design and frontend contributions to OSS.

    There's ongoing disagreement over whether or not the vertically resizable collapsible panels—they display object property tables, lists, code editors, and others—solution I designed and built improves upon the existing panels which cannot be resized and which also change height unpredictably depending on their contents.

    He's a smart engineer and I like him as a person. But there's general trouble in collaboration. I do my best to design things according to interface and usability principles, drawing upon my experience and education. But to my irritation this gets dismissed as opinion. Indeed it is opinion, but it is informed opinion — and there is method, not madness. I'm also the stronger frontender between the two of us and have a better grasp of frontend solution complexity.

    I genuinely enjoy high-level debates about user needs and tasks. But it is exhausting to engage in UI bikeshedding for hours. I think exhaustive debate is important when you're, say, making optimal software architecture decisions. But less so for UIs—especially for non-critical, non-architectural situations—where there are often multiple, if not many, "good enough" choices and you just have to make an executive decision and move onto the thousand of other things in the UI that need to be built, and gradually revisit and iterate upon past choices and refactor.

    4 votes
  3. 0x29A
    Link
    Been really getting inspired and into the idea of the 'small web'. Web-1.0 style sites, webrings, 'digital gardens', efficiency, portability. Ideas like bandwidth conservation, lo-fi,...

    Been really getting inspired and into the idea of the 'small web'. Web-1.0 style sites, webrings, 'digital gardens', efficiency, portability. Ideas like bandwidth conservation, lo-fi, contemplations about having healthier relationships with technology. See things like fdisk.space and 100R.

    So, I'm in the midst of building my own 'digital garden' of sorts- a 'tiny home' on the web if you will. Been a while since I've had a personal website.

    I also have projects tangentially related to this that I'm thinking about. One is a blog where I try to keep all of my complaints/criticisms of technology separate and in one place away from my main site. Another is a "technology how-to/help" site with all sorts of information- with levels- stuff that is super simple and perfect for people that aren't tech-savvy at all, all the way up to things that can help techies. A third is a project where I'm considering documenting lists of "banned" books and linking them for easy access / visibility- and expanding it maybe to include other efforts. Attempting to do all of these sites/projects while retaining the "lean web" philosophy. Mostly all plain-text, no JS, no ads, etc.

    All in all, trying to re-analyze my relationship to all things digital and find a healthy state to strive toward

    3 votes
  4. [2]
    skybrian
    Link
    I’m continuing to make slow but promising progress on the accordion synthesizer. I built a test setup with a V-shaped hinged “arm” attached to my desk, using a rotary damper to provide resistance....

    I’m continuing to make slow but promising progress on the accordion synthesizer. I built a test setup with a V-shaped hinged “arm” attached to my desk, using a rotary damper to provide resistance. It has a nice feel. Now I’m working on adding a rotation sensor.

    This is giving me a lot of practice using CAD to design things to be 3D printed. I learned about the basics of designing gears, designing a hinges, and making a sliding box (for the sensor). The arm is built out of plastic beams that are partially compatible with Lego Technic, using 5mm holes spaced at multiples of 8mm. Now I want to get better at running cables rather than kludging something together with individual wires like I’ve been doing.

    2 votes
  5. onyxleopard
    Link
    I had an itch at work to write a grammar for parsing/validating International Phonetic Alphabet (IPA) transcriptions. The Lark grammar I wrote is pretty lenient, but it could be further...

    I had an itch at work to write a grammar for parsing/validating International Phonetic Alphabet (IPA) transcriptions. The Lark grammar I wrote is pretty lenient, but it could be further expanded/narrowed to focus on particular phonetic inventories of specific natural languages, and even could be extended to parse syllable structures.

    2 votes
  6. JXM
    Link
    Not quite as technical as some of the other projects people have mentioned but... I've been spending a lot of time trying to figure out how to back up my Synology NAS. I've got about 14 TB of data...

    Not quite as technical as some of the other projects people have mentioned but...

    I've been spending a lot of time trying to figure out how to back up my Synology NAS. I've got about 14 TB of data (mostly my Plex library of DVDs/Blu-rays that I've ripped over the years and backups of video projects I've worked on) that I wanted to back up to the cloud.

    I originally had all the data on a Windows server, which made things easy, since I just used Backblaze. But that only works from a Windows or Mac computer. I looked into other cloud services, but most that will work with NAS systems charge by the GB and those can get expensive (for example, Backblaze B2 would be over $800 per year, vs $99 for their unlimited desktop backup service). Plus, I would have to re-upload all 14 TB of data, which would take forever. It took nearly three months (and several angry notices from my ISP about using too much bandwidth) to upload all of the data originally.

    There are a number of Docker containers that will run WINE and then auto-install the Backblaze desktop client, but none of them wanted to work on Synology. After about a week of struggling to get them working, I gave up.

    I dug out my old 2012 Mac mini, installed Windows on it, attached a 16 TB USB drive, and found a program called Acrosync that gives rsync a nice Windows GUI. Every hour, it copies new files from my NAS to the Mac mini and then Backblaze backs it up. That way I can continue using the $99 per year Backblaze desktop backup.

    So now I also have an extra local backup that I can restore from if I really need to and then a cloud backup as a second layer of defense.

    1 vote