eggestad's comments

eggestad | 3 years ago | on: The hyperinflation gallery

Not just a supply shock. Supply shock of food and/or fuel(energy). These are the absolutely need to have that you can't stop buy no matter what. Demand can't go down. Prices of food and fuel going up, you stop buying nice-to-have to keep up with food and fuel prices.

You can actually find food/fuel scarcity in every case of hyperinflation where we have some kind of statistics (which in less than 2 centuries).

Scarcity of nice-to-have goods and services will not trigger hyper inflation.

eggestad | 3 years ago | on: A non-fossil alternate history for civilization and computing

Yes we would have run thru the forests of the world in record speed. Simply moved factories after trees until they're all gone.

Railroads would have been running on wood until we ran out, ditto with steam ships.

Electric wind turbines would have become the major electric energy source very early on. Solar would still be 50-100 years off.

Bioethanol would have become a big thing before 1900, same energy content as coal, so maybe even before we ran out of tree. However as so much land area would be dedicated to growing bioethanol, the food glut we've had sine 1950 would not have occurred, so global population would be substantial smaller.

eggestad | 4 years ago | on: Why America is dangerously polarised – and Europe is not

Pretty much nonsense and just an attempted excuse for not doing any reforms in the US.

Europe was much more popularized than the US during the cold war between the hard left and the hard right, a polarization that followed cold war ideological lines, and that polarization just vaporized during the early 1990's when the cold war ended.

All the "structural" difference cited existed in Europe all the way back to WWII and in most cases longer.

Another thing is that as with most US journalists, there is an aversion to read anything other than English, thus they go to the British isles and present the UK as "Europe". The reality is that as far as democracy and polarization is concerned, the UK in particular is doing quite poorly. Their problems stems from the same root cause as in the US: Namely single seat constituencies and First Past The Post election.

On the continent you find little single seats and FPTP, and in the countries with least polarization and the best performing democracies you never find it. It's all multi seat constituencies and Party List elections. An reform that is quite possible to adopt here in the US.

eggestad | 7 years ago | on: Instant runoff voting is the system we need

It never ceases to amaze me that people fail to see what is the real cause of dysfunction in your election system.

It's the single member constituency.

Also known as single member districts. This is what really ails your election system.

You can toy around with IRV, STV, AV, two round voting, etc etc etc but you will never really fix it. It seem that people think a "real fix" is a three party system. I call BS, you really need 6 to 8. That means multi member constituencies.

Once you go multi member you're very quickly arrive at party list proportional representation as your election system.

eggestad | 8 years ago | on: The Case for Writing a Kernel in Rust [pdf]

Let me be the contrarian to make the case for NOT writing a new kernel at all (no matter what language)

Many a year ago (1997-2000) I was working on banking and finance software. I was a part of that breed of programmers that loath cobol and wanted everything to be in an object oriented language. (C++ was the poison of choice at the time.) The was a particular evangelical group of us in this company.

With this group I found my self in a meeting with one of the old timers, business graduate, his jobs was to explain to us CS diaper babies how banking and finance actually worked when we wrote the software. (surprisingly NOT we're actually clueless about the bigger purpose of what a core banking system is fore (other than the obvious)).

After patently listening to us with the facial expression that we're all diaper babies, he asked a rather pointed question:

OK, supposed we did this, write a new system from scratch using OO programming and all the other industry standard components as of today, what new features to the end user can you build? Translated, when he was going to walk over to the bank to sell it, what would be his pitch?

I got the message, what new pitch would the bank get to get new customers? Or simplified, when was the last time you went in to a prospecting new bank and asked 'What programming language or paradigm is your core banking system written in?'

I don't give a shit about what language a kernel is written in, only what the system calls do. Please tell me what system call you can write in RUST that you can't write in C.

The first time the problem arose when it was necessary to translate one HW assembly to a new CPU, the people at the time took a look at the problem and asked the question. What is easier, write an assembler A to assembler B translator, or write the kernel in the most minimal language possible that then can be compiled for an infinite HW architectures. The answer was simple; C.

The answer is equally easy now. There is no system call you can implement in RUST that you can't implement in C.

Just like core banking, finance and insurance systems are still in COBOL, the OS kernels will be for the foreseeable future in C.

The case for writing a kernel in RUST should be because a need a fun hobby. The thing is that a proof of concept kernel is done when you've doen 10% of the work. The remaining 90% is just mind numbingly boring shit that you'll never complete. Even if you do, what's the end user's justification to switch?

On the issue of micro kernel vs monolithic kernel, I'll most humbly refer to Linus Torvalds previous statements.

TJ

eggestad | 8 years ago | on: Ask HN: What is China doing with 1.1.1.1?

my guess is that mobile networks do something with it, or some mobile network equipment do something wierd.

I'm in Norway and it seem that a telenor (Norwegian telco) box respons to it:

# ping 1.1.1.1 PING 1.1.1.1 (1.1.1.1) 56(84) bytes of data. 64 bytes from 1.1.1.1: icmp_seq=1 ttl=246 time=67.3 ms 64 bytes from 1.1.1.1: icmp_seq=2 ttl=246 time=57.9 ms 64 bytes from 1.1.1.1: icmp_seq=3 ttl=246 time=77.4 ms 64 bytes from 1.1.1.1: icmp_seq=4 ttl=246 time=76.1 ms

# traceroute 1.1.1.1 traceroute to 1.1.1.1 (1.1.1.1), 30 hops max, 60 byte packets 1 gateway (192.168.1.1) 1.738 ms 1.746 ms 2.259 ms 2 77.16.1.146.tmi.telenormobil.no (77.16.1.146) 58.505 ms 64.686 ms 64.701 ms 3 10.72.52.250 (10.72.52.250) 64.703 ms 64.684 ms 64.718 ms 4 ti0001a401-ae14-21.ti.telenor.net (193.212.40.13) 71.297 ms 71.320 ms 71.316 ms 5 ti0300c360-ae49-0.ti.telenor.net (146.172.98.241) 87.921 ms 87.927 ms 87.921 ms 6 ti3163c360-ae8-0.ti.telenor.net (146.172.101.194) 87.751 ms 44.302 ms 56.143 ms 7 ti3153c400-ae5-0.ti.telenor.net (146.172.101.221) 56.130 ms 56.133 ms 56.112 ms 8 ti3153d400-ae3-0.ti.telenor.net (146.172.100.82) 62.571 ms 69.241 ms 69.198 ms 9 * * * 10 ti3171a210-xe3-11.ti.telenor.net (146.172.81.102) 68.961 ms *

eggestad | 8 years ago | on: How did a 30 year-old Su-22 defeat a modern AIM-9X?

Check wikipedia again

an AIM120C is 300-400k

an AIM120D is 1.7M (I think it was listed as 1.2M last I checked this page)

According to this http://www.f-16.net/f-16_armament_article1.html a sidewinder in 1999 had a unit cost of 55k-85k which would be 9L,M, or P most likely. 9X did enter service until 2003

These toys, much like the planes carrying them get progressively more expensive in newer version.

But the cost ratio stay much the same. You get 4-6 AIM-9 for the cost of one AIM 120

eggestad | 9 years ago | on: Banks should let COBOL die

most moves from mainframe to *nix, windows or others are a port of existing code to a new OS. NOT a complete rewrite.

eggestad | 9 years ago | on: Banks should let COBOL die

If you read the article carefully you'll notice that most banks DO NOT maintain their own software! They licence the software, and usually the job of running the system, from a software house. The article is based on an intervjue of the CEO of Auka. Auka is a software house for a peripheral piece of banking software. (read, he's selling software licenses). Try to look at this from the banks point of view.

My first job was in one of these software houses for banking and finance(B&F) who made both core system and peripheral software.

A bunch of us programmers tried to make the same sell to one of the bankers we had on staff. (You need bankers to do the job of products manager in this business). He looked at us like we're morons, and asked a rather pointed question: "OK, say we rewrite the whole software stack in C++ (this was 1998). What NEW banking products can we make in C++ we CAN'T make in cobol?" Answers is of course; None, zip, nada. Last time you changed bank, did you ask who's banking system is being used and in what language it was written in ? I'm guessing not.

So banks go to the software houses to license a core banking system, and they care pretty much about only two things: 1) Is it solid (i.e bug free. Few things evaporate trust in a bank faster than there being questions about the banks ability to do basic math right). 2) price

There have been a few cases when a new core banking system have been written from scratch, and most have been failures due to being too buggy when launched. Word get out among the banks and the system is dead. All will wait until it's proven, no one will be the first one out of the gate. The bug free requirement is a show stopper from the getgo.

On to price. The development cost of such a system is in the neighborhood of 250 - 500 million USD. The only way to get that down is to strip down the features to a much simple system. The other software houses are just going to sell an existing cobol system, with disabled features to match yours, and underbid you.

Bankers, unlike most CS majors, actually understand how to calculate cost of investments! Say 500M USD development cost, a future value calculation will yield that you'll need a return-on-investment (ROI) of 20-50M US EVERY YEAR FROM HERE TO INFINITY to make the investment pay off. (That's PROFITS, not revenue)

Core banking systems are so feature stable, and have been so thoroughly debugged over DECADES, that there is very little maintenance to be done. I'd expect that each of these systems have a staff of 10-20 programmers maintaining them (and they spend a lot of time doing other things). How big a staff of maintainer will you new banking system need after launch? Even if it was zero and you assume you pay each maintenance programmer 250k USD, a staff of 20 still only cost 5M USD.

The article have a section "what can the banks do" left out a fourth option. Instead of using CS majors to code cobol, you use B&F majors, and give them a 1-2 year education on doing cobol programming. The CS majors need 1-2 years of on the job experience to reach a B&F Bachelor level understanding of what a core banking system need to do anyway. Cost is the same.

One last point, say you do write a new system today your choice of language will be either Java or C#. As database there is no viable alternative to SQL. In 30 years no fresh CS major will touch Java or C# with a ten foot pole, and you'll have to do another rewrite to the tune of 100-200M USD (assuming that programming will require less hands).

Much cheaper to keep on educating non CS majors to do cobol.

eggestad | 9 years ago | on: Ask HN: How do you decide for a backend language?

First revel in the fact that you actually get to choose :-) most programmers just get to play with a choice someone else made.

First of all, are you going to be the product owner, or is this a consulting gig you're gonna walk away from? If the latter, chose what allow you do get the job done for the least amount of hours. As your reputation grows for getting the job done in few hours (cheap) you can increase your hourly rates. You don't need to read on. Also, if you're sure that no bottle neck is going happen. Meaning that the user will always get a response in less then 0.3 second, some thing. use whatever will get the job done fastest. In which case you should be looking at what components (like Databases, search engines, etc) are out there that allow you to get the job done fastest. Then choose you poison according to those sub systems. There is an argument for easy maintainability, in which case it comes down to how you tend to debug. I tend to use debuggers a lot, and that leaves be with Java from the languages I know from your list.

You need to identify the bottle neck your application is going to have. You're rarely going to be wrong. I tend to operate with 5 bottle necks: CPU Memory Disk Network IPC

CPU: Easy, won't happen. It requires that you've avoided a memory bottleneck, meaning that you've figured out how to feed the CPU with data. There are only three languages where this is really possible, C, C++, and Fortran.

Memory: Unusual for a backend project, but possible. Solving it requires that you lay out your data the right way in memory, and you're again basically back to C, C++, and (to a lesser degree) Fortran. Anything with a new operator and garbage collector tend to be bad. If possible try finding an existing piece of software to do the job for you, but it's rare.

For disk and network bottle necks, programming languages don't matter.

If disk bound you need to try picking a sub system that do proper caching for you, like a SQL, NoSQL, or other system. Your design choice here will be on what you base your language decision.

Since you say backend, I'm assuming that you're on a web or mobile app frontend. In all likely hood, this is the bottle neck you're going to face. You should be concerning yourself with the frontend to backend interactions, not programing languages. Web frameworks and proper use of AJAX are more important. Worrying about languages is like worrying about getting a Ford model T, a Pinto, or a F-150 for a indy 500 or formula 1 race. You've asked the wrong question.

IPC! Strictly not a bottle neck, but a problem that occur a lot. Remember that a IPC call take about 1 000 000 times longer than a method or function call within a program. You have to assume 40ms latency from the frontend to backend. Calling web services, database requests within you backend if you spread it over multiple servers have a 1-10ms latency. You can assume 5-10ms in practice. Trying to keep a response time for a user interaction below 0.3s, i.e 300ms you should realize that you have a tight budget for IPC calls. A backend operation that involves 1000 DB requests is just not going to get done in 300ms. If you know that your DB operations will be the bottle neck, avoid ORM's like hibernate. You're going to be spending your time making DB procedure and optimizing SQL. If you're going to have a lot of business logic, chosing a language that don't lend itself to writing large programs may run you into trouble. It's tend you to keep programs short and use IPC to call the business logic. As a result I tend to stick to Java. Well, have been doing a lot of C and C++ stuff earlier in my career, so I tend to be a little biased. On the otherhand, have been wringing a lot of frontend logic in Javascript as well, and detest the language.

Hope this helps.

eggestad | 9 years ago | on: Ask HN: Just got an innocent man out of prison. What now?

He did the right thing in getting in getting this guy out of jail.

On quite frankly thats more than enough to feel proud.

His question is "what now?" from the point of view that the guy he helped is out on the street.

I get it, I'm just saying that at some point you need to start looking at the bigger picture.

And yes, I do always look at the bigger picture when I choose to contribute.

I'm a little pissy since looking beyond the inch in front of your nose seem to be a lost arts.

eggestad | 9 years ago | on: Ask HN: Just got an innocent man out of prison. What now?

First of all you should take pride in what you have done already. You've gone way beyond what most of your fellow country men will ever do.

While I understand, you're doing the wrong thing by focusing on this single individual. Since this guy is someone you have gotten to know, you have an emotional tie that is making you blind to the cold hard truth.

This happens to someone everyday.

- Parents have a falling out with their adolescent children and kick them out - Runaway kids run out of money, and by running out I mean: zero zilch nada - Addicts just run out of money as well as in zero zilch nada - Explosive break up of couple where one gets locked out - Eviction by landlords or as a result of bankruptcy etc etc etc

Most have friend or family to help out, and you'll never heard about them. Those who don't are the one you see sleeping on the streets. Thats assuming that you're not one of those that just stay between our office, the mall, and the safe gated community in the suburbs where the hobos are nicly or of sight out of mind. This is what most people do...

You can do one of two things. a) Take the position that's you've helped one guy out of jail. If every body helped one person, everybody in need would be out of homelessness in a forth night. Quite frankly, your guy is just so much better of just living on the street than in jail, so if you take this position you've done your part for king and country. I will not fault you for taking this position.

b) Start working on something, anything, that goes towards a solution that take care of everybody.

I'm a bit astonished that you can't go to the court and argue that as there is no way he is not going to get some kind of compensation, the state can just as well right now front up something like $1000 - $10000 to help him get reestablished. If there is some crap about there is case law not too, then this is call to start working on abolishing the whole concept of common law and switch to a civil law system. (I know this means getting the legislative to replace the current body of case law with some more sensible civil code. A task for which the word "hard" falls short.)

I just take the position we need to work on the whole problem , and that doing this by individual you're effectively just doing a band aid. Remember the phrase "the road to hell is paved with good intentions?" You make actually be making it worse by doing it by individuals as it may hide the true scope and scale of the problem.

eggestad | 10 years ago | on: Do We Still Need Prisons?

We actually don't send people to prison (impost sanction) to make them stop. 0.1% of any population will break laws no matter what.

The real reason for imposing sanctions is that 80% of law abiding people would break any and all laws if there was not a threat of sanction.

eggestad | 10 years ago | on: Why Gold?

Stop using gold as reserve currency and the price of gold plummets >99%
page 1