HNHacker News
TopNewBestAskShowJobs

zerojames

3,625 karma · joined January 5, 2022

jamesg.blog.
submissionscomments
zerojames··on Show HN: I'm 17 and wrote a guide on how to build your own programming language
Congratulations on launching the project!

Making a programming language is a great way to better understand computation and start to explore different means of expressing concepts in code beyond those available in existing languages.

Programming languages are a difficult concept to get one's head around. Having one that implements a lexer, parser, and execution engine -- and is packaged as a resource for others to use -- is an impressive technical feat.

Writing a guide so others can learn is doubly impressive.

Asking a question like "How exactly do programming languages work behind the scenes?" is a great quality to have in your creative pursuits. Not to mention that such questions are the basis of HN: journeys that satisfy our creative curiosities.

Keep making cool things!

---

One piece of feedback: I find the size of the code instruction boxes on the page a bit small. There are no visual indicators that I need to scroll down to see all of the code. I would love for the boxes to be taller so I can read the code and retain all the context without scrolling.

---

Another idea: You may enjoy writing a post about what you learned making the language. What did you find more difficult than you thought? What challenges did you run into? How did you solve them? Why did you choose the syntax you used?

I love reading about the how behind cool projects :D

zerojames··on Elicit – AI Research Assistant
I have run a few queries on Elicit to understand the product a bit more. I asked about media bias detection and used the topic analysis feature. A minute or so later, I had a list of concepts with citations and links to papers I can look at further. This feels like an _amazing_ tool to do literature overviews and to dive into new academic domains with which one is not familiar.
zerojames··on PaliGemma: Open-Source Multimodal Model by Google
(I work at Roboflow)

We're actively working on this!

Our ML team has noted that the segmentation masks in particular from PaLiGemma are a bit tedious and unintuitive to decode. We should be pushing out (more!) open source software that uses this model in the coming days.

Look forward to an easy way to fine-tune PaLiGemma and broader support for its task types in `inference`, the package used in the blog post.

zerojames··on Evaluating Eye Tracking Systems for Computer Input (2012)
The data on comfort using eye tracking is fascinating (4.5 Results and Discussion):

  Participants complained that staring at so many targets made their eyes dry and uncomfortable. Eye fatigue scored lowest among all the questions. Participants gave eye tracking a modest favorable response overall of 4.5, just slightly higher than the mid-point.
zerojames··on Ask HN: How do you sift through new research?
Summaries are less interesting than my getting the information in the first place. My general hierarchy for sifting is:

Title -> Abstract -> skim directly to the section(s) that are most interesting or answer a question I have.

For most papers, I can gauge interest based on the title. But there are so many!

I have a secondary problem of being able to find research on a topic: quantitative linguistics. Arxiv has a category on Computation and Linguistics, but it is mostly LLMs.

zerojames··on Show HN: Train Station Pianos
I will make that substitution, thank you!

Someone told me about that organ. I had just added it to my backlog. I have never played a real organ. I wonder how Taylor Swift's music would sound on an organ...

zerojames··on Understanding and managing the impact of machine learning models on the web
Reference, for context: https://c2pa.org/

And: the BBC just started using C2PA across some content. The BBC's R&D team talking about it: https://www.bbc.co.uk/rd/blog/2024-03-c2pa-verification-news...

zerojames··on Ask HN: Who is hiring? (April 2024)
Roboflow | ML Engineers / ML Lead / Field Engineers | Full-time (Remote, SF, NYC) | https://roboflow.com/careers?ref=whoishiring0424

Roboflow is the fastest way to use computer vision in production. We help developers give their software the sense of sight. Our end-to-end platform[1] provides tooling for image collection, annotation, dataset exploration and curation, training, and deployment.

Over 250k engineers (including engineers from 2/3 Fortune 100 companies) build with Roboflow. We now host the largest collection of open source computer vision datasets and pre-trained models[2]. We are pushing forward the CV ecosystem with open source projects like Autodistill[3] and Supervision[4]. And we've built one of the most comprehensive resources for software engineers to learn to use computer vision with our popular blog[5] and YouTube channel[6].

We have several openings available but are primarily looking for strong technical generalists who want to help us democratize computer vision and like to wear many hats and have an outsized impact. Our engineering culture is built on a foundation of autonomy & we don't consider an engineer fully ramped until they can "choose their own loss function". At Roboflow, engineers aren't just responsible for building things but also for helping us figure out what we should build next. We're builders & problem solvers; not just coders. (For this reason we also especially love hiring past and future founders.)

We're currently hiring full-stack engineers for our ML and web platform teams, a web developer to bridge our product and marketing teams, several technical roles on the sales & field engineering teams, and our first applied machine learning researcher to help push forward the state of the art in computer vision.

[1]: https://roboflow.com/?ref=whoishiring0424

[2]: https://roboflow.com/universe?ref=whoishiring0424

[3]: https://github.com/autodistill/autodistill

[4]: https://github.com/roboflow/supervision

[5]: https://blog.roboflow.com/?ref=whoishiring0424

[6]: https://www.youtube.com/@Roboflow

zerojames··on The Next Big Step in Mojo Open Source
Is there a packaging ecosystem, or does PyPi interoperate? I would love to start writing some Mojo code, but a key thing I'd love to do is make web requests. Any direction you have would be sincerely appreciated!
zerojames··on (How to Write a (Lisp) Interpreter (In Python)) (2010)
This is fun!
zerojames··on Piano on Paper
This is a delightful project. Congratulations on shipping it! I would be curious to see ways to do this where the piece of paper had lines so you could visually see on the paper which key was which.

Doing this would be tricky, though. On first thought, an object detection model that detects each key from a perspective, then saves the coordinates, may work. Then you would calculate the Intersection over Union between the finger annd each region. This may only work with a top-down perspective, which might be less practical in real-world use.

In any case, I always miss my keyboard when I am traveling. A project like this feels a lot more practical than the “portable” travel keyboards.

zerojames··on Ask HN: Who is hiring? (March 2024)
Roboflow | Open Source Software Engineer / ML Lead / ML Engineer | Full-time (Remote, SF, NYC) | https://roboflow.com/careers?ref=whoishiring0324 Roboflow is the fastest way to use computer vision in production. We help developers give their software the sense of sight. Our end-to-end platform[1] provides tooling for image collection, annotation, dataset exploration and curation, training, and deployment.

Over 250k engineers (including engineers from 2/3 Fortune 100 companies) build with Roboflow. We now host the largest collection of open source computer vision datasets and pre-trained models[2]. We are pushing forward the CV ecosystem with open source projects like Autodistill[3] and Supervision[4]. And we've built one of the most comprehensive resources for software engineers to learn to use computer vision with our popular blog[5] and YouTube channel[6].

We have several openings available but are primarily looking for strong technical generalists who want to help us democratize computer vision and like to wear many hats and have an outsized impact. Our engineering culture is built on a foundation of autonomy & we don't consider an engineer fully ramped until they can "choose their own loss function". At Roboflow, engineers aren't just responsible for building things but also for helping us figure out what we should build next. We're builders & problem solvers; not just coders. (For this reason we also especially love hiring past and future founders.)

We're currently hiring full-stack engineers for our ML and web platform teams, a web developer to bridge our product and marketing teams, several technical roles on the sales & field engineering teams, and our first applied machine learning researcher to help push forward the state of the art in computer vision.

[1]: https://roboflow.com/?ref=whoishiring0324

[2]: https://roboflow.com/universe?ref=whoishiring0324

[3]: https://github.com/autodistill/autodistill

[4]: https://github.com/roboflow/supervision

[5]: https://blog.roboflow.com/?ref=whoishiring0324

[6]: https://www.youtube.com/@Roboflow

zerojames··on Show HN: Predictive text using only 13kb of JavaScript. no LLM
Another day, another story on HN that will have me down a rabbit hole (yesterday's was a three-hour tangent into ternary bit compression after the Microsoft paper) :D

Your project is delightful -- thank you for sharing. I have explored this realm a bit before [0] [1], but in Python. The tool I made was for personal use, but streaming every keystroke through a network connection added a lot of unnecessary latency.

I used word surprisals (entropy) to calculate the most likely candidates, and gave a boost to words from my own writing (thus, the predictive engine was "fine-tuned" on my writing). The result is a dictionary of words with their probabilities of use. This can be applied to bigrams, too. Your project has me thinking: how could that be pruned, massively, to create the smallest possible structure. Your engine feels like the answer.

My use case is technical writing: you know what you want to say, including long words you have to repeat over again, but you want a quicker way of typing.

[0]: https://jamesg.blog/2023/12/15/auto-write/

[1]: https://github.com/capjamesg/autowrite

zerojames··on Serving my blog posts as Linux manual pages
This is now in progress.

https://github.com/capjamesg/jamesg.blog.deb has all you need to build a man-page-only deb file using:

git clone https://github.com/capjamesg/jamesg.blog.deb cd jamesg.blog.deb dpkg-deb --build --root-owner-group jamesg.blog sudo dpkg -i jamesg.blog.deb

You should see:

... Processing triggers for man-db (2.9.1-1) ...

Which indicates the man page for `man jamesg.blog` is available. There is just a placeholder in there for now. I will perhaps finish this tomorrow!

NB: This may become a blog post soon :D

zerojames··on Serving my blog posts as Linux manual pages
See https://news.ycombinator.com/item?id=39552852 for more discussion.
zerojames··on Serving my blog posts as Linux manual pages
Good suggestion!

Context: All man pages are generated on the fly on GitHub Pages. My site generates ~2500 pages, for which 826 are eligible for a man page. I didn't want to introduce another parser since I just got my site build times down :D

I can counter increased build times with caching, but it gets a bit icky since some blog pages are evergreen (i.e. my blogroll). [insert cache invalidation complaint here] But there's certainly a way!

zerojames··on Serving my blog posts as Linux manual pages
Unfortunately, that command doesn't work on macOS (`/usr/bin/man: illegal option -- l`). I tried to get a one-liner with piping working on my Mac but I always ran into errors. The -l flag doesn't exist in the macOS man implementation (I consulted the man page; meta!).
zerojames··on Serving my blog posts as Linux manual pages
_adds to their TODO list :D_
zerojames··on Serving my blog posts as Linux manual pages
I appreciate you sharing this! I wasn't aware of the exact ontology of how roff vs. man relate, and I went through several iterations of this post trying to get this right. There being other tools -- groff, nroff, etc. -- added to my confusion. A blog post unto itself is "here is what roff/man page/nroff/other variants are, here's how to use them." I would have appreciated a succinct description; I'm sure others would, too.

As for markdown to roff, I thought about it as a v2. As I started to think about implementing a parser, someone shared https://github.com/sunaku/md2man with me, which appears to solve the problem.

I'd need to figure out how to integrate this into my (Python) site that is built on GitHub Pages; a bit of tinkering would be required :D

zerojames··on Show HN: I made Wordulo, a simple word game
This is an excellent game! Thank you for making it!

I'm not sure if this is intentional but the game I played only let me type words that started with one of two letters.

zerojames··on Readability.js
I have used and love readability.js. I used it in an application that lets you run various NLP analyses over a web page (surprisals, reading time, word counts, etc.). For that, I needed only the main page content. readability.js retrieves main page content well, consistently.

The Alan Turing Institute maintains a Python wrapper around readability.js, too: https://github.com/alan-turing-institute/ReadabiliPy.

zerojames··on Show HN: Collaborate on your YC Application with CRDT-powered forms
This is incredible! Nice work!
zerojames··on Making my bookshelves clickable
You may like "Writing documentation for your house", written by hsiao.dev, and its corresponding HN thread: https://news.ycombinator.com/item?id=38444577.
zerojames··on Making my bookshelves clickable
Post author here. I like this idea. I plan to explore it and make a more generic solution. I'd love to have a point-and-click interface for annotating scenes.

For example, I'd like to be able to click on pieces of coffee equipment in a photo of my coffee setup so I can add sticky note annotations when you hover over each item.

For the bookshelves idea specifically, I would love to have a correction system in place. The problem isn't so much SAM as it is Grounding DINO, the model I'm using for object identification. I then pass each identified region to SAM and map the segmentation mask to the box.

Grounding DINO detects a lot of book spines, but often misses 1-2. I am planning to try out YOLO-World (https://github.com/AILab-CVC/YOLO-World), which, in my limited testing, performs better for this task.

zerojames··on Show HN: Improve cognitive focus in 1 minute
This reminds me of the old Headspace meditation app circle that was used to help steady breathing before beginning a session. I like it!
zerojames··on Ask HN: Who is hiring? (February 2024)
Roboflow | Open Source Software Engineer, Web Designer / Developer, and more. | Full-time (Remote, SF, NYC) | https://roboflow.com/careers?ref=whoishiring0224

Roboflow is the fastest way to use computer vision in production. We help developers give their software the sense of sight. Our end-to-end platform[1] provides tooling for image collection, annotation, dataset exploration and curation, training, and deployment.

Over 250k engineers (including engineers from 2/3 Fortune 100 companies) build with Roboflow. We now host the largest collection of open source computer vision datasets and pre-trained models[2]. We are pushing forward the CV ecosystem with open source projects like Autodistill[3] and Supervision[4]. And we've built one of the most comprehensive resources for software engineers to learn to use computer vision with our popular blog[5] and YouTube channel[6].

We have several openings available but are primarily looking for strong technical generalists who want to help us democratize computer vision and like to wear many hats and have an outsized impact. Our engineering culture is built on a foundation of autonomy & we don't consider an engineer fully ramped until they can "choose their own loss function". At Roboflow, engineers aren't just responsible for building things but also for helping us figure out what we should build next. We're builders & problem solvers; not just coders. (For this reason we also especially love hiring past and future founders.)

We're currently hiring full-stack engineers for our ML and web platform teams, a web developer to bridge our product and marketing teams, several technical roles on the sales & field engineering teams, and our first applied machine learning researcher to help push forward the state of the art in computer vision.

[1]: https://roboflow.com/?ref=whoishiring0224

[2]: https://roboflow.com/universe?ref=whoishiring0224

[3]: https://github.com/autodistill/autodistill

[4]: https://github.com/roboflow/supervision

[5]: https://blog.roboflow.com/?ref=whoishiring0224

[6]: https://www.youtube.com/@Roboflow

zerojames··on Ask HN: Any good Silicon Valley Photo coffee table books?
I love this! Amazing work!
zerojames··on Compressing Text into Images
This post was a delight to read!

> That's down to 55KB! About 40% of the size of the original file. It is slightly smaller than ZIP, and about 9 bytes larger than Brotli compression.

Did you try compressing your image file with Brotli, too? I wonder the extent to which this would have an impact. I would expect a small impact, but I'm still intrigued.

zerojames··on Just because you can doesn't mean you should: the <meter> element
I have used <meter> in the past for polls, too (see https://jamesg.blog/poll/).

<meter> is nice when you want to illustrate the extent of a scale, but in many scenarios one should _also_ show the exact value represented, numerically (i.e. my poll shows both the <meter>, more for illustration, and the number of votes).

zerojames··on Show HN: Building a 'liturgical lightbulb', bringing the Calendar to life
This is delightful!
← PreviousPage 2 of 7Next →