HNHacker News
TopNewBestAskShowJobs

rapala

228 karma · joined December 20, 2010

[ my public key: https://keybase.io/rahcola; my proof: https://keybase.io/rahcola/sigs/sIb3yWKlDdFiRFkLyIA7q0RyqUeceOLN168-HM9tbC4 ]
submissionscomments
rapala··on The K-shaped recovery
The article is unfortunately paywalled so I couldn't read it. That ratio is indeed more sensical and interesting. But I think it still misses two points.

First, the distribution of tax payers to different marginal tax rate brackets differ. That is, how many percent of US tax payers actually pay top marginal rate vs how many in Belgium do.

Second, the differences in purchasing power. What does the average income (or the top income for that matter) actually get you in different countries.

rapala··on The K-shaped recovery
You can't really compare tax rates between countries like that. Some 20% of households in the USA earn 112000€ or more per year, where as only 6% of house holds in Germany earn 72000€ or more per year.
rapala··on MIT Energy Initiative study reports on the future of nuclear energy
Atleast here in Finland the political hurdle is so tall that when the green ligth is finally given, they basically have to build the biggest reactor possible.
rapala··on How I Learned to Stop Worrying and Love the State Machine
One way to get at the end conclusion that the original modeling is wrong is simple logic.

If given

1. Player can have a Weapon

2. Sword is a Weapon

3. Wizard is a Player

The from the statement "Wizard cannot have a Sword" follows a contradiction that "Player cannot have a Sword".

rapala··on A Crash Course on ML Modules (2015)
> You seem to trust that programmers will play by the rules, even if the compiler doesn't enforce them.

I've been trying to say the exact oppisite. C, C++, Javascript, all those languages provide ways to define abstract datatypes that cannot be circumvented (by "normal" code. Even Haskell has unsafePerformeIO). My latest argument was that people decide not to use those abstractions not because they are unavailable, but because it is more ergonomical or performant not to. The same happens even in ML, not all data is abstracted as an abstract data type.

rapala··on A Crash Course on ML Modules (2015)
My comment "not something people do" was about directly accessing memory to circumvent the private data abstraction in c++ and I stand by that.

I admit that I kinda pushed you into it, but you are moving the goal post. People indeed use public fields in languages like C and Javascript.

In C it's often done for the sake of performance. Hiding data behind a pointer has a cost.

In Javascript I would say it's lazyness above all. Front end programs often aren't that big nor pinacles of code quality.

But it is possible to define abstract data types in both languages. ML makes it a bit easier and some times even more performant, but it doesn't "own" the idea.

Abstractions are quite like immutability. You can enforce both in many languages, some just give you better tools for it.

rapala··on A Crash Course on ML Modules (2015)
Yes, you can access raw memory and flip bits to modify a private member of an object (and it migth even be defined, not too sure about that thou). But I don't find that an valid argument for the statement that you can't do abstractions in c++. That's just not something people do.

The c++ version of your example would be, if I understood your code correctly, to take an std::vector as an constructor parameter, copy it to an private field and sort it.

rapala··on UK mass digital surveillance regime ruled unlawful
> That means it is illegal because it goes against the (higher) EU law.

It actually does not mean that. The courts cannot ignore an Act of Parliament even if it conflicts with the Human Rigths Act but can o ly give an declaration of incombability which they have done.

rapala··on UK mass digital surveillance regime ruled unlawful
The Human Rigths Act specifically does not grant the courts the possibility of not following Acts of Parliament when the too conflict. The courts can only give an declaration of incombability which they have done. This is how an Parliamentary sovereignty works.
rapala··on UK mass digital surveillance regime ruled unlawful
Umm... that is exactly how an parliamentary democracy works. The parliament can enact any law. Yes, many such systems contain laws that overrule all other laws and are often harder to change. These are often called constitutions. But I can't recall any constitution that could not be changed.
rapala··on Commitment vs. Forecast: A Subtle But Important Change to Scrum (2011)
I have always thought commitment in this context as "we commit this much time for this task, then we stop and reevaluate" instead of a deadline.
rapala··on Commitment vs. Forecast: A Subtle But Important Change to Scrum (2011)
Exactly. The point of time boxing is that you have to stop and reflect on the time spent. It gives you the chance to switch tasks if priorities have changed or to split the current task.

Or to go on to the next sprint with the same task. But here lies the problem in many cases. The sprint is taken not as a time box but as a deadline. A sprint should meen: "You can work 2 weeks, 5 days a week, 8 hours a day on this. Then you stop to think."

rapala··on Ask HN: What do you love/hate about terminals? Would you change them?
This is pretty much how bash completion works...
rapala··on Low Hanging Fruit of Programming Language Design
It depends. If the duplicated code is supposed to do the same thing in both places then the two pieces of code are already dependent. You change one of the duplicates, you need to change the other one two.
rapala··on The Shock of Sweden's Housing Market Is Hitting the Country's Currency
You'r missing 300k from your after tax sale proceeds. You could still afford the smaller house with 263k left over. You would make a 37k loss yes, but you could buy the new house. An important distinction in my opinion.
rapala··on Understanding SOLID Principles: Interface Segregation Principle
As I understand this, the client here is not the caller of the methods defined in the interface, but the one implementing them.

Caller has no problem just ignoring the methods that it doesn't need. But the implementer doesn't have that possibility. If you have a read-write interface and a read-only source, you need to resort to subpar solutions like throwing an exception.

rapala··on Theia – One IDE for Desktop and Cloud
It's off-topic, but I just have to ask. Why? Why would local copies be disallowed?
rapala··on Close-Up View of DNA Replication
No, not really. Quite the contrary actually. It would be very unlikely that a volatile and nonreplicating molecule would be the carrier of biological information through billions of years.
rapala··on Close-Up View of DNA Replication
My understanding is that this process didn't really come into existance but stayed in existance. Countless other arrangements failed to replicate and endure.
rapala··on Modules vs Microservices
If a micro service is independent it makes no calls to other micro services. Thus the system has a single service and that service is a monolith. Contradiction, thus a micro service cannot be independent.
rapala··on There Are Three Programming Paradigms (2013)
Yes, but the resolver is not specific to sorting. The runtime of Prolog contains no list sorting code. (Or if it does, it does so as an optimization.)
rapala··on I had a health crisis in France
>I-don't-want-to-pay-for-others != I will not insure my health.

But it is. Insurance works by pooling money from a group of people where only few are going to use it.

>People never ask "So, what does this drug/treatment cost?" but rather "Do you accept my insurance?"

Which makes sense, as survival and physical and mental well-being are humans primary needs.

rapala··on Sputtering Startups Weigh on U.S. Economic Growth
Depends on the industry. If your firm needs to buy heavy equipment for example, it's relatively common to get a loan for that from a bank.
rapala··on Top-level await in JavaScript is a footgun
Well, the runtime then runs the Tasks in a thread pool, so using Task.WhenAll is just a one more item to the list of options in that sense. It is a nice abstraction though.
rapala··on There are no particles, there are only fields (2012)
> As Korzybski said "the map is not the territory." Trying to resolve wave/particle duality is trying to impose one of two maps from other territories to a new one.

As a CS graguate, I would call it the halting problem. A mathematician would refer to the Gödel's incompleteness theorems. No formal system without paradoxies can be used to prove all true statements.

rapala··on July was the hottest month ever recorded, according to Nasa
Is the necessary volume achievable, both in land required and producing the actual panels? I'm under the impression that efficiency drops when you move towards the poles, where many of the developed countries are. Also, do solar panels still require rare minerals to manufacture?
rapala··on How to avoid brittle code
All the dependencies of a unit are part of its API. You may not need to give them at every call, but you do need to give them atleast once. Whether the unit calls MissileLauncher::launch or not is in my opinion part of the external behavior of the unit.
rapala··on Giving up on test-first development
Testing practices are orthogonal to the cathedral vs bazaar idea. Linux is a great example of this. Anyone can checkout the code and work on it, but upstreaming the changes requires coordination and approval with the community.

The lessons by Raymond are also given in the context of OSS. Unfortunately it would be extremely difficult to find a team of developers that are passionate about the kind of stuff that SAP is written to solve, for example.

The lessons of Robert Martin and others are about how to be a professional developer. When you are writing software for someone else to use and they pay you money to do it, it is your reaponsibility to think about quality, extensibility and maintainability. It is not your job to express your self.

My take is that the point of TDD being so rigid is that a professional should always follow best practices, not just when they feel like it or when it is easy or convenient to do so. But TDD is an ideal and sometimes, or maybe even most of the time, there are externalities that make you fall short of that ideal.

rapala··on Giving up on test-first development
How many of those side projects ended up being 6 million lines of code maintained over 5 years? Because those are the kind of code bases I have in mind when I'm weigthing the pros and cons of TDD or other testing practices.

When reading Uncle Bob and others I have always got the feeling that the "goal" of the practices described is to have systems that can be maintained and extended for years by different people and teams. It never crossed my mind that Uncle Bob would recommend TDD for that tic-tac-toe I wrote to learn Buzzscript.

rapala··on Golang: channels are not enough
In your run of the mill webapp you rarely have state outside the db and caches. What little you have can often be modeled with a single agent or atom. So no need for refs.

What you do have in webapps is synchronization between concurrent processes. For that the STM primitives don't offer much. The core.async on the other hand is a great fit.

Page 1 of 6Next →