HNHacker News
TopNewBestAskShowJobs

waprin

1,590 karma · joined March 9, 2015

indie hacker. former SWE at google, thumbtack, pinterest, many small startups

working on AI engineering content:

aiengineering.report

personal site:

billprin.com

plus poker app:

www.livepokertheory.com

email me , waprin @ gmail.com

submissionscomments
waprin··on There’s Nothing to Do Except Gamble
No, totally wrong, it’s the exact opposite. Novices and only novices think “you can’t beat bad players cause they’re unpredictable!”

Even your more moderate point you’d rather not have them in the game is totally wrong.

In reality, every professional player loves players who do terrible, random things. Variance might go up, but variance is going to be annoying either way. Other players doing dumb things is where your EV comes from. I’ve only ever heard complaints about crazy players being a hassle from inexperienced amateurs who dabble. Pros want “live ones” in their games.

waprin··on The architecture behind a one-person tech startup
Vendor lock-in depends heavily on exactly what vendor you’re using and especially if it’s OSS API hosted on the vendor or a vendor API.

If you use something like AppEngine to run a Flask or Django app, you will not be locked in much because those are open source libraries with well known runtime options elsewhere.

Same to some extent with any sort of managed OSS database.

If you use something like Cloud Datastore or Firestore or DynamoDB , you are using a proprietary API and will have to rewrite all your client calls , or write an extensive shim, and probably significantly re architect to port.

Even in the “hosted OSS” option there are usually some vendor specific stuff but it can vary a lot. Something like AppEngine specifically used to be an absurd amount of API lock-in but has evolved over the years to be more of a general container runtime.

waprin··on Hertz, the original meme stock, is turning out to be worthless
Competing with Twitch is not realistic and I’m surprised you think it’s bad. Facebook and Microsoft have both spent huge sums of money trying to and failed. And both those companies have deep engineering talent which GameStop does not and it will not be trivial to compete with those companies for engineers. Plus livestream is just really expensive in terms of compute and network costs. Finally and most importantly, Twitch has more network effects than people realize with its follower/subscriber ecosystem. Streamers spend a lot of time building that audience and make more money than you might expect when they do it, so it won’t be easy to pull them away.
waprin··on Ask HN: Do you create music? let's hear it
Yes I’m very interested in edm production and working on some side projects in the space! Have tried producing a bit of everything (DnB, bass music etc) but might focus more on house/techno since it can be easier plus DJs will find it easier to mix into their mixes.

https://soundcloud.com/fellfire

waprin··on How I cut GTA Online loading times by 70%
But there is no "standard one"...reaffirming the point that you disagreed with. C++ standard library is blatantly missing key pieces given how long the language been around.
waprin··on An interactive guide to CSS transitions
Thanks so much for this amazing guide!

I had a side project that I was desperate to get across a finish line, and I rarely do any CSS at a day job, so I hired a freelancer just to help me get a few CSS issues fixed. One of the things he did was add a few CSS transitions, and the smallest transitions can turn a boring, static site into feeling slick and modern. Simple things like just having elements fade in a little when they appear make a huge visual difference.

As someone who's very far from a talented designer, I realized, transitions are such great value. You can learn a few CSS transition tricks and elevate the perceived design skill of your project greatly relative to the effort spent on learning them.

I'll be using this!

waprin··on Quitting Twitter
I agree with most of what the author wrote. I also don’t like how I can follow something who has good thoughts on Python but get their thoughts on politics. Then Twitter turned “like” into “maybe retweet” (you see what people you follow liked) so even if they don’t tweet about politics I see the political tweets they liked. I like the focus of subreddits in comparison.

I still use Twitter mostly as a write-only thing if I want to drop off a blog post, another place to reach me, and occasionally check my timeline. Lists are also a recommended feature.

With that said, I think Twitter has a bright future. Why? Because it’s always been a good way for celebrities to reach people. And in a world of Instagram, YouTube, Twitch, Tiktok etc there are more mini-celebrities than ever and they all use Twitter for any quick thought blurbs. So they’ve really benefited by the expansion of what constitutes a celebrity.

My mom also uses Twitter, never tweets, but just follows news outlets. And it’s the only social media she has as a privacy-oriented person which is interesting.

Like most social media apps, if you don’t use it compulsively and control how you use it, there’s usually at least some value in having a presence.

waprin··on MasterCard to open up network to cryptocurrencies
I used to think cryptocurrency was a solution in search of a problem, but the Robinhood fiasco has made me think otherwise. I find their clearing house explanation woefully insufficient in details, and open to the possiblity of being technically the truth but misleading (for example, they gave mass margin to lots of new accounts so they technically lacked collateral, but if they stopped new signups then cleared cash non-margin accounts would have been able to freely trade).

Some might call me a conspiracy theorist, but the fact remains there’s no good way to verify any of what they’re telling us is true, other than to trust people with billion dollar reasons to mislead, or rely on an SEC which has repeatedly failed to do its job and stand up to big institutions (see Moody’s subprime ratings, or Robinhood already getting fined by SEC but for trivial amounts).

There’s certainly pump and dumps, fraud and manipulation in crypto, but some could argue a lot of stocks exist right now with terrible fundamentals but huge market caps that nobody labels a pump and dump because “serious” institutions say the valuations are “forward looking.”

All this is to say, finance is a game with massive incentives to deceive and manipulate. We see that in the traditional finance space and in the crypto space . But long term, Id argue in many ways the decentralized nature of crypto lends itself to far more transparency than our traditional systems.

Now, that doesn’t mean it makes sense to buy coffee with crypto, or that a specific coin is the solution, especially one with the type of technical challenges BTC has. But in a broader sense, I do think decentralized finance is starting to look more and more like the future, if the alternative is to continually put trust into institutions that repeatedly betray that trust.

waprin··on Fueling Reddit’s Future
They are a top ten site on the internet. I don't see why Twitter is 45 B market cap but Reddit should be so hopeless, especially when their subreddit model lends itself much more clearly to ads than the "stream of conscious" of Twitter. They don't even need to worry about tracking/privacy as much, since just the subreddit name and nothing else is a huge hint as to what ads should be relevant.
waprin··on Robinhood sued by family of 20-year old trader who committed suicide
It was partially noted in past threads, and partially missed, but this 20 year old didn't actually lose the money he thought he lost. It was basically a "leaky abstraction" of the backend that bubbled up. Their total lack of any real customer support since it's not "scalable" also contributed to this tragic adn avoiadable death.
waprin··on Visa and Plaid Abandon Merger After Antitrust Division’s Suit to Block
Disagree, they are hiding the fact by assuming ignorance of most users. A true “link” , would use something like OAuth to have the bank handle authentication and provide explicitly scoped subset of consumer data to Plaid. Instead they are taking the plaintext password and getting total access. Just taking that passwords itself is a security vulnerability. Google doesn’t even know your Gmail password, just the hash, but since Plaid can’t use a password hash to login, it must store your plaintext password to your financial accounts, some of THE most sensitive data. Furthemore they have access to way more data than they should rather than clearly defined scoped subsets of it.

The whole company is a privacy and security disaster. Of course it’s annoying that banks don’t provide reasonable OAuth APIs, but Plaid “disrupts” that by deceiving consumers into dangerous security vulnerabilities with their most sensitive personal data.

waprin··on Dropbox saved $75M over two years by building its own infrastructure (2018)
It's not just managing the complexities of managing the bare metal, although that's certainly a huge component of it.

There's some other huge arguments against running your own datacenters.

One is being able to properly provision resources. Being able to write just a function and have it consume just that tiny amount of resources rather than a whole VM is huge. Being able to spin instances up and down as you need them is huge.

I think that's been obvious for a long time, but what I've seen less obvious to the business analysts is the impact of more advanced cloud services. The direction of cloud computing is managed services where they run your databases, container platforms, etc for you. Trying to run a huge Cassandra cluster or Kubernetes cluster takes up a ton of expensive labor's time and there's a good chance the cloud providers are a lot better at it than you.

Sure, cloud services tend to be really expensive, and besides cost, there's also concern about things like vendor lock-in, IP protection/data privacy, and ability to tweak the small details of your platform. But cloud platforms in 2020 have a lot more features than in 2010 and in 2030 will have even more. The direction is pretty obvious. Running your own datacenters will be about as common as running your own power plant.

waprin··on Advice to my young self: forget side projects and focus on your job
It's a little ironic that this is on "hacker" news since I think that the original "hacker" ethos wasn't that you built things just to impress recruiters.

If your goal is career advancement, then it is fair to acknowledge that some projects won't be useful for that. But there's plenty of other reasons that people work on side projects besides just career advancement. "Just for fun" might be the most famous reason, that is I believe how the Linux kernel started.

While maybe big companies won't value side projects directly too heavily, there's still a good chance that if you learn new things and try to build interesting stuff, that it might open new doors in all sorts of unexpected ways. But there's no guarantee.

I also think that full time coding jobs can be a lot of work, and people shouldn't feel too pressured if they don't want to have side projects, because they have other things like a busy family life or non-technical hobbies. But for many people, programming can still be fun and interesting, especially outside of the usual corporate routine, and that's all the motivation they need to pick up a side project. That to me is really what a "hacker" is, not a leetcode grinder climbing the ranks at FAANG.

waprin··on How we learnt to stop worrying and love web scraping
Its not too complicated, you just need a headless browser. Having done a ton of web scraping projects, I’d recommend just starting with this approach as even sites that look pretty static use Javascript in subtle ways.
waprin··on Roblox is a MUD: The history of MUDs, virtual worlds and MMORPGs
MUDs are what got me into programming. I was obsessed with them as a kid, although they were associated with DnD which was considered satanic so I had to hide them from my parents and teachers, who both forbid me from associating with DnD or MUDs.

Besides playing them, I actually spent more time as a "builder" than a "coder", which was an intermediate step in the hierarchy. As a builder, I would write hundreds of room descriptions, which most people never read. I desperately wanted to be a coder, the highest level of coolness in the MUD hierarchy, thus the journey began.

However, to me, MUDs always had an underground sensibility to them that something like WoW or Roblox will never replicate. The lack of polish is part of the fun, in the same way an underground punk rock show might be more fun than Coachella. I'm not sure if there's any experience like it left on the internet, I've never played Minecraft, but based on what I've read, that may come the closest.

waprin··on YC Startup School: Build Sprint and Equity-Free Grants
Really cool idea! I'm working on a project that could really, really use 4 weeks of focused effort, and I think that's enough time to accomplish a lot but short enough it doesn't feel overwhelming to zone in on it for that long. Looking forward to be a part of it!
waprin··on Computational Music Synthesis
Thanks for submitting, I'm currently working through Stanford Audio Processing for Music Applications but this books looks like a nice companion (and I tend to prefer written content to videos).

I studies some signal processing stuff in college but didn't really connect it to music unfortunately so struggled. Since then I've gotten very interested in electronic music production so it's a 2020 goal to learn more about the underlying software and math techniques, so I really appreciate this resource.

waprin··on A terrible, horrible, no-good, very bad day at Slack
Snapchat runs on App Engine (and other stuff runs on App Engine too) so App Engine is almost certainly bigger than Slack just based on that.
waprin··on The Whimsical Website Club
I love this, I also miss the more fun side of the internet that seems to be dwindling.

The best whimsical site I've seen in a while is https://hannahblair.co.uk/ , she made a whole Windows 95 Desktop remake as her personal site, including some remakes of some classic software, it's really amazing!

waprin··on AudioMass – free, open source, web-based Audio and Waveform editor
Really great project, nice job author, hoping to use it as a starting point/inspiration for some projects of my own.
waprin··on The Evolution of Management: Transitioning Up the Ladder
I'm curious where you're located. This was exactly my experience in "tech" startups in NYC, but not my experience at all working in SF. This is a big part of the reason why I have zero interest in leaving SF for some upcoming tech city, as in my experience you are correct there is a tendency to push engineers away from any business decisions, but much less so in SF which has a culture that ties engineering to entrepreneurship more closely. One explanation I've noticed is that the VCs in the Bay Area are far more likely to have technical backgrounds, whereas in NYC the VC firms almost always have finance backgrounds, and that culture bubbles down.
waprin··on DeepBreath: Preventing angry emails with machine learning
Thanks for the library! It's super awesome, useful, and easy to use. And yes, it made writing this ridiculously simple, it's borderline embarrassing how little code I wrote, but that was also part of what made it neat to me.

This was just a "let's spend a few hours playing with the Natural Language API" hack day type thing. Robbie's comment perfectly explains the context behind it. Google search pointed me to your library, which fit the need perfectly well, so that's what I used and I really appreciate that you wrote it and gave it permissive license!

waprin··on Local Django on Kubernetes with Minikube
As the other poster said, you run Django on Kubernetes for the same reason you run anything on it:

* Containers are an easy way to package an application so that it's easy to run anywhere, even if it has weird dependencies

* Eventually, you'll want to run containers on more than one machine for performance/reliablity

* Kubernetes makes it easy to schedule containers on a lot of machines, have them talk to each other over a virtual network easily, and provides a toolkit to solve a bunch of other random things you'll probably want (image updates, secret management, namespaces, authentication, jobs, etc)

So the biggest reason to run Django on Kubernetes is you're running other stuff on it, or just because it's one of the many ways to run a containerized app. Sure, you could write a Compose file and just run Docker on a single VM, but you're probably going to quickly want to add other apps or run on more than one machine, at which point you are likely going to look at Kubernetes, Swarm, maybe Mesos/Marathon, or roll-your-own container orchestrator.

Running Django on Kubernetes makes a lot of sense. Running something like Postgres on Kubernetes is the part that is admittedly more questionable. It's mostly just done for fun/as an exercise. Long term, databases will probably run in containers since everything else is. Short-term, for a serious project, I would probably just use a managed database service.

waprin··on How Google Is Challenging AWS
Thanks for the feedback, not pointy at all.

You're right my original comment was misleading, most of the GAE Standard samples are webapp2, but that's because it comes built-in to the platform and can be specified in the app.yaml, so webapp2 doesn't require people to `pip -t` to vendor Flask into the project. It might be worth revisiting if some of those samples should be in Flask or in both.

1) Guessing you already know you can use Pub/Sub for background tasks, examples here in our Bookshelf app:

https://cloud.google.com/python/getting-started/using-pub-su...

I think Product knows that the developer experience for tasks could be better and closer to Standard, but we haven't announced any public roadmap for task queues on Flexible.

2) I see references to that variable in our docs so I'm not sure where you're saying it's missing. Unfortunately you can't submit PRs for our docs, I wish you could.

Thanks again for the feedback, getting pretty off-topic so maybe good to take any further conversation to #python in GCP Slack?

https://googlecloud-community.slack.com https://gcp-slack.appspot.com/

waprin··on How Google Is Challenging AWS
> All our python examples are in framework X, that's sufficient for everyone using framework Y, right?

I work on GCP on the Python samples.

We generally pick Flask, since our thinking is that for many API calls, it is pretty much identical code in other frameworks, and Flask has minimal boilerplate.

We have quick starts for Django for all our platforms. I think Flask + Django covers a huge chunk of Python frameworks people are using.

If you think we are missing important Python samples, you can file an issue here:

https://github.com/googlecloudplatform/python-docs-samples

There are a lot of potential samples to write, so any guidance on which ones people want is always helpful to us.

waprin··on Python 3 on Google App Engine flexible environment now in beta
The other downsides are the deploys are slower, for now at least, and it's still in Beta. Beta means it has SLOs, which are like reliability goals, but it doesn't have SLAs, which means you get refunds for downtime. App Engine Standard does have SLAs:

https://cloud.google.com/appengine/sla

Beta products are also more willing to make backwards incompatible changes with shorter deprecation timelines. But overall it's certainly a lot more, ahem, flexible. Sneaky awesome feature is ability to install things like imagemagick , phantomjs, or ffmpeg, which to shamelessly self-promote I wrote about here:

https://medium.com/google-cloud/scalable-video-transcoding-w...

That's using a custom runtime, which won't be as officially blessed, but you can of course just extend from the official runtimes, since they're on Google Container Registry and open-source:

https://github.com/GoogleCloudPlatform/python-runtime

Just write a Dockerfile that starts with: FROM gcr.io/google_appengine/python

Obvious disclosure again I work for GCP.

waprin··on Python 3 on Google App Engine flexible environment now in beta
Global GCE instances within your project, yes. Not every GCE instance everywhere, that would not be very helpful :)

If you wanted to have some instances that couldn't talk to your database, easiest thing to do is probably throw them in a separate project or create a new subnet that you firewall off and create your non-App Engine instances in that subnet.

waprin··on Python 3 on Google App Engine flexible environment now in beta
Developer Relations team exists so that doesn't happen so sorry to hear. Part of the problem is some of our feedback mechanisms need work. If you go to:

cloud.google.com/python

You'll see we have a lot of tutorials that link to Github repos . If you file issues there you are more likely to get help. The caveat is we are not a support team and have no guarantees (just a likelihood), so if you need paid support look into our options for that instead.

waprin··on Python 3 on Google App Engine flexible environment now in beta
App Engine Flexible runs on GCE instances, which all have internal IPs. So you can just firewall off external traffic but allow internal, which is the default anyway.

Disclosure: Also GCP Developer Relations

waprin··on Scalable and resilient Django with Kubernetes
Oh cool, I missed your citation. I am still figuring some things out as well so I am going to check out what you've done.

Definitely happy to have you contribute to the ecosystem. It seemed like a content gap that I wanted to fill in, but at Google we would of course prefer to have a healthy external ecosystem of people writing content like yourself!

← PreviousPage 5 of 6Next →