HNHacker News
TopNewBestAskShowJobs

jdreaver

1,207 karma · joined November 23, 2012

submissionscomments
jdreaver··on Stripe migrates Stripe Subscriptions users to more expensive Stripe Billing
I've always wondered if there is a business opportunity here: a company that monitors social media for all mentions of your business and pings you about it. Maybe this already exists?
jdreaver··on I no longer build software
I have a BS and MS in mechanical engineering. I started working on simulation software, and now I work in edtech.

This is an interesting thread, but my advice is to never take comments on the internet as any sort of representative sample. It is unlikely someone happy with their job would comment on a thread about quitting, because it makes for a boring addition to the thread.

I sometimes wonder what my work life would be like if I switched back to mechanical engineering, but I'm very happy working purely in software. Engineering requires a ton of capital and fairly large teams to do cool things. With software, a single person or a small team on a shoestring budget can build pretty neat things. I also work 100% remote, which I'm not sure would be possible with a mech eng job.

I do wish I spent more time in the machine shop at school though. Many of my neighbors in my HOA are either "real engineers" or retired blue collar workers, and they can fix things much better than I can. I can help reset their router though! :)

jdreaver··on Org-roam: Emacs org file based personal knowledge base system
I've been using org-mode for over a decade now. I'll be honest, if you aren't using Emacs regularly, I wouldn't recommend using it just for org-mode. I will say that org-mode was one of the things that got me into Emacs though, so maybe if you like it you'll stick around in Emacs? :)
jdreaver··on Twitter Will Allow Employees to Work at Home Forever
As someone with an infant and a toddler, working from home, this hits the nail on the head. I have been working remotely my whole career, and I love it, but working at home _with_ children there is about 5x harder.
jdreaver··on Salesforce is buying Tableau for $15.7B
I just wanted to pop in and say Meltano looks awesome! Good luck with it.
jdreaver··on Glen Avon Earthquake Swarm
I was born in and still live in Glen Avon. Seeing this little town on HN is a surprise, to be sure.

Feeling a few earthquakes a day has been an interesting experience. It has been going on for days now, and quite a few people are on edge. I tend to think a lot of smaller earthquakes are better then one large one, and all of these earthquakes release potential energy that could have been released in a larger event.

I'm sure we'll be fine, but I hope those aren't famous last words!

jdreaver··on Interview on ”Bayesian Statistics the Fun Way”
That's not how I'm reading that quote at all. Saying Bayesian stats can solve real problems doesn't imply frequentist stats can't.
jdreaver··on Maintainable ETL Practices at Stitchfix
Huge +1 to leveraging SQL as much as possible during ETL.

We recently moved our data warehouse to Snowflake. Along the way, we adopted an ELT paradigm instead of ETL, where you load your raw data into the warehouse and then perform any transformations in the warehouse. A tool called dbt (https://www.getdbt.com/) has made this a joy. You write SQL select queries in SQL files, and dbt creates a DAG based on this SQL so it can efficiently create tables/views in parallel. dbt also comes with some nifty testing facilities to validate your data once it is transformed.

This is a great article, thank you for writing it!

jdreaver··on A Tale of Query Optimization
Get over yourself.

This is a well-written article in which the author lays out their thought process for optimizing a slow SQL query. The article certainly provides more value to someone who may not be an RDBMS expert than your comment does.

jdreaver··on I found two identical packs of Skittles among 468 packs
No one has mentioned it? Did you read the article? The article discusses exactly what you just said.
jdreaver··on Moving from Heroku to Google Kubernetes Engine
For Aurora we are on a db.r4.8xlarge, which is ~$3340 per month for the instance alone. Aurora also charges for IOPS against storage, and we pay about $350 per month for those IOPS. Our DB is ~400 GB, so ~$40 per month for that as well.

I am pretty sure we could live comfortably on a db.r4.4xlarge, but we have some bursty analytics applications that sometimes bring our load up for about a minute, and we like the peace of mind of headroom during peak hours (we are in edtech with super predictable traffic throughout US school hours).

Total side note: I just went to the pricing page and it looks like they just released db.r5 instances for Aurora (https://aws.amazon.com/rds/aurora/pricing/)! It might be time to try those out. I don't see an announcement just yet though...

jdreaver··on Moving from Heroku to Google Kubernetes Engine
We just switched to Aurora Postgres, and I agree wholeheartedly. The main DB client is a web app with ~4000 txns/second, and we instantly got a ~30% performance boost. We also got much more consistent performance for our slower queries thanks to Aurora's fast, custom storage engine.
jdreaver··on Ask HN: What books changed the way you think about almost everything?
You either haven't read the book or you you misunderstand how much of the book is Austrian economics. Yes, modern Austrian economics is considered fringe. However, historically the foundational results of early Austrian economics has been fully integrated into mainstream economics. From Wikipedia (https://en.wikipedia.org/wiki/Austrian_School):

> Among the theoretical contributions of the early years of the Austrian School are the subjective theory of value, marginalism in price theory and the formulation of the economic calculation problem, each of which has become an accepted part of mainstream economics.

Hayek was considered partly Austrian and he got the Nobel Prize in Economics in 1974, well after this book was written. (https://en.wikipedia.org/wiki/Friedrich_Hayek)

The core lesson of the book is fantastic:

> The art of economics consists in looking not merely at the immediate but at the longer effects of any act or policy; it consists in tracing the consequences of that policy not merely for one group but for all groups.

This is not fringe at all.

jdreaver··on Gluon – A static, type-inferred and embeddable language written in Rust
You should read the paper :) Modular implicits are not the same as Scala implicit arguments. Gluon probably just chose the name "implicit arguments" because it corresponds better to their variation on modular implicits.
jdreaver··on Gluon – A static, type-inferred and embeddable language written in Rust
> if it supports first class functions, passing around no arg functions is harder than it should be.

Can you expand on that? How does no parens make it harder to pass around first class functions? In Gluon (and in Haskell, Purecsript, Idris, etc), you just pass around the function name. If you have "inc x = 1 + x" and you want to pass that to map, you just pass it by name: "map inc [1, 2, 3]"

What could be simpler?

jdreaver··on Gluon – A static, type-inferred and embeddable language written in Rust
These symbols are part of the definition of the Applicative type class in Haskell http://hackage.haskell.org/package/base-4.11.1.0/docs/Contro...
jdreaver··on Gluon – A static, type-inferred and embeddable language written in Rust
Gluon recently added implicit arguments with the latest release (see http://marwes.github.io/2018/06/19/gluon-0.8.html). In spirit it is like modular implicits (https://arxiv.org/pdf/1512.01895.pdf). This is really exciting because modular implicits represent a pragmatic balance between the flexibility of ML modules and the convenient overloading of type classes.

Another cool feature of Gluon is modules are basically just records. This is a strict improvement over ML modules in my opinion. (See http://gluon-lang.org/book/modules.html)

Congrats on the recent release!

jdreaver··on The Radical Left-Wing Theory That the Government Has Unlimited Money
It's a bit sickening how dismissive the author is to brush aside the impact of inflation on this plan. Inflation is a direct tax on the poor who are trying to save money. Great, let's give them jobs that are dependent on inflation and then remove their ability to gain capital. Runaway inflation is a real contributor to poverty traps, but I must be crazy because according to the article "panic over government budget deficits is delusional, a misguided and atavistic remnant of the gold standard."

Modern macroeconomics comes off as such a tribal, groupthink discipline to me. Far too many policy suggestions stem from tortured analogies like "we need to prime the pump and increase spending to increase aggregate demand!", or "Capitalism runs on sales, ... you have to increase spending to increase sales!" Where is the analysis of the real cost of programs like this? Why are we so focused on short-term results without considering the long-term effects?

Economics is not physics. You can't run controlled experiments and discover mathematical relations that succinctly describe entire economies. I wish we would stop taking the poor excuse of what is currently macroeconomics research, which is basically terrible curve fitting on small sample sizes over a brief historical period sprinkled with whatever ideology the economist subscribes to, and jumping to terrible policy decisions that affect real people.

jdreaver··on OpenTracing: A vendor-neutral open standard for distributed network tracing
I really hope AWS X-Ray gets on board with this. I just finished making a library to integrate X-Ray with our Haskell applications and then realized OpenTracing exists. I would love to be able to easily support more tracing backends.
jdreaver··on Ask HN: How can I get better at bash?
I can second the shellcheck recommendation. Shellcheck makes great recommendations, and every suggestion has a corresponding code you can google to get to a detailed explanation of why that is considered a warning or error. Hell, even if I just considered the times I forgot to put quotes around a variable and got warned by shellcheck I would be happy that I use it.
jdreaver··on I tried Haskell for 5 years
You are reading into that way too much. The author is just saying the syntax is a lot different than languages you have probably used before.
jdreaver··on System76 launching ARM Pro server with 96 cores up to 1TB ECC RAM and 32TB storage
I have two coworkers that just had to get replacement keyboards for their System76 laptops. They have to replace them themselves as well.
jdreaver··on Turning the database inside-out with Apache Samza (2015)
If you enjoyed this talk then I highly recommend you also go down the rabbit holes of Event Sourcing (see https://martinfowler.com/eaaDev/EventSourcing.html) and CQRS. The idea of separating your writes from your reads and doing so in a consistent (well, maybe eventually consistent) way is a real eye-opener.

Warning: a lot of the literature and talks on ES/CQRS get bogged down in Object Oriented and Enterprise minutia, and detract from the promising core ideas. My advice is to try and see the forest from the trees when Googling these topics.

jdreaver··on Amazon soars to more than 341K employees, adding 110K people in a single year
My point is it's never the same. No two technological advances are the same. We should be celebrating the fact that labor-saving tech is freeing us from mundane jobs. The goods produced by those jobs will be cheaper for everyone. Technological progress always brings jobs that require more skill, yet somehow over the last two centuries we have always had room for unskilled workers.

Now, I'm not some heartless jerk who doesn't recognize that the short-term effects of job loss on unskilled workers. It is certainly a hard problem, but I'm still not convinced that we will have some epic labor shortage because all unskilled jobs will vanish too quickly.

jdreaver··on Amazon soars to more than 341K employees, adding 110K people in a single year
> The free market still hasn't figured out a solution to that particular problem last I checked.

Interesting, I think the entire industrial revolution is a very strong counter example to that statement. We repeatedly automated the majority of jobs on the planet every few decades and we saw the largest expansion of wealth and prosperity for the majority of humans in all of history. Should we lament over those subsistence farming jobs that were automated away?

The free market isn't some singular entity that figures out problems before they arrive and sends us all an executive summary of its plan. We currently don't have mass unemployment from automation, and I don't agree with many of the reasons people express for worrying. The only arguments I've seen against mass automation are hints of some dystopian future where somehow robots are prohibitively expensive for all but the richest people, and goods will somehow be cheap enough from automation that non-automated manufacturing can't compete, but still expensive enough that if we don't work 40 hours a week we'll starve.

jdreaver··on Gosubc – An implementation of the SubC language in Go
Writing compilers for fun is not relevant to HN? Get off your high horse, this project is really cool!
jdreaver··on What ORMs have taught me: just learn SQL (2014)
> They don't tell you, at compile time, when you're building an invalid/unrepresentable SQL query.

Sure they do, with a proper library. Haskell's persistent library does this very well.

jdreaver··on How we found a bug in Amazon ELB
Hmm, this seems like a pretty big bug in connection draining. I feel like one instance per AZ is a pretty common scenario. Great article!
jdreaver··on Pencil: A Microframework Inspired by Flask for Rust
I've found that whenever I start a small web project in a new language, I always look for the "Flask" of that language. I love using a framework that gives the bare essentials and nothing else.

I don't use Rust, but your code examples look great! I understand that Rust has less opportunity for "magic" to clean things up (for example, in Python you can use a decorator to specify a route for a function), but otherwise it looks very clear. Awesome work!

jdreaver··on CocoaPods downloads max out five GitHub server CPUs
I think that contact page remembers the last repo you visited. I went to it in incognito mode and is wasn't there.

That's a pretty neat feature!

← PreviousPage 2 of 7Next →