Why Clojure doesn't need invokedynamic - <AUTHOR> http://groups.google.com/group/clojure/msg/dd82cc60855b1ca3?pli=1 <comment><USER2> I'll do a bulk reply since there's lots of comments here I would reply to.

Clojure doesn't need invokedynamic in general because Clojure doesn't really dispatch dynamically. It's dynamically typed, but calls are made via a known path to a specific function, and only via rebinding can that target change. The general case goes straight through.

In a sense, it's like Clojure is JRuby where all classes only have one method. With only one method, you can always just call straight in, no lookup required, and avoid dynamic lookup.

If Clojure had to deal with dynamically selecting a method based on a target object type, incoming parameter types, and so on, invokedynamic would be more useful. Indeed, Clojure often hacks around such cases by allowing you to specify Java signatures (to avoid reflection) or primitive types (to avoid boxed math). Both cases could be improved without ugly syntax if invokedynamic were used.

So to summarize, Clojure could get benefit out of invokedynamic...if it hadn't already added hacks and syntax to allow opting out of the most-dynamic cases.

In JRuby, we could avoid a lot of dynamic dispatch by allowing type signatures, type declarations, and so on. But that wouldn't be Ruby, and we don't control Ruby. JRuby compares favorably to Clojure without the typing syntax, performance-wise, which is quite acceptable to me. With invokedynamic, JRuby even compares favorably to Java, with the exception of boxed math (which is very hard to optimize in a dynamic language). For equivalent work, JRuby with invokedynamic is within 2x slower than Java, and that will continue to improve as the Hotspot guys optimize invokedynamic.

<comment><USER3> Aiyayyay. Were to begin.

        calls are made via a known path to a specific
        function, and only via rebinding can that target
        change. The general case goes straight through.

This is half true. The rebinding via def will change the target, but the call always happens via a lookup through a volatile. In fact, it's this very chain that can benefit from invokedynamic.

        If Clojure had to deal with dynamically
        selecting a method based on a target object
        type

Clojure's protocols are polymorphic on the type of the first argument. The protocol functions are call-site cached (with no per-call lookup cost if the target class remains stable). This is another place where invokedynamic would help.

        benefit out of invokedynamic...if it hadn't
        already added hacks and syntax

I think you're mixed up here. The JVM already optimizes classes and interfaces. All that Clojure's type hints allow you to do is to help the compiler in the cases where it's unable to infer the proper type. Hinting is not always necessary and better inferencing will start chipping into the remaining cases.

        JRuby compares favorably to Clojure without
        the typing syntax, performance-wise, which
        is quite acceptable to me. With invokedynamic

That's because JRuby is awesome tech. You've certainly set the bar high for dynamic dispatch that invokedynamic has yet to meet.

        as the Hotspot guys optimize invokedynamic.

What's the over-under on it happening by Java8? Java9?

<comment><USER2> I will grant I do not know the details of Clojure's dispatch protocols, but I've always felt like there's more that invokedynamic could do. Sounds like that's the case. My statements were based mostly on brief discussions with Rich about how dispatch happens...which made most of them sound pretty static in nature.

Regarding invokedynamic optimization: Most of what I'm playing with will go into the first Java 7 update. I'm helping to validate that it works, it's fast, and it's ready for consumption.

<comment><USER3>
        there's more that invokedynamic could do

Definitely. As with anything, there are tradeoffs, so we'll likely hold off to see how it plays out.

        Most of what I'm playing with will
        go into the first Java 7 update.

Hey no fair, you have inside information. All bets are off. This is great news actually. :-)

<comment><USER2> It's all public on the MLVM list. Unfortunately there's only a handful of dynlangs actively hitting this stuff. Would love to see more Clojure folks get involved.

</comment></comment></comment></comment></comment><comment><USER4> >> I work a lot with Rhino, JRuby, Jython, Groovy and Quercus (a JVM PHP engine), and can anecdotally say that Clojure and Quercus are "fastest" of their breed for the kind of web development work I do.

Interesting. We maintain a Java-based simulation toolkit in which the target language (Clojure, whatnot) must make a lot of calls to Java and work with a lot of mutable Java data. And it's been our experience that Clojure is -- I do not make up this number -- approximately 1000 times slower than Kawa for such tasks. Mostly because of immutability guarantees and Refs. Indeed, it's one of the slowest languages on the block for this task.

I wonder how Kawa would perform in his web development arena. I've found it the fastest non-Java JVM language anywhere.

<comment><USER5> Your claim does not line up with reality. [http://shootout.alioth.debian.org/u32/which-programming- lang...](http://shootout.alioth.debian.org/u32/which-programming-languages- are-fastest.php)

[http://blog.dhananjaynene.com/2011/08/cperformance- compariso...](http://blog.dhananjaynene.com/2011/08/cperformance-comparison- languages-styles-and-vms-java-scala-python-erlang-clojure-ruby-groovy- javascript/)

Those Clojure benchmarks in the above post were submitted by me to show that you can get Java/Scala performance.

EDIT: Toned down the rhetoric

<comment> tomh- I think it is interesting you point the parent out for not lining up with reality. Can you elaborate on how the benchmarks in the above posts are a more realistic way to reason about the performance than the experience of the language used in a real life project?

<comment><USER5> These exact same techniques used in these benchmarks are used in "real life" projects, for example this one that I work on: <https://github.com/clojure/core.logic>

This is a Prolog-like engine that I benchmark against SWI-Prolog (written in C). It comes close on some benchmarks, and surprisingly surpasses on a few.

<comment> tomh- Fair enough, however I don't see a benchmark which measures the performance of Clojure in a situation described as above (dealing with a lot of mutable java objects) compared to other (JVM) languages. He clearly mentioned, for such tasks, clojure is 1000 times slower than Kawa. The fact that Clojure is fast for other types of programming problems is irrelevant for this particular case.

<comment><USER6> If the poster had could give a (minimal) example to demonstrate their claims, then we could know for sure. Otherwise, we have no idea what the problem was.

</comment></comment></comment></comment></comment></comment><comment> guard-of-terra When I wrote some cpu-bound code in Clojure which also used several java classes and libraries, I've found that the naive implementation 5x as slow as Rhino implementation, but when I've added some type hints (which I found out by enabling warn-on-reflection), code became ten times as fast, beating rhino twofold.

I wonder if it's possible to use invokedynamic when there is an unhinted java interop to avoid drastic slowdown that I've experienced. Because it's obvious that many necessary type hints would be absent in a big real-world program.

<comment><USER5> In a big real world Clojure program you would probably control the amount of interop, or abstract it away. Lots of type hints is not indicative of a well- written Clojure program of any size, a good example of how this can be done over JDK 7 ForkJoin, <https://gist.github.com/888733#file_forkjoin.clj>. Note the code at the bottom has no type hints yet will be nearly as fast as if you littered code with such noise - this is because of the lovely thing that is JVM inlining.

<comment> guard-of-terra This is in the case when the program is pure-clojure.

In my case, I'm trying to bring some Clojure into an existing project with a sizable Java codebase.

Anyway, I think that your clojure code would use String. Or joda's DateTime and zillion other brilliantly useful classes. It's not practical to either wrap or rewrite all the Java richness.

Concerning your example: Clojure also does a good work of inferring types given a few type hints, and that I good use. Just a few hints, a great speed up.

<comment><USER5> We can agree to disagree. You have clojure.string. For Joda DateTime you have clj-time. There are a growing number of Clojure libraries that provide an idiomatic interface to Java functionality w/o resorting to pervasive type- hinting.

</comment></comment></comment></comment><comment><USER7> >"So, when Clojure calls a function, it either already has the instance in its entirety (a lambda) or it finds it by dereferencing a binding. Since all functions are instances that implement IFn, the implementation can then call invokeinterface, which is very efficient. "

Perhaps, but from my understanding with InvokeDynamic, for a function that ends up with for instance adding two numbers, we can guarantee the types even though the code is dynamic. This means the JVM can perform optimizations like inlining. This invokeinterface call could then be replaced with an "iadd" bytecode at the call site, which in turn can get JITed, and so on.

<comment><USER8> I'd like to know more about this. My understanding is that every method in Clojure has this sort of signature: Object F(Object, Object,.. Object)

So Add looks like this: Object Add(Object, Object)

Now if Clojure recognizes that this is often called with longs, then it would make sense to produce what is C++ would be a template specialization: long Add(long, long). As you pointed out, that could then be inlined.

As long as we can specialize all the way up the call chain, we don't need any JVM magic. But that would be a lucky case, and I believe invokedynamic can help with our problem case: an argument-dependent transition from non- specialized code to specialized code. i.e., call Add(long, long) iff both args are Longs, otherwise call Add(Object, Object).

So, Clojure would profit from invokedynamic if it (transparently) introduced specialized methods for optimization. Of course, this is not exactly a trivial optimization to implement - it may be that the most practical way to implement it is to look at the runtime behaviour (sort of like what the JIT compiler does). Ideally the JVM would be able to do all this magic specialization for us (given the parallels to JIT compilation), but I doubt that it can do that at present.

Anyone know if I'm off the mark here, or whether Clojure would benefit if it did what I've termed "specialization"?

</comment></comment><comment><USER9> I love logic.

However, when dealing with optimizations, actual experimentation is a lot more convincing. I've seen far too many times when things 'should have been' better a certain way, but weren't... For various reasons.

<comment><USER3> Logic isn't even required in this case (although I suppose it can never hurt). Charles Nutter has shared some numbers for JRuby constant lookups at [http://blog.headius.com/2011/08/invokedynamic-in-jruby- const...](http://blog.headius.com/2011/08/invokedynamic-in-jruby-constant- lookup.html)

\- JRuby 2

\- JRuby with current invokedynamic 35

\- JRuby with some dev build that some guy who knows a guy who knows a guy at Oracle gave him: 0.5 [1]

The future might look bright, but a problem with the future is that it comes when it's ready and never before, no matter how much we want it to or might need it.

[1]: I'm just being playful here. I actually have no idea where Charles got that dev build.

<comment><USER2> invokedynamic is extremely powerful whenever there's a need to dynamically bind some function or variable. That means even statically-typed languages might benefit. In JRuby, it brings us within a stone's throw of Java performance for simple algorithms, provided that the Java version is doing the same work (e.g. doing boxed math for math algorithms).

Regarding [1], I made the build myself. Here's my build script and instructions: <https://gist.github.com/1148321>

To get the best possible performance, you'll want several unapplied patches from the Hotspot team. Ask on the mlvm-dev list.

</comment></comment></comment><comment><USER2> Another general response...

Paul Stadig points out that Clojure actually does lookup (from mostly- immutable sources) in many, many cases, and correctly theorizes that it could benefit by using invokedynamic in those cases. Worth a read.

[https://groups.google.com/d/msg/clojure/1mr0m-9XLoo/3_-OIFM8...](https://groups.google.com/d/msg/clojure/1mr0m-9XLoo/3_-OIFM8QmMJ)

</comment><comment><USER10> This is why I'm in college. I want to be able to understand this sort of thing better.

<comment><USER11> You don't have to be in college to understand that. Internet has more than enough resources for you to learn.

<comment><USER12> Hey, so while we're talking about it, what WOULD be some good resources on the internet (and maybe in books) for understanding "this sort of thing" better? I assume "this sort of thing" is runtimes, VMs, compilers, languages, dynamic and otherwise?

Rich Hickey's Clojure bookshelf includes Lisp in Small Pieces, which I've read most of, and I understand is sort of the go-to Lisp implementation book nowadays, but is possibly out of date for compilers in general. It also includes Essentials of Programming Languages (2nd ed?), Concepts Techniques and Models, the T Programming Language book, the JVM spec... but are there other books that would be crucial to enabling someone to open up the Clojure source and understand some of the optimizations or understand some of the issues re: dynamic languages on the JVM, compiling dynamic languages, and/or making dynamic languages fast in general (see SBCL)?

I know there's "Clojure in Small Pieces" which aims to be some kind of literate treatment of the Clojure source, but I think that's a WIP last time I checked.

Thanks!

edit gee look at this, I commented without looking at the rest of the front page: <http://news.ycombinator.com/item?id=2927784>

</comment></comment></comment><comment><USER3> This is a nice writeup, but it seems to miss some important details. Clojure may not need invokedynamic in its current state, but it could certainly benefit should many of its limitations dissipate.

<comment><USER13> Could you get into some more detail on what we would win? The author mentitiond static methods als clojure functions. What else?

<comment><USER3> Well, the question is what does invokedynamic give? In a nutshell, it's the raw material for building efficient polymorphic inline caches that are subject to finer grained HotSpot optimizations. At the moment Clojure and JRuby (and others for sure) build those PICs from "something else" (a technical term). If the speed promises of invokedynamic are ever realized (much less released) then bingo, speed gain. But Charles and Rich have set the bar high for PIC speed, and invokedynamic has not met that challenge. It probably will... one day. But there are tradeoffs that I didn't even touch on even when/if that day comes.

<comment><USER13> > for building efficient polymorphic inline caches

Ah, now I understand better.

</comment></comment></comment></comment><comment><USER14> Just curious why a single class with a single method taking object array would not solve the issue? Granted the dynamic marshall would be a perf hit. Other than that?

</comment><comment><USER15> Is this available without logging into a proprietary service to read it?

<comment><USER16> You do not have to log into anything to read it at the submitted link.

<comment><USER15> You might not have had to, I did. Also, the gmane link was clearer - both in that this was just a Usenet post, and which group it was.

<comment><USER15> Not Usenet. I'd never seen gmane before. Neat.</comment></comment></comment></comment>


Telegram Open Network (TON) White Paper [pdf] (unconfirmed) - <AUTHOR> https://drive.google.com/file/d/1lqVlrgiztnA5dkOHP7-ENDKT1FgZuCUV/view <comment><AUTHOR> This one 132 pages long, there is also 23 pages long document [1]

Techcrunch: "In a 132 page white paper, Telegram has outlined a four-stage plan" [2]

[1]: [https://drive.google.com/file/d/18F51eFyyHZ1Pu0JxaTcT99xDLIc...](https://drive.google.com/file/d/18F51eFyyHZ1Pu0JxaTcT99xDLIcKv0u1/view)

[2]: [https://techcrunch.com/2018/01/08/telegram-open- network/](https://techcrunch.com/2018/01/08/telegram-open-network/)</comment>


100 Most Influential CS Books According to Stack Overflow - <AUTHOR> http://www.cspray.net/my.so-archive/100-most-influential-programming-books.html <comment><USER2> At my first job, one of the senior software engineer asked me to read Programmatic Programmer. Initially, I was like "huh, why would read a book like this?" Five years later, when we have a new engineer joining our team. I ask him if he read that book, if not I make sure he does.</comment>


'A Great Moment': Rover Finds Clue That Mars May Harbor Life - <AUTHOR> http://www.nytimes.com/2014/12/17/science/a-new-clue-in-the-search-for-life-on-mars.html?ref=science <comment><USER2> Correct me if I'm wrong, but NASA was pretty clear that they did NOT find signs of life - that the methane _could_ be from decomposed organisms, but just as easily from other sources.

It was exciting to find the methane, no doubt, but this title is maybe a bit misleading?

Edit: Source: [http://www.jpl.nasa.gov/news/news.php?feature=4413](http://www.jpl.nasa.gov/news/news.php?feature=4413)

Edit 2: previous discussion, still on the HN home page: [http://www.jpl.nasa.gov/news/news.php?feature=4413](http://www.jpl.nasa.gov/news/news.php?feature=4413)

Edit 3: I really do hope they _do_ find signs of life on Mars - it would be so insanely course-altering for humanity. Maybe this _is_ the first step in that direction. But it's not life yet, NY Times...

<comment><USER3> Indications of life on Mars have been found nearly as many times as Voyager has left the solar system.

</comment></comment><comment><USER4> The term 'organic chemistry' confuses people. We commonly use 'organic' to mean 'living', which is correct in the field of biology, but quite different in chemistry (where it essentially means 'includes the element carbon'). Science journalists usually know the difference, but when stories get in to the mainstream media you often see writers get it wrong.

<comment><USER5> A common abuse of this is dry cleaners who advertise that they use all Organic cleaning methods, usually meaning compounds like tetrachloroethylene, an organic that is far from organic.

</comment></comment><comment><USER6> Better article posted 20 hours ago:

[http://www.jpl.nasa.gov/news/news.php?feature=4413](http://www.jpl.nasa.gov/news/news.php?feature=4413)

[https://news.ycombinator.com/item?id=8758571](https://news.ycombinator.com/item?id=8758571)

</comment><comment><USER7> Why not link to less catchy, but more accurate report?

[http://www.newscientist.com/article/dn26709-curiosity- rover-...](http://www.newscientist.com/article/dn26709-curiosity-rover- detects-martian-methane-burps.html?full=true)</comment>


All I Need To Know To Be A Better Programmer I Learned In Kindergarten - <AUTHOR> http://codist.biit.com/fiche/thecodist/article/all-i-need-to-know-to-be-a-better-programmer-i-learned-in-kindergarten <comment><USER2> Wow. Great article. I was going to put a few of my favorite points here, but there are too many :P

</comment><comment><USER3> This is a take off on a talk I heard years ago about networking</comment>


Facebook is not worth $33B (2010) - <AUTHOR> https://signalvnoise.com/posts/2585-facebook-is-not-worth-33000000000 <comment><USER2> Like they say fools are always so sure! But its really hard to say how things turn out. I remember reading back in school how Amazon was so over prized and how it was doomed to fail (during late 90s). We all know how it turned out.

It could just be survivor bias. But the thing is - its hard to predict the future and to be certain of any prediction is profoundly inane.

PS: NOM to author. I really like David and I used to have the same opinion of FB at that time.

</comment><comment><USER3> Correct, it's worth about nine times that.

[http://finance.yahoo.com/q?s=FB](http://finance.yahoo.com/q?s=FB)</comment>


If You Can't Buy the Keyboard You Want, Build It Instead - <AUTHOR> https://imgur.com/gallery/fGa13nZ <comment><USER4> Around 2 years ago now, I took the plunge and bought myself an Ergodox EZ split island keyboard. Quite franky, it is the biggest quantum leap in the ergonomic experience of interacting with a computer I have seen since learning Vim. It is comfortable, effortless and fast. If you spend any significant time interacting with computers it is a complete no brainer to invest in optimising the IO channel between your brain and the machine.

Here is a link to my keyboard layout which you can freely use. It is optimised for Vim and Ubuntu use.

[https://github.com/Ganon-M/ergodox-vim- ubuntu](https://github.com/Ganon-M/ergodox-vim-ubuntu)

<comment><USER5> > it is a complete no brainer to invest in optimising the IO channel between > your brain and the machine

Why? You'll never even double the "throughput" of that "channel", let alone improve it by an order of magnitude.

And I say this as someone who wasted lots of time and money attempting exactly that before I realized that typing is not what I spend most of my time doing while programming.

<comment><USER6> What an Ergodox lets me do is this: while standing, with good posture, I extend my arms, level with the ground, to where they comfortably and naturally want to be.

Then, I put the keyboards there, adjust the desk up to that height, and put books under the monitor until the center is exactly level with my eyes. Trackball to the right.

This is dramatically more comfortable than anything else I could be doing. It's hard to convey how uncomfortable a straight keyboard is to someone who hasn't tried the alternative.

<comment><USER7> For me, I notice the difference in my shoulders. They tuck in with a compact keyboard, and then my wrists bow inward. It ends in a slouch and increasing neck pain over time - even my personal laptop makes this noticeable after a short amount of time.

Ergodox EZ may puzzle people with its layout, but the split island part alone has made computing comfortable for me, especially when combined with a sit/stand desk. There's a lot less physical strain to wrestle with, which a bigger difference as time goes on.

<comment><USER8> OH! I just realized this explains why my right shoulder is lower compared to my left! Every time I take a photo, the photographer always tells me to bring it higher. My neutral position for my mouse!

</comment></comment></comment></comment></comment><comment><USER9> I'm simply a mechanical keyboard user, I have a few trusty Filcos that I use and I will sometimes buy a keycap set and wait 1 year for it[1]; I don't have the courage to build custom keyboards.

However I do derive a vicarious pleasure looking at the build logs and end results shared by others, this post included. The two best places I've found to follow are the /r/mechanicalkeyboards[2] subreddit and the geekhack.org[3] forms which goes even more in-depth into specific subtopics.

It's a lovely world of enthusiasts that I am happy to place on a pedestal and admire.

[1]: [https://drop.com/buy/massdrop-x-matt3o-mt3-susuwatari- custom...](https://drop.com/buy/massdrop-x-matt3o-mt3-susuwatari-custom- keycap-set?mode=guest_open)

[2]: [https://www.reddit.com/r/mechanicalkeyboards](https://www.reddit.com/r/mechanicalkeyboards)

[3]: [https://geekhack.org/](https://geekhack.org/)

<comment><USER10> Maybe that's just me, but I get really annoyed by other people using (freakishly loud) mechanical keyboards in the office. It disrupts me from doing my work and some keyboards even penetrante my Bose QC ii with quiet music on...

<comment><USER11> There are three broad types of key switch: clicky (makes a loud click), tactile (tries to feel like there's a click but be fairly quiet), linear (no feeling except gradually increasing resistance).

There are also silent versions of tactile and linear switches.

Clicky switches are inappropriate in every office, and silent switches may be preferred in a particularly quiet office. Typical keyboards (Dell, Apple) fall somewhere between the tactile/linear and silent switch mechanical keyboards.

</comment></comment></comment><comment><USER12> He built his own keyboard and still included a huge CapsLock key in the place where god intended Ctrl to go?

<comment><USER13> No, no, no. It's _written_ "CapsLock" but _pronounced_ "Control".

<comment><USER14> I think you spelled "escape" wrong. Yes, I'm a vim user.

On the keyboards that support it I've had it remap to another layer if I hold it, but I'm thinking of using it for escape/ctrl, as I do use some emacs commands from time to time (mostly evil mode, but not everything). But I haven't decided where to put my layer switch key yet.

<comment><USER15> Dual esc/ctrl is the way to go. I still get phantom esc presses when I decide half-way that I don't need to ctrl+anything, but it's worth it.

<comment> vhost- I do this and it's my favorite thing to show people to induce a mindfuck. I hold for control and tap for escape. Then I hold out for a day or two and make them go crazy before pasting them a link to the qmk docs page for the feature.

Edit: I won't hold out that long here. Here's the link to the feature to make this possible for anyone interested: [https://docs.qmk.fm/#/feature_advanced_keycodes?id=mod- tap](https://docs.qmk.fm/#/feature_advanced_keycodes?id=mod-tap)

</comment></comment></comment></comment></comment><comment><USER16> My problem with such keyboard is that it assumes:

\- you will mostly work on the same place (or you accept the burden of traveling with your keyboard and be "that guy" when you set it up. Personally for the same hurdle, I prefer a secondary screen on the go)

\- you will mostly work on the same machine (or you have multiple keyboards, one for each machine, and if you are in a data center or tech support, you move with your keyboard).

\- you will not be exposed to many different keyboards, or layouts (e.g: you don't need to go help users and customers on their machine that don't allow plugging in, you don't teach, you don't use your phone a lot, etc). Switching layouts all the time is a nightmare.

\- you can afford the initial lower productivity (e.g: you are not a freelancer that needs a regular output).

\- cables and taking space are ok. Taste is taste, after all.

\- you have the money, and find it is better invested in this than say, a better screen, mouse, graphic card, battery, etc. And renewal. Or you have enough to have it all.

\- you are certain of this model is what you need or you can afford trying many. There are many ergonomic keyboards. They are all special and expensive in their own way.

\- your layout is available. I'm french, I use AZERTY. Or you are fine learning to type with the wrong letters, or using stickers. I often buy/user computers in/from the US, and just type from memory after setting the QWERTY to an AZERTY layout. One of my friend like Dvorak (actually Bepo, the fr version)...

\- nobody else than you will use your computer. Or you have several setup and are ok to switch every time.

Now I understand that as it's my job, optimizing this key element of it makes sense.

But hell, that's a lot of per-requisites.

<comment><USER17> > \- you can afford the lower productivity (e.g: you are not a freelancer that > needs a regular output)

Why lower productivity? The person who created it thinks it will lower RSI therefor increase productivity.

<comment><USER18> Is RSI even that normal? I have never heard anyone talk about it in real life, only in these threads does it seem like everyone has it.

<comment><USER19> It's really common for computer programmers. In every big corp I've been in, there's usually one of 10 people who has an issue with it and uses some weird keyboard. I have pretty bad RSI and it comes from just being a computer user since I was 3 and developing bad habits along the way.

<comment><USER20> My impression is that it hits data entry clerks a lot harder than programmers. Programmers end up having to stop and take breaks frequently to think about what they're doing.

A thought occurs: Are RSI issues worse with enterprise Java programmers and other people who end up having to write tons of boilerplate around all of their code?

<comment><USER21> Java has excellent code completion, so you don't end up typing most of the characters that end up in the source file.

</comment></comment></comment></comment></comment></comment><comment><USER22> If you're at all into custom keyboard making, and you haven't already, check out the QMK firmware: [https://qmk.fm/](https://qmk.fm/) It makes it a lot easier to deal with the non-standard layouts that you'll probably want to use.

</comment><comment><USER23> 10 months in with my Ultimate Hacker Keyboard, and I can confidently say that it brings me more joy than any other electronic device I have, with maybe the exception of my MBP. Before I had mild RSI here and there, but with the UHK I have zero pain, ever. But it did take a lot of learning. I spent about 3 months feeling like an idiot ( hitting keys that weren't there, forgetting which macro I'd mapped, typing an arrow in vim mode instead of hjkl, etc ), so maybe it's not for everyone.

<comment><USER24> I have an UHK now and love it so much that I bring it back and forth to work everyday. Before the UHK I had a MS Sculpt and was a bit worried I wouldn't be able to get used to the UHK so I used Karabiner to set up a mod later and pretrained myself for a couple of weeks before pulling the trigger. Once I got the UHK the learning curve wasn't bad at all. For people who maybe tried a split keyboard and couldn't deal with it I would recommend the UHK since it's mostly the same as a regular keyboard.

<comment><USER23> "That I bring it back and forth to work everyday".

Yeah, I said to hell with that, and just bought another one for work!

</comment></comment></comment><comment><USER25> Check out the "Dactyl-ManuForm": [https://github.com/tshort/dactyl- keyboard](https://github.com/tshort/dactyl-keyboard)

> a parameterized, split-hand, concave, columnar, ergonomic keyboard.

<comment><USER26> How about a 3D-printed DataHand clone...

[https://github.com/JesusFreke/lalboard](https://github.com/JesusFreke/lalboard)

<comment><USER27> I'm building this. Care to share more about it? What key map do you use?

</comment></comment></comment><comment><USER28> I don't really understand why people want such tiny keyboards.

The most comfortable (and healthy!) way to type is to have your hands a shoulderwidth apart so you don't have to compress your arms. I used an ergodox infinity for a while which was fantastic in terms of back pain but terrible in terms of everything else.

I currently use a Kinesis Advantage 1 which I'm tempted to dremel in half so I can get proper separation. It's that or learn how the Dactyl is configured so I can add enough keys to it to be useful :/

<comment><USER29> Aren't the Ergodoxen already two separate units it is there a cable limitation? I was looking at buying one or a similar split keyboard for the reason you stated.

<comment><USER30> The Ergodox EZ is connected by a replaceable standard 3.5mm (male to male) cable; I presume most ergodoxes are the same.

</comment></comment></comment><comment><USER31> Building keyboards is such a rewarding activity. Once you go down that rabbit hole, you can go as deep as you want.

Here's one I did a couple of years ago, including a custom PCB: [https://medium.com/@friggeri/the-new-blanck- keyboard-c7563c4...](https://medium.com/@friggeri/the-new-blanck- keyboard-c7563c4f9fa)

<comment><USER32> Nice... although I have so much muscle memory now, I don't think I could live with too much change (the spacebar in particular). Model-M for life! ;-)

<comment><USER33> A few weeks of regular use and practice will overcome muscle memory. You just have to force yourself to never touch the old layout during that time. I think that's where most people stumble, because adapting a new layout while trying to do work is kinda frustrating.

</comment></comment></comment><comment><USER34> "New keys. What do you think." [https://www.youtube.com/watch?v=uHt01D6rOLI](https://www.youtube.com/watch?v=uHt01D6rOLI) (If American Psycho were about Programmers)

</comment><comment><USER35> I've wanted a left-side number pad for a long time. I've contended that (for right-handed people) having a number pad on the right is poor ergonomics. If I centered such a keyboard in front of me, then the number pad would be in the way of my mouse. So I end up offsetting the keyboard several inches to the left, which causes me to have to position my arms awkwardly in order to reach the letters. I ended up using keyboards with no number pads at all (in my case a Leopold FC660C).

<comment><USER36> I don't have too much trouble with this just yet. But the next keyboard will be without a num block, but I will add a [https://www.ipv6buddy.com/](https://www.ipv6buddy.com/) to the right of my mouse for all my hex and up address needs. (Not affiliated, just a fan)

</comment></comment><comment><USER37> I'm on the verge of doing this. I have an Ergodox EZ but I want thumb clusters that are more useful, plus I'd like an encoder knob or two. The Kyria is close but it doesn't do RGB per key or have a thumb cluster that exactly matches what I want. To the drawing board I go!

<comment><USER38> TIL people put knobs on their keyboards. Do you generally have to configure your own actions for knob events or is there software that supports them out of the box?

<comment><USER37> If I get one, it'll be for volume. If I get two, the second will control scrolling up and down.

<comment><USER6> I solve the latter with a Kensington trackball with a nice, generous scroll wheel.

Pity it lacks a third mouse button. I've considered glomming a button to the front (cable) side with some Sugru...

</comment></comment></comment></comment><comment><USER39> I switched to Kinesis Advantage[1] ten years ago and never looked back. The price tag is high, but worth it.

[1] [https://kinesis-ergo.com/products/#keyboards](https://kinesis- ergo.com/products/#keyboards)

</comment><comment><USER40> I just realised that having the keypad on the left is actually a great idea, solves the problem of wanting to keep the mouse closer to the main section of the keyboard, while keeping the keypad. Also, the keypad placed on the left can double as a cheaper alternative to those expensive gaming keypads. Anyone who is not into DIY could achieve the same by combining a TKL (tenkeyless) keyboard and a stand-alone USB numeric keypad.

</comment><comment><USER41> Title should be modified to "build it instead (as long as you want a mechanical keyboard).

I love Apple's Magic Keyboard 2 very much. I've looked around a lot, but there's nothing out there with its super low profile that's also customizable.

My ideal keyboard would be a Magic Keyboard with a variety of key colors, RGB lights, and the ability to split it in half so I can put my arms in a better position.

</comment><comment><USER42> IMO the most reasonable upgrade for 99.999% of "normal" people is just a plain $90 mechanical keyboard with Cherry switches. Any advantages of all this other stuff are pretty incremental unless you are really spending your days typing non-stop, which I'd wager is rare among software engineers.

</comment><comment><USER43> The keyboard I want is one where the surfaces can be separated from the electronics so I can wash the damn thing.

I believe there was one gaming keyboard that worked this way (custom overlays) and Logitech has one keyboard they claim is washable, but IIRC the keys are mushy. No thanks.

</comment><comment><USER44> I love the idea of a mechanical keyboard (and I would love to build one), but I hate the thick keys and travel distance of each key press (I'm used to the thing keys on my MacBook Pro). Are there any mechanical switches that are low- travel?

<comment><USER45> If you want to test the waters instead of going with a full build at the start, pre-built ones are starting to pop up from popular brands, ex. [https://www.coolermaster.com/catalog/peripheral/keyboards/sk...](https://www.coolermaster.com/catalog/peripheral/keyboards/sk630/)

</comment></comment><comment><USER46> _This unusual layout arrived from a convoluted train of thought - <USER2> from a full-size to help with mouse-related RSI issues; missing the keypad; and being left-handed._

Honestly as a righty putting the numpad on the left makes much more sense to me now that everyone expects to have a mouse in easy reach of their dominant hand.

Not that I've put this in practice myself; the only time I ever really need a numpad in my life is on the very rare occasions I'm playing a roguelike.

</comment><comment><USER47> One day I'll likely be faced with making my own keyboard layout or losing the wonderful Home/End/PgUp/PgDn/Delete layout I've been used to for years now on a long discontinued keyboard model (I seriously have a box of spares under the bed that I bought when they stopped being made).

I've found myself adaptable to the action of many keyboards, but there's some layout features I'm very particular about.

<comment><USER48> Logitech still makes some keyboards with that distinctive large delete key, but I'm in the US, so I don't know if they have an ISO layout version of it.

Example: [https://www.logitech.com/en-us/product/wireless- keyboard-k35...](https://www.logitech.com/en-us/product/wireless- keyboard-k350#specification-tabular)

<comment><USER47> Oh yeah, the Wave. Forgot about that one because I really don't care much for curved layouts. Too many years typing on straight rows for this old man.

</comment></comment></comment><comment><USER49> I want a keyboard with an extra row of keys (I could use for additional characters in a custom layout) between the letters and the numbers. Is this possible?

<comment><USER11> Do you still want the F1-F12 keys?

If you don't, choose a keyboard with an appropriate physical arrangement (I happen to have [1], which would work for this), and program it accordingly -- any mechanical keyboard lets you move the key mapping around. Optionally swap the plastic key caps around. (You could also achieve this OS-side on any cheap keyboard.)

If you want an additional row, you'll probably need to make the keyboard yourself. The fashion seems to be to reduce the number of available keys rather than increase it.

Depending what you want it for, an alternative is to add an extra modifier key and use that modifier to get your extra characters, "FN+1" etc.

Programming the keyboard to send arbitrary characters depends on the OS and the keyboard firmware. See [2].

[1] [https://www.aliexpress.com/item/33006060286.html](https://www.aliexpress.com/item/33006060286.html)

[2] [https://beta.docs.qmk.fm/features/feature_unicode](https://beta.docs.qmk.fm/features/feature_unicode)

<comment><USER50> Is it generally reliable to buy such an item from aliexpress? Don't you end up with cheap version of more expensive keyboards?

Asking because I've been looking for a 75% (non-split) keyboard for a long time, and it seems like aliexpress might have what I'm looking for. I'm just worried about ending up with a knock off.

<comment><USER11> I found many people on Reddit had bought the YMDK "Split 75%" keyboard [1], so I was confident that it was fine. YMDK has several designs on AliExpress. I've also purchased from [https://kbdfans.com/](https://kbdfans.com/).

Yes, it's a cheaper version, but most of the additional cost was for things I don't care about (aluminium case, geek cred) and the small disadvantage (different default firmware that's less programmable) can be fixed by reflashing, if I feel I need it.

Depending where you live, you might be hit with import taxes when buying something direct from China.

From a blogger in China [2]:

> USA is thriving with crowd funded fancy keyboards that will become available > in year 3000, or DIY keyboards that take a life-time to build.

> Meanwhile in China, sound ergonomic keyboards, are a dime a dozen, and 5 > times cheaper, and you can buy it NOW. Here's one of them.

[1] [https://www.reddit.com/r/MechanicalKeyboards/search/?q=VE.A%...](https://www.reddit.com/r/MechanicalKeyboards/search/?q=VE.A%20clone&restrict_sr=1)

[2] [http://xahlee.info/kbd/ly092_mini_keyboard.html](http://xahlee.info/kbd/ly092_mini_keyboard.html)

</comment></comment></comment></comment><comment><USER51> Ehh

I have a kinesis advantage. There are some things I don't like about it, but I doubt it would be practical for me to make my own keyboard with a bowl shape like kinesis or maltron keyboards. And even if I could figure it out, they've probably done research into exactly what kind of curvature works well for the average hand, so whatever I made would be marginally less ergonomic.

<comment><USER52> First of all, if you are happy with the curvature of the Kinesis, the rest of it is pretty hackable. There are various projects around it, one of the more well known is a custom controller and custom software from Michael Stapelberg (of i3 window manager fame)[1]. He gave a Google Tech Talk about the project about a year ago[2].

Now, if you are not happy with the curvature things get more complicated and I'm not aware of any projects that did a custom housing. That being said I think it is not unrealistic. The biggest problem is to create a curved cover with holes for the key switches. All the switches are mounted on flexible PCBs which should adapt to your new case as long as the curvature is not too crazy. So basically all you need to customize is the top part of the housing, the rest can stay the same.

[1] [https://michael.stapelberg.ch/posts/2013-03-21-kinesis_custo...](https://michael.stapelberg.ch/posts/2013-03-21-kinesis_custom_controller/)

[2] [https://www.youtube.com/watch?v=6bX6iqqR3XY](https://www.youtube.com/watch?v=6bX6iqqR3XY)

</comment></comment><comment><USER53> I find building keyboards very relaxing (here is my work so far: [https://ereign.is/objects/](https://ereign.is/objects/)).

The split orthos are very usable and comfortable after a few hours of acclimatization (I mostly use a commercial Topre board for now, I should finish designing QMK layouts that better serve my needs).

<comment><USER54> Those look badass! Reminds me of some of the ergo keyboards that I looked at in the past... only a lot more stylish.

The first one [0] reminds me of an old Learjet or Falcon 10 cockpit with the lights lit up (see [1]). I really love the look of the wires you chose, as well, with the knurled connector housing and heavy-duty threading for the cords. The Nyquist Rev. 2.1 [2] looks like its fresh off the Nostromo.

Do you do your own CNC/laser engraving or are the keys OTS?

[0]: [https://ereign.is/objects/1.jpg](https://ereign.is/objects/1.jpg)

[1]: [http://d16bsf97ryvc45.cloudfront.net/Media/2012/07/F10-sn176...](http://d16bsf97ryvc45.cloudfront.net/Media/2012/07/F10-sn176-Cockpit-268.jpg)

[2]: [https://ereign.is/objects/3.jpg](https://ereign.is/objects/3.jpg)

<comment><USER53> The keycaps are all from group buys, nothing custom; unfortunately I don't have the equipment to make them (there is no practical way to do double-shot injection molding on a small scale, but dye sublimation on blanks could be possible).

I went for a PCB with underglow leds for the "space cadet" replica keycaps because unlike the others shining a in-switch led thru them wouldn't have looked interesting.

</comment></comment></comment><comment><USER55> A number of commenters seem to be confused. This link is about computer keyboards, not musical keyboards, as is immediately evident when viewing the link. Please at least click the link before you comment on a Hacker News post.

</comment><comment><USER56> As usual, madereth comes to mind:

[http://adereth.github.io/blog/2014/04/09/3d-printing-with- cl...](http://adereth.github.io/blog/2014/04/09/3d-printing-with-clojure/)

[http://adereth.github.io/blog/2015/11/19/clojure-slash- conj-...](http://adereth.github.io/blog/2015/11/19/clojure-slash-conj-talk- on-3d-printing-keyboards/)

clojure wrapped openscad to live design your keyboard from emacs/cider.

'(have fun)

</comment><comment><USER57> I've always wanted a mechanical keyboard with the layout of the Apple magic keyboard, couldn't get use to the windows key position and missed the fn key. Always thought about building my own

<comment><USER58> I solve this by remapping keys in software and then swapping the key caps - building your own is really fun but it isn't required!

<comment><USER59> That's not the problem (at least for me).

On an Apple keyboard the right edge of the X key aligns with the right edge of the command key, which makes it easily accessible by your left thumb from a resting position.

Most non-Apple keyboards use a layout where the command/alt key is half a key width to the left. It doesn't sound like a lot, but it makes those keyboards really uncomfortable for me to use.

</comment></comment></comment><comment><USER60> Are mechanical keyboards that much "better" (I know this is subjective) than normal laptop keyboards (I have a macbook pro). I'm considering buying one but they are quite expensive...

<comment><USER61> It depends.

Mechanical keyboards last for about a decade, probably more. During which time I'll be at my main computer and typing about 20,000hours. So using a mechanical keyboard less than a penny an hour.

So yeah, if something makes my time a little more comfortable I'd consider it worth that cost.

<comment><USER62> that doesn't answer the original question of

> Are mechanical keyboards that much "better"

<comment><USER61> It tries to quantify how much better a mechanical keyboard needs to be before it is worth it, which is not much.

</comment></comment></comment></comment><comment><USER63> What is the driver / chip to send the data over USB?

<comment><USER64> teensy or similar.

he's using a [https://candykeys.com/product/elite-c](https://candykeys.com/product/elite-c) for this one.

<comment><USER65> That one only has 24 I/O ports... how is he multiplexing all the keys?

<comment><USER66> The keys are arranged in a matrix. 24 I/Os would be enough for 12 * 12 = 144 keys.

</comment></comment></comment></comment><comment><USER67> I just bought a Leopold FC980M mechanical keyboard with brown switches. I was hesitant to buy into the hype for a long time. The keyboard cost $130 after shipping, which is expensive for a keyboard in my opinion. But, I can confidently say it was well worth the money. If you do a lot of typing I would seriously recommend giving a mechanical keyboard, specifically a Leopold, a shot.

</comment><comment><USER68> I love custom keyboards. Sharing work like this is pretty inspiring. All I've done is solder two ergodox's from massdrop, but it was a blast.

<comment><USER69> I find custom keyboards to be beautiful, but I have a very hard time using a proper mechanical keyboard. I am not a proper touch-typist, and lack the patience or free time to re-learn.

I tried with an Ergodox for some time, but it became so frustrating that it interfered with my appreciation for the engineering and artistry of the thing.

Any suggestions relating to low-profile, short-travel switches/keycaps that will work in kits found from massdrop, et al?

<comment><USER30> I finally bought an Ergodox EZ just over a month ago, after suspecting a split keyboard could solve some postural issues for a while (its practically impossible to use a split keyboard whilst sitting lopsided).

I was a touch typist (two hands, and completely left handed), but I was "wasd" centred.

Learning to home row type was by far the hardest thing about the keyboard. It took me a week of 8/hr a day coding/writing to get back up to speed. Thankfully I didn't have work commitments so could go all in - but on day 3 I was so very close to quitting.

AFAICT it has completely sorted my tendency to move into a bad posture - <USER3> for that I _know_ it is worth it.

But to spend 40hrs getting frustrated and working slowly? I couldn't justify it without the posture problem.

</comment></comment></comment><comment><USER70> For many years, bordering on a decade, I have entertained the idea of purchasing a keyboard from a particular Maker who partakes [now partook?] in creating gothic, retro, and similar-style keyboards to the tune of several thousand USD.

I have since not dipped in, but the marbles roll around in my mind.

To me, such purchase opportunities inspire both money-spending as well as creative inspirations.

</comment><comment><USER71> I've been fascinated with mechanical keyboards for a while. Have been thinking of setting up a Slack channel to build a little community of enthusiast to share their builds / questions / stuff that's for sale etc. Anyone interested in joining such channel? Would love to set it up and connect with MK builders. Send me an email if interested.

<comment><USER72> If you're interested in joining one, there are Discord communities with thousands of active users discussing those very things. One of the more generic ones being MechKeys [1], but once you find some designers you like or more niche communities there are dedicated servers most likely for those as well.

[1] [https://discord.gg/mechkeys](https://discord.gg/mechkeys)

</comment></comment><comment><USER73> I'm currently held back from going into the mechanical keyboard world because I'm hooked on the thinkpad trackpoint stick and mouse buttons below the spacebar - I've got a thinkpad and two usb keyboards with the dot and mouse buttons, and I use them on every computer I touch. Are there mechanical keyboards with built in mouse functionality?

<comment><USER74> The Unicomp EnduraPro is a Model M with a trackpoint. Unicomp bought the design, and IIRC the molds, for the Model M from IBM and/or Lenovo when they got rid of them.

[https://www.pckeyboard.com/page/category/EnduraPro](https://www.pckeyboard.com/page/category/EnduraPro)

<comment><USER75> A word of warning - I haven't found the trackpoint on it to be useful like it was on a thinkpad. It's too jumpy at short distances and too slow at long distances. I've since started using a Logitech M570 instead, as it reminds me of the trackball I used to like before I had a Thinkpad.

</comment></comment></comment><comment><USER76> [https://m.intl.taobao.com/detail/detail.html?id=535590071686...](https://m.intl.taobao.com/detail/detail.html?id=535590071686&spm=a2141.7631565.1.2_1)

This(pro) is what I am using now. Cheaper than ergodox ez but more beautiful.

You may need compile QMK yourself because it is flipped as compare to EZ

<comment><USER11> I'm not sure why this is downvoted, except perhaps because you linked to the mobile site. Here's the normal site: [https://item.taobao.com/item.htm?id=535590071686](https://item.taobao.com/item.htm?id=535590071686) (site is in Chinese. This is an open-source design, so there's no problem that a Chinese manufacturer is producing it.)

<comment><USER76> Thank you.

</comment></comment></comment><comment><USER77> Needs more Function keys

<comment><USER78> So build it.

<comment><USER79> I don't have room in my apartment to even learn about building physical objects! I'd love to turn my various Arduino doodads into coherent forms but my workspace is a desktop.

<comment><USER78> You don't need much to start out with. Check and see if there's a makerspace nearby- they generally have A) space and B) people willing to teach and demonstrate how things are done.

</comment></comment></comment></comment><comment><USER80> What amazes me is the amount of money dumped into standard rectangular keyboards, with zero ergonomics.

</comment><comment><USER81> Am I the only one who doesn't quite fancy mechanical keys?

For me, Mechanical keyboards cause fatigue as the key travel, regardless of which flavor of the key type, is too much. I prefer using Apple's new magic keyboar with numpad. It has a 1mm or so travel and feels fantastic.

<comment><USER82> It's not just you. The main benefits are around aesthetics and reliability, and sometimes comfort/feel. I'm a faster typer on chiclet keys than mechanical (after years of practice on both), although I'm not sure I'd agree that the chiclets are better for my hands -- presumably less key travel means more force traveling into your fingertips.

But! There are low-profile switch mechanical keyboards now, and they're very similar to your keyboard. They're still a little hard to find if you want customization (like a preferred switch type).

<comment><USER81> Could you please recommend if you know of any low profile mechanical keyboards? Are they made by Cherry MX guys?

<comment><USER82> Sure, I'm using this one, it's great: [https://www.amazon.com/Mechanical- Keyboard-Extra-Thin-Switch...](https://www.amazon.com/Mechanical-Keyboard- Extra-Thin-Switches-Rollover/dp/B0722GG88M)

Mostly they use Kailh switches, not Cherry MX but you probably can't tell the difference.

<comment><USER83> +1 for the Havit. It's cheap and feels great.

It's noisy, though.

</comment></comment></comment></comment></comment><comment><USER84> Having the mouse in the right side of the keyboard puts it too far away.

My solution is to just mouse left-handed. As a right handed person, this does take some training, but it had been worth it in the long run.

That, plus an ergonomic keyboard solved most of my problems.

</comment><comment><USER85> > If You Can't Buy the Keyboard You Want, Build It Instead

Lucky me. I can just go into most stores and pick up a Cherry Board MX 3.0 with MX Black. :)

</comment><comment><USER86> Interesting. I'd like to build my own keyboard, but my crafting skills are not good enough for it. It's a pity how few tenkeyless mechanical keyboards with a ctrl<->capslock dip switch there are, and most of them don't allow you to install matching custom key caps. I'm currently using a Pok3r, which is okay, but I really wish there were more custom keyboard options on the market.

<comment><USER82> > It's a pity how few tenkeyless mechanical keyboards with a ctrl<->capslock > dip switch there are

I suppose it's because everyone knows how to do that mapping in their OS these days. Many mechs even have reflashable firmware, if it came to that.

<comment><USER86> If you boot several OSes, use ssh connections, and remote desktop connections, this really becomes a hassle. It always breaks at the wrong moment with some kind of OS update. Especially key remapping on Linux is a horrible experience in the long run.

</comment></comment></comment><comment><USER87> Is this like the audiophile movement?

<comment><USER88> Yes.

</comment></comment><comment><USER89> Or hire someone do it for you :)

</comment><comment><USER90> Yeah you lost me at "Plate CNC cut from 1.5mm aluminum".

</comment><comment><USER91> I did just that. I hired Darrell Fandrich to build it. He started with a 5'10" case and soundboard built in Guangzhou, China but discarded the soundboard. We chose a scale design by Lothar Schell and a Holy Grail stringing scale by Fandrich with strings custom wound for the scale by Mapes in Kentucky. The stringing scale included special Mapes aluminum strings that cover the first six notes above the point where the overstring section begins—these are designed to better blend the the overstring transition which can otherwise be notchy. A custom soundboard was crafted in Boston from hand-picked straight- grain Siberian spruce and milled to a diaphragmatic shape that mimics Steinway soundboards where the center is about half an inch thick but, to enhance liveness and sustain power, tapers down to about 1/4 inch at the edges where it meets the case. A custom Renner action was added and outfitted with Abel Royal Blue grand hammers. Key weighting and fine voicing conducted in stages over the course of several months finished it off. That was in 1998-99 and it is still the best keyboard I have ever used.

<comment><USER55> This article is about computer keyboards, not musical keyboards. What you've posted doesn't make sense in the context of this topic.

<comment><USER91> Oh. It just said "keyboard you want." My mistake.

<comment><USER55> Did you click it? You're supposed to click the link to view the article before commenting. There's a very clear picture of the keyboard above-the-fold.

<comment><USER91> I was championing keyboard diversity.

</comment></comment></comment></comment></comment><comment><USER92> I'd swaps Caps Lock and Ctrl.

</comment><comment><USER93> Thanks for sharing the link. This is an awesome DIY.</comment>


Ruby 2.4 improvements in depth: Hashes, Integers and Rounding - <AUTHOR> https://blog.heroku.com/ruby-2-4-features-hashes-integers-rounding <comment><AUTHOR> See also discussion started from Ruby 2.4 announce few days earlier: [https://news.ycombinator.com/item?id=13252225](https://news.ycombinator.com/item?id=13252225)</comment>


Why Joy Division? Henry Rollins examines Jon Savage's oral history of the band - <AUTHOR> https://www.latimes.com/books/la-ca-jc-jon-savage-joy-division-henry-rollins-20190420-story.html <comment><USER2> In the same way that George Martin used his experience and expertise in the studio with the The Beatles, Martin Hannett used his studio craftsmanship to shape the sound of Joy Division. As the article states, without his (and others) input they may not have been what they were. Having listened to their albums (an actual perfect discography), their demos, outtakes and other rarities, I think this definitely rings true. My first exposure to their history was the film 24 Hour Party People, which I think actually does justice to them and the scene that they were a part of.

<comment><USER3> The "Control" movie is nice too (at least from the point of view of someone who likes JD without being the biggest fan)

</comment></comment><comment><USER4> [https://www.youtube.com/watch?v=TVlNfo1tgXM](https://www.youtube.com/watch?v=TVlNfo1tgXM)

</comment><comment><USER5> As someone who likes a lot of punk and some hardcore, I will never understand the appeal of Henry Rollins. Overrated musician, overrated human being.

<comment><USER6> Wow. I mean, I like a lot of punk and hardcore, too. I was never a _huge_ Rollins fan in that I idolized the guy or anyhing, but I was never NOT a fan. I mean how can you not respect the guy? Black Flag is iconic. Rollins himself, as far as I'm aware, is a stand-up guy, true to himself, no bullshit dude. What, exactly, is overrated about him?

<comment><USER5> I guess I'll qualify that and say I don't think Black Flag is a bad band I've just never heard anything from them that I really loved either and that's in a genre I'd say I'm pretty predisposed to liking.

But really he just comes off as one of the smuggest people to me which I find to be a really obnoxious trait. Like every interview with him feels like he has to go out of the way to make the interviewer feel like his time is being wasted when in reality he seems to like being interviewed as he spends a lot of time in front of cameras.

To each their own. I certainly don't fault anyone else for liking him or Black Flag and there's certainly a lot worse music out there but he just always rubbed me the wrong way.</comment></comment></comment>


Belarus turned off the internet – citizens hot-wired it - <AUTHOR> https://gizmodo.com/belarus-turned-off-the-internet-its-citizens-hot-wired-1844853575 <comment><USER2> Aside from the horrible moves by the dictatorship, the wording in this article does pose a point about the centralisation of the internet.

Based on the title, I was expecting to read about internet shutdowns and peer to peer networks. Instead, it's just a story about DPI and VPNs.

Nothing here is being "hot-wired". Blocking social media isn't "shutting down the internet" in any technical sense. Turning off cell networks because of protests is, but those actions aren't being circumvented here. Yet still the term "internet shutdown" is being circulated a lot.

I do wonder if the general population would claim the internet is turned off just because Google, Facebook and Twitter aren't available. By these definitions, does China have internet access? It's interesting to me to see how years of internet access and growing up around smart devices has taught people so little about the actual workings of the internet.

<comment><USER3> I think car mechanics are also upset that years of driving cars have taught people so little on how a car works. For many people turning off Facebook and Amazon is turning off the Internet because its the only sites they visit.

<comment><USER4> I think equating "only using F, A, and G" with "don't know how cars work" is plain wrong in this metaphor. Not knowing how cars work would equate more to "don't know what a router/switch does" which is... fine I guess, for most users who just plug a plastic box into an outlet.

Only using the 2 or 3 major websites, in car speak, would likely more look like "only know the road to the mall, the job, and the daycare and doesn't even realize there are other places one might conceivably go" which is... not fine in my book, and yes, I'm frustrated about that.

<comment><USER5> Dropping the metaphor.

People don't use their network equipment to its full potential, because they think the web == internet. So they have all this crazy equipment with functions they never even imagined, and only use it to browse a few websites. So I actually think the issue is even worse than what you describe and I'm frustrated about it too.

<comment><USER6> >People don't use their network equipment to its full potential, because they think the web == internet

I see that a lot of my fellow nerds have this feeling and I'm honestly, non- trolly curious about why this is. People have wants and needs (get email from boss, watch video, lookup a recipe) and they learn how to do that specific task. Most people don't know what the internet is, or what a even what computer is beyond a simple mental model that allows them to do what they think they want to do.

For most things, this is exactly how you I and everyone else lives their lives too. Like everyone else I'm sure there are systems that you use on a daily basis which you don't understand beyond the specific steps that you need to know in order to accomplish your task. I don't have anything beyond the most basic pharmacological understanding of how the prescription drugs I take work, and I probably never will yet I depend on them daily.

Most people will never understand most things. I see that as utterly normal.

<comment><USER7> To me, the unusual part is that there are people who live with and use systems on a daily basis without ever becoming curious about them. I mean, hours and hours of every day, dependent on the internet and people never stop and ask, "What is this thing? How does it work?"

In that vein, I was pretty impressed the other day by the Wikipedia article on traffic lights.

</comment></comment></comment></comment></comment></comment><comment><USER8> I don't see any evidence of hot wiring. In my book, hot wiring would be decentralized access over unconventional transport like long range radio or plain old telephones or a relay of wifis or satellites in a way that can't be easily restricted by a government.

But Telegram is just part of the same old centralized server approach.

<comment><USER9> I was in Belarus earlier this year. The thing to understand about how that country works is that there are only two interdependent groups of people that hold wealth: 1) the ruling elite that acquires their riches through nepotism, corruption, etc. Belarus is basically a kleptocracy. 2) the booming IT sector, which is now the primary export product of Belarus and employs a lot of people working in the vast outsourcing industry that serves big western companies. People doing that work earn pretty good salaries by Belarusian standards. There are hundreds of thousands of them and the sector tends to hover up anyone with relevant college degrees as there's little else to do. E.g. dentists or doctors earn comparatively little compared to that.

The problem the regime has is that anyone with a clue and IT skills is monetizing those skills in that sector as government jobs, including those in its vast security forces, don't pay a lot. So, they don't necessarily have a lot of in house competence implementing any kind of sophisticated blocking strategies. Anyone capable of implementing that could quadruple their salaries by jumping ship. The state telco company gets most of its revenues from the IT sector as well. So they don't have any incentive to shut down their core business. I'm guessing it's mostly Russia that helps them with the technical parts of that. Of course Russia and Putin are currently mildly annoyed with Lukashenko and are looking to grow their influence in Belarus a bit by letting him flail desperately for a while. So, they are a bit hands off right now and not in a mood to help him out.

The second problem is that group #1 is basically tapping into the wealth generated by group #2. So shutting down the internet is a spectacularly bad idea for #2 for obvious reasons and therefore not a popular notion for #1 either. The people who would be at all capable of effecting such a change are mostly working in the IT sector already and the elite in group #1 kind of needs them to keep on doing their thing so the money keeps flowing. Besides, rich people need their internet fix and Lukashenko is considered a bit of an old relic by both groups. A convenient stooge at best.

Hence internet shutdowns tend to be short lived, ineffective, and largely symbolic. Telegram is important for both groups and completely outside of the control of Belarusian authorities. It's the same reason the Russians have failed to shut that down. They can't do it without cutting off the IT sector and the financial gains coming from that sector and none of the billionaires that make up the elite like it when their shiny iphones stop working.

<comment><USER10> Thanks, that was much more informative and better explanation of situation in Belarus than I have read anywhere else. Also shorter. I wonder if that is related to the fact that you are not trying to show ads together with that.

</comment></comment></comment><comment><USER11> Coming from Kashmir which is __STILL __under an internet clampdown, this is trivial. What they did was something previously unheard of. Indian government essentially whitelisted some websites and blocked the rest. I did experiments when amazon.in domain was whitelisted but all images were blanks. Turns out they had not allowed aws.amazon.com. some time later they allowed the URL and that is when I spun up a $300 credit small instance vps using Streisand. It worked. For some time. Then they got greedy and started blocking all "ports" so this was out of question. I ended up with a stupid simple idea. No vpn, no nonsense. The VPS server running had a ipv4 address and I did simple SSH tunnel over port 80. That was what did the trick for me. There were attempts to use URL tricks, I forgot what its called. So if anyone needs my "expert" firsthand experience can just buzz me.

Note: 4G mobile internet is still BANNED in Kashmir for "maintaining the national integrity and sovereignty of india" and other bs

</comment><comment><USER12> I always click such news because i know of some "Self-organizing Mobile Ad-hoc Networks based on Delay Tolerant Networking" (MANET-DTN) technology experimentations at german universities in the last years that use wireless and broadband chips in cellphones (with an app) to relay public service announcements and calls for emergency responders in situations like for example if the cell-tower is destroyed by an earth-quake. See: ftp://ftp.kom.tu-darmstadt.de/papers/LAG+17.pdf (not the whole thing, just a pointer towards more pointers. the apps named in III all seem abandoned)

But the news is never about that :-/ Just "someone shut down the facebook" \- boring

</comment><comment><USER13> I am looking forward to LEO satellite networks that are connected to the Internet. Won't be easy to suppres yoir people then.

<comment><USER14> Except that distinctive Starlink antenna becomes an "arrest me" sign.

<comment><USER15> Unless its disguised as something else

<comment><USER16> How do you disguise a radio transmitter? It's about as futile as disguising a searchlight.

<comment><USER17> 1\. Narrow beam antenna (such as satellite antenna) does NOT propagate signal arround it (OMNIdirectional antennas does that). It's almost impossible to detect it unless you fly directly over the beam. Think about it as laser beam.

2\. It is possible to build verious kinds of covert antennas. Radio amateurs do that all the time. Just google the term "stealth ham radio"

<comment><USER18> > Think about it as laser beam.

But if you shine a powerful laser beam into the sky it is visible from pretty far away. It's highly focused, but also gets scattered a lot by the atmosphere.

<comment><USER17> Think about it as __inivisible __laser beam in terms of beam width. We are talking here 2mm wave with very directional antennas - its very hard to detect it.

That's actually how spies send data back over the satellites:

>Unlike with SW signals, a radio signal to a satellite is very difficult to intercept and trace, as the waves are 'beamed' straight up rather than all around.

[https://www.cryptomuseum.com/spy/rs804/index.htm](https://www.cryptomuseum.com/spy/rs804/index.htm)

<comment><USER19> What? There's no way to send a 2mm (width) wave. Yes, parabolic antennas have very high gains in one direction, but they're far from '2mm' and far from 'invisible'.

A helicopter with the right equipment flying over urban areas would have an easy job finding them and even pointing out the approximate location (eg. a building) where they're located. If the antenna was inside a huge apartment building, it would be hard to find the right apartment, if the transmitter was turned off, but with single family buildings, it would be easy.

Ham radio operators hide and then look for hidden transmitters for fun, so it's not that hard, especially with a budget that is given to the police.

<comment><USER17> >There's no way to send a 2mm (width) wave.

You are very wrong sir. [https://en.wikipedia.org/wiki/2-millimeter_band](https://en.wikipedia.org/wiki/2-millimeter_band)

>A helicopter with the right equipment flying over urban areas would have an __easy __job finding them.

That is not true. Helicopter would need to fly RIGHT into such directional and tiny beam. Which is nearly impossible to do in huge city. Even when flying 2m next to it, you would likely not detect it.

That is the reason why CIA had so much problem with pinpointing Iridium satellite phones back in Colombia in the 90's.

<comment><USER19> 2mm is the wavelength, not the effective width (think of a laserbeam) of the wave.

and yes, even with a laser (nanometer wavelengths) it's hard to produce a 2mm wide beam at a helicopter distance.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER20> That is why projects like Freifunk or Funkfeuer are extremely important.

</comment><comment><USER21> It seems to me that Starlink will become, in the near future, an essential tool to fight oppression as it will serve as a secondary solution to citizens. That is unless the government uses something like an EMP to deny service.

</comment><comment><USER22> We have the same problem here in Serbia, and no, he is not the last dictator in Europe. Vucic is another one, Orban is another one...Milo Djukanovic is the greatest of them all...

</comment><comment><USER23> Whole Belarus protests story just exposes flaws of democracy - probably to the point of it no longer being viable in a post-industrial world: let people _really_ vote and they inevitably vote against their own interest, just because any sort of reality possible for the masses can't be accepted by them for being too grim: real voting can only be won by blatantly lying.

I hope we will find a way to peacefully wind down the democracy in the West before it completely destroys our economy and society.

<comment><USER24> I really wonder what interests you represent to voice such an opinion.

Democracy isn't a panacea to the world's problems. It needs an informed population in order to function, which directly and without discrimination means government transparency. The process of opinion building needs to be taught in schools, and journalists need to be protected from interference.

Without these pieces and more in place there is no democracy. Very few countries actually are democratic in practice. The fight for freedom and democracy is ongoing, and those who get in its way are misanthropes who deserve a bitter end to their efforts.

<comment><USER23> First and foremost democracy needs government which is funded by the people, not other way around. In today's Belarus, this is not the case; in the near future, it will not be the case in most or all large Western societies simply due to technological reasons: automation will make most people unemployable and dependent on government handouts - either direct, in form of basic income guarantee, on concealed, through public of private "bullshit jobs", that create no economic value but exists just so these people can consume and keep the wheels of economy rolling.

Have that, and democratic society with freedom of speech, and you get a self- eating monster machine that will destroy itself in less than a generation. Why does someone who has no chances to be self-reliant, vote responsibly? Especially if he is well-educated and well-informed, so he realises it.

</comment></comment></comment><comment><USER25> One takeaway from this article is that condemning fascism was too much for American tech companies... pathetic. Have companies always been this spineless?

</comment><comment><USER26> > Putilo is "wanted" in both Belarus and Russia and facing up to 15 years > imprisonment

Isn't Telegram based in Russia? I'm surprised Russia didn't try to get them to bock Putilo, or at the minimum that Russia would cooperate with a Belarusian internet block.

<comment><USER27> The Russian ban on Telegram was lifted recently. They couldn't enforce it, because Telegram was very good at proxies, so the people used it anyway. Heck, even govt officials used it.

[https://www.washingtonpost.com/world/europe/russia- telegram-...](https://www.washingtonpost.com/world/europe/russia-telegram- kremlin-pavel- durov/2020/06/27/4928ddd4-b161-11ea-98b5-279a6479a1e4_story.html)

[https://decrypt.co/32837/russia-lifts-ban-on-telegram- after-...](https://decrypt.co/32837/russia-lifts-ban-on-telegram-after-two- years-of-trying)

<comment><USER28> For those who do not aware how this story began. After the ban was introduced, Russian Internet Monitoring Agency (Роскомнадзор) tried to enforce it, blocking whole subnets where Telegram proxies were spotted. It led to massive shutdown of many Russian IT companies' services, relying on AWS and DO infrastructure, with resulting multimillion dollar losses. However, Telegram remained afloat, ashaming Russian officials responsible for censorship. After several years of numerous attempts, they still could not enforce the ban (honestly, their expertise visibly worse than, let's say, those who designed Great Chinese Firewall), and had to officially lift it.

</comment></comment></comment><comment><USER29> I'm almost positive we'll see similar actions taken by the current US administration as we get closer to November. Basically shut everything but Fox/OANN down, so they can be the single source of "truth" and declare victory. Ready for your downvotes.

<comment><USER30> I am confident this won't happen, and would be willing to wager with you on this

<comment><USER29> Deal. Circle back in November!

<comment><USER31> Not that it will matter by then. The effects of your spreading FUD about imaginary realities aren't going to just be reversed by you acknowledging you were wrong in a couple months.

You are actively detracting from real issues today by posting this nonsense.

</comment></comment></comment></comment><comment><USER28> At least one Putin cried reading "...Belarus, sometimes called Europe's last dictatorship". Of course, unless you consider Russia as a Chinese posession already, technically making it one of Asian dictatorships.

<comment><USER32> The "Europe's last dictatorship" moniker comes from the pre-Putin era when Russia did seem to be democratising.</comment></comment>


Study says BICEP Cosmic inflation detection was wrong - <AUTHOR> http://www.bbc.com/news/science-environment-31058529

<comment><USER2> Misleading headline. They said there's a 50% chance that they detected dust rather than inflation so inflation isn't confirmed after all.</comment>


Ask HN: image scaling on the fly - <AUTHOR>

Hi,
I've built some mobile sites & apps the last few years and rescaling images keeps popping up.
Ideally I would want something like this:
http://scal.er/w40-a1:1/http://path/to/image
this would generate a square thumb, 40x40.
I would be willing to pay for such a service. <comment><USER2> Why not use ImageMagick?

I have used it to create thumbnails for a demo website and they looked OK. Does it have any performance/ aliasing/ whatever issues I'm not aware of?

<comment><USER3> ImageMagick is gold for this sort of thing. I'm actually working with it as I type :)

</comment></comment><comment><USER4> Was there a question being asked here? If you are looking for a programmer- for-hire, there are freelance sites for that sort of thing. This isn't even an hard/interesting problem, and anyone who could "build a mobile site/app" should be able to code up this trivial service in minutes.

<comment><AUTHOR> Sorry, I wasn't clear enough earlier.

I have used imagemagick/GD previusly, but there are some hassle involved in setting up this for each project/client (cron job for cleaning up thumbs, space considerations, not all ISP I use for clients have GD installed etc)

I agree that writing an ad-hoc image scaler is simle.

However, writing a quality general one that handles different formats, image quality, aspect ratio, smart cropping etc..is not trivial.

<comment><USER4> Righty-o. Didn't mean to sound annoyed, but there has been a bit more Craigslist-y trolling-for-programmers-for-hire than usual lately it seems, and that kinda stuff needs some trouncing IMHO. :)

Also, you are going to be limited to the tools for processing images that are out there for the most part, which sadly means ImageMagick and/or GD. But not SO sadly, as both of those (while annoying to deploy, granted...) have decent bindings to everything, support a pretty good selection of images types, and have params for controlling the aspects you mentioned (except maybe smart cropping).

Everything else is arithmetic and designing a clean, RESTful URL scheme for invoking it. I guess I meant trivial in the sense that all these things are solved problems or only require a bit of time/cleverness.

I built one of these a few years ago using PHP/GD, and it performed admirably (and did everything except smart cropping in your aforementioned list...)

So, feel free to hit me up if you get stuck on any specifics. Been there done that, and can commisserate if nothing else. ;)

<comment><AUTHOR> Thanks for that, I'll let you know if I get stuck.

</comment></comment></comment></comment><comment><USER5> At work I developed a wsgi script that use Python Imaging Library to resize images on demand. You can see it in action here:

[http://dyn4.media.forbiddenplanet.com/products/2148557.jpg.s...](http://dyn4.media.forbiddenplanet.com/products/2148557.jpg.size-300_square- true.jpg) [http://dyn4.media.forbiddenplanet.com/products/2148557.jpg.s...](http://dyn4.media.forbiddenplanet.com/products/2148557.jpg.size-300_square- true.gif)

Basically, if you chop off the dyn4 sub-subdomain and everything after .jpg you can see the original unmodified image. You can also change the extension at the end to change the format of the image (jpg,png or gif). We cache the files to /tmp which we periodically clear out. Whilst it might be more efficient of going down the route of pre-generating all the images we'll need, it's very convenient being able to do it on the fly and to be honest for a site of our size (225,000 visits/month) it's barely a spec on the CPU load of our media server.

There's also an apache module that uses ImageMagick to do something similar:

<http://github.com/beetlebugorg/mod_dims>

I have to be honest though, I prefer the API for my version and it gives the files a meaningful name in the /tmp folder as well as the user's internet history.

Unfortunately my version isn't open source (yet?) and the code is a bit of a mess, but it's something we have considered opening up.

</comment><comment><USER6> There is <http://imagejuicer.com/>, that seems to do what you want.

<comment><USER7> Has anyone here used Image Juicer?

It looks interesting but I found the documentation page to be pretty lacking. The simple example they show just allows you to pass a height and width parameter, but the home page says you can do cropping, watermarking, etc.

<comment><USER6> From their site:

You can pass other info in the outputs hashes, like labels, your own ids, or whatever. That extra info will be passed back to you in the response JSON.

So I assume it is a case of emailing them and asking for an exhaustive list of what can be passed to their api, the documentation definitely needs work.

</comment></comment></comment><comment><USER8> I'm currently wrapping up work on an image processing module with a client. If you want I could build a dedicated service for you.

If you are running your own site, and using nginx, there's an image processing module for it that is a match for your requirement: <http://wiki.nginx.org/NginxHttpImageFilterModule>

<comment><AUTHOR> Thanks for that, but Im looking for a "pay as you go" service.

</comment></comment><comment><USER9> I wrote a HTML=>PNG service last week (<http://htmltoimage.tenprinthello.com>), so it's just a hop to an image resizer.

If you want one developed, please contact me, my email is on my blog @ <http://www.adverseconditionals.com>

</comment><comment><USER10> <http://wiki.nginx.org/NginxHttpImageFilterModule>

</comment><comment><USER11> I've been impressed with Dragonfly, "a Rack-based ruby gem for [image] processing/encoding on the fly"

      http://blog.new-bamboo.co.uk/2010/1/2/dragonfly

</comment><comment><USER12> I've thought the same thing. Seems like something that needs to be done over and over. It seems like a good potential business idea as long as it's cheap enough.

</comment><comment><USER13> I think urlimg might be what you are looking for... <http://urlimg.com/>

<comment><AUTHOR> Thanks, will take a closer look, but pricing seems off (1 cent/mb/month over 50mb)

</comment></comment><comment><USER14> I'd be happy to build you such a service. Would be quite simple. email me- email@example.com

<comment><USER15> Off topic, but why do you have all of your files browsable at <http://idont.no> ?

You should set up a landing page at least, so visitors don't just see /www directory.

</comment></comment><comment><USER16> you may want to try this: <http://gaia-git.sourceforge.net/> it targets mobile devices, so could be what you are looking for.

</comment><comment><USER17> try <http://cdn-cloud.appspot.com/> despite the name "cdn", it provides functions for scaling

<comment><AUTHOR> Thanks, looks useful, but didnt find any Terms of service or pricing info..</comment></comment>


The banks' secret endgame - <AUTHOR> http://www.gregpalast.com/larry-summers-and-the-secret-end-game-memo/

<comment><USER3> Why are investment banks casinos? what's so terrible about derivatives? They're not "pseudo" products, or any more "dangerous" than say a stock.

Firstly derivatives have been in use for thusands of years - first employed to lock in prices for future crop harvests. Now millions of businesses rely on derivatives to manage fx exposures, commodity exposures, interest rate exposures and so on. Without recourse to such products companies future cash flows would be much less predictable and expose companies to material risks. Contrary to what you might hear, derivatives ARE socially useful (e.g think the S.Korean business who hedges his USD-denominated payroll liabilities).

Secondly, IBs are not casinos. They take risks, but so do retail banks (they borrow short and lend long so you have a duration mis-match leading to credit, liquidity and interest rate exposures). The financial crisis was born out of over-enthusiastic mortgage lending - i.e your basic retail product. Even lehman brothers, a classic IB, went down due to it's large commercial property portfolio which tanked in the crisis (again, nothing to do with derivatives).

In all crises governments and the media need someone to blame. IBs are the scape goat this time. But the reality is a heck of a lot more complex than a simplistic "greedy IB assholes running amoke and stealing the world's wealth with nasty derivatives".

Indeed all the regulation that's now been implemented is incredibly counter- productive. It doesn't make banks safer (people can and will always make stupid business decisions no matter how much regulation you deploy), it increases costs and restricts lending - the very opposite of what's needed to finance a return to, or increase in growth.

<comment><USER4> >The financial crisis was born out of over-enthusiastic mortgage lending - i.e your basic retail product. Even lehman brothers, a classic IB, went down due to it's large commercial property portfolio which tanked in the crisis (again, nothing to do with derivatives).

How can you possibly say this? It was mortgage backed securities (derivatives) and collateralized debt obligations (derivatives of derivatives) that were the main product that allowed excessive lending, by obscuring the true risks. It was the markets for these securities that froze, causing the liquidity crisis that drove the financial crisis.

<comment><USER3> An MBS is NOT a derivative. It's a cash product. Either way you're missing the point. Securitisation is just a way of funding lending. Whether you use deposits, borrow from the money markets, or securitise loans, the money to make those loans has to come from somewhere.

Ultimately it was mortgage brokers and the retail banks (or retail arms of universal banks) that sanctioned these mortgages and lent money to highly unsuitable people. Yes they were securitised and sold on but as I say above this is just a funding mechanism. Yes the IBs have some responsibility for not checking the quality of the loans but then there's an argument that should have been done already by the retail side. And of course no-one imagined that default rates would ever get as high as they did - which did wipe out some MBS and CDO tranches resulting in large losses for the holders. As an indication these types of issuance were typically stressed at default rates of 10% - <USER2> that was considered extremely conservative. What actually happened was some of these mortgage pools were so crappy default rates hit 80% or 90%.

<comment><USER5> Derivative does not equal swap. MBS is definitely a derivative. It's a bond whose price and cash flow is based on an underlying pool of loans. The mortgage loans themselves are not derivatives, but mbs are. Stock options are cash products and they are most certainly derivatives.

<comment><USER3> Sorry you are wrong. MBS is not classed as a derivative. As pointed out above it's actually a structured finance product. But anyway as a simple sum of underlying cash products it's still a cash product (you pay upfront cash equal to the notional of the instrument)

A stock option on the other hand is most definately NOT a cash product, although the underlying is. __The stock itself is not traded __, it 's just a financial contract whose value is a function of the stock price.

</comment></comment></comment></comment></comment><comment><USER6> Google cache works - [http://webcache.googleusercontent.com/search?q=cache%3Awww.g...](http://webcache.googleusercontent.com/search?q=cache%3Awww.gregpalast.com%2Flarry- summers-and-the-secret-end-game-memo%2F&oq=cache%3Awww.gregpalast.com%2Flarry- summers-and-the-secret-end-game-memo%2F&aqs=chrome..69i57j69i58j69i60.2226j0)

</comment><comment><USER7> The discussion of the vice post from yesterday:

[https://news.ycombinator.com/item?id=6260126](https://news.ycombinator.com/item?id=6260126)

</comment><comment><AUTHOR> Apologies, I didn't find this discussion from yesterday: [https://news.ycombinator.com/item?id=6260126](https://news.ycombinator.com/item?id=6260126) where the article is on vice.com.

</comment><comment><USER8> > _But Lula 's refusenik stance paid off for Brazil which, alone among Western > nations, survived and thrived during the 2007-9 bank crisis._

I guess Australia doesn't exist in conspiracy theories.

<comment><USER9> Australia is in the west?

<comment><USER10> Culturally, they're a Western nation.

</comment></comment></comment><comment><USER11> Link is broken. Anyone have a mirror?

<comment><USER12> Vice: [http://www.vice.com/en_uk/read/larry-summers-and-the- secret-...](http://www.vice.com/en_uk/read/larry-summers-and-the-secret-end- game-memo)</comment></comment>