HNHacker News
TopNewBestAskShowJobs

ttiurani

1,088 karma · joined January 1, 2013

tiuraniemi.org
submissionscomments
ttiurani··on Standard Notes is a safe place for your notes, thoughts, and life's work
Company information can in fact be found on the website, but I hate it that they use a .org website when they're clearly just yet another startup.
ttiurani··on Against Hickelism
If you do read Roser's thread, please also read Hickel's response:

https://twitter.com/jasonhickel/status/1380548416082735107

ttiurani··on How People Get Rich Now
Pg looking at the top 100 people and giving his essay the heading "How People Get Rich Now", makes for a very distorted definition of "rich". How many hundreds of millions or billions does it take to be rich in his eyes?

When argumenting based on statistics, labeling of the graph or text is where the ideology really shines through.

ttiurani··on M1 dev setup with a virtual Linux box
Personally pushing the edit, compile, run cycle time as low as possible has always been the reason I have stayed away from dev VMs. For 99% of computer uses a VM is fast enough but unfortunately for many programming tasks, it is not.
ttiurani··on Embrace the Grind
This article is very on point and every team benefits tremendously from people who do just spend the time and sleigh the monsters.

In a bigger team, a big second reason why these kinds of very uncomfortable tasks aren't done is that they also often don't produce immediate business value. You then have double resistance: the PO wants features from you and grinding is boring.

The people who first get to a position where they can spend the time and then do spend the time (instead of doing the even more fun tasks), are worth their weight in gold.

ttiurani··on Against Hickelism
This exactly is the much more important second point Hickel is making. Even if growing GDP does mean tiny scraps of wealth are left to lower the number of the extremely poor[1], it's nowhere near resource efficient enough to be feasible within constraints of climate mitigation, biodiversity conservation, and resource depletion.

Pumping up GDP is not a sustainable way to reduce poverty. Gates and other people who benefit the most from the status quo continuing to advertise for this graph gives a very false sense of optimism.

1: $1.90/d is lower than the consumption level of slaves in the US in the 19th century. Helping people get slightly above the level of slaves is of course better than not doing that, but it is hardly enough.

ttiurani··on Against Hickelism
I understand that academics are just humans, and can lose their temper like the rest of us.

However what I find very troubling is that the main point that Hickel raised in the blog post[1] – GDP data has the particular potentially crucial problems Allen has raised when used to assess historical poverty – Roser chooses to not actually address it, but instead throws blanket statements of there being continued discussion between academics of different datasets and their merits.

However this particular graph of historical extreme poverty is used by the most powerful people in the world to advocate for continuing with the status quo. That is why it caught Hickel's attention. It is therefore very important that the heading of the graph is very well justified.

As a layperson reading Allen's research, and knowing there is a discontinuation point in the graph 1981 when the dataset changes, I think the graph ought to be labelled very differently. Roser continuing to label it as "extreme poverty" knowing there is an ongoing debate about what data if any is a good proxy historical poverty, and not answering head on Allen's criticism, really makes me not trust Roser.

1: https://www.jasonhickel.org/blog/2021/3/28/extreme-poverty-i...

ttiurani··on Against Hickelism
> It seems to envision a world that is zero-sum, or close to it, with rich countries hoovering up the riches that should be flowing to the Global South.

Hickel's research makes the argument that this hoovering is exactly what is happening, on a massive scale:

https://www.tandfonline.com/doi/abs/10.1080/13563467.2021.18...

If Noah Smith wants to rebuke this argument, he can't just "as if" it away. He needs to do the research that proves otherwise.

ttiurani··on Against Hickelism
If you look at the below thread by Hickel, Roser is very uncivil (for an academic), childish and misdirecting. He also does not answer Allen's criticism. Hickel on the other hand remains very composed and courteous.

Roser also keeps constantly misrepresenting degrowth with a straw man that the global South needs growth. He has been told time and time again that every degrowth demand is only for the rich countries and everyone agrees the poorest countries needs growth, but still he makes the same claim over and over.

From this behavior, I've come to see Roser as a bad faith actor.

https://twitter.com/jasonhickel/status/1376097068251541504?s...

ttiurani··on Google’s FLoC Is a Terrible Idea
Fully agree with EFF here, and what's most frustrating is that Google could actually be on the side of banning tracking, and win big over Facebook.

Google had a fully working, very lucrative business model in search term based ads. You search for "office rent Arizona", and Google shows you ads about offices in Arizona. No privacy violations.

There was no other problem with search term based ads except that Google wanted to pump up shareholder value faster than what that could give them.

ttiurani··on Commenting vs. Making
> Have you ever thought of X?”

> “Cool! Yes, but there’s 12 other things we thought should come first. You’re welcome to go and do it. We’ve got a big tent and a lot of shit to clean underneath.”

> “Actually, can’t help, gotta take my dog to therapy, bye!”

This part especially is so familiar. It tends to get emotionally pretty exhausting, when you've put in countless hours to make so many things good, only to get constantly reminded that the not-as-important problems that were scoped out for the time being, are bad.

In software under active development there is never a shortage of things that could be improved, especially wrt developer experience. It is very hard not to take personally the whining – especially when it typically comes with very, very little actual effort to make it better.

Because I know this pain so well, I only make these kinds of "suggestions" when I know I can commit the hours to make at least a PoC of what I'm suggesting.

ttiurani··on Changes to LastPass Free
Good to know, thanks. I'm on OSX. Maybe there's something funky with my account data then. I emailed their support, let's see what happens.
ttiurani··on Changes to LastPass Free
I did the same switch too a while back, Bitwarden has been really solid.

Interesting thing: I just now remembered to delete my LastPass account, but the delete account flow breaks totally. Just end up in a modal without any content in it, both Firefox and Chrome.

I'm wondering if they are even deliberately blocking deleting accounts for damage mitigation?

ttiurani··on Degoogling My Life
“Arguing that you don't care about the right to privacy because you have nothing to hide is no different than saying you don't care about free speech because you have nothing to say.”

― Edward Snowden

ttiurani··on Well, Actually – Physics Answers
Very OT (and hope this is not frowned upon) but just want to say thank you for introducing me to "bailiwick". As a non-native speaker I will make it my goal for 2021 to use it in a sentence!
ttiurani··on Your Computer Isn't Yours
I need XCode to build software for iOS and OSX, and there isn't to my knowledge any other feasible, performant and off-line capable way to do that beside running OSX on a Mac.

This is the only reason I had to move away from (arch) linux and it saddens me every day.

ttiurani··on macOS unable to open any non-Apple application
I need XCode to build software for iOS and OSX, and there isn't to my knowledge any other feasible, performant and off-line capable way to do that beside running OSX on a Mac.

This is the only reason I had to move away from (arch) linux and it saddens me every day.

ttiurani··on Why Apple ditched PowerPC, and what it says about Apple ditching Intel
Most of the top Finnish software consultancies have a (basically) unlimited budget for your main laptop and give you freedom to pick whatever you want.
ttiurani··on Block Fingerprinting with Firefox
In addition to the many privacy problems, advertising is rarely about passing timely information on things you need. Ads are mostly used to fabricate desires for things you don't need. While being good at critical media literacy helps, none of us are immune to this kind of manipulation and even less so when the ads are carefully targeted.
ttiurani··on Coc.nvim – Intellisense Engine for Vim8 and Neovim
I switched my neovim setup from ale and deoplete to coc.nvim a few months ago, and am thrilled about finally being able to write also all my java with neovim. There are a few rough edges, and of course java features are miles behind IntelliJ, but the benefit of being able to use one editor to rule them all, is a massive productivity boost. Don't think I'll switch back. Also Typescript with a language server is working really well.
ttiurani··on Maybe You Don't Need Kubernetes
I was referring to using helm to configure my own charts to work in different test environments. Wrt public helm charts, you want to understand the chart install. Most of them are really dead simple if you know k8s.
ttiurani··on Maybe You Don't Need Kubernetes
I agree with this: after you know k8s, it is pretty darn great. Two more points:

1. K8s of 2019 is significantly better than K8s of 2017. With stable Deployments, StatefulSets and CronJobs and binaryData in ConfigMaps etc., I haven't missed a single feature in my latest setup: I just typed away helm'd manifests and things just worked. This is in stark contrast to the dance around missing features with initContainer and crond container kludges you had to do in 2017, when I built my first kubernetes setup.

2. People tend to conflate maintaining a k8s cluster to using it. Setting up your own k8s cluster with HA masters, is likely still a royal pain (disclaimer: my attempt at that are from 2017 so could be wrong, see point 1). But for a small company, whipping up a cluster from GKE is a breeze, and for big corps, company-wide cluster(s) setup by an ops team (OpenShift has been ok) is the way to go. The end result is that as a developer you just push containers and apply manifests.

ttiurani··on I interviewed at six top companies in Silicon Valley in six days
I personally have only anecdotal evidence, but I've read now many stories where the interviewers of these giants refuse to engage in a two-way, human-to-human conversation with the candidate but instead make the ordeal deliberately prolonged, stressful and unconfortable. I'd call that abuse.

Even though I'm sure there is a lot of variance between interviewers, I can't help but think that the abusive style of whiteboard grilling must "work" in that it results in able workforce, and that might be because of the reason I suggested.

ttiurani··on I interviewed at six top companies in Silicon Valley in six days
I think the hidden agenda here might be that big corps also test for the candidate's a) motivation and b) obedience. Are you the sort of person who's willing to learn whiteboard programming on your spare time, and then tolerate abuse from the interviewers? The type of unethical business most of the big corps do works best with subservient, diligent code slingers.
ttiurani··on Ask HN: Best talks of 2018?
"Maybe Not" by Rich Hickey: https://www.youtube.com/watch?v=YR5WdGrpoug

Another excellent talk by the creator of Clojure, and like the previous ones, relevant for all programmers.

ttiurani··on Ask HN: What's your favorite way of getting a web app up quickly in 2018?
For my last project for a new business website, I just used Github pages w/ Cloudflare for SSL, all free.

Because the site needed a unique brand look n' feel, I opted out of Jekyll and used Foundation 6 as a base and node-sassed my styles with npm scripts and custom svg:s. For cache-busting I run hashmark with postbuild. Then I just write HTML.

Development is easy, things work nice, site is very fast and it looks great.

Moral of the story: starting with just static HTML and CSS is the right choice a lot of the time. Don't complicate things before you need to. And when the need to, only make dynamic those parts that can't be static.

ttiurani··on Is software development really a dead-end job after age 35-40?
37 with 17 years in tech and absolutely love writing code every day. Because I've always been good at keeping my expenses low, I'm also now making a good enough living to never have to think about money.

But what has kept me constantly improving is trying out many diffent things over the years: aside from having all of the roles of a software team at one point, I've also been a researcher, coach, consultant and CEO. Also in non tech-related fields.

But now I'm again back to being a programmer. It's the position where you can make the biggest difference.

ttiurani··on Ask HN: What web framework do you use? Why did you choose it?
Koa 2 with Nunjucks, Sequelize and Typescript. Koa 2 with async/await is a real pleasure to work with and Nunjucks is powerful enough for pretty much every templating need. Sequelize has been a pretty good ORM. Typescript brings the right amount of type safety to catch easy mistakes while typing. Angular 2 for SPA:s.
ttiurani··on Docker not ready for primetime
I've been running Docker in production for a year and both of these issues were very real.

I got bit hard by this issue:

https://github.com/docker/docker/issues/20079

when CoreOS stable channel updated Docker. All my data volume containers broke during the migration and migration could not be reverted.

As for the second issue: when two systemd services that pull containers with the same base images would start simultaneously, they would deadlock pretty reliably. Had to flock every pull as a result. This might be fixed by now though.

ttiurani··on Show HN: The Obvious Architecture
The problem with one JAR is that you will then have to configure runtime in production which delivery is used and also, if there are alternative plugs (or jacks), what set of plugs you activate. That would have to be done with an external config file or database row, command line parameters or some super GUI. The problem is that those are really dangerous configuration options, because changing any of them, results in catastrophic failure: e.g. someone might accidentally change a plug configuration option to another value, and your MySQL turns into MongoDB which you don't have.

That makes you want to _not_ have one JAR and then keep your fingers crossed that it is configured right. Optimally things should just work (tm) in production without any configuration. (Not to mention if you try to sell your software, you can not sell just one package because just by changing the configuration from delivery1 to delivery2 you get the second product for free.)

With dynamic languages what you presumably would want to do is just zip the right files and that's that (although you still need system tests that verify that the zip has the right stuff in it), but with static languages it's more tricky. One way to get that would be to have A-core.jar that has all code that is common to every installation, and then A-installation1.jar with the right delivery and plugs for the first installation, and A-installation2.jar for files for the second installation etc.. Because in the installation JARs there would be only one delivery, and only one plug per jack (and one jack per contract), things would work without any additional configuration.

Now the problem with Maven is that you can't easily get many JARs from one src/main/scala. Or can but things get complicated when start releasing stuff to repositories. Which results in the really messy directory structure I outlined above, or then you would have to figure out some other directory structure that would work better. Of course the best would be to hack Maven to work around the "one JAR per src/main/scala" limitation. Or write a maven-obvious-plugin. :)

The backstory here is that packaging tools easily mandate directory structure. Directory structure in turn directs source packages (inverted URL in Java), and source packages tend to influence the architecture.

The cool thing in Obvious is that by making the directory structure itself reflect the architecture, code is automatically steered towards good practices. Of course you can create a great code architecture with any directory structure, but in many cases _where_ you can put stuff, influence _what_ you put in there.

So in some cases, it's actually the supposedly trivial packaging of sources that is a culprit for bad decisions. Which IMO makes packaging also non-trivial from an architecture standpoint.

← PreviousPage 5 of 6Next →