HN user

davidkellis

1,564 karma

GitHub: http://github.com/davidkellis

Blog: http://conquerthelawn.com

Email: david@conquerthelawn.com

[ my public key: https://keybase.io/davidkellis; my proof: https://keybase.io/davidkellis/sigs/AKzpifIiRgWa97aNiKrbrC3neurZKW15R583o5vwxKI ]

Posts89
Comments101
View on HN
technoyoda.github.io 4mo ago

Agents are not thinking, they are searching

davidkellis
3pts0
news.ycombinator.com 2y ago

Ask HN: What software license is most appropriate to build a business on?

davidkellis
1pts1
nguvu.org 4y ago

pfSense Baseline Buide with VPN, Guest, and VLAN support

davidkellis
2pts0
www.jamesmichaelhickey.com 5y ago

DDD Aggregates: Consistency Boundary

davidkellis
3pts0
mlbook.explained.ai 6y ago

The Mechanics of Machine Learning (by Terence Parr)

davidkellis
2pts0
explained.ai 6y ago

Deep explanations of machine learning (by Terence Parr)

davidkellis
1pts0
stripe.com 8y ago

LLCs vs. C Corps

davidkellis
4pts0
codeengineered.com 8y ago

Go: From Godep to Vgo, a Commentated History

davidkellis
2pts0
jmarcher.io 8y ago

Why does Euler 10 take forever?

davidkellis
1pts0
jmarcher.io 8y ago

Internal vs. external iteration

davidkellis
1pts0
jmarcher.io 8y ago

Internal vs. external iteration

davidkellis
1pts0
www.quandl.com 10y ago

A Quant’s Approach to Building Trading Strategies: Part Three

davidkellis
5pts0
www.quandl.com 10y ago

A Quant’s Approach to Building Trading Strategies: Part Two

davidkellis
7pts0
www.quandl.com 10y ago

A Quant’s Approach to Building Trading Strategies: Part One

davidkellis
4pts0
blog.durandal.io 10y ago

Aurelia Mid-October 2015 Releases

davidkellis
1pts0
swagger.io 11y ago

Swagger – A RESTful IDL with client/server codegen and documentation generation

davidkellis
3pts0
getgb.io 11y ago

gb

davidkellis
2pts0
plus.google.com 11y ago

Why I Don't Like the C# Language

davidkellis
3pts0
codewords.recurse.com 11y ago

An introduction to functional programming

davidkellis
23pts3
www.helpscout.net 11y ago

Features Tell, but Benefits Sell

davidkellis
1pts0
blog.acolyer.org 11y ago

A Commentary on Out of the Tar Pit

davidkellis
2pts0
medium.com 11y ago

A false choice: Microservices or monoliths

davidkellis
3pts0
blog.acolyer.org 11y ago

Out of the Tar Pit

davidkellis
8pts0
nginx.com 11y ago

How to Adopt Microservices (free O’Reilly Ebook)

davidkellis
3pts0
nginx.com 11y ago

Adopting Microservices at Netflix: Lessons for Architectural Design

davidkellis
207pts74
nginx.com 11y ago

Adopting Microservices at Netflix: Lessons for Architectural Design

davidkellis
4pts1
spin.atomicobject.com 11y ago

Software Architect – A Role, Not a Job

davidkellis
141pts82
svds.com 11y ago

Avoiding a Common Mistake with Time Series

davidkellis
161pts41
www.slideshare.net 11y ago

Functional Programming Patterns (BuildStuff '14)

davidkellis
2pts0
javascript.tutorialhorizon.com 11y ago

A Visual Explanation of the Enter, Update and Exit Selections in D3js

davidkellis
1pts0

I'm self hosting Ghost for blogging, Home Assistant for smart home controller, and in the middle of setting up Vaultwarden for passwords. I also run a lot of stuff off my Synology - Synology Drive instead of Dropbox or Google Drive, Synology Photos instead of Google Photos. I don't have a great solution for email or phone - emails is paid hosting through Zoho and use Android for phone. I'd like to get off those. It's all a long drawn out process.

Parsing Algorithms 6 years ago

I'd like to see something like this for practitioners. I kind of have a feel for what's out there, but I don't know of anything that is: 1. pleasant to use 2. simple 3. scannerless 4. supports left recursion that produces a left-associative parse

My wife and I homeschool our children. We are part of a local homeschool co-op, and the kids love it.

I've been working fully remote for a year and a half, and homeschooling doesn't hinder my remote work in any way. I periodically have a "break-in", where one of the kids barges into the office during a meeting, but it's no more interruption than any other common interruption (e.g. someone comes in late, someone pardons themself to the restroom, etc.).

I saw vlang.io a few months ago. Every time I come back to the site, my jaw hits the ground again. I am utterly impressed by Alexander's productivity - it blows me away every time I consider it.

I think V is an impressive language, but it isn't quite geared toward my vision of what a language ought to be.

I am more a Rubyist than a C, Rust, or Go developer, and so my preference is for a higher level language that's a little more pleasant to use and doesn't make me think about some details that I consider "irrelevant". I'm firmly in the "sufficiently smart compiler" camp, and think that I shouldn't have to think about those low level details that only matter for the sake of performance - the compiler ought to handle that for me.

No. I was pretty naive in my initial attempts. I tried for many months to make Laurence Tratt's Algorithm 2 (see https://tratt.net/laurie/research/pubs/html/tratt__direct_le... ) work, but ultimately I failed. I recall running into some problem with my implementation of Tratt's idea that led me to conclude that his Algorithm 2 doesn't work as stated. My reasoning is buried in a git commit message from many months ago - I'd have to go look it up.

My takeaway from Tratt's explanation was that the general technique of growing the seed bottom-up style when in left-recursion - I think I've also seen that idea termed "recursive ascent" somewhere else but I can't place it offhand - seemed reasonable, so that's what I kept working on until I figured out something that seemed to work.

Later on, I ran across https://github.com/PhilippeSigaud/Pegged/wiki/Left-Recursion, which describes Sergio Medeiros' technique at a high level. One of the nice things I used from the Pegged project was the unit test suite. I re-implemented some of the unit tests from Pegged in my own PEG implementation and discovered that it failed at those unit tests.

It took me another number of months to figure out why my implementation failed the unit tests. I re-jiggered my implementation to make it handle the scenarios captured by those unit tests, and then naively thought "hey, it works!"...

All was well until I ran across another set of unit tests in the Autumn PEG parser (see https://github.com/norswap/autumn). My implementation failed some of those as well. After another number of months, I had a fix for those too.

Long long long story short, this process continued until I couldn't find any more unit tests that my implementation would fail, so once again I'm at the point where I think "well, I think it works".

There have been a number of occasions where I've thought "if this doesn't work, I'm just going to re-implement Pegged in Crystal!". Perhaps that's what I should've done. Ha ha! In a few months, when I find another test case that breaks my implementation, I may just do that. We'll see. I hope it doesn't come to that. Fingers crossed. :-)

I'm trying to build a programming language that might best be characterized as rust - ownership + GC + goroutines (coroutines with an automatic yield semantic).

My rationale for starting this project was that I like specific features or facilities of many individual languages, but I dislike those languages for a host of other reasons. Furthermore, I dislike those languages enough that I don't want to use them to build the projects I want to build.

I'm still at a relatively early point in the project, but it has been challenging so far. I'm implementing the compiler in Crystal, and I needed a PEG parser combinator library or a parser generator that targeted Crystal, but there wasn't a PEG parser in Crystal that supported left recursive grammar rules in a satisfactory way, so that was sub-project number 1. It took two years, I'm ashamed to say, but now I have a functioning PEG parser (with seemingly good support for left recursive grammar rules) in Crystal that I can use to implement the grammar for my language.

There is still a ton more to be done - see http://www.semanticdesigns.com/Products/DMS/LifeAfterParsing... for a list of remaining ToDos - but I'm optimistic I can make it work.

I agree with the sentiment, but I noticed recently that TaxJar (I considered applying there at one point) mandates a trial period along these lines. From https://life.taxjar.com/distributed-team-hiring-process/, "... We hope a candidate is able to spend somewhere between 80 and 160 hours working with TaxJar during their trial. ..."

Presumably there are some people who are willing to do a trial, either concurrent with their existing employment, or on the chance that they will be hired after the trial.