HNHacker News
TopNewBestAskShowJobs

jackcodes

389 karma · joined July 10, 2019

submissionscomments
jackcodes··on Measuring open DNS resolver use
To extend this, I’ve never seen google promote 8.8 publicly. All recommendations I’ve seen have been from other users or forum members. It maybe that Google’s trust isn’t what it once was, causing a reduction in recommendation.
jackcodes··on Climate capitalists have serious money in climate-friendly investments
Well in this case to a certain extent, it certainly does have legs. Because the way climate change is going it looks like we won’t be around to capture the results of those probes landing.

Or at least not in a worthwhile sense (+5c and up).

jackcodes··on The cost of parsing JSON
I wouldn’t mind having this in my build step, as it’s all minified and unreadable anyway, so what do I care, but I agree with you fully.

Not only would you be missing out on readability, none of your linters will catch errors within that string any more and if you use something like prettier, well, god help you. You’re almost guaranteed to introduce more wasted time than you’ll save with this doing it manually.

jackcodes··on The cost of parsing JSON
While it isn’t exactly what you’re looking for, this is the closest thing I’m aware of for pure JS: https://prepack.io/ and outside of that o guess you’re looking at WASM, although I know this isn’t exactly what you were asking for.

But if your goal is to compile a little closer to v8 then you’d have to set v8 as your compilation target, making that only really worthwhile on the server (since you’d be missing out on all other browser runtimes). I could see such a thing being pretty useful for something CloudFlare workers where startup time is vital, and your execution environment is guaranteed to be v8. Unless of course they’ve managed to always keep them hot.

jackcodes··on The cost of parsing JSON
It is, I believe. The article seems to be saying you can get to that intermediate form more quickly by parsing the object from a string than you can parsing it as a POJO.
jackcodes··on Raising Prices Is Hard
It’s getting late my time so excuse the brief response; it’s a business expense in the sense that I’m effectively a sole trader, so I bear as much of the cost as if it wasn’t a business expense. Rather than it being paid by a multinational corporate and having to chase down someone from accounting I’ve never met.

Laziness (and liability, to a certain extent) is that I’m responsible for keeping accurate records and invoices for all my business expenses for 6 years and if I’m not in the right mood to take that on sometimes it just doesn’t quite hit the value threshold for me to process

But I appreciate your points and it might factor into my mentality.

jackcodes··on Raising Prices Is Hard
This is new to me too, so I can’t take any expert high-ground here as I’ve never had to do one either. From that perspective I’m glad that you wrote the blog post as I’ve learned a few things from it.

But as a customer I can say that you have a really good reliable service, and one that I’ve shopped around for. You’re effectively my only point of failure for personal artefacts and one of only a couple for anything work related. I do implicitly have an immense amount of trust in your product and let’s be honest, you aren’t charging all that much for it.

This is to say if you were to take the more direct and blunt approach next time I absolutely wouldn’t hold it against you - in fact I’d say you don’t need to devote so much sweat into something that is just another fact of life. Costs go up, I’ll get over it, so don’t worry more than you need to.

I can tell your heart is in the right place though which gives me confidence and thanks for your response too!

jackcodes··on Raising Prices Is Hard
You likely have more experience in that regard than I do so I’ll take that on board, but to frame my point in a more semi-positive light; I feel enough goodwill to backblaze that embarking on a 6 month project with some of your most senior engineers to deliver a credits system just to soften the blow of a price increase, in a market without a clear competitor feels like overkill. You don’t need to do all this for my dollar a month!

I do actually trust them enough to not screw me over, their price increase history alone showed me that.

Sometimes the quick and forgettable slap to the face is more pleasant than the long drawn out apology - although as you mentioned from your experience, maybe I’m in the minority.

jackcodes··on Raising Prices Is Hard
I’ll possibly be going against the grain, but they have really made a fanfare about this one. I’m a subscriber and I remember the email coming though and it felt a little too over-sensitive to me. You’re putting the prices up by a dollar a month, you’ve been losing out in real terms because of inflation for years, and I already have gigabytes upon gigabytes of data stored with you. I’m not moving for an extra $12 - and even then I was too lazy to take the promotion because it’s a business expense and having to process the additional invoice didn’t feel worth the bother. But I’ll admit that one is a more of a reflection of me than Backblaze.

I understand you’d be worried about a price increase but the email, promotion, two years of lead up time, and now the blog post comes across and a little too apologetic, perhaps. Just stick the prices up by a dollar and give me a quick “sorry guys, we’ve not raised them in a decade - we need to stay competitive” and I wouldn’t have even remembered it.

jackcodes··on The boring technology behind a one-person Internet company (2018)
It sort of depends, if you’ve worked in a couple of corporates where you have to know a handful of various tools at each it quickly adds up to having enough knowledge to quickly deploy even what hacker news considers ‘heavyweight tooling’. Most of these tools have QuickStart guides that do get you most of the way there for a basic use case. I’m running a similar solo project with an almost-but-not-quite similar spreads of technologies.

But as I said, it depends on your history and what you work quickly with.

In the article the author says they chose Ansible because docker felt too heavyweight and unnecessary. It’s true that docker has a lot of stuff you don’t need in there, but trust me when I say Ansible is no picnic. In fact I find it easier to take what I need with Docker and Kubernetes and get running way quicker than I would ‘naked’ Ubuntu machines that I need to semi-manual previsioning with shell scripts or Ruby scripts. I got up and running with Kubernetes on DigitalOcean in less than a day, and Dockerfiles using familiar technologies I’ve used before take less than an hour to iron out.

You’ll get people who say that Docker is overkill and unnecessary and far too complicated for a solo project, but then you’ll get others who believe it’s a small file with 20 lines of declarations, sat alongside a 30 line yaml file that can provision all of your infrastructure instantly across any cloud provider you choose.

jackcodes··on A Kubernetes/GKE mistake that cost me thousands of dollars
Thanks, this was almost exactly the brief validation I was looking for.
jackcodes··on A Kubernetes/GKE mistake that cost me thousands of dollars
Good point - although it’s worth clarifying that I’m on Crystal for this, meaning I’m definitely single threaded in this instance. Would that be as simple as a case of 1vCPU per pod?
jackcodes··on A Kubernetes/GKE mistake that cost me thousands of dollars
One thing that I’ve been unable to wrap my head around is how to effectively calculate the right CPU share values for single threaded web-servers.

I’ve got a project using this setup, but it’s fairly common one l- e.g. Express with node clustering, Puma on Rails etc. On Kubernetes you obviously just forgo the clustering ability and let k8s handle the concurrency and routing for you.

So in this instance, I’m struggling to see why I wouldn’t request a value of 1vCPU for each process. My thinking is that my program is already single threaded, and asking the kubernetes CPU scheduler to spread resource between multiple single threaded processes is pure overhead. At that point I should allow each process to run to its full capacity. Is that correct?

This I feel gets a lot more complex now that my chosen language, DB drivers, and web framework is just starting to support multithreading. That’s a can of worms I can’t begin to figure out how to allocate for - 2vCPU’s each? Does anyone know?

jackcodes··on Apple Watch Series 5
If it lasts for 3 days, that means I can hammer it with full brightness and cellular, and not have to worry about it not lasting a full day because the marketing speak doesn’t live up to my usage limits.
jackcodes··on Ask HN: What is key to good technical documentation?
I agree, and one of the examples is your use case - undocumented enterprise software. To go back to the title, brevity makes the documentation good, but I’d rather have bloated in-date documentation than no documentation.
jackcodes··on Ask HN: What is key to good technical documentation?
Apologies for this, I’ve clarified this in my edit. I’d realised immediately after I’d submitted that it’s for a different purpose. Hope the edit clears it up a bit more.
jackcodes··on Ask HN: What is key to good technical documentation?
Brevity. Assume your users are intermediate developers and only tell them what they need to know.

The worst documentation I had to parse recently was react-beautiful-dnd, and I’m saying this somewhat conservatively as it’s evident a lot of effort has went into producing something comprehensive. But I was paralysed by the volume of it, reams and reams of methodology and design decisions, how to contribute, and the history of the project. In the end I had to use one of the community codepen examples to get where I needed. Without meaning to stereotype too heavily I see this mostly in junior friendly React projects where you have more people contributing emojis to markdown than you have architecting your APIs. In case anyone from react-beautiful-dnd/Atlassian reads this, you have all the documentation you need, but make it less like a textbook and more like a two page CV.

The best documentation I’ve seen is spider-gazelle (crystal). It’s the prefect balance of plain-English explanation and example code. It probably helps that is was architected and written by the same person, and they were able to really hone down on exactly the right information to transfer.

Edit; I’ve just realised that your specific example is for an internal enterprise project, rather than a public facing library so the variables you optimise change slightly. I’d be maintaining and developing this software as a contributor, and the documentation is specifically for on-boarding me. I’d want to see more of the architecture rationale, point-in-time thought process, and explanations of business constraints that led to certain decisions being made (e.g. what prevented optimal architecture first time around)

jackcodes··on Ask HN: How do you track your blog traffic?
Front it with cloudflare and you’ll get request analytics for free.
jackcodes··on Parallelism in Crystal
Not yet but not far off... It's an e-learning platform and student management system, backed by postgres and fronted with React. For the most part it has worked well but I need to do a bit more tightening up before I'm happy releasing it into the wild.
jackcodes··on Parallelism in Crystal
There's actually a surprising amount available in the stdlib for your typical web project. By way of example, I'd always hated how in Ruby each API wrapper gem would make their own decision on which HTTP client they used, so you could end up pulling in 3 or 4 separate libraries just to make HTTP calls to a 3rd party API. People may disagree but I think this is (was?) largely due to Ruby's Net:HTTP feeling janky to use, at least compared to Faraday and the like. Here, the HTTP modules within the standard library feel right, and I've not needed to reach out for all that much from the ecosystem.

But as a simple example I accept that API calls to third party services is low hanging fruit so in terms of finding drivers for lower level protocols I've not had an issue that I'd class as a blocker. There are times where I've had to extend libraries or write a parser for this-and-that (e.g. PostGIS and Paseto, both of which were unused this time round) but I find I need to do this less and less as time goes on.

You do need to reach into the forums or gitter on rare occasions but I can count on one hand the number of times I've needed to, and it's typically because I was trying to do something unusual and quite low-level on the HTTP stack - as in something I've never had to do in a non-Crystal project, such as sending a specific packet. I've always found help there too and people are happy to engage.

jackcodes··on Parallelism in Crystal
I’ve been using Crystal on-and-off for a couple of years and have started to use it as my primary language for most non-enterprise work. The current web-app I’m building is primarily written in Crystal and it has been an absolute joy to use, and even if I don’t strictly need parallelism in this project I’m glad they’re pushing though with the big language changes.

It’s been so successful at everything I’ve needed it for, I wouldn’t consider going back to either Ruby or similar interpreted languages, regardless whether it’s a little CLI helper or a larger monolith server app. I’ve found my ability to allow the compiler to catch bugs incredibly reliable without feeling bogged down with types. I hadn’t worked much with typed languages previously and as a Ruby developer it allowed me to ‘learn’ types without even feeling like I was doing any learning.

It’s still somewhat of an obscure language so I thought it would be helpful to describe my experiences with it.

jackcodes··on TUI Demo – Terminal Interface to Mastodon
I’m not saying these are the only two options by any stretch, but given the choice between a TUI and an Electron app there’s no contest. I like that a TUI is constrained by the view layer; that is there’s no images or videos to render, no HTML to parse into pixels. It keeps things naturally light and if it’s complex to use I’m fine with that too.

They also work on the server. You’d be hard pushed to find anyone who says installing an Electron app on the server is a good idea.

jackcodes··on Ask HN: How to Make Money from Web Scraping?
The coolest use of a botnet I’ve seen in a while!
jackcodes··on Microsoft Is Killing ePub Support in Edge Classic
You say this now but I’m, for one, very glad pdf.js exists.
jackcodes··on AI pioneer accused of sex with trafficking victim on Jeffrey Epstein’s island
The ability to leave.
jackcodes··on Hundreds of exposed Amazon cloud backups found leaking sensitive data
I really enjoyed this, thanks. Do you have any other similar ones, or tangentially related bookmarks you could share?
jackcodes··on Ask HN: Is “new” Reddit completely unusable for anyone else?
Also accessible at https://i.reddit.com
jackcodes··on Jony Ive’s Mistakes: When Beautiful Design Is Bad Design
I often read these critiques that Steve Jobs was the one keeping Jony Ive in check in a way that Tim Cook can’t, and even if it is true, is there no significant criticism coming from below Ive?

As-in, is there really a full design team that are saying yes to Jony’s demands of an aluminium phone that is painful to hold to the point of requiring only the CEO to step in? Or does criticism from anyone below you not count any more?

jackcodes··on U.S. Fighters About to Get Infrared Sensors That Could Be Huge for UFO Reporting
Could be the case that people don’t know about them, because after all, they aren’t linked anywhere.
← PreviousPage 3 of 3