
I Quit My Job to Live on Donations to Zig - AndyKelley
https://andrewkelley.me/post/full-time-zig.html
======
makecheck
There’s a huge positive-feedback-loop problem in technology right now that
needs to be solved to make projects viable.

Never received even one donation/rating/comment/etc.? Be prepared to wait
approximately forever.

Got a few, especially publicly-visible? Suddenly things trickle in faster.

Well-known project with 5000 stars? Here, have more stars. Here, have more
donations. Success breeds success.

Meanwhile, wasn’t it shown that crucial infrastructure like SSL had between
1-2 unknown developers? How many other projects are there? How many developers
can you _name_? How many _different_ projects have you donated to? How many
“not well known” apps have you balked at paying even $0.99 for?

It’s a problem. There needs to be better ways to vault critical “boring”
projects into the well-known category. And, there has to be a way to keep
positive feedback loops from ballooning ratings and income for projects simply
because they sorted to the top and stayed there.

~~~
dragonwriter
> There’s a huge positive-feedback-loop problem in technology right now that
> needs to be solved to make projects viable.

> Never received even one donation/rating/comment/etc.? Be prepared to wait
> approximately forever.

> Got a few, especially publicly-visible? Suddenly things trickle in faster.

That's not tech specific; there's a reason that places with tip jars preseed
them with an initial stash of visible tips, and advertising (for consumer
products, charity, and even B2B productos) features endorsers known to the
target audience. Human social behavior is strongly based in imitation.

~~~
makecheck
The tech-specific differences are things like:

\- Compared to setting up a coffee stand, it can take _years_ to build really
good technical solutions. (Longer, if you actually care and put in “invisible”
effort like making it not crash or delete data regularly.) Yet, that app can
still be lumped in with all the rest in the begging-for-scraps models of many
monetization schemes.

\- Unlike a coffee shop, where you can probably assume _some_ amount of
traffic and tips on a regular basis, software is often firmly set at ZERO. Or
negative, if you consider any other cost. There isn’t a “software
neighborhood” where people might walk by and see your project alongside only a
couple others in the area.

\- Unlike any “natural” recognition in the real world, tech projects are
recognized in entirely unnatural ways. No one may know about an app for
months; yet if/when knowledge _finally_ spreads, the message is generally LOUD
and _everywhere_. Say, being featured in the App Store: you go from “never
heard of it” to “almost everyone in the world with an iPhone who checked
top-10 lists this week”. That is far, far beyond the reach of normal ads, and
also insane: it pretty much guarantees over-rewarding and under-rewarding
developers across the board.

~~~
njarboe
Thus the crazy amount of money that is spent on advertising and its silent
twin sister, public relations. And bot nets. Don't forget the bot nets
clicking on things.

------
nickdrozd
Here's a story about Andy.

Two years ago, I was writing a modest Lisp interpreter in C. The evaluator was
more or less working, but I was totally stuck on parsing user input (in other
words, I had the E in REPL, but not the R). After spending an entire night
banging my head against the parsing logic without making any progress, I began
to despair that it would never work and I would have to throw the whole thing
in the trash.

Well, that morning I met Andy. Groggy and frustrated, I told him about my
problem. He said "Why don't you try tokenizing the input before parsing it?"
This was a revelation to me. Yes, it turns out that reading a string character
by character and trying to recursively convert it into a Lisp object all at
once isn't the best way to do it. Who knew (aside from anyone who had ever
learned anything about parsing)?

The resulting parser code:
[https://github.com/nickdrozd/lispinc/blob/master/parse.c](https://github.com/nickdrozd/lispinc/blob/master/parse.c)

Anyway, I don't know anything about Zig, but Andy sure helped me out of that
jam.

------
oblio
Andrew, if you're listening, add some higher thresholds on Patreon, you'd be
surprised. Someone who's willing to give you money (any amount, even $1) is
probably also willing to give you $5 or $10 (impulse spending, basically).

~~~
DoreenMichele
He has 92 patrons giving him $596/month.

Methinks you don't understand how Patreon works.

~~~
kelnos
If he made the default $5, it's quite possible that the average and total
would go up further.

When you set your default, you are implicitly saying "this is what I think my
software is worth to you". That's an anchoring point. Most people who decide
to donate less than the default will probably feel slightly bad for doing so.
Some of those people who would just stick with the default at $1 will also
stick with the default at $5. Some people will generally always give more than
the default, and that "more" might be even more if the default is $5 than if
it's $1.

It's probably _incredibly_ rare that someone would click through, see a $5
default (including the possibility to donate less), and say "wow, this person
is full of themselves thinking $5 is reasonable; I'm not going to donate at
all in protest". So there's little to no downside risk in raising your default
by a non-crazy amount. Obviously some defaults are absurd; $1000 would be
crazy and probably off-putting. But $1 is certainly a low-ball.

~~~
retsibsi
I don't know how likely it is, but there's a risk that this could backfire:

> Most people who decide to donate less than the default will probably feel
> slightly bad for doing so.

If the default amount is too much for me, then my choices are to donate less
and feel slightly bad, or not donate at all. It will be pretty tempting to
keep my money, rather than give some up and feel guilty anyway. Paradoxically
I might even feel less guilty for not donating, because that's a passive act
and I can tell myself I'm only postponing the decision, rather than
definitively making an ungenerous choice.

------
overcast
What's amazing to me is that he's sustaining living in NYC on currently $423 a
month. He must be pulling from a pretty large savings fund. Even his "fully
sustain working on zig" goal is only $3000.

[https://www.patreon.com/andrewrk/memberships](https://www.patreon.com/andrewrk/memberships)

~~~
IshKebab
> What's amazing to me is that he's sustaining living in NYC on currently $423
> a month.

I don't think he is?

~~~
overcast
According to his Patreon I linked he is.

~~~
eanzenberg
That is.. quite impossible. He's living off additional savings or a mooch or
homeless.

~~~
guildan
He answered that in another comment
[https://news.ycombinator.com/item?id=17257056](https://news.ycombinator.com/item?id=17257056)

------
maxtaco
OKWS author here. I have to take some issue, we made a lot of improvements to
the infrastructure over the years. The Tame system for instance was a big one.
[1]

[1]
[https://www.usenix.org/legacy/events/usenix07/tech/full_pape...](https://www.usenix.org/legacy/events/usenix07/tech/full_papers/krohn/krohn.pdf)

~~~
AndyKelley
Hi Max! Amazing, I thought that tame was there since the beginning. BTW my
"hack week" project was going to be replacing tame with cpp-coro [1] but I
quit before hack week started.

[1]:
[https://github.com/lewissbaker/cppcoro/](https://github.com/lewissbaker/cppcoro/)

~~~
egwynn
Tame had only just been applied in earnest when I started in 2007. Pre-tame
code was pretty unwieldy!

------
otras
Having the courage to take the plunge is admirable, and that's enough to get
$1/month from me. Congratulations on making such a big decision!

One thing I'm curious about: the current ~$400/month from Patreon (minus fees)
isn't close to enough to cover a similarly comfortable standard of living in
New York, and I imagine that this would affect your "runway", if you will. Are
you able to live and work off of savings, or will you be relocating for a
lower cost of living?

Apologies if this comes across as prying into your financial details. I'm more
just curious about the process. Again, congrats!

~~~
AndyKelley
Thanks for the support :)

As much as I love NYC, it may be practical to relocate somewhere with a lower
cost of living. Alee & I will reevaluate when the lease is up. She's in grad
school, so who knows where that will take her? I'll probably just live where
she needs to for her career.

~~~
ericabiz
Hey Andy, dev/ops nerd turned marketer here. First of all, AWESOME that you
quit your job and are attempting to make a go at this! Huge congrats!

I would recommend you put in a couple higher levels on the Patreon and think
about what people would want from you. For instance, I ran a popular blog and
asked my readers what they would pay monthly for. Turns out one of the biggest
requests was just a private webinar (I hate that word, so you could call it
something else, like "knowledge brain dump") once a week. I ran them for 60 or
90 minutes and took questions at the end. In fact, I may do this again in the
future, since I continue to get requests for it long after the fact.

People here have expressed how articulate you are when describing the
language. Setting up a group at say $19/mo or even $49/mo where you deep dive
into software dev, practical applications of Zig, and/or programming languages
in general "live" once a week might be something people are willing to pay
for, and would get you "out of the red" more quickly.

~~~
maxxxxx
Totally agree. I happily have my company pay good money if the software shows
to be really useful. And I refer to give that money to small devs instead of
Atlassian, Oracle or others. Yearly plans are also easier for me to pay.
Dealing with monthly is a little bit of a pain.

------
nstart
For anyone like me who's hearing of Zig for the first time, I totally
encourage y'all to watch the video that's attached on his Patreon page.

It's rare to see a technical presentation done in a way where the concepts are
so clearly understandable. Makes me want to take a peek into Zig and see what
it's like in there and consider supporting the author just because. Hope it
works out well enough for him to live his dream :).

~~~
gota
I'm tempted to spend a good while studying Zig just because it says "Zig
competes with C instead of depending on it" _and_ folks here are not thrashing
it ('Why compete with C at all?' would be my guess of general reaction)

~~~
jschwartzi
Based on what other posters are saying about the language design and the
interface design, it's built in such a way that you don't have to do a ton of
boilerplate to integrate Zig code with C/C++ projects. That, in turn, means
that you can start new sections of your code base in Zig and gradually start
eating your legacy C/C++ code until you have a project written in Zig instead
of C. And it seems like it does this by not being too opinionated about your
use of memory, unlike Rust.

I would be really interested in using it if I had more Clang support in bare
metal systems. I think the consensus among embedded developers is that we
would all really, really like a modern language with modern type-safety and
type-checking, but we also still want to do crazy crap with memory at times.

It doesn't matter so much that there's a way to do something, but it matters a
great deal how you are expected to do it. Keeping it simple matters, and Zig
looks pretty simple compared to other compiled systems languages that I've
seen, so that's wonderful.

~~~
AndyKelley
> you can start new sections of your code base in Zig and gradually start
> eating your legacy C/C++ code until you have a project written in Zig
> instead of C.

[http://tiehuis.github.io/iterative-replacement-of-c-with-
zig](http://tiehuis.github.io/iterative-replacement-of-c-with-zig)

------
pseudonymcoward
I think this may be exactly what I've been looking for. I've been wanting a
"Better C" type of language, but all the existing candidates fall down on some
point like - too complicated (Rust/D/C++), no manual memory management (Go),
etc. I've even made some half baked attempts at writing my own language.

It seems that the design goals of this language are exactly what I'm after.
Going to have to give it a try later.

~~~
ionforce
What part(s) of Rust do you find too complicated, and why?

~~~
pseudonymcoward
In general I prefer languages to be small and simple - like Go and C. This
doesn't seem to be a design goal for Rust, which puts me off. Some specifics:

Trying to do anything non-trivial with ownership/lifetimes/borrowing always
ends up in a tangle, fighting with the compiler.

Everything in the stdlib seems to have a giant api with pages and pages of
functions. Example: [https://doc.rust-
lang.org/std/string/struct.String.html](https://doc.rust-
lang.org/std/string/struct.String.html) Scrolling down through those methods
is overwhelming.

The overhead imposed by the goal of maximising safety is big, and not that
important to me (as I'm not writing Very Important Crypto code or whatever, I
don't find it hard to write good enough code for my purposes in C).

~~~
star-castle
Click the [-] at the top right of that doc page. You won't find it so
overwhelming.

------
nsomaru
People here are commenting that NYC is quite an expensive place to live off
donations.

I'm not sure what advantages that the location brings when working on a
programming language (networking?), but I can suggest moving to South Africa
where cost of living is low and quality of life is high. Yeah there's "crime"
\-- but it's not too bad as long as you're a little smart about the way you
conduct yourself.

Cape Town is an obvious first choice and is really cosmopolitan with a good
dev community, but I can suggest Durban as a good runner up; it was recently
voted "Most Livable City in South Africa" [0]

For New York level "hole-in-a-wall" rentals, you can live like a king in South
Africa :) If you're willing to share a spot you can really get a palace for
yourself, and enjoy some of the best beaches in the world (in Durban).

[0] [https://www.iol.co.za/mercury/news/durban-is-most-
liveable-c...](https://www.iol.co.za/mercury/news/durban-is-most-liveable-
city-in-south-africa-13963052)

~~~
driverdan
Most people who live in cities don't realize how inexpensive it can be to live
in the US.

For example, I lived a spartan but comfortable life in Rochester, NY for well
under $20k/year. That was renting an expensive-for-the-area apt in a nice
neighborhood. When I had roommates my rent was <$250/m. You can buy a house in
Rochester for under $20k.

~~~
ChristianGeek
Given the weather in Rochester, what were your utility costs?!

~~~
driverdan
It depends on the home and the method you use to heat. Many houses in
Rochester pre-date modern insulation and cost a lot to heat. That said, there
are plenty of reasonably priced newer homes with good insulation available.
The last place I lived was well insulated and cost <$150/m to heat in the
worst conditions.

------
emodendroket
I envy the kind of confidence that would lead someone to decide that a new
programming language is their ticket to riches.

~~~
gizmo
That's a little mean. The author writes:

> 100% of donations I receive go towards paying rent, buying food, and
> generally attempting to live a modest, but healthy life.

He doesn't expect to get rich from this.

~~~
amelius
Also, who was the last person getting rich from a programming language?

Programming languages are more of an open-source thing. You can't make much
money from them.

~~~
Boulth
Anders Hejlsberg got $1M for joining Microsoft:
[https://en.m.wikipedia.org/wiki/Anders_Hejlsberg](https://en.m.wikipedia.org/wiki/Anders_Hejlsberg)

~~~
noir_lord
To get the principal engineer behind the languages Turbo Pascal, Object Pascal
(Delphi) and then C# and TypeScript that seems like the deal of the century if
you factor the business value of all of the above.

~~~
TimJYoung
Indeed, and at the time I was surprised that they got him for so little.
There's so many design decisions in C# that resemble Object Pascal and Turbo
Pascal, that it's pretty obvious that Anders=C# (not to take anything away
from what are surely some of the best compiler engineers in the last few
decades, I just don't know their names off-hand).

~~~
noir_lord
As someone who programmed heavily in Delphi back in the day their absolutely
are and it's one of the reasons I like C# so much, it feels like home.

So does TypeScript.

~~~
Boulth
I also used all languages designed by Anders, his practical approach is
clearly visible in all of them. Unfortunately there are just a few interviews
with him but they are all high quality:
[https://www.artima.com/intv/anders.html](https://www.artima.com/intv/anders.html)

------
tc7
Cool, good for you :). I like the world where the internet enables niche
creators to live and engage with invested supporters/patrons.

Aside, have you seen the language Jonathan Blow's working on (jai)? Curious
how you'd compare the two, goals or implementation-wise. (Given he hasn't
released anything yet, no worries if this is unanswerable :))

~~~
slobotron
There is at least this comment in the docs:

> Zig is taking cues from Jai's stance on allocators, since that language is
> being developed by a high-performance game designer for the usecase of high-
> performance games."

[https://github.com/ziglang/zig/wiki/Why-Zig-When-There-is-
Al...](https://github.com/ziglang/zig/wiki/Why-Zig-When-There-is-Already-
CPP%2C-D%2C-and-Rust%3F#no-hidden-allocations)

------
olejorgenb
He also have a liberapay account:
[https://liberapay.com/andrewrk/](https://liberapay.com/andrewrk/)

------
mnx
Best of luck. Is there any place you wrote about why you belive Zig is better
than all the other alternatives to C? Why should I look at Zig, insted of
looking at Rust?

Not trying to be dismissive, genuinely curious what your thinking is.

~~~
AndyKelley
[https://github.com/ziglang/zig/wiki/Why-Zig-When-There-is-
Al...](https://github.com/ziglang/zig/wiki/Why-Zig-When-There-is-Already-
CPP%2C-D%2C-and-Rust%3F)

------
lixtra
Do you see a niche you could conquer with zig?

For ruby it was rails. Python profited from data science. Etc.

~~~
jxub
Systems programming, I think? Also, much less complexity in the type system
than Rust, one of the main new contenders along the old gang of C and C++.

------
wlkr
Looking for more on Zig I found a talk [0] (~1 hour) on the language by Andrew
Kelley from just a few months ago.

Edit: I see there already questions about Rust in this thread. There's an
audience question on Rust in the talk [1] and the creator states that Rust is
Zig's biggest competitor.

[0]
[https://www.youtube.com/watch?v=Z4oYSByyRak](https://www.youtube.com/watch?v=Z4oYSByyRak)

[1]
[https://www.youtube.com/watch?v=Z4oYSByyRak&feature=youtu.be...](https://www.youtube.com/watch?v=Z4oYSByyRak&feature=youtu.be&t=2602)

~~~
throwawayjava
IMO we're about to see a robotics renaissance.

That embedded world needs a simple, performant, low-level language that isn't
C. If Zig focuses on providing that for the robotics domain, I could see it
becoming popular.

~~~
ionforce
What makes you think we're about to see a robotics renaissance?

~~~
stevehawk
Michael Bay's documentary Transformers

------
carapace
I want this to work so much (because this is exactly the "business model" by
which I'd like to live.)

I know of another example: the guy who draws and writes the web- (and now
print too) comic "Kill Six Billion Demons". I believe he's currently living
off of direct fan support (through Patreon too, as it happens) although he has
published a physical book collecting the first arc of the story. (I guess that
is also fan support..?)

~~~
mratsim
In Asia, several dozens of authors are earning millions (in USD) by releasing
chapters of novels on a daily basis. And English translators gets about
~$20-$100 per day from Patreon donations:

Check

    
    
      - https://www.wuxiaworld.com/ (note that this is a very large community)
      - Earnings of Tang Jia San Shao and I Eat Tomatoes
      - Article on New York Times: https://www.nytimes.com/2016/11/01/world/asia/china-online-literature-zhang-wei.html

------
fataliss
Props to you buddy! Glad people like you are always willing to take risks to
move the software community forward. Whether it works out or not, I give you
my thumbs up!

------
pedrocr
Has anyone tried Zig? From reading the project page I don't see anything that
it has/plans over something like Rust that's much further along.

~~~
gmfawcett
Error management is different, and quite uniquely done. Zig deals with failure
modes in a much more fine-grained way than Rust, which favours the algebraic-
wrapper approach (Result / Option types). If you're writing actual, low-level
systems code, your code might need to react differently depending on the
failure mode: you need to know if it was an I/O issue, or out-of-memory, or
disk-full, or etc. At the call point, Zig lets you enumerate all of the
possible failure reasons comprehensively, and handle each one specifically if
you choose to. This enumeration is produced and checked by the compiler, so
you can't miss any cases. (It also lets you disregard the specifics if you
don't care.)

~~~
dbaupp
That sounds quite similar to Rust, except _less_ fine-grained than Rust. The
Result type has an Error parameter which is usually an enumeration of the
possible failure conditions, e.g. [https://doc.rust-
lang.org/std/io/struct.Error.html](https://doc.rust-
lang.org/std/io/struct.Error.html) . That is, an IO function returns only IO
errors, as compared to Zig's strategy which unifies all declared errors in the
program into a single "error" enumeration.

(To be clear, there's a lot of cases when this precision isn't so useful, but
the contention here is how fine grained they can be.)

~~~
gmfawcett
There's definitely there's a distinction here between the approach you've
described (Rust can indicate that a function returns only IO errors -- but
doesn't tell you which subset of "all IO errors" might actually occur at this
call point) and Zig's (the function call can result in an arbitrary set of
specific errors, some of which might be IO and some might not; and only the
actually possible errors are included in the set).

Is one better than the other? I doubt that question has an objective, one-
size-fits-all answer. I'm happy to see experimentation in this domain! My
point really is just that Zig is different from Rust in how it handles errors,
even if there are some superficial similarities.

~~~
dbaupp
I think you haven't understood my point or maybe I haven't understood yours,
and maybe it is because I have misunderstood Zig's approach.

My understanding is that something like `fn f() -> %T` returns a T or an
`error`, and the latter can be literally any error value that exists anywhere
in the program. It isn't restricted to the actual possible errors that might
occur inside f, and thus has the same failings of Rust that you point out
(don't know which subset of errors might be returned), except the unknown set
of possible errors is likely to be larger.

(And, you can still get all the niceties of Rust's error handling
infrastructure like the ? operator if you manually define an error type that
is restricted to the exact set of possible errors: there's not a privileged
type for how to represent errors.)

~~~
tiehuis
Zig's errors are actually different and the variants can be statically known.
Error type returns are not usually specified since they can usually be
inferred. They can be explicitly specified if needed [1].

For example, the following code

    
    
        fn errorOrAdd(a: u8, b: u8) !u8 {
            if (a == 2) return error.FirstArgumentIsTwo;
            if (b == 2) return error.SecondArgumentIsTwo;
            return a + b;
        }
    
        pub fn main() void {
            if (errorOrAdd(0, 0)) |ok| {
    
            } else |err| switch (err) {
            // will force a compile-error to see what errors we haven't handled
            }
        }
    

emits this error at compile-time:

    
    
        /tmp/t.zig:13:18: error: error.SecondArgumentIsTwo not handled in switch
        } else |err| switch (err) {
                     ^
        /tmp/t.zig:13:18: error: error.FirstArgumentIsTwo not handled in switch
        } else |err| switch (err) {
                     ^
    

You can use the global `error` type which encapsulates all other error types
if needed, replacing `errorOrAdd` in the previous `main` with the following
function

    
    
        fn anyError() error!u8 {}
    

now requires an else case, since it can be any possible error.

    
    
        /tmp/t.zig:13:18: error: else prong required when switching on type 'error'
            } else |err| switch (err) {
                         ^
    

This works pretty well and is very informative in most cases. The tradeoffs
are it can make some instantiation of sub-types a bit clunky [2] and you need
to avoid the global error type everywhere. The global error infests all
calling functions and makes their error returns global as a result. You can
however catch this type and create a new specific variant so there is a way
around this for the caller at least.

Do remember that Rust allows passing information in the Err variant of a
Result while Zig's error codes are just that, codes with no accompanying
state.

[1] [https://github.com/tiehuis/zig-
bn/blob/3d374cffb2536bce80453...](https://github.com/tiehuis/zig-
bn/blob/3d374cffb2536bce80453e6110ceae0cbd04db2a/bigint.zig#L467)

[2] [https://github.com/tiehuis/zig-
deflate/blob/bb10ee1baacae83d...](https://github.com/tiehuis/zig-
deflate/blob/bb10ee1baacae83dfb410b88bd9fcc62090712f7/deflate.zig#L99)

~~~
dbaupp
_> Zig's errors are actually different and the variants can be statically
known. Error type returns are not usually specified since they can usually be
inferred. They can be explicitly specified if needed [1]._

Yep, as a sibling points out, I was working with a long-ago version of Zig's
error handling.

------
g4nt1
Since Zig is pretty unknown language, I would actually buy swag. Cap/t-shirt.
It's not like a monthly donation but if it can get you extra cash...

~~~
djzidon
This is brilliant. Create a $10 tier to receive swag perhaps

------
dexen
I've looked at the guide[1] to writing _Brainfuck_ interpreter, and the _Zig_
language indeed looks very practical. In particular the _test "..." {}_ block
is neat, and the love for stack backtraces makes me feel at home.

Definitely a language to keep an eye out on.

[1] [https://blog.jfo.click/how-zig-do/](https://blog.jfo.click/how-zig-do/)

~~~
jxub
I am curious whether it's inspired by Elixir's ExUnit test macro or the idea
for that sprung up independently. Greatness is 99% transpiration nonetheless.

------
fouc
Zig, or making a better C sounds like a genius idea. C is so enormously
successful that a better C could be huge.

------
woodaroo
Hi Andy! Wanted to let you know that I appreciate the niche you're exploring.
Pledged on patreon. Keep up the good work. Please do consider the comments
suggesting a periodic video / podcast/ etc., that would allow you to share
your process. Thanks!

------
ddtaylor
What exactly are people getting for their $1/mo? We have a donation page on
our website that we send to people who ask but we haven't taken the plunge to
exposing it yet out of fear of backlash.

~~~
cbluth
Try "softening the blow" by selling a limited line of $SOME_PRODUCT_OR_SERVICE
and releasing a donation page at the same time... And retain the donation page
once the limited supply runs dry.

------
jjnoakes
I would love to see zig compile to C so I can use it on platforms which
clang/llvm do not support.

~~~
mrec
I'd think it would make sense to do this as an LLVM backend so that everyone
could use it. This used to exist [1], but I don't think it's maintained, which
suggests there wasn't much demand for it.

[1]
[https://news.ycombinator.com/item?id=12279770](https://news.ycombinator.com/item?id=12279770)

------
chis
Hey op your andrewkelley.me/donate link is broken! might wanna look into that.

------
garfieldnate
Eh, it says he's getting $720 per month? Won't last long on that...

------
mikkqu
Absolute awesomeness. I can't wait to see it to become next big thing!

------
jbschirtzinger
I run a small church. It's pretty much the same idea, except for YHVH.

------
niftylettuce
Go kick some butt man. - Nifty

------
make3
[deleted]

~~~
fataliss
that he isn't a d*ck and made fun of him cause that was "compiler 101", but
helped a brother out!

~~~
ythn
I hate this elitism attitude people have like everyone should have taken a 101
for every topic in the universe. If all bugs are shallow given enough eyes,
all problems are "X 101" problems given enough people.

"So and so helped me fix a hard problem"

"Isn't that just [problem category] 101?"

------
zeth___
I've been shat on HN before for saying this but I stand by it: you're not a
programmer/developer/"whatever it's called now" until you have done a parser
for something at least as complicated as lisp in whatever the lex/yacc
equivalent is in your language of choice.

The difference between people who get regular languages, pretty much everyone
who codes, and the people who get context free grammars is more than $100k a
year.

~~~
athesyn
I don't understand, are you saying that writing a language parser is a litmus
test that that only real programmers can pass?

What makes it so special compared to other tasks of similar difficulty?

~~~
zeth___
Parsing is the fundamental task of programming: taking information, performing
a transformation on it, passing it along.

If you can't do it you might use computers but you're not programming.

Tuning DE solvers might take as much skill, or more, than getting context free
string parsed, but it's not a skill that is used outside of numerical
computing. DBAs aren't called programmers for a reason, but they are no less
valuable for it.

The same applies for every niche skill that takes years to develop.

~~~
athesyn
>The same applies for every niche skill that takes years to develop.

so you just defeated your own argument, instead of hyper-focusing on writing
parser why not just say "years of experience" if that is what really matters?

no wonder you got shit on.

~~~
zeth___
If you spend decades being a better juggler you won't be a better programmer,
the same is true for all the meta-programming jobs.

------
fbonetti
[deleted]

~~~
Matthias247
Why? For some people traveling is their fulfillment of life. For other people
it can be hacking, gaming, watching all TV shows that are on the planet, etc.

~~~
wolco
Living the drean then. Trying to get through everyshow this summer.

------
asdfman123
There's a "take off every zig" joke in here somewhere.

Take off from OkCupid, start every zig?

~~~
stochastic_monk
I'll bite: kickstart every zig.

------
joering2
About donations, recently Twitter blow up with the story of Minister who lives
in 35,000 square 25-rooms mansion, and asked for $54,000,000 donations for his
fourth Jet [1]. Reasoning was that public planes are "tubes filled in with
demons" that in the post "bothered [him] with their prayers". He also wrongly
claimed that he needs new jet so he flies without stopping anywhere to refuel
as the gas prices are high... altho everyone flying private jets know jet fuel
is cheaper almost everywhere outside of US.

His "apology" video is worth watching [2] ... his office is literally dripping
with gold; the Eggs on his desk are $4,000 per piece. Given recent price of
pound of rice, one of those eggs will get you 12,000 pounds (!!!) of raw rice.
It takes approx 0.8 pound of rice to feed one person per day. 12,000 / 0.8
gives you 15,000 days worth of rice for one person, or 41 years. One Egg! [2]

Anyways the point of my story is that if in first world country like USA you
can find people gullible enough to buy stories like this one and keep on
living in literally liquid luxury for 40 years (like that minister does), then
it doesn't surprised me someone quit job, begs people for donation and
actually makes a solid living.

[1] [https://www.cnn.com/2018/05/30/us/jesse-duplantis-plane-
falc...](https://www.cnn.com/2018/05/30/us/jesse-duplantis-plane-
falcon-7x-prosperity-gospel-trnd/index.html)

[2] [http://www.jdm.org/xw-
partnerupdate.aspx?source=TWITTER](http://www.jdm.org/xw-
partnerupdate.aspx?source=TWITTER)

PS. Oh and while you on your donations spree, you don't have to be
transparent; here Jesse Jets beacon is off; not only he doesn't fly with
peasants like you and me, he doesn't want you to know where he is "burning the
Jet for Lord Jesus":
[https://flightaware.com/live/flight/N770JD](https://flightaware.com/live/flight/N770JD)

~~~
antiquitie
There's no "story" here. The guy has written a real piece of software. You can
download it and try it yourself. If you like his work (many of us do) you can
tip him a small donation, barely even beer money, to show your appreciation.
It's kind of silly to act like this is some sort of scam.

