my first update from a new project i’ve been prototyping out tonight. so humbling writing rails code after SUPER long and realizing i have forgotten like 90% of the syntaxWow, what an incredible day at #horizon on Saturday. Everyone on the Horizon team who made this happen: you are amazing. Some photos from the day!
I hooked ChatGPT up to the internet and it can find phone numbers for businesses on its own now. Now I’m going to make it so it can call me!Current status: trying to get Whisper.cpp running on a Raspberry Pi with the Adafruit Voice Bonnet. Real time local transcription, baby!
Finally reinstalled NixOS on my desktop and got it running with Sway. That was so much harder than expected. Thanks to everyone in #zrl-land who helped me think through window manager options!Deciding to reset my personal machine and reinstall NixOS from scratch! Was feeling weighed down by previous configuration
Day 5/10 of #10-days-in-public! I missed the past couple days, but woke up early this morning and wanted to make some more progress on learning deep learning.
• Started the first “Practical Deep Learning for Coders 2022” video
• Configured the heck out of some shell scripts for starting a Jupyter Lab notebook environment!
Code is going into github.com/zachlatta/learning-deep-learningHaving my mind blown by chat.openai.comDay 1/10: Made it through chapter 1, and starting on chapter 2 of the Deep Learning with Python book. My goal is to understand some of the fundamental concepts of neural networks in the next 10 days.
I wrote and trained my first neural network! (but I don’t understand the code at all). See hackclub.slack.com/archives/C01D7AHKMPF/p1669597204292789 if you want to join the learning group I’m putting together!Working on a Python notebook to make transcribing audio files really easy. I’m adapting a notebook made by someone else to be easier to use, to export Markdown, and to run faster with cached models / pip packages. I previously made github.com/zachlatta/openai-whisper-speaker-identification and this is an attempt to improve the quality of the output (it would previously sometimes mix speakers up).I modified a Python notebook that transcribes audio files using OpenAI’s Whisper model and breaks the text out by speaker to have clean Markdown output. It’s pretty cool! Give it a try: github.com/zachlatta/openai-whisper-speaker-identification
Once you click “Open in Colab” go to Runtime > Run all and then upload an audio file. It will then transcribe the file and download a Markdown file with the transcript, with speakers broken out!
Day 10/10 of #10-days-in-public! We made it!!! Wrapped up the amazing past 10 days with a celebration call. Thank you to everyone who participated. I am so inspired by all of you. And I’m proud of myself for shipping a new version of zachlatta.com with this time!
Day 9/10 of #10-days-in-public! I’ve been working to rebuild zachlatta.com, and I finally put the new site online! I moved it from beta.zachlatta.com to zachlatta.com, added indicators of the modification & creation dates, and linked to the GitHub repo from the homepage.
It’s still pretty basic and I’m pretty new to Next.js / modern web dev in general, but I’m proud of getting it to this point and excited to continue iterating on it after the 10 day challenge! At some point I still want to add some sort of streak mechanism…
Day 8/10 of #10-days-in-public! I’ve been rebuilding my website and today I got myself stuck in *bash madness*. I wanted to modify my note syncing script to add metadata to the notes (specifically creation time, last edited time, and a list of the file’s previous names) and… wow. That was a lot harder than I expected.
Ultimately, I wrote this mess. But it does the job! And it works in production! Now all of the notes being synced to github.com/zachlatta/public-notes have metadata added to their front matter. Here’s an example.
Now I can add more details about the note being displayed on zachlatta.com, sort them by creation date, and also gracefully handle renames, so no more 404s after a file gets renamed. Beta of the new site is at beta.zachlatta.com. (right now zachlatta.com doesn’t work because my self hosted setup constantly breaks 😞)
Day 7/10 for #10-days-in-public! I’ve been rebuilding zachlatta.com, with the current work-in-progress version of the site live at beta.zachlatta.com. I was out sick again today, but I wanted to make at least some progress on the site.
I focused on rewriting the code that pulls the files and their contents from github.com/zachlatta/public-notes into the Next.js codebase for static page generation. I was successfully able to get it to pull all of the files - including through all the subfolders - with the screenshotted code. From there, I then added support for notes in subfolders using catch-all routes from Next.js’s dynamic routing.
Next steps: I want to add more metadata to the generated pages, like last edited time / created time. I also want to add a better way to discover notes from my homepage - maybe a tree view of all the notes, and some sort of way to see the 3 most recently modified notes? Excited about the progress so far!
Day 6/10 for #10-days-in-public! During this journey, I’m rebuilding zachlatta.com. Unfortunately I came down with a cold today, so it’s another short day for me 😞. I spent a little time in the morning trying to figure out how to make Markdown files in (nested) subfolders work. The GraphQL query fetching the list of files from GitHub’s API needs to be rewritten to accomplish this. Thanks so much for your help this morning on this @caleb!
Day 5/10 of #10-days-in-public! I’m spending this time rebuilding zachlatta.com. A bit of a lighter day for me. I spent some time focusing on polishing the post view page (see screenshot). Next tasks: sort posts by last edit, show publish time and last edit on post page, get posts in subfolders working (need to figure out how to wrangle the GraphQL API query to GitHub), get images working, and get links working.
Really excited about how it’s coming together!
Day 4/10 of #10-days-in-public! During this time, I’m building a new version of zachlatta.com that pulls content from my Obsidian notes repo. Today I focused on getting my first styling on the site together. I tried out Tailwind for the first time, and am intrigued by the idea of utility classes instead of writing CSS for everything.
It’s not looking great yet, but proud of this progress and excited to continue tomorrow. You can see the WIP of the site at beta.zachlatta.com as I’m working on it.
Day 2/10 of #10-days-in-public! I’m working to rebuild my personal website, zachlatta.com, over the next 10 days with the key new feature being the ability to render content from a subset of my notes in Obsidian.
Today I focused on getting the script I wrote to separate out my Obsidian notes into a separate repo deployed to a server and running every 15 seconds. I ran into some tricky issues around authentication, but got it working! All the public notes are now being pushed to github.com/zachlatta/public-notes.
Next step is to build out the new Next.js site to render those notes on zachlatta.com in a nice clean way. I’m also thinking of adding some sort of GitHub commit chart-esque visual to the new site, and perhaps a streak mechanism too.Day 1/10 of #10-days-in-public! Over the next 10 days, I’m focusing on rebuilding my personal website. The key new feature I’m building in the new site is a way to publish content directly out of my private Obsidan notes repo by adding #public to any note.
Today I finished the filter-and-sync.sh script that filters the public files out of my private Obsidian repo and copies them to a public repo that will be rendered by the new static site I’m building for zachlatta.com. I also got it running in Docker, and wrote a timer script to repeatedly run the sync process every 15 seconds.
Once this is deployed, I’ll be able to add #public to any file in my Obsidian notes, and that file will be pushed and deployed to my website within 15 seconds! So if the file in my Obsidian repo is called “Test.md”, the URL it will be publicly available at will be zachlatta.com/test
Excited to see the progress everyone else makes today! You can see the work I did today and my progress here: github.com/zachlatta/zachlatta.com/tree/80001986425894a8948b2a7d044b410978d56a94/public-notes-syncWorking on a new personal site! I’m trying to build a way to publish what I’m writing directly from Obisidan, without having to commit anything (and while allowing some notes to stay private).Got Stable Diffusion running on my machine! text-to-image models are just mindblowing
Making a tutorial on creating a NixOS development VM on a Mac!
spent some of the weekend learning rust!
I got a NixOS VM for development set up on my Mac tonight (kind of... still need to make it seamless!)got a new computer today! so glad to finally have more than 8gb of ram. setting up a nixos development VM on the mac, so i can program in hack club codebases from my laptop now! following calcagno.blog/m1dev
Latest prototype of 3D printed Hack Club swag. First 3 people to DM me their mailing address gets it! I have 3 to mail out.Getting Hack Cube creation down to a science while I've been sick and stuck at home. Making tons of them! DM me with your address if you want one and @hugo.y.hu935 or myself will ship one to you!
While I've been sick today, I've spent some time learning how to generate AI art! Using softology.pro/tutorials/tensorflow/tensorflow.htm, I was able to get Disco Diffusion (github.com/alembics/disco-diffusion) running locally. From there, I've been trying to learn how to write prompts that lead to high quality results (have not figured this out yet, currently copying things from the blog post on the left).Latest batch of Hack Cubes complete! DM me your address if you want one!Making some more Hack Cubes! This time with a white background, and red text. This is using the new extruder I installed in the printer These past few months I've been getting into 3D printing and yesterday I replaced my hotend (the part the melts the plastic) with the new Revo Six system from E3D. This new system makes it way easier to swap extruder nozzles, so you can easily extrude with plastic widths of 0.2mm for normal parts, 0.1mm for small parts, or 0.4mm for big parts. This dramatically cuts down on printing time for bigger parts that need a bigger nozzle. It also opens the door for printing much more precise parts (I want to make 3D printed business cards).
To replace the hotend, I had to order the new Revo Six in the mail, unscrew a bunch of parts of my extruder to get the current hotend out, put the new Revo Six in, rewire the hotend cables into the control box, and then recalibrate the machine.
I'm proud of myself for doing this, and definitely procrastinated once the new parts came in because I was afraid I'd break the machine. But now it works and check out my first 3D printer part using a 0.8mm nozzle!
This weekend I learned how to use a woodshop! Starting with a piece of rough sawn lumber (a piece of wood cut using a chainsaw), I learned how to use a jointer to make the edges smooth and have a perfect 90 degree angle, then how to use a planer and various saws to clean up the edges and cut the wood into 3 equal pieces.
I recently joined the local makerspace called the Generator and have been working to get certified on their various tools to be able to use them to make things! One of my goals is to make an outdoor sign for Hack Club HQ.Making more Hack Cubes! This time with a shiny version of the red filament.
If you want one, please DM me your address and we will send one to you!Behold my cubes! I learned how to design and laser cut a cube using OnShape today! Included figuring out tolerances, and using lots of parametric design tools in OnShape to get the pieces fitting together correctly.
I'm in the process of trying to learn Autodesk Inventor so I can design and print my own 3D parts for projects. Been looking for tutorials to follow online, and found this PDF. Completed the first challenge in it tonight!
I'd like to figure out how to make the design process more elegant. I kept getting tripped up on trying to center lines using constraints, which I didn't see a button in Inventor for. My sketches are really messy for this, but I'm happy my final result at least looks like what it's supposed to!I'm in the process of trying to learn Autodesk Inventor so I can design and print my own 3D parts for projects. Been looking for tutorials to follow online, and found this PDF. Completed the first challenge in it tonight!
I'd like to figure out how to make the design process more elegant. I kept getting tripped up on trying to center lines using constraints, which I didn't see a button in Inventor for. My sketches are really messy for this, but I'm happy my final result at least looks like what it's supposed to!Making the first proper batch of Hack Club fidget cubes! This is a 31 hour print Completed second attempt at a multicolor 3D print using a single extruder. Think it's looking pretty good!
Does anyone want it? DM me your address. I'll mail it to the first person in the US (because of shipping cost) who wants itFirst attempt at doing a multicolor 3D print. It's not looking very good yet, but it'll get there! To do this, I had to manually edit the g-code to add the M600 instruction to prompt a filament change because I only have one extruder. Trying to figure out how to get the slicer to do it for me
First time adding magnets to a 3D print!I put in a spice rack today! I did a bunch of measurements to figure out what I could fit, found some shelving on Etsy that I liked, ordered it, learned how to stain wood and stained them myself, then learned how to seal wood and sealed them, and then finally put them into the wall using a drill.
I've always been intimidated by projects in the “real world” because if you mess up, you can't always undo your error like you can in coding. Trying to become more handy has been something I've been spending a little time on over the past year. Really proud of myself for this!
Making a stamp using a laser cutter!I replaced the extruded in my 3D printer today! The pre-assembled extruders were all out of stock, so I had to buy the parts for one (which got lost in the mail, so had to place a second order…), put it together, and then pull out the old clogged extruder in the printer and replace it with the new one I assembled.
I've always been kind of intimidated by hardware and am really proud of myself for getting this done! + bonus sunset picture from tonight
Something is happeningbeautiful sunset tonight. trying to learn how to make good timelapses with davinci resolve.
Presenting... THE HACKTOP
Hello from NixOS! (now running on bare metal)
Playing around with NixOS in a VM. Trying to decide on the host OS for my new workstation.
Building a new workstation for a new year. This is my first time building a computer since I was 13.
Just added live #scrapbook updates to hack.af/holiday-radio. Thanks to @caleb for building this! Should be live now (this is the first test post).
Got my NAS setup on my new Fedora installation running KDE.
Published $ ssh <http://jobs.hackclub.com|jobs.hackclub.com> yesterday!
Bought my first car today
Finally got my driver’s license today!
Got Nix on Debian running within WSL2. Playing around with moving to Windows as my main OS with most work happening within WSL2 via Emacs shelling out to it.
Doing some reflection and plotting out the next few months, starting with centering Hack Club's goals and strategy.
Shipped the first version of /z today on #hack-night. Proud of this and have a lot of ideas to make it better.
My first technical ship in a while...Helped cook dinner tonight. Chris's last day in Vermont. We planned out our schedule through October 1st to make sure we'll have a great work setup for the beginning of the school year. Feeling really quite good.
Night time walk with team. 2nd to last day of @cwalker in Vermont. Clubs planning. Donor call in the evening. Helping get Bank in order and supporting team. Lots to do, feels like so little time. How will we make this school year any good?
Sunday. Picked myself up. Laundry. Cleaned up bedroom and led effort to clean up the house. Some journaling, long discussion with @cwalker and @msw joined later. Looking forward for week again.Day off. Worked a bit on my new side project’s architecture, hung back / relaxed, and grilled for dinner with everyone.Writing code for the first time in a while on a new project. Team discussions to plan out clubs this school year. Bank. Leadership and inspiring leadership in others... hard.
Board meeting today. Since February: 2k average daily messages on Slack -> 10k average daily, 1.3k Twitter followers -> 12.3k. Hack Club Bank total transactions $1.36m -> $1.89m ($534k increase). AMAs as a format started. Summer of Making. 100s of hardware grants sent, 1,000s of #scrapbook posts made. Photo is of everywhere Summer of Making stickers are going (127 countries). $610k in donations received from 8 new donors.
Talked work schedule over next few weeks with team. Some light work on /z. @melody made awesome grilled chicken for dinner.
The List of Big Questions. Club Day. Year of the Rock. Hackers as the sedimentary layer of Hack Club. Ghosts. SWAT. Who is on the clubs team? Long day of discussions. Board meeting tomorrow.
Long day of discussions with team in Vermont. What will the next school year look like? Year of the Rock. Populating Hackerland. Slack as a tool. @cwalker joined us today in Vermont. @cp is joining team over summer to work with @michael.destefanis on Bank operations.
How do we expand the team to actually add more capacity? We sat down to start talking about the new school year today and there is just so much to do and not enough people or time.We got AC!
Made pizzas and cake with the team for dinner tonight. For people who don’t use computers constantly, the concept of files is incredibly hard to grasp. Getting stuck in mindset of the app sandbox. Separately, insecurity and making things. Being questioned when you don’t want to be questioned. Showing off unconsciously. Family.
Did a little work on the June transparency report. Grilled with team for dinner. The story of Bank. Slack as a tool. Building cohesive team and an amazing work environment. Bounties.
Skipping stones. Dylan Field AMA today (thanks Dylan!). Slack as a tool.Team is cooking dinner. Tonight we are talking about the new school year. What does a great year look like when few clubs can meet in person? Slack as a community, but also Slack as a tool.Sometimes, all you need is a good teammate.Moving day. Got settled at our new place for the next month. Had dinner at the one and only Dilly Wagon too!
Moving day, new home, new internet. What will the upcoming week hold?Cooking enchiladas ☣️Unbelievable sunset. The Hong Kong Security Law started being enforced today. What will next 10 years look like? Helping coordinate new feature for Scrappy. Big fundraising email got sent off.@dinaelhanan started today. Bank is almost entirely caught up on ops due to the great work of @md and @chaleb, who is stepping up to help out with some stuff these next two weeks. Two fundraising / donor calls today too.Bank ops. Hack Club running internationally. How do we network our way into The Omidyar Group? What does a 21st century institution look like? New place @msw and I are staying in Vermont for this week.Back in Vermont with @msw. Moved into our new home for the next week. Had 2 convos on video call tonight with teammates: (1) how do we make sure ops for Bank will be in a good spot this week and (2) what could something look like that would get more actually good student nonprofits running?The house with no internet. Hack Club Bank and the Legitimacy Trap. Cooking shrimp for dinner. Day 1 of in-person HQ being just @christina, @msw, and myself (everyone split from Vermont and nearly everyone will come back in-person by July 5th).Long day of driving and moving people around at HQ today. Spent all morning packing. Everyone left Vermont and will be back on July 5th. Christina, Max, and I drove 5 hours to a place we’re staying at until Sunday (and we visited a potential place for everyone to stay over the summer). Had some great conversations with everyone on the drive.Today at HQ in Vermont: @lachlanjc and @matthew shipped a ton of bug fixes and small improvements today (and @msw brought along a small surprise). 6 demos in today’s video...Wrapping up weekend, had a call with a Bank event today that needed help because our operations fell short, and thinking about (1) action HQ needs to take on hackathon GitHub Grants and (2) how to coordinate physical logistics of moving the team around this week.Continuing my short video updates from HQ. Day off today, but had good conversations about the community.
1. How do we avoid the “legitimacy trap” and keep out psychopaths?
2. What does a Slack look like that’s a purely opt-in experience?
How do we make it a more fun experience to start up new channels?
3. What if Orpheus archived channels that had no activity after 2 weeks to clear out the cruft?
4. What if Orpheus could create “breakout channels” like Zoom has breakout rooms?Unbelievable sunset tonight.
What does a Slack look like that’s a purely opt-in experience?How do we make it a more fun experience to start up new channels? What if Orpheus archived channels that had no activity after 2 weeks to clear out the cruft?