HNHacker News
TopNewBestAskShowJobs

oneearedrabbit

187 karma · joined January 28, 2010

mail@ username .net

https://kruzenshtern.org https://twitter.com/oneearedrabbit

submissionscomments
oneearedrabbit··on I built a site generator for Apple Notes
I should have been more clear, thanks for correcting me! Apple Script does indeed work, and there are some limitations to be aware of. Some of them I explained in the article. For example, all images are encoded as base64 strings (which is not terrible, just inconvenient). I also couldn't extract tags even using `body`. todo-lists are formatted as ul/li blocks, which is reasonable, but also inconvenient. Ultimately, I wanted to render notes visually as close as possible to Apple Notes, and I was not happy with what Apple Script provides out of the box.

FWIW, Bear (a competitive note taking application) does provide an Automator script to help users migrate from Apple Notes, and they also mentioned similar limitations:

- Task lists convert into bulleted lists

- Rich media links will convert to plain text links

- Non-photo attachments like PDFs or other files are not supported and will be excluded from export to HTML files. They will remain safely in Apple Notes

oneearedrabbit··on I built a site generator for Apple Notes
Hi. This is a passion project I have been tinkering around with for fun over weekends. I thought it would be crazy to use Apple Notes as a site generator, but I did it anyway. There is no SDK/API to access notes programmatically, so I had to go the extra mile and reverse-engineer Apple Notes.

I have been using Notes for over a decade and have a collection of over a thousand stories. However, there is something else that makes it special. A hard lock-in, it is extremely difficult to export notes. This project is my tiny contribution to give them wings and let them fly.

This is not a Show HN post — there is no download page yet. However, I thought it could be interesting to write down lessons and gotchas, so someone else won’t need to start from scratch.

Happy hacking.

oneearedrabbit··on Ask HN: Why is the source folder called 'src'?
"White space is as important to code as silence is to music. Without them music is noise and code is an impenetrable wall of text." -Nils M Holm
oneearedrabbit··on Finishing my first game while working full-time
Ah, good memories. My tipping point was when I watched Krystian’s video “We Are All Game Beginners” [0]. It helped me embrace and acknowledge difficulties that one has to overcome to begin and finish a game, no matter how big or small it is. It took me about three months through a turbulence phase to finish my first game [1]. Also, taking this chance, any Pico-8 enthusiasts?

Before I wrote the first line of code, I had an honest conversation with myself about why I am starting a project and put it on paper as my true motivation and goal. Over the course, I had to remind myself multiple times to be sincere and forgiving. Working on a side means that even the simplest task could stretch over several days, and it is okay.

I particularly enjoyed sharing my work in progress on social media and with my friends. During the darkest moments, I found that a great “hack” is to record a milestone that I am proud of to boost my motivation and push a game a little further. If I may quote Rocky, it goes like:” One step at a time. One punch at a time. One round at a time.”

Another “hack” is to cut it out if something takes longer and drains your energy without any significant progress. Make something even just one person to enjoy. It is already a good milestone.

Ultimately, I took this journey as a self-exploration to get to know my true self better, slay a few dragons on the way in a reasonably safe environment.

[0]: https://www.youtube.com/watch?v=P9wztsnmEIw

[1]: https://oneearedrabbit.itch.io/the-pixel-maze

oneearedrabbit··on Firecracker MicroVMs
Technically speaking you are right. If you are not limited to AWS, then even a $5 DigitalOcean instance is be able to host 4-5 VMs.
oneearedrabbit··on Pico-1K Jam: Make Something Cool in Pico-8 in 1024 Characters
I guess, your mind is set already.

My thought process though that Pico-8 is roughly the same price as three cups of coffee. However, it is a way to say Thank you, Zep and support the future development of the platform. Some interesting things came out of Pico-8 BBS and also helped me to sharpen my skills.

If it is too much or inconvenient there is also TIC-80 which is open-source and more-or-less follows the same spirit albeit less constrictive.

oneearedrabbit··on Pico-1K Jam: Make Something Cool in Pico-8 in 1024 Characters
If I understand your question, it is not mutually exclusive, and there are physical devices that can run Pico-8, for instance, GameShell and RaspiBoy.

Certainly, you can build your custom device. Still, it is sort of derailing the original intention if you are making a game or participating in the demoscene and would like to focus on the development (or learning) aspect rather than porting and hardware.

Game development is already hard. It could be a nice cherry on top to run it on the physical device; however, emulators are great to get started.

oneearedrabbit··on Pico-1K Jam: Make Something Cool in Pico-8 in 1024 Characters
Pico-8 is love. I recently started working on a tiny game, and I appreciate the limitations of the platform. No more scope creep, i.e. if it is getting bigger than what Pico-8 can support, perhaps I am not thinking straight and focusing on the wrong part. It is like having a free mentor and a dearest friend who is reminding me to finish the core mechanics first, and then if I have time, energy, and other resources, make a reasonable decision on what is the next thing to add. Although it is a double-edged sword, but my heartfelt experience is that embracing and accepting limitations is what constitutes progress.

I haven’t done jams in a long time, but kudos to everyone who will try to push boundaries.

oneearedrabbit··on Ask HN: Is there a viable method for small-time hosting from home?
Also, read Terms of Service carefully. One of my providers explicitly said something like: "Users may not run any type of server on the system, which includes but not limited to <a bunch of different protocols>". They require to upgrade a plan to Business or something like that which was more expensive.
oneearedrabbit··on Ask HN: Who wants to be hired? (August 2021)

  Location: NYC 
  Remote: Optional
  Willing to relocate: I am open to conversation
  Technologies: Python, Node.JS/Javascript, Ruby, Lua, and commercial exposure to many other technologies and platforms, more in CV
  Résumé/CV: https://kruzenshtern.org/cv.pdf
  Email: cv@kruzenshtern.org
A principal architect & a technical leader with over 15 years of professional expertise in the IT industry, consulting and management. Experience in delivering enterprise-grade projects for some of the world’s largest institutions in financial services and capital markets such as securities settlement platform, a digital money solution for payments and FX, and trading systems for an investment bank. Excellent polyglot full-stack development skills. Fluent in many programming languages including Python, Ruby, Javascript/Node.JS, and Lua.
oneearedrabbit··on Ask HN: Share your side project
I have been doing software development for over 15 years, and I thought that I could apply some of my skills in another dev domain for fun. This time I wanted to try something different, and I started working on a tiny 1-bit retro game. I heard many horror stories that gamedev is hard, and I wanted to get the heartfelt first-hand experience. While it is certainly true that prior experience helps, but gamedev requires a multidisciplinary approach. One has to compose music, create sound effects, draw tiles and sprites, think carefully about game mechanics and many many other things.

On top of that, I am a solo-developer, and I have to prioritize ruthlessly, i.e. whether a new idea adds something meaningful to a game, or it is nice to have but will drain my energy, and I will abandon a game quickly. I am lucky to meet great people in gamedev groups. Also, I find gamedev community very friendly and supportive. I am still miles away from the first playable build, but it is a rewarding experience. If anyone is curious, here is what it looks like: https://twitter.com/oneearedrabbit/status/142057536513165312...

oneearedrabbit··on Show HN: Diggy – run practical and recreational languages in a browser
I will try to catch some sleep now. If it crashes (sorry!), I will recover it the first thing in the morning.
oneearedrabbit··on Show HN: Diggy – run practical and recreational languages in a browser
Hi HN. Over the last week, I was working on a playground that could run practical and recreational languages in a browser. To a certain extent, it is a follow-up to a recent (and much upvoted) HN post about one famous company trying to kill a like-minded open-source project. I am unaffiliated with both parties, but I felt unpleasantly frustrated with the story and decided to give something back to the community and build a similar project from scratch. [0]

To be frank, there is not much new about Diggy. It stands on the shoulder of giants: the code is executed in a Python process that is launched through NsJail. On the frontend it is Svelte. The code is executed inside protected environments, but there are some limitations such as time & memory limits, no networking, etc. It is a boring tech-stack. I like it.

But, hey, Diggy runs on a cheap DigitalOcean instance in a docker-compose environment (drum roll… awaiting the HN hug of death?) One can complete computer science assignments, try new languages. Sure, there are no accounts. It is a sandbox, and everyone is welcome. Grab a large bucket and a shovel; it is playtime!

Oh, yeah, I think I said it already, but Diggy is open-source, and anyone can self-host it. It won’t blow a hole in your budget, and it is simple to install. [1]

Currently, Diggy could run only two languages: Python and Ruby. Python has two pre-installed libraries: numpy and matplotlib. Not much, you say? I will add support for more languages over the next week. It is super easy. This is what I have in mind: compiled languages: C, C++, Clojure, C#, Erlang, Go, Java, Rust, Scala, and interpreted languages: Bash, Basic, Common Lisp, Haskell, Javascript, Typescript, Lua, Markdown, OCaml, Perl, PHP. Huh… did I miss anything?

This is just a small weekend project. But there is a reason Diggy will stay light (except that I haven’t finished it yet): programming is not the luxury of a few people. It must be simple to learn.

[0] http://diggy.sh/

[1] https://github.com/diggyhq/shell

oneearedrabbit··on Ask HN: Did you fully or partially quit smartphones?
I wrote down my experience in this post about a year and a half ago: https://news.ycombinator.com/item?id=21929194.

It is still very relevant. As a follow-up, I find myself using the phone less and less. For instance, today I found out that I missed a message from a friend which he sent four days ago. When I go out, there is a solid chance that I will forget or intentionally leave the phone on my desk. Also, it's easier to get into the flow having less distractions around you.

oneearedrabbit··on Urbit: The good, the bad, and the insane
This partially answers your question [0]:

> Urbit started back in 2002 as Curtis Yarvin’s personal project. Curtis developed the original prototype for Urbit and, separately, wrote a blog on history and politics under the pen name ‘Mencius Moldbug’.

> In early 2019, Curtis left the Urbit project and gave all of his voting interest (both as address space and voting shares in the company) back to Tlon. He retains a non-voting, minority interest in both the address space and the company — but is not involved in the day-to-day development or operations.

> Curtis laid the foundation for Urbit by delivering its first prototype but, since 2013, it has been refined and almost entirely rewritten by a community of developers. No one working on Urbit today had anything to do with Curtis’s writing. For the most part, we couldn’t be less interested in it.

> The community of people who build Urbit have widely varied ways of thinking and looking at the world, but they all share two things: the desire to build neutral infrastructure for all people and to think from first principles about hard problems. We welcome spirited debate and disagreement as a primary tool for refining our work. Successful infrastructure, we think, serves all people — no matter their background, culture, or worldview.

[0] https://urbit.org/faq/

oneearedrabbit··on Ask HN: Show me your half baked project
That's how Twitter started back in 2006. Also, you reminded me Posterous [0], which ironically has been acquired by the very same Twitter.

[0] https://en.wikipedia.org/wiki/Posterous

oneearedrabbit··on Ask HN: Show me your half baked project
About a month ago, I began developing Diggy [0]. It started as a simple Python notebook to explore small datasets, visualize results so can share them with my friends. Its initial purpose was to create a Python playground that I can run entirely in my browser without relying on server-side code. Zero setup, just type some Python code in the browser and instantly see results.

I don't feel joy when I work with Jupyter-like environments. They are powerful, but feel complex especially for exploratory programming and for those of us who enjoy playing with ideas. That being said, Diggy is not for large-scale applications where you need Docker containers, cloud providers, integration with enterprise platforms, big data. It’s for those who like learning, coding, sharing and making it for fun.

Diggy is a tactile and visual notebook:

* It’s reactive. You don’t have to remember which blocks to run if you change a variable. A notebook will be automatically updated. There’s no hidden state, a notebook is always up-to-date.

* You don’t need to install anything on your computer. You don’t need to create an account to run Python code. It’s as simple as clicking a link.

* Web-native, runs completely in the browser pushing boundaries of edge computing.

It was hugely inspired by Observable & Repl project. Overall, it’s a small attempt to move towards tools that bring joy to programming.

Under the hood it runs Pyodide [1], and I’m planning to add extra languages at some point.

[0] https://diggyhq.com

[1] https://github.com/iodide-project/pyodide

oneearedrabbit··on Simple Bank Is Closing
They use Plaid [0] under the hood. As long as you trust it, it's safe.

[0] https://plaid.com/

oneearedrabbit··on CSS-powered hover-animations library
Off-topic: perhaps, it should have been a Show HN post, there're some rules [0]

[0] https://news.ycombinator.com/showhn.html

oneearedrabbit··on Show HN: CheerpX – x86 Node.js/python3/Ruby REPL in browser via WebAssembly JIT
Thanks! On a technical side, do you run the whole application in the main thread of a web worker. I wonder whether you considered using service workers for the faster boot up?
oneearedrabbit··on Show HN: CheerpX – x86 Node.js/python3/Ruby REPL in browser via WebAssembly JIT
It feels a bit off-topic, but I could not resist giving a shout-out to Pyodide [0] which brings CPython and SciPy stack to WASM world. It works reasonably fast once the runtime is cached in your browser, and then takes roughly 3-5 seconds to initialize a complete Python environment in the browser (at least this is what it takes on my antique Macbook).

CheerpX is more advanced in a way that you can run arbitrary binaries. I’m interested to learn more about the performance tradeoffs and compare benchmarks. Out of curiosity, what’s your take on libraries that require compilation step, e.g. Pandas/NumPy?

What I particularly like about WASM is you don’t need to install anything on your machine. It’s as simple as clicking a link, and you have a secure environment that works right out of the box.

On a more personal note, I was excited about Pyodide, and about a month ago I began developing a visual notebook. Its initial purpose was to create a Python playground, which can render ad-hoc visualizations into a browser to share them with my friends. Zero setup, just type some Python code in the browser and instantly see results, render charts, etc. [1]

Overall, I love the momentum that erases the setup step for traditional tools, ultimately bringing joy to programming. I believe it would be a great way to introduce programming concepts in an educational setting.

[0] https://github.com/iodide-project/pyodide/

[1] http://diggyhq.com/

oneearedrabbit··on Show HN: Diggy – a reactive Python notebook in the browser
While this page is not buried deep in the archive, I’d like to take the opportunity to say thanks for everyone who’s taken the time to share your feedback. Thank you for those who tried the application so far, it’s rough around the edges, but I find this inspiring! Happy to chat over if you find it’s useful & interested.
oneearedrabbit··on Show HN: Diggy – a reactive Python notebook in the browser
Hi HN, over the last couple of weeks I created a reactive Python notebook that you can run in your browser without relying on the server-side code, everything is a static file.

I wanted to build an experimentation platform that you can bring everywhere the web goes, i.e. a URL that you can share with anyone to start playing with a Python environment. It doesn’t matter whether it’s loaded on desktop or mobile.

My story, simply put, is frustration with Jupyter notebooks. I wanted something much easier to work with, i.e. load a small dataset, run a function and visualize results. An environment where I can manipulate code & data and immediately see feedback.

I was motivated to create an environment that:

* runs a reactive Python, cells are not executed top-to-bottom, but topologically; therefore there’s no hidden state, i.e. whenever you change a variable, all cells that depend on that variable will be automatically recalculated

* runs entirely in the browser: a) there’s zero provisioning & setup b) rich visualization libraries

* stores notebooks as plaintext files, as little metadata as possible, I do want my research to be versioned in the most native format

* empowers the experiments and exploration

* ultimately, has a (subjectively) friendly UI

It’s an early alpha version, but I am happy to answer any questions. Thank you!

oneearedrabbit··on A spellchecker used to be a major feat of software engineering (2008)
I suppose, it is worth giving a shout-out to a recent Hunspell port to Python by Zverok: https://github.com/zverok/spylls, this description from Github sums it up nicely:

> Hunspell is a long-living, complicated, almost undocumented piece of software, and it was our feeling that the significant part of human knowledge is somehow "locked" in a form of a large C++ project. That's how Spylls was born: as an attempt to "unlock" it, via well-structured and well-documented implementation in a high-level language.

It's incredible how much work has been done (along with documenting algorithms!) in this one-man project.

oneearedrabbit··on Gimp is 25 years old today
Please take this as an opportunity to say Thank you and support the team behind GIMP. No donation is too small: https://www.gimp.org/donating/

Congratulation to your 25th anniversary!

oneearedrabbit··on Real-Life Angel Investing Returns 2012–2016
Correction: an individual income - 200k/yr as of Oct-15, 2020 [1]

> Any natural person who had an individual income in excess of $200,000 in each of the two most recent years or joint income with that person's spouse in excess of $300,000 in each of those years and has a reasonable expectation of reaching the same income level in the current year

[1] https://www.ecfr.gov/cgi-bin/retrieveECFR?gp=&SID=8edfd12967...

oneearedrabbit··on Ask HN: What did you make during lockdown?
I built an indoor hydroponic system from Ikea leftovers that I kept in my storage for a long time. Algot containers and Trofast shelving units is a relatively cheap option. Some of the parts I 3D-printed, and I’m pretty happy with the final result — https://www.instagram.com/p/B_qbDyjjkeH/.

Today is officially harvest time: https://www.instagram.com/p/CBtMfWKDEoy/. This is my second attempt on building a layered hydroponic. I built an Arduino-based system to automate most of the routine tasks. The only thing I need to take care of is to make sure that there’s enough water/nutrient in the lower tank once a month.

oneearedrabbit··on Ask HN: Alternatives to S3 Buckets?
Yes, DigitalOcean offers S3-compatible storage: https://www.digitalocean.com/products/spaces/. However, they use a different pricing model than Amazon S3: they charge $5/month for 250GiB (additional storage is $0.02/GiB) + outbound data transfer for the first 1024GiB is free, then $0.01/GiB.
oneearedrabbit··on Ask YC: We applied to S2020 and nobody looked at our videos?
This may be relevant: "Don’t mark it as private or disallow embedding on YouTube, or we won’t be able to see it. Please note that because of how our system is built, YouTube’s view count will not increase even though we do watch your video." [1]

[1] https://www.ycombinator.com/video/

oneearedrabbit··on I am building a DB based on JSON OT for collaborative apps
I'm pretty sure you heard about ShareDB [1]; I wonder, if you're implementing your own solution because there are some limitations in ShareDB.

- [1] https://github.com/share/sharedb

← PreviousPage 2 of 3Next →