Just updated the super small readme with a bunch of stuff. ps – whoever invented the .md file; thank you so much.
Just updated the super small readme with a bunch of stuff. ps – whoever invented the .md file; thank you so much.
Hi everyone! matthew.heng.org is ready for shipping! It’s my personal website that I post my current project info on. I like tinkering with the styling and layout every now and then, and stardance was a great chance to do a bit more. If it sounds interesting do you, feel free to drop by at https://matthew.heng.org. Thanks for reading!
Hi Everyone! Finally decided on a real pipeline for Atlas’ intent engine. I wrote off fasttext before for being unintelligent. Fasttext doesn’t know real language like that audio and sound are related to each other. MiniLM or SnipsNLU might, but they would be so heavy. The end goal of Atlas is to be able to run on not just iOS, Android, and Linux, but also very low end linux devices like a first gen Raspberry Pi Zero. The intent engine stage should not be any source of bottlenecks or slowness. Fasttext is doing quite well. It kept failing, but with more training data, parameters, and random flags in the training step, it’s not half bad! The only major problem that I’ll run into is with arguments. For example, when you say “What’s the time in Tokyo?”, it can figure out that you’re asking what the time is pretty fast. The problem is making sure that it passes along “Tokyo” as an argument (or entity as some call it), or else it will just completely fail. This step is hard, but keywords should be easier to sneak in if I am desparate. Keyword based intent is very very unreliable though, so I’ll have to see and do some more research on fasttext’s potential. For now, it’s quite nice. If you want to use fasttext yourself, you just clone a git repo, compile into a binary, feed it one file with your examples and intents, and watch it fail and fail until it doesn’t. Massive respect to FastText devs (even though it’s Meta eww, it’s open source), and happy coding everyone! Ps– it’s unlikely that an Atlas version will be completed during the duration of stardance, but I’ll try. Thanks for reading!
Hey everyone! Today, I tried using FastText (a local clasification model) as Atlas’ intent engine. It was pretty awesome seeing it actually kinda work! The setup is super easy, you just clone a repo, make a file, then run that file with a few args to load in your training data in a literal .txt file, and just test it there in the command line in literally under five minutes. FastText was looking like it would become Atlas’ intent engine, but unfortunatly, it’s kinda dumb, and I mean that in a very loving way. FastText doesn’t seem to know enough about language to be very confident or accurate in classifying sentances into back-end hooks. Given enough specifically equal training data (because too much data in one hook will make it be the most confident in that hook. Not exactly useful when “Play music” turns into AIRPLANE_ON), it could definitely work out, but for every single feature that i add in the future it would have to gen a GIANT list of examples, and even then, it woudln’t be great at something unpredictable. So I’m going to try flipping the script to some sort of NLU or LM, like MiniLM to use with some sort of ONNX integration so that I can make it work good on not just Android with Kotlin, but also linux, for a raspberry pi hardware project I’m calling Scout, which will basically be like a baofeng radio with a bunch of extra features (I can only work on that once I get my HAM liscense though.) Anyways, FastText proved that the whole pipeline works, and it might work as a ffallback if things go south and i really need something to ship or something for the end of stardance’s prototype. I also tried updating some app UI stuff, but going from HTML + CSS to Jetpack Compose is a wild ride. Anyhow, thanks for reading! ps– in the android studio screenshot, what am I even doing????
Hi everyone! Atlas – CLI Version’s framework is finished! Once I add in the actions to actually do things, it will start being useful. It’s really rough, and relies on specific keywords for this prototype, but it’s a good framework concept for later. At this rate, I may be able to finish the full project by the end of October! Because my first time using Android Studio was a few days ago, I messed up a lot of the file structure because there isn’t a clear rename button in Android Studio, so I just started a new project and transferred all of the key files over. Fun stuff. Anyways, thanks for reading, and I’ll hopefully report in tomorrow. Or in a week, who knows.
Hey everyone! Atlas is one step closer to it’s prototype release. Basically, since it’s designed to first roll out as an Android app (then a linux version later with KMP), and I want to get something tangible to ship as a prototype for the end of stardance, I’m making a version of Atlas that doesn’t have a comprehensive or accurate intent engine (for prototype it will just use keywords), doesn’t have any integrations (like Google Maps, Weather, or any APIs). I’ll try to make it shippable as an apk or in some other way where you can try the app without having to download it. It won’t run the wake word detector for the prototype either, it will just be activated by a button, and stt might not even be in place yet, I’ll have to see how much I can get done before Stardance ends. Anyways, on a completely different note, the old wake word detector that I was planning on using (once I actually start working on the not prototype version), called Porcupine apparently is closed source, and has some stupid limits to the custom wake word stuff, like model regeneration. Gross. So my new plan for that will be to take some open source TinyML implementation and modify it to be a wake word detector, to be as efficient as porcupine, but without a company in control. For the final intent engine, SnipsNLU is still probably going to be the plan, even though it’s a bit outdated. Anyhow, hopefully Atlas will have a ready and working CLI style prototype by September 20th ish. As always, thanks for reading my long rambles! PS– jetpack compose is so nice to use! I basically have nothing down for the front end regardless.
Hi Everyone! Today I migrated my workflow from VS Code (Code -OSS) to Android Studio. It makes a lot of the integrations with other things, like the wake word detector a lot easier, for my digital voice assistant, Atlas (hopefully Jarvis level speed and helpfulness). If you are coding with any other code editor right now, and are making an android app, I would strongly advise moving to Android Studio. It has a built in emulator, and while the file structure is extremely complex, at least compared to my old like 4 directories, it’ll be totally worth it, and anyways, to make the apk, you’ll probably have to use gradle, which is built into it anyways. There a little bit of new like AI stuff in it which is like a little annoying, but it has cool stuff like autocomplete in the terminal (past normal bash autocomplete). Anyways, happy coding! ps– made itself a bunch of errors in the code as a bonus :.
Hi! My website is mostly ready for shipping! https://matthew.heng.org (may not be up to date because of filezilla manual transfers). I use it for posting updates of my latest projects, random stuff about me, and just as a platform for testing things out. A few more things to implement before I ship. 1 - a reliable posting system, almost like a blog and these sorts of devlogs. 2- Nav bar spinner to indicate weather the navigation menu is opened or closed, like that found on https://asus-linux.org (I’m not affiliated! Just love their web design). I lost about 39 minutes of coding time because when I came back from vacation, my git repo was out of sync with my local (computer at home one), which I had a few changes on, so I just nuked the local dir, and restarted which is fine, because I did coding on vacation. Then I realised that I had renamed the folder, so in Code -OSS, Hackatime thought that I was working on a different project. Theres a few issues with Hackatime and how a lot of platforms don’t support it, as displayed in my Atlas devlogs. I did some digging too, and this isn’t really Hack Club’s fault. The fact that they made such a comprehensive tracking plugin (albeit on the shoulders of Wakatime), is pretty cool already. For editors like SPCK, the one I used on my phone on vacation just don’t have a way to make the plugin available to it. Totally fine, just maybe something cool to be fixed? Anyways, ramble aside, Thank you for reading this enourmous log written at exactly 23:59 in the morning. And thanks Hack Club! – ps, in the screenshot I have like three panes in code oss. I don’t code like that, that would fry my brain. –
Hi! My Voice Assistant, Atlas is officially underway for Stardance. It’s a late start, due to the fact that I started coding this on vacation, with SPCK editor, on my S21, which sadly, doesn’t support Hackatime. But whatever. Atlas is aimed to be a fast, local, and smart voice assistant. Google Assistant, Bixby, Alexa, and Siri seem to be quite sluggish in my experience, while offering little customisability. I mean it’s 2026, we should have custom wake words for google by now. Anyways, Atlas will have many custom features and integrations with services. Link to the github is here, if you’re interested. https://github.com/Hengtime787/Atlas/blob/main/README.md . It’s not ready yet. I still have to work out the entirity of the Intent Engine, the Personality Engine, TTS, Wake Word Detection, and STT. Atlas likely won’t be finished before the end Stardance, but a small scale prototype (without smart intent) might be integrated into a linux CLI or something just to showcase some features. Thanks for reading! – (Below is the logo concept.) –
Been working on a few projects coding off my phone on vacation. Sadly hacktime isn’t supported by spck editor, so my new Atlas project is under the radar, as is my recent website changes. Can still post to github though, so that’s cool. Anyways, website has been updated with better fonts and less jank.
Hi! Just released release 1.0 for amctl. Posted it on the AUR (Arch User Repository). Anyone running an Archlinux machine can now download it with yay -S amctl (assuming you use yay as your package manager).
Hey, I made a cli for controlling system settings and utilities on Linux. All of the basic systems are down, like controlling Bluetooth connections, brightness, volume, and songs playing, with a lot more like network, battery, and theming coming up soon.
Hope to see some cool projects soon!
My python cli calculator project part of my main cli, using Typer + Python.
My (Slightly Self Centred) Website. Started it a while ago and now I’m actually updating it.