HNHacker News
TopNewBestAskShowJobs

basil

3,299 karma · joined October 23, 2008

Programmer.
submissionscomments
basil··on Start Doing Graph Theory
I’ve been using graph theory for years professionally. A good example of practical uses of graph theory is any routing software. It is basically graphs all the way down.

For starters the whole street network is represented as a directed graph. The most widely used algorithm is the venerable A* to find paths through the vertices of the graph, not necessarily the shortest distance but the most optimal distance given all the trade-offs you wish based on the heuristics you define. There are lots of variations of A* and today most implementations would use its faster cousin: bidirectional A* which attacks the point-to-point calculation from both ends at the same time.

Then you have Dijkstra which is used for flood searches to e.g. give the best cost back home from every vertex so you know when to turn back the search if you have a search budget.

Menger’s theorem I’ve used in order to determine whether we can create a loop back. Basically search outwards, then search back without visiting those same edges.

Tarjan to ensure we identify all subnetworks so we don’t get stuck in a disconnected island of vertices with no way out to join the wider network.

A lot of these algorithms were conceived decades ago and are still the backbone of modern routing software.

One thing that’s constantly been in the back of my mind is, since routing is a highly deterministic problem space, it doesn't seem plausible that LLMs can take this over. It seems to me that it's a good example of a tool that LLMs would call out to rather than implement themselves.

In fact, see this convo I had with @simonw wherein he had Astra generate a jogging route. It setup a whole GIS stack and took about half an hour. That seems like a boil the ocean kind of approach and I’m not sure if that’s ever going to be optimal. https://x.com/baz_shkara/status/2099118620647305630

basil··on State of the Map 2026
Gamifying the map definitely helps to pull in contributors. StreetComplete got me editing more than anything else. I went a bit sideways with it: I used OSM data to build a territory game for cyclists, where you claim roads by riding them. It's heavily processed OSM data with PostGIS. The fun part was figuring out how to decide what counts as a claimable road in the first place.

https://remap.earth

basil··on Show HN: Remap – bike routing that builds loops from the best roads, on-device
Hey HN, excited to show you something I've been working on for a couple of years. I'm a passionate road cyclist and a former fruit company engineer. Today, there are two primary ways of knowing where to ride your bike: user-uploaded GPX files and generating routes via heatmap data. Both seemed inadequate to me after I was burnt countless times by being sent down high-speed roads or farm tracks.

When I want to go for a ride I have a specific time window in mind, and my goal is to get out and see nature and experience that unique feeling of freedom and joy that comes from riding a bike. So I built the tool of my dreams.

Remap reads the traffic levels, max speeds and road surface quality around you, then calibrates what road comfort means for your area. This leads to users getting comfortable routes out of the box automatically. Plenty of options are also available since cycling is a very opinionated sport.

The other important aspect of Remap is that it identifies what I've been calling 'lines' - sections of road that are excellent for cycling. Broadly speaking they need to be long, surrounded by nature and be away from traffic.

A great ride is full of lines, no ride is perfect end to end, but the more lines a ride has the better it feels. The other part of a great ride is that it should let you explore as wide as possible around where you start from, hit nature as much as possible, give you a climb here and there if you want, and not repeat any roads coming back - so it should ideally be a broad loop. Trying to fit all of this into an unpredictable road network with road rules and a set target distance alongside a large list of user-customisable routing preferences is a tall order, but I've succeeded in building something I'm immensely happy with, and I've been riding all summer with routes generated by Remap. It's been banger after banger ride.

Under the hood, it's a shared Rust core between web and iOS. Probably the most interesting part is route generation occurs locally on-device. I made this decision early on since I knew that this would be very expensive in terms of compute. The routing graph is a highly compressed columnar db that is able to be streamed directly to devices or browsers and be stitched across boundaries to provide a complete road graph. Routing tiles are fetched in Hilbert order so that multiple tiles in the same vicinity can be coalesced together. The architecture was inspired by Brandon Liu's pmtiles project which I'm a big fan of.

After the client has assembled its slice of the graph, it then explores it extensively. Much more deeply than traditional server-based routing software allows, since we have much more compute available we can examine all the side streets and roads that are relevant for delivering optimal bike routes. Using contraction hierarchies or some other optimisation designed for car navigation would defeat the purpose as bikes don't drop into arterials and then back out again like cars do.

The final point of Remap is that it makes solo riding social. You can't always schedule a group ride easily and whilst it's nice to ride solo, I often miss that social element. Since every ride built strings together lines, those lines are valuable and can be owned and claimed by players. The more you ride, the more 'watts' you earn to defend your lines.

I've got a full-time fuzzer going which hits up different cities and generates routes trying to catch out dive-bombs (unnecessary short detours), spurs (pointless out and back sections), various other anomolies. It's been running for a few weeks and caught some good bugs, but I'm really looking for real-world use right now. It's free to use, has a desktop and mobile site, as well as native iOS app. The native iOS app is fastest at route generation but the WASM isn't that far behind. Give it a go and let me know how you fare. Thanks HN!

basil··on Vimflowy
Some of the most complete Vim keybindings I've experienced in something that isn't Vim.

I love that visual character/line/block selection works. It's the first thing I test in any kind of Vim emulation.

basil··on Vial-Http – Simple HTTP REST Tool for Vim
I normally use VRC (Vim REST Client) for testing and debugging APIs from within Vim. https://github.com/diepm/vim-rest-console

Pretty sure VRC uses curl under the hood to perform all requests. It’s great being able to use plain text within Vim to formulate and reuse API calls right next to your code.

basil··on JavaScript as an alternative to AppleScript on OS X Yosemite
306 - JavaScript for Automation
basil··on anam.io: Free unlimited GitHub backup
GitHub isn't a 'single point of failure' due to the distributed nature of Git. I.e. it's pretty easy to push your codebase to another server anytime you want.

If this service backs up submodules for 3rd party dependancies this might be useful but as it stands the landing page doesn't give any further information. I don't feel incentivised to login with GitHub OAuth.

basil··on Marketing beats quality
Sorry to hear about this, but don't let it dishearten you from making games and open sourcing them.

Someone stealing your code doesn't take away from the fact that you accomplished your goal of making a complete game. And from what you just wrote - that was your intention.

Regarding your blog title, I'd add 'timing' as well as 'marketing'. Titles of both submissions were remarkably similar ("Flappy Bird in HTML5" vs "Flappy Birdy html5 clone created using the Phaser framework"). Maybe the timing of your submission was off.

Also you can now state that you're the original creator of all the HTML5 Flappy Bird clones that have been popping up recently.

basil··on Scaling Asana.com
Well you'd be surprised. I've also tried to solve this problem.

You can create your own lists inside of Bee which filter issues based on your own rules (http://neat.io/bee/docs/smart-lists.html). It's helpful because you just define the rules one-time and then flick to it whenever you need to.

Bee also has a menubar helper which tracks your short-term tasks and queues up your next issue so you always know what you're working on (http://neat.io/bee/docs/the-short-list.html).

Also you can add your own Notes list which is just a series of text files (easily synced via Dropbox) if you want to track your own local tasks.

I'm constantly iterating based on user feedback so if you have time, please let me know how it works out for you :)

basil··on Scaling Asana.com
I used to be in that situation which is why I wrote Bee (http://neat.io/bee/). Its a Mac client for JIRA (amongst other services) and makes JIRA much more pleasant to use.

JIRA's UI tends to be geared towards project management types. I wanted to bring the focus back onto the engineer.

basil··on Stay on top of Github pull requests with Trailer.app
This is awesome, well done!

I just wanted to chime in and say I like your approach of just focusing on pull requests. There's another app I know of that just focuses on creating issues (http://issuepostapp.com).

I happen to be the author of another GitHub Issues client (http://neat.io/bee/github-issues-client.html) which is aimed at the other end of the spectrum: to be full-featured.

Great to see all these different approaches for different workflows.

basil··on Ask HN: How did you launch your product?
I initially launched the site promoting my app as just 1 page. In hindsight knowing what I know now that was ludicrous. (You need more pages, more content and more targeted content.) I went into it here: http://neat.io/blog/the-bee-website-redesign.html

I still don't really understand SEO and my site is still not ranking for the keywords I want but I'm trying to learn.

I did get one-off semi-professional help from experts that emailed me as a result of my blog post blowing up on HN but end of the day, you're going to have to dig deep and learn about it yourself. This is frustrating because looking for quality content about SEO is ridiculous. Everything out there is so dubious and I don't know what is credible and what isn't.

Today for instance I just got a tip about content placement and how it can be effective for SEO. I Googled around and found this list: http://www.mywebschool.com/blog/seo/seo-tips-for-keyword-pla... so I'm going to try and apply it later tonight. No idea if it will work or if its a waste of time or if the tips in there are good...

--

Oh and another thing I forgot to mention is that a lot of people asked me to make a video showcasing the app because they wanted to watch something rather than scroll through a list of features. This was a good idea, no idea if its helped with people downloading the trial but I get good feedback on the video and at least it educates people about what my app does. Video blog post here: http://neat.io/blog/creating-the-bee-video.html

basil··on Ask HN: How did you launch your product?
I'm in the situation you describe right now. I blogged about it a couple months ago: http://neat.io/blog/diary-of-a-programmer-with-no-clue-about.... The resulting HN discussion has a lot of good tips: https://news.ycombinator.com/item?id=6686290

My launch didn't go 'well' to the standards that I constantly see on HN. I got < 10 users and a lot of those were existing beta testers.

Now I'm 2 months in and I have been getting a fairly consistent number of new users each day, however its dropped in the past couple of weeks (I'm blaming the holiday season).

Here's what I've learnt so far:

- SEO is very important for discovery

- Keep your product evolving to fit the needs of your current users

- Keep current users happy

- Be ultra responsive to support enquiries - this is key to keeping happy users

- Adjust your pricing model based on feedback

- Get your site linked to on other sites even if seemingly unrelated - I get a bit of traffic from a design site that has my site in a list of 'beautiful, flat landing pages'

It would have been nice to get a whole slew of users on day 1 but realistically this doesn't happen unless you have an existing captive audience. It does dampen the expected meritocracy that comes with developing your own product.

basil··on Diary of a programmer with no clue about marketing
Yes.

I work on contract iOS jobs and I need to track my time to invoice my clients. It sucks using my web browser to start and stop the timer. I also wanted quick access to all my tasks, past and present without going through a slower web UI.

Also the app comes in handy when I need to jot down a quick note or remember something.

Maybe I should incorporate some of that ^ on the site.

basil··on [dead]
Thanks, there shouldn't be a price difference between the FastSpring store and the MAS. The FastSpring store is for people who want to make volume purchases. Or people who want a faster update track rather than waiting for the MAS approval times.
basil··on Ask HN: What would you do to improve this landing page?
I would drop the blurred image background. It adds too much visual noise and makes it hard to scan the page to see what the app is about.

The black text is too small and not contrasty enough so I don't even feel like reading it.

The primary focus is the Facebook button but is that what you want? Don't you want people to download the app above all else? I think the primary focus be given to the App Store button which means it should be given more weight and prominence on the page.

basil··on Steam for Linux Beta is now open to the public
I've seen this quite a bit recently. It's a hack but it's a quick way to get a public-facing issue tracker out there.

Are there any better solutions for getting a tracker set up easily where non-contributors can raise bugs and discuss feature requests?

basil··on The eero programming language - a dialect of Objective-C
The examples struck me as looking a lot like Go and I found a few similarities:

- Local type inferencing (i := 100) is identical.

- No parentheses for control structures.

- Lack of semicolons.

- Ranges in array enumeration (albeit with different syntax).

basil··on VimOrganizer : An Emacs' Org-mode clone for Vim
Installation guide is here: https://github.com/hsitz/VimOrganizer/blob/master/INSTALL.tx...

It kills me that you can't use this plugin fully without Emacs:

"FINALLY, install Emacs. Not necessary for basic outlining, agenda searches, and other basic stuff, but it is necessary to do exports to html and PDF (which you will definitely want) as well as other advanced stuff."

Anyone know what this "advanced stuff" is?

basil··on Getting Real book is now free PDF
I just use a temporary mail service (e.g. http://10minutemail.com).
basil··on Vector based UI design tool that generates ObjC
Yeah and this is becoming increasingly important. image.png, image@2x, image~ipad.png, image@2x~ipad.png...
basil··on Vector based UI design tool that generates ObjC
Really cool. This reminds me of Bret Victor's talk where he stresses the importance of seeing the effect of your code immediately (http://vimeo.com/36579366).

It's not clear from the description but it would be great if it could immediately render whatever Core Graphics code I was writing, as I was writing it, much like this in-development tool (http://www.youtube.com/watch?v=JupqhcT4ONY) which popped up in my Twitter stream a couple days ago.

basil··on Show HN: Flutter - Control Spotify or iTunes Using Gestures thru Webcam
There is another, more fully-featured app called FluidTunes which I used quite a while ago. Not sure if it still works on the latest version of iTunes: http://majicjungle.com/fluidtunes.html
basil··on Gitbox 1.5: native undo for git operations
Great UI, much cleaner than GitX. However it seems to be missing my favourite feature from GitX which is the ability to stage hunks.
basil··on Advising Simperium (YC S10)
Apple needs to make MobileMe free. Then offer their Sync Services framework (which is currently only available on the Mac) to iOS developers. Hoping this comes in iOS5.
basil··on Apple's Best Kept Secret: Ad Hoc Installs for Testing Purposes
I wrote some bash scripts a couple months ago which automates this process. When Hudson is done building, it uploads the .dSYM directory, signed .ipa, HTML for instructions and legacy zip file for pre-iOS4 users. Check out http://www.oiledmachine.com/posts/2010/10/27/automated-ota-i...
basil··on Mongrel2 1.0 released.
Mongrel2 isn't written in Ruby. It's written in C: http://mongrel2.org/doc/tip/docs/manual/book.wiki#x1-110002
basil··on iBooks and private APIs
Another plausible explanation is that they can issue updates via the App Store rather than having to release an OS-level update.
basil··on Develop for Android with Scala
How is the performance compared to straight Java? I know the Clojure on Android project is at the moment, slower due to the functional nature of the language. Apparently the Dalvik garbage collector has to work overtime cleaning up because of the emphasis on creating new objects rather than mutating existing ones.
basil··on They Make Apps
Somewhat ironic that I cannot use the site in Mobile Safari.
Page 1 of 2Next →