Warrants Show How the FBI Can Unlock Your Phone and Track Your Movements - <AUTHOR> https://edition-m.cnn.com/2019/03/19/politics/michael-cohen-warrants-fbi-phone/index.html <comment><USER2> >"In one warrant application for Cohen, an FBI agent requested authorization "to press the fingers (including thumbs) of Cohen to the Touch ID sensors of the Subject Devices, or hold the Subject Devices in front of Cohen's face, for the purpose of attempting to unlock the Subject Devices via Touch ID or Face ID."

<comment><AUTHOR> These types of erosion of civil liberty while increasing the power of the State, is exactly why I don't rejoice at all this prosecutorial aggression towards Donald Trump. Rather than rejoice that they got extra data from Cohen, it should scare the hell out of people that congressmen would sneak a bill into a budget, permanently eroding civil liberties for us all, simply for some perceived political gain.</comment></comment>


Learn Anatomy Faster - <AUTHOR> https://www.kenhub.com/ <comment><USER2> Does this web app suport brain anatomy in detail, I mean naming each and every fissure and sulci? Also being able to be fmri, mri, ecg recording of brain would be intesting. I also like to learn what type of or shape of neuron exist at particular location in brain.

<comment><USER3> Hey there! I'm on the technical side at Kenhub, but I've asked Dimitrios -- one of the professors on our content team -- to reply:

"We cover most of the gross anatomy of the brain. Our atlas/videos/quizzes/articles describe the vast majority of the gyri and sulci as well as the internal structures of the brain (hippocampus, basal ganglia etc).

Pretty recently we have started our new "medical imaging" section where you can find some cool MRI and CT images of the brain (but no fMRI).

Regarding the morphology of the neurons: unfortunately we don't have this info. This is pretty hard and even today there are some parts of the human brain where the accurate cyto-architecture is not known."

Hope this gives you a picture. Feel free to reach out to us via firstname.lastname@example.com. We usually reply within a couple of hours or so. Besides the platform, we offer personalized learning support :)

</comment></comment><comment><USER3> Hey, thanks for posting Kenhub on HN. I'm one of the co-founders. Happy to answer any questions :)</comment>


Ask HN: Best way to monetize how-to content? - <AUTHOR> Frequently when working on a project, I figure out how to do something novel with a technology/language/framework, or something that's unique for a combination of tools. Often times there just isn't any helpful explanations of the use-case online, or the documentation/tutorials out there are not fleshed out in any quality format that's beginner friendly.<p>In those cases, I'd love to have a process to make content that shows others how to get started solving the similar problems I faced. What would be the optimal choice (or combination) of formats that would be the most profitable? Youtube tutorial video, along with a written article (personal blog post, then exported to Medium) and link to github sample code? Micro course on a proprietary learning platform like Udemy? I'd love to know what combination others have found that has produced the most results in exposure and profit. <comment><USER2> Find products that are most relevant to the subject where vendor offers commissions for referral sales.

Then place adds for these products on a sidebar via your affiliate link.

</comment><comment><USER3> I don't have any personal experience w this but have been thinking about doing similar things myself. I recently listened to a podcast on Indie Hackers with Nat Eliason, who has monetized his SEO knowledge quite effectively [0]

He wrote a few blog posts that went viral, for some he did affiliate stuff, for others he actually built apps that he sold through the article and apparently made $3-7K / month from that in a nearly entirely passive manner.

He also monetized his knowledge on SEO by starting a growth agency that does SEO for clients and apparently makes $85K / month for that after just like 8 months of working on it

If you can turn your knowledge into an app or plugin (solve the problem for them instead of tell them how to), or an e-book, and sell them for $20-50+, that might be more profitable than ads or affiliate stuff, as long as you convert at a high enough rate

He also writes and publishes notes on all books he reads, and he sells an evernote notebook with notes on like 200 books for $50 or so. He does a lot of other clever monetization stuff. Of course his advantage is that he has a personal blog that gets a lot of organic traffic, and lots of SEO knowledge, so distribution is easy for him

Another person, Nathan Barry, wrote e-books on how to write apps, how to write etc and made 5-6 figures from those. That then evolved into a bootstrapped startup that currently does $1.2M rev / mo [1]

Both of them are good marketers and their product / monetization flows from that.

[0] [https://www.indiehackers.com/podcast/065-nat-eliason-of- grow...](https://www.indiehackers.com/podcast/065-nat-eliason-of-growth- machine)

[1] [https://nathanbarry.com/2018-review/](https://nathanbarry.com/2018-review/)

</comment><comment><USER4> I did a ton of research. There is no sure fire way. But.. if you are looking for most profitable, you want to make an online course.

Udemy is good for a lead generation channel but with their pricing,your only making $2.50 per student. Plus you cannot mention your site in the main videos. You are only allowed to advertise your site in a bonus video.

Gumroad is a good option for payment and distribution. Host the blog posts on your own Wordpress site.

</comment><comment><USER5> If your content isn't long enough, it'll be hard to monetize individually. Unfortunately, micropayments isn't a reality yet.

I think your best bet is to amass enough content for a blog and either make money through ads or a subscription model.

If your content is niche enough, I wouldn't even bother with ad revenue from YouTube.

</comment><comment><USER6> Set up a website with blogs and embedded YouTube videos. Do import some of your blogs to Medium (but dont expect to get paid much from them). The real money lies in Google Adsense implemented on your site and YT videos.

<comment><USER7> In my experience (2 niche blogs), nowadays, the real money comes from Amazon affiliates and direct ads. I gave up from Adsense 2 years ago.

<comment><USER8> AdSense pays out $2-$3 CPM

Other ad networks pay out $20-$30 CPM

Add are, sadly, a good way to monetize

<comment><USER9> Who are the ad networks paying $20-$30 CPM for tech ?

<comment><USER10> i am curious too...</comment></comment></comment></comment></comment>


1,600 Year Old Goblet Shows Romans Used Nanotechnology. - <AUTHOR> http://www.smithsonianmag.com/history-archaeology/This-1600-Year-Old-Goblet-Shows-that-the-Romans-Were-Nanotechnology-Pioneers-220563661.html <comment><USER5> Is it just me or has the term "nanotechnology" really inflated in meaning in recent years.

When I think of nanotechnology I think of actual designed automatons at nano scale, not anything just containing nm sized particles.

<comment><USER6> If "containing nm sized particles" is all something needs to do to be considered nanotechnology, everything is nanotechnology. This is getting ridiculous.

<comment><USER7> Then what would you call [purposefully] generating nano sized particles and mixing them in a specific ratio to add to glass to create a colour change effect that is highly sensitive to contaminants?

It's not simply chemistry as it's using [apparently] engineered physical effects of light transmittance.

<comment><USER6> I'd call it either chemistry or applied physics. Probably lean more towards applied physics, as chemistry doesn't concern itself with light.

I mean, in what way is this engineering? Metal particles emit characteristic glows when struck by light. Romans ground up the metal and mixed it in with glass. Now the glass does it too. Voilà.

If I'm reading the article right, this is analogous to me making lemonade by mixing sugar and lemon juice into water, granting the water the flavors of sugar and lemon with nanometer-scale particles (citric acid and sucrose). Is lemonade now the tastiest form of nanotechnology?

<comment><USER8> It may seem like commonly known applied physics today, but you can bet 1600 years ago it was a pretty amazing engineering fete to create a glass _that automatically changed colors_ when different liquids were put in it. 1600 years from now I'm sure our successors will be calling the quantum computers we're toying with simple applied physics instead of engineering as well.

<comment><USER9> The argument is the use of the word nanotechnology. They were not engineering things on the nano scale, they were just mixing ingredients together. If the definition of nanotechnology is incidentally using nano scale particles, then the word is essentially meaningless because everything would be nanotechnology.

The grievance is that bloggers and journalists throw these buzzwords around for attention, and their articles end up being ridiculous, and if you're picky about definitions, outright false.

</comment></comment></comment></comment></comment></comment><comment><USER10> I made this comment yesterday in another thread, but it provides some of 'why' for the colors we see in stained glass.

> You've seen it before... Stained glass. Stained glass was one of the first > use of nanoparticles and plasmonics to become commonplace. The wide range of > colors that you can get in stained glass is due to the nano properties of > the materials you add to the glass. The effect is due to surface plasmons - > electric field waves that travel on the surface of conductors. Much like > ocean waves, plasmons are created from light's electric field. They bounce > back and forth, and since they are only permitted on the surface of a > material, there are limits on what waves can exist. This is what gives them > the weird properties - the size and shape determine the optical properties.

On another tangent (this one's pretty cool) - since you can tune the properties of these nanoparticles, you can make them respond in a specific way. Let's say we have a cancer cell that we want to kill, and only that cancer cell should die. We can create nanoparticles that bond with that cancer cell, and only that cancer cell. But how do we kill it? We can tune the absorption spectrum of the nanoparticle to absorb infrared light - light that is transparent to the human body. We create a small heater that absorbs tons of the input energy, while keeping the rest of the area cool. Localized heating destroys the nearby cancer cell.

Plasmonics are really cool - [http://en.wikipedia.org/wiki/Plasmon](http://en.wikipedia.org/wiki/Plasmon) [http://en.wikipedia.org/wiki/Plasmonic_Nanoparticles](http://en.wikipedia.org/wiki/Plasmonic_Nanoparticles)

<comment><USER11> > light that is transparent to the human body.

That bit didn't make sense to me.

The rest does, I think what you're saying is that this is a tuned circuit which will absorb certain wavelengths.

<comment><USER10> Whoops, that should have been translucent. Yeah you tune the gold nanoparticles to absorb radiation that is able to be transmitted into the body (I can't find any graphs of the human body's vis/ir transmittance - <USER2> water is a good 'baseline'[1]). Tuning something to green wouldn't work so well, because you can't get the light in. But infrared works great - <USER3> by how readily red light passes through fingers with flashlights.

[1] [http://en.wikipedia.org/wiki/File:Absorption_spectrum_of_liq...](http://en.wikipedia.org/wiki/File:Absorption_spectrum_of_liquid_water.png)

<comment><USER12> That still makes no sense: 1) light itself cannot be transparent or translucent, only objects, and 2) the human body is in fact opaque in the infrared, as evidenced by the fact that heat lamps warm us up.

</comment></comment></comment></comment><comment><USER13> Part of me immediately scoffs at the definition of "nanotechnology" assumed by the article, but this plays to something that's been bothering me of late - <USER4> what degree does humanity actually innovate/invent, vs. rubbing things together and seeing what happens?

Cooking: I put this plant in and set fire under it and it tastes good.

Chemistry: I put these two substances together and they explode.

Nanotechnology*: I put tiny ground-up bits of gold in this and it turns red.

This may be waaaaay side-tracking, but at what point do we step back and realize that everything we do consists of just... writing down what happens with different combinations of things? And today's nanotechnology is just the result of tons upon tons of writing down things like the linked article's results and then adding whatever the next logical(?) step might be?

(Makes me think the Asheron's Call spell research back in the day captured all of human ingenuity boiled down)

<comment><USER14> "If I have seen further it is by standing on ye sholders of Giants." \-- Isaac Newton (1676)

<comment><USER13> Not necessarily even the shoulders of giants (with all due respect to Newton), but on the shoulders of normal, inquisitive men and women who are standing on the shoulders of countless other normal men and women.

It's turtles all the way down.

<comment><USER15> "You can stand on the shoulders of giants, or a big enough pile of dwarfs. Works either way." \- (wish I knew the source)

<comment><USER13> Sounds Pratchett-esque to me...

</comment></comment></comment></comment></comment><comment><USER16> This isn't the first time nanotechnology has been connected with an ancient civilization.[1]

It's always interesting to find out which areas ancient civilizations were truly advanced in. We're still not 100% sure how Greek fire was made.

\---

[1] [http://en.wikipedia.org/wiki/Damascus_steel](http://en.wikipedia.org/wiki/Damascus_steel)

<comment><USER17> To be fair to us modern humans, napalm is probably way better than greek fire was.

<comment><USER18> I'm sure that compared to modern napalm, the original manufacturing process must have been pretty Byzantine.

</comment></comment></comment><comment><USER19> If the artwork depicts a man being punished for crimes against the god of wine, and the contents affect the color, wouldn't it be cool if this was used to detect poisons, similar to what drinksavvy is doing for date rape drugs?

<comment><USER20> No no, terrorism is the key, as the article says. This technology might be useful for detecting the dangerous fluids terrorists carry onto planes. This problem is reaching epidemic proportion, which you can tell as soon as you get to an airport and have your liquids stolen.

<comment><USER21> You forgot the part where you may buy a replacement bottle of water inside the airport for $3.

<comment><USER20> I can't tell if you're saying this makes it all ok or if you're saying this makes it worse? The things that were taken off me were things like deodorant, toothpaste and hand sanitizer. Nothing special, just things that are irritating to replace.

<comment><USER22> I assume his point is, rather than being able to bring your choice of water or soda aboard the flight for $0.20, they've granted an oligopoly to the newstands and vendors of overpriced water and soda in the airports.

</comment></comment></comment></comment></comment><comment><USER23> I will stand by my theory that the ancients knew a whole lot more about a whole lot more than we currently give them credit for. I'd wager given the lack of understanding we have about things like Stonehenge, how the pyramids were actually built, megalithic structures found under the sea, the Easter Island statues etc. that they knew a whole lot more than we think.

<comment><USER24> Totally. Every time I see tall, beautiful churches I wonder how they built those, without cranes and such. Bhaskara supposedly calculated length of year etc, fairly accurately ([http://en.wikipedia.org/wiki/Bhaskaracharya](http://en.wikipedia.org/wiki/Bhaskaracharya)). Then there is the wonder of pyramids, non rusting tower in Delhi etc. They were a knowledgeable bunch.

<comment><USER25> Well, there's also good old "trial and error".

A lot of impressive feats from way back when were accomplished more by experienced extrapolation than by deep understanding. In the case of those churches, they built a _lot_ of churches, with a lot of different designs. Each new architect would try to build something a little bit taller, a little bit thinner and more ambitious than his predecessors, without really understanding the mechanics of the structures. Sometimes they pushed too far, and buildings collapsed and people died. Sometimes they were too cautious -- I've heard the Brooklyn Bridge is hilariously over-engineered, because of the lack of computer modeling. What we see today are the best of the best, the most ambitious ones that didn't fall down. The ones that were too unambitious or which were too ambitious to succeed have been forgotten.

</comment></comment></comment><comment><USER26> OK, so they understood correlation and causality as applied to a particular use case. "Hey, we ground up the pigments real fine one day, and this nifty effect popped out."

But to imply that they had any understanding of "nanotechnology", or even modern optics is well -- typical sloppy minded, modern science journalism.

<comment><USER27> What is nanotechnology, or modern optics, if not a collection of observations, leading to correlation and causality?

Sure, we have a few more observations to add to theirs, but the fields of study have advanced from that point, not from some completely different point.

Also, as stated, some fields of study today have sprung from this very piece of art.

<comment><USER28> I think the difference is that we have models that actually predict things. Science isn't just "combine stuff and see what happens" \- it's "test hypotheses that lead to generalizable, simple models". We can see that apples fall from trees and predict that the future apples will fall, but science allows us to realize that that's the same mechanism which causes the sun to rise and set.

<comment><USER27> "Science is a systematic enterprise that builds and organizes knowledge in the form of testable explanations and predictions about the universe."[1]

Newton speculated about mass and gravity in the absence of knowledge or speculation of atomic interaction, and it's considered to be a scentific discovery... why couldn't the discovery of the effect of small particles of gold and silver in glass, and its practical application thereof, in the absence of knowledge of the electron behavior be any different?

<comment><USER29> I think actually it was considered a scientific Theory. A theory in scientific terms is (I hope I get this correct) a hypothesis made from observable facts, that has stood up to many experiments that had potential to falsify it.

</comment></comment></comment></comment></comment><comment><USER30> For Sufficiently Large Definitions Of Nanotechnology

Pun fully intended.

</comment><comment><USER31> Another 'headline' that needs editorialising. It should read "1,600 Year Old Goblet Shows Romans Used Chemistry."

<comment><USER7> Looks more like engineering and physics to me.

</comment></comment><comment><USER32> I think a key point they hint at but never actually come out and say is that such a cup likely existed for the purpose of detecting poisons.

<comment><USER33> I came to say the same thing. The article hints that such a use is possible, but makes it sound like it is a modern discovery of its capabilities. Turns out that poisoning was always an effective way of killing enemies (even still today), and there are many tales of goblets or gems that could detect or (as an embellishment) purify a poison. The fact that such a goblet actually existed is the real story here.

I'm very surprised no historian is grabbing this research opportunity to see what salts, oils, etc. (based on historically known poisons) and what concentrations the goblet can reveal.

</comment></comment><comment><USER34> Romans did love their mixins: [http://newscenter.lbl.gov/news- releases/2013/06/04/roman-con...](http://newscenter.lbl.gov/news- releases/2013/06/04/roman-concrete/)

</comment><comment><USER35> Are they suggesting we can make Nano Crystals/Quantum Dots simply by grinding? .... wouldn't a mill have to be impossibly flat for this method to work?

<comment><USER36> No, the gold/silver colloids would have been made chemically. I suspect the use of "ground down" in the article was either a metaphor or the author taking a wild guess as to the technique.

</comment></comment><comment><USER37> Not mentioned in this article, but perhaps of interest, is that this goblet is currently on loan, and on display, at the Art Institute of Chicago. It is quite neat and I recommend going to see it if you're in the area.

</comment><comment><USER38> "10000 year old lamp shows mesolithic man used quantum mechanics"

</comment><comment><USER39> why would someone vote up an obviously sensationalized headline?

</comment><comment><USER40> Romans hyped up headlines too, just like us!</comment>


The state of some travel startups and why some are missing the pain point - <AUTHOR> http://www.tnooz.com/2013/06/05/news/the-state-of-some-travel-startups-and-why-some-are-missing-the-pain-point/

<comment><USER2> An interesting issue you raise, with which I wholeheartedly agree, is that "social discovery" isn't always the best answer to any question. For some categories it makes a lot of sense. For plenty more categories, it's a novelty at best, and the utility is questionable.

IMO, the best way to make travel "social" is to make _social_ travel easier, viz., make organizing trips for groups easier. That's a legitimate problem to solve.

<comment><USER3> Something that could be solved with better search would be group travel for people originating in different cities. Call it "travel search for LDRs". I am in city X, someone else is in city Y, what are some other cities that we can all fly to for N overlapping days at a minimum _total_ cost?

<comment><USER4> That was the original premise of tripcommon.com - it's pivoted a bit but you can still use it for that exact functionality.

</comment></comment></comment><comment><USER5> I think BART dominates all the other ways of getting between SF and SFO, but when I go to conferences it seems I'm the only USian to think that way.

<comment><AUTHOR> public transit is actually a fairly small percentage of the way people get to and from airports. SF is one of the highest in the country though, I think around 22% of people use transit to get to and from the airport. However, on the opposite side is Cleveland with 5%.

Regardless, there are a lot of people who may be going to a suburb and not a hotel by the BART stop that don't want to do 3 transfers and would rather take a shuttle. Until a multimodal search engine can show me those options, I'm not really interested.

</comment></comment><comment><USER6> Speaking of pain points: I often have a X days and $Y00 free, and want to take a trip somewhere overseas without particularly caring where I go (though I do care about price). It would be incredibly convenient if there were a service that lists all international destinations for a given departure date, sorted by price. Approximating this manually is quite difficult.

<comment><AUTHOR> You can use SkyScanner's Everywhere search, so look from London to "Everywhere" and you will get a list of destinations.

However, this was often the premise of these inspiration sites that didn't work out. Wanderfly has the ability to search by number of days and how much money you had to spend, but it didn't really work.

These things are good in concept, but it gets back to my point, that they need TONS of data to make any meaningful recommendations, and that data doesn't exist yet on travel. In many cases music is easier, as a former classical musician I can attest to this, in music theory there are diminished chords, augmented triads, all different types of existing classifications of different types of sound.

In travel it's a big mess. You need big data solutions to sort through the problems, and just building a pretty interface won't solve it, which is what most of these companies have been doing.

</comment></comment><comment><USER7> Terrific points! and all without even addressing the whole social travel problem (that traveling involves _places_ and places are where _people_ are).

Plenty of room for innovation in this space.

<comment><USER8> The intersection of people interests and what places provide is an unsolved problem. The profile that says I am into X, Y, and Z and an app that can say what at place A or B is relevant is hard to come by. At least for me, it all involves direct searches.

<comment><USER9> That is mostly because the "degree of relevancy" is highly subjective in travel and is never constant as places adapt new tourism strategies, new things get built and open. Plus, if you think about it, most world's destinations have pretty much EVERYTHING in each category of travel, if you look hard enough. Sure, some things may receive greater focus but in the end you can find something to your fancy pretty much anywhere you go.

To contrast this with music, where a song will always stay the same and the 3 minutes of it are, arguably, easy to deconstruct into components, classify by genre/rhythm/artist/etc., and then index.

Disclaimer: we too are building a "trip planning tool" but I think we've found a good angle to approach the problem with to avoid the situation most "inspiration"/"social"/"planning" travel startups find themselves in.</comment></comment></comment>


Bluetooth Technology is Named After a King - <AUTHOR> http://brokensecrets.com/2014/05/21/bluetooth-technology-is-named-after-a-king/

<comment><AUTHOR> Not news, really, but I didn't realize the history until I stumbled on it. Of course you could also read the more concise Wikipedia version: [http://en.wikipedia.org/wiki/Bluetooth#Name_and_logo](http://en.wikipedia.org/wiki/Bluetooth#Name_and_logo)

<comment><USER2> That was completely useless info. And also very interesting. Good submission.</comment></comment>


Java is too old, What should you learn in 2018? - <AUTHOR> https://hackernoon.com/java-is-too-old-what-should-you-learn-in-2018-12cd0151b2d1 <comment><USER2> While there are many great reasons to learn languages like Scala and Kotlin, "Java is old" is not the right one (for one, it's false).

The functional programming elements in Java 8 (<4 years old) do make it a new language. I've been keeping up with Java since V1.4, and I felt like Java 5 was the update that made Java a modern language, but Java 8 brought a paradigm shift (if you felt like changing your style).

And in any way, the title is misleading. It should have been "Kotlin: here is why we think it's better than Java 5" \- because that's the actual content of the article.

I like learning about new languages, but I wish the article had more. For instance, it doesn't mention functional programming paradigms (the new thing in Java 8), even though Kotlin does have them, e.g.[1]. That's one way to improve the article beyond the title.

[1] [https://medium.freecodecamp.org/my-favorite-examples-of- func...](https://medium.freecodecamp.org/my-favorite-examples-of-functional- programming-in-kotlin-e69217b39112)

<comment><USER3> Right, the same goes for C#. And even ignoring all the new (functional) elements it's still really dumb to say that you shouldn't learn something because it's "old".

By the time half of the current crop of new languages have died Java and C# will still be in use at large scale.

</comment></comment><comment><USER4> With a title like that, the article should explore many new languages out there and what they offer a programmer.

Instead, this article just answers its question with one word: Kotlin.

I get it; Kotlin is easier to write in than Java. But the article should list why it's better than Scala or Clojure, if we're restricting ourselves to JVM languages. (And why should we?)

There's 48 languages more common than Kotlin, according to [https://www.tiobe.com/tiobe-index/](https://www.tiobe.com/tiobe-index/) . Why is it better than all of them?

<comment><USER5> By restricting ourselves to the JVM, we can introduce Kotlin code gradually because it can run side-by-side with legacy Java code. Unlike the other JVM languages, Kotlin has been designed to work seamlessly with an IDE. It doesn't introduce as much extra symbol syntax as Scala so it's still readable. And it was designed to be statically-compiled from the ground up, unlike Clojure and Apache Groovy which both bolted on clumsy-looking static-typing annotations later on.

<comment><USER6> > Unlike the other JVM languages, Kotlin has been designed to work seamlessly > with an IDE.

Specifically, one IDE: Intellij.

Outside that one case, support is just as good/bad as Scala.

</comment></comment></comment><comment><USER7> This article pretends that libraries such as Spring, Lombok, Guava and maven/gradle don't exist. It would be like saying Javascript is useless because the features that Angular/React/Vue provide aren't provided in the core syntax.

There are good reasons to move into something like Kotlin but the author has barely touched on any of them. "Java is old" also makes the author sound like they ditch programming languages that aren't currently trending on Twitter or something.

</comment><comment><USER8> I wish that there was a way to remove from hn author posts with obvious clickbait/incendiary titles like this.

I don't care to see any posts ever again from this author.

<comment><USER9> HN desperately needs filters. There are specific topics (like Facebook) that I have no interest in seeing. Filtering out specific users would be great too.

<comment><USER10> Maybe we could make a plugin? I don't care at all about discussions (and usually can't stand the comments on) bitcoin, the Bay Area housing disaster, C, etc.

It can't be that hard, the CSS selectors for posts are really simple.

</comment></comment></comment><comment><USER11> [https://www.pluralsight.com/tech-index](https://www.pluralsight.com/tech- index)

Java might be old, but it's still a long way from dead. And actually it could be argued that it's done a fantastic job keeping up with the demands of modern development. Kotlin and Scala are great, but there's still tons of need for and value in Java itself.

</comment><comment><USER12> Java has changed a lot over the years, for example generics, lambdas, default methods, type inference, and new things are in the pipeline, for example value types, data classes, and pattern matching.

The JDK libraries has also grown. You could probably spend a week just learning about java.util.concurrent.* and how to write efficient multithreaded code.

</comment><comment><USER13> How to separate two independent clauses with a period, especially when the second one is already capitalized.

</comment><comment><USER14> Kotlin is just Java with some really _nice_ syntactic sugar. It transpiles 1:1 to Java so you are going to need to know Java anyways.

<comment><USER15> Kotlin also compiles to pure JavaScript.

Does this mean that Kotlin is JavaScript with some really _nice_ syntactic sugar?</comment></comment>


PHP vs. Lisp: The Gripes About Lisp Are Valid - <AUTHOR> http://www.findinglisp.com/blog/2008/09/php-vs-lisp-unfortunately-its-true.html

<comment><USER2> I like his distinction between fundamental dislikes and competitive disadvantages - sort of essential objections vs. accidental ones.

But a lot of the accidental objections seem not really to be about what they claim to be. How many people have _really_ hit a roadblock because of a missing library? (I know I haven't. If I did, I'd probably just write it.) How often is the "libraries" objection made without mentioning any specific missing libraries? At least 90% of the time. Probably at least 95%.

So I think one needs a third category: the pseudo-accidental objection. In other words, to some extent "libraries" is just the "it's too slow" of this decade. I don't know if it makes much sense for the community, such as it is, to put a lot of effort into addressing these, since the objections will just shift to something else. I'm not going to write a library I don't need.

But I'm all in favor of the Lisp community getting its act together and answering real objections (or rather, addressing real problems) and especially being helpful to beginners who want to get started.</comment>


A couple of reasons you shouldn't be moving your databases to the cloud anytime soon - <AUTHOR> http://sqlblog.com/blogs/denis_gobo/archive/2009/05/07/13862.aspx <comment><USER2> Sounds like he is talking about a specific cloud, rather than clouds in general.

</comment><comment><USER3> 10GB is just for SimpleDB. BigTable has no such limitations, right?

</comment><comment><USER4> In Scope for V1 = Out of Scope for anytime soon

Out of Scope for V1 = lololololololol</comment>


WakeMates are shipping! Congrats WakeMates - <AUTHOR> http://blog.wakemate.com/first-units-shipping-new-store

<comment><USER2> A word of advice: Don't make product announcements on April 1st.

<comment><USER3> Gmail was announced on April 1st, 2004. :-)

</comment></comment><comment><USER4> I, too, have been frustrated by the delays (I pre-ordered shortly after they opened pre-orders).

However, I wasn't surprised they missed the January ship date, and probably less surprised that they missed the Q1 ship date:

\- It's a unique product. Identifying demand is difficult. My guess is their demand was underestimated. This is a product focusing on an area of life that everyone I can think of wants to "fix". All of my coworkers who I consider "early adopters", also pre-ordered after I IMed them the URL (16 people)

\- It's priced significantly lower than the few alternatives that are out there. It's also designed in a way that is more convenient than similar products offered by competitors (no head bands).

\- Smartphones are common now, so the barrier for entry really is the $50 for most people

\- Hardware is difficult to get right. You can't just tweak a few lines of code and recompile. If something is wrong with the trial units (and I'm not saying there was, I have no idea), it can be a serious setback.

It's too late now, but here's the formula that should be applied:

\- Decide the amount of pre-orders you think you can safely get out the door on time (be incredibly conservative). Set your web app to stop taking pre- orders when you get anywhere near that point.

\- Before turning pre-orders back on, up the price committment, and push back the date (while notifying your initial pre-orders that they can still expect theirs on time). I know when I visited the site, I thought "Gee, I'm out $5 if they fold, who cares?" It's also the only reason I haven't cancelled my pre- order.

\- Pick a very conservative ship date, then add more time. Have an option at check-out that says "if we can ship earlier, would you like us to?" to catch folks who might be caught off guard by the unexpected $45 charge. Or skip that and simply e-mail your pre-orders to see who wants one early. Nothing makes me happier than when I get something I want sooner than I expected.

\- Hire someone with a history of dealing with sourcing parts, dealing with vendors/manufacturers and getting stuff out the door. These are usually not geeks and not folks who are attracted to start-ups.

\- Don't take any preorders until you are sure you have the hardware right (as I said, I'm not sure if this was the problem but the delays are so long it certainly smells that way)

</comment><comment><USER5> They should write a book: How to lose your customers' trust before they try your product.

The way they handled this situation is disaster.

<comment><AUTHOR> They're being open and honest. How else should they handle it?

<comment><USER5> Many things went wrong:

\- I understand delays, but we're now talking 6-7 month delays when the product was promised within 1-2 months.

\- They should have told us there would be a monthly fee before we pre- ordered. I understand that there will be a free version as well but it will be a half-assed WakeMate. They led us to believe that all the features would be free once we buy the unit. If they plan to make money from the recurring fees, I'm fine with that, but tell me before I buy.

\- They should give customers who have pre-ordered WakeMate a lifetime subscription to the "pro" version to apologize. That's the least they could have done in my opinion.

I don't feel they've been open and honest at all. But to be fair, I'm sure they didn't intend to be dishonest, they just lack biz dev experience. Hopefully they'll learn from their mistakes.

<comment><USER6> Maybe you didn't get this email but the last pointis invalid for people that preordered:

We're very sorry for the delay and are committed to compensating you for the inconvenience. We plan to give you premium features for free, but our priority is to ship as soon as possible so we haven't finalized these details yet.

<comment><USER5> I sure didn't see that! I'm glad they're doing the right thing!

</comment></comment></comment></comment></comment><comment><USER7> To anyone who is getting one: I would really like to know how well it works. It is cheaper than the Zeo, so it is attractive. However, I don't feel as confident in the technology it uses to detect sleep patterns as the Zeo technology, so I'm apprehensive about getting one.

<comment><USER8> I second this - would also like to hear people's thoughts about this product. Do you actually feel a noticeable gain in the level of energy in the morning?

</comment></comment><comment><USER9> Yes ... estimate for me is July 31. Delayed a bit.

<comment><USER10> Perhaps Wakemate learnt from the late-release PR disaster and have decided it's better to offer pessimistic worst-case-scenario delivery estimates and over-deliver than to offer over-optimistic delivery estimates and under- deliver.

<comment><USER11> That seems to be exactly the case. This is the full passage from the email:

 _The next batch of units will ship no later July 30th, 2010. Based on your pre-order date (11/24/2009), you should expect your WakeMate no later than 07/30/2010, but probably significantly sooner. This is a conservative estimate; we want to provide you with a firm date. We are confident we can deliver many orders sooner and will continue working day and night to ship yours as soon as possible._

</comment></comment></comment><comment><USER12> They've also made it relatively impossible to figure out how to abandon a pre- order...

<comment><USER13> it's the opposite for me; they asked for full price although I did preorder

</comment></comment><comment><USER14> I confess that I'm very confused. I did preorder ($5). Today, I got this email telling me the product would be shipping soon. When are they going to charge me the balance of what I owe? This was not explained...

</comment><comment><USER15> First I couldn't click to the info page from the posterous blog, so I clicked on the store. The store's logo wouldn't link me to a product page, then I got an insecure connection warning at the regular site because I forgot to ditch the https.

Regular users would be seriously lost in this proceess.

Hope that helps.

</comment><comment><USER16> The Wakemate doesn't seem as exciting as the Zeo. It's just an accelerometer that you strap to your wrist?

You can just use your phone for that: <http://blog.smart-alarm-clock.com/>

</comment><comment><USER17> > a mobile phone with Bluetooth and support for third-party apps, or second > generation (or later) iPod Touch

So...Android support or no?

<comment><USER18> Android support was confirmed by Wakemate before they started collecting pre- orders, otherwise I would not have been one of them.

</comment></comment><comment><USER19> This reminds me of the fitbit delays... similar product.</comment>


Nodejs+Fabric as fast as multi-threaded C++ - <AUTHOR> http://fabric-engine.com/2011/11/server-performance-benchmarks/ <comment><USER3> Not that it diminishes the interestingness of this post (quite the opposite), but it's worth noting that this is not achieved using plain-vanilla JavaScript. From the product page:

"The high-performance parts of the application are written using a performance-specific extension to JavaScript, called KL (Kernel Language). This language is similar in scope and syntax to JavaScript, but has some key differences that optimize it for writing high-performance code.

Fabric applications are described as a dependency graph (think of a flow chart). The dependency graph describes data, and the transformations that must happen to that data. Fabric analyses the graph to discover where it is possible to perform tasks in parallel. (task-based decomposition) Fabric analyses the graph to discover where it is possible to perform the same instruction on lots of data at the same time.

All of this is possible because Fabric has the LLVM compiler embedded within it. This means that applications are dynamically compiled on target. The Fabric plug-in has to be written for each platform, but Fabric applications only have to be written once.

Fabric handles CPU multi-threading automatically, but the developer must explicitly write code for the GPU using OpenCL."

<comment><USER4> It is something that JavaScript can never solve: Objects are objects, there has to be some constructs to make them work so it would never be as fast as C code.

The other blog post that appeared on HN this week sums it out [1].

For those who didn't read that post, basically, if you want the performance of C, you have to make those data as static and inflexible, i.e. use types and avoid indirection. Looking at the KL used in benchmark, you may find that it resembles C code. It's exactly what they did to make it fast: types and free from indirection.

[1]: [http://blog.mrale.ph/post/12396216081/the-trap-of-the- perfor...](http://blog.mrale.ph/post/12396216081/the-trap-of-the-performance- sweet-spot)

[2]: [https://github.com/fabric- engine/Benchmarks/blob/master/Serv...](https://github.com/fabric- engine/Benchmarks/blob/master/Server/ValueAtRisk/sort.kl)

<comment><USER5> That's incorrect. Objects aren't objects, in imperative languages their largely syntactic sugar for passing struct as a this pointer, and providing a vtable. They don't actually implement many of the ideas from OO theory such as sending messages to objects.

Look at a language OCaml which can consistently beat C or C++ which also frequently beats C.

Most of the reason why C is fast is because it mirrors the hardware so closely allowing people to write reasonably optimized portable assembler, C falls down on macro optimizations such as inlining function pointers that are available to higher level languages such as OCaml. Sometimes the marco and runtime optimizations are far more important than the micro optimizations.

You don't need static typing or lack of object support to write fast code. OCaml beats C providing both inferred typing and object support.

<comment><USER6> Have a link to benchmarks where Ocaml beats C? In my experience Ocaml is usually only about 2x slower than C, but never beating it. Also, Ocaml is statically typed. Type inference is just inferring the static types.

<comment><USER5> [http://shootout.alioth.debian.org/u32/benchmark.php?test=all...](http://shootout.alioth.debian.org/u32/benchmark.php?test=all&lang=gcc&lang2=ocaml)

[http://flyingfrogblog.blogspot.com/2009/07/ocaml-vs-f- burrow...](http://flyingfrogblog.blogspot.com/2009/07/ocaml-vs-f-burrows- wheeler.html)

You're right about OCaml generally being 1.5X slower than C but it does beat it for some problems which is impressive for all the additional features it provides. I must have been looking at the numbers wrong last time I checked.

Type inference is much different than static typing because it allows functions to be specialized at run/compile time which can result in having to write much less code.

For example, in C a map function would have to be written for every datatype (or lose the benefits of static typing by using a void*) where as in OCaml/F# you get type safety and specialized / inlined code for free.

<comment><USER6> > Type inference is much different than static typing because it allows > functions to be specialized at run/compile time which can result in having > to write much less code.

You are confused, type inference is purely about determining what type something is. It can determine a function is polymorphic but this has nothing to do with how the polymorphism is implemented. AFAIK Ocaml (by that I mean the INRIA Ocaml implementation) doesn't specialize polymorphic functions at all. Types are boxed and the boxes are all the same size so a single function definition is all that is needed for a polymorphic function or type. .net does do these things but, again, that has nothing to do with type inference. There is no difference between me specifying a function has type 'a -> 'b and the compiler inferring that.

<comment><USER7> This is correct. The most common algorithm used for type inference is Hindley- Milner (<http://en.wikipedia.org/wiki/Hindley%E2%80%93Milner>).

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> _The C++ versions were compiled using gcc version 4.4.5 using the compiler flags "-O6 – lpthread"._

Isn't _-O6_ the same as _-O3_ ?

<comment><USER9> Fortran compilers (gcc has a Fortran 95 frontend) have long offered optimization levels beyond -O3; i.e., -O6 is a decent upper bound among popular free and commercial compilers, not just gcc/gfortran. The author probably came from a HPC background where -O6 is commonly used for compatibility among such a variety of compilers, even when writing C and C++ programs. Technically not the most portable way to build, but it works.

<comment><AUTHOR> I asked the engineer for a response: "For reference, I used -O6 because it's a historical convention (more of a joke, really) for "optimize the crap out of it". UNIX geeks have been using -O6 in this way for about 30 years."

</comment></comment></comment><comment><USER10> Defeating poorly optimized c++ code is far from impressive. I would also recommend NOT running any performance tests on EC2 since they throttle cpu unpredictably.

</comment><comment><USER11> I wouldn't call that code C++ at all, it's C with a few C++ keywords/niceties. [1],[2]

[1] [https://github.com/fabric- engine/Benchmarks/blob/f11cf6cc8cf...](https://github.com/fabric- engine/Benchmarks/blob/f11cf6cc8cf4b3cab8048bf48e14dc651532be98/Server/ValueAtRisk/var- st.cpp) [2] [https://github.com/fabric- engine/Benchmarks/blob/f11cf6cc8cf...](https://github.com/fabric- engine/Benchmarks/blob/f11cf6cc8cf4b3cab8048bf48e14dc651532be98/Server/ValueAtRisk/var- mt.cpp)

<comment><USER12> Yep and here is the C version: <http://pastebin.com/z7apLBHb> and it's diff: <http://pastebin.com/YHjW6AHp>

On my machine the C and C++ versions essentially have the same speed.

</comment></comment><comment><AUTHOR> I've had a few email/tweet exchanges regarding KL, so I thought it would be useful to clarify a few things:

\- KL is a language with a syntax that is very close to Javascript. It borrows syntax from JavaScript, but not the rules of the language itself. Just like JavaScript borrows syntax from C, and OpenCL borrows from C.

\- There are many things in Javascript we don't support. Some things we don't currently support (eg. in-line initialization of arrays) but will probably support in the future; other things we probably won't support (eg. regular expressions as language objects) and finally there are things we will never support (ie. closures).

\- There are nice features of KL that Javascript does not have, for instance arithmetic operator overloading. These features are included because they are particularly useful for computational problems.

\- KL is not JavaScript++ - It's designed for writing high-performance operator code, not to handle everything that JavaScript can do. We don't want to reinvent the wheel :)

We will work on a post to cover KL in more detail, including roadmap. You can email info at fabric-engine dot com if you have any questions you want to take offline.

Thanks, Paul

</comment><comment><USER13> Extremely interesting. Since we're bench marking it with C++, is it safe to assume it performs much better than the JVM?

<comment><USER14> Yes, I ported it and though the JVM performed well, it is beaten by the optimizing C++ compiler.

[https://github.com/spullara/Benchmarks/blob/master/Server/Va...](https://github.com/spullara/Benchmarks/blob/master/Server/ValueAtRisk/VarMT.java)

</comment></comment><comment><USER15> While this is interesting, not all CPUs are created equal. I can run the var- mt.cpp example on POWER hardware in:

      real    0m25.680s

My point being, that node.js doesn't work on this box, nor does Fabric. So when developing specialized algorithms you sometimes might want to run them in specialized environments.

<comment><AUTHOR> Right - we would have to build a version of the engine to run on that hardware. Once that's done though, the applications would run. i.e. we prototyped on ARM earlier this year, and our unit tests worked.

That said - if you're building for specialized environments, you're probably going to want to hand-optimize code rather than rely on LLVM to do it. LLVM does a pretty good job though :)

</comment></comment><comment><USER16> So this software involves installing a plugin in the browser? In an age where users are being warned by the browser makers themselves to be careful about that sort of thing? I can't see this ending well.

<comment><AUTHOR> Hi there - it depends on who you're targeting. Our client-side focus is on native developers looking for high-performance in web applications e.g. medical visualization <http://vimeo.com/31970502> \- the benefits of web applications are great, but performance is the current limiting factor.

We are likely to build support for NaCl in the future.

On the server-side, there is no requirement for a client to install a plug-in - it's for high-performance on the server i.e. semantic analysis, compute bound problems etc

Last point - we also think a lot about hybrid models where performance can be accessed on both client and server. This is much longer term, but the design of Fabric allows for it.

<comment><AUTHOR> p.s. you can see our sample client-side apps here: <http://vimeo.com/groups/fabric/videos> and play with them at <http://demos.fabric-engine.com>

You can how we've extended Fabric to include existing C++ libraries - <USER2> for custom data types, streaming data etc

It is not really a consumer web technology - we're acutely aware of the plug- in friction/antipathy. However - if you want HPC in the browser, this is one of the only ways to do it.

</comment></comment></comment><comment><USER14> Porting the C++ code directly to Java:

macpro:ValueAtRisk sam$ time java -cp . VarMT

VaR = -43.7173372179254300

real 0m36.863s user 4m48.944s sys 0m0.978s

macpro:ValueAtRisk sam$ time ./var-mt

VaR = -43.7173372179254329

real 0m27.048s user 3m33.971s sys 0m0.145s

Pretty good showing for such a low level benchmark.

[https://github.com/spullara/Benchmarks/blob/master/Server/Va...](https://github.com/spullara/Benchmarks/blob/master/Server/ValueAtRisk/VarMT.java)

It would be moderately interesting to see how well this benchmark would do in OpenCL or the like.

(Benchmarks ran on a 3.33 GHz, 6-core MacPro, JDK 7 Developer Preview)

<comment><AUTHOR> cool :) Thanks for doing that - we can merge in at later date and include Java results.

We expose OpenCL in Fabric as an extension, as we wanted to be able to target heterogeneous hardware architectures. We didn't use this for benchmarking as we wanted to show CPU performance first. For clarity - KL does not compile down to OpenCL, you have to write for the GPU explicitly.

</comment></comment><comment><USER17> Could probably squeeze a bit more out of the C++ version by targeting the specific architecture of the CPU to make use of SSE.

Also, what floating point type is KL using? float or double? - and is double necessary? - converting the C++ code to use floats would probably provide a fair speedup on the divides and due to squeezing more data into cache lines...

<comment><USER18> _Could probably squeeze a bit more out of the C++ version by targeting the specific architecture of the CPU to make use of SSE._

Not only that, from browsing the code, the critical loop is likely matrix multiplication. If that's the case, any kind of engine who is smart about SSE, cache lines, etc is going to be able to outperform simple C/C++ code.

Of course there's excellent matrix maths libraries for C/C++ that could be used instead.

<comment><USER19> More than half of the running time seems to be taken up by the generation of normally-distributed random numbers. Sort of makes sense, I suppose, since that bit has a loop and a `sqrt' and a `log' in it.

The repeated calls to `exp' seem to take up some time too.

As for the matrix multiplication, that only happens on startup, so it's surely irrelevant. The bit that runs a lot just does matrix*vector. It is rather hard to make that cache-incoherent, as it just walks forwards through all inputs and outputs. In any event I would think that the program's entire working set will fit in L1.

I was merely fiddling with this out of interest, so I didn't spend ages SSE2ifying it. The VC++ x64 compiler doesn't do inline assembly language anyway. But if you halve the number of multiply-adds `multMatVec' does, under the assumption that this would make it twice as fast, and that twice as fast would be what an SSE2 implementation would be like, it makes no noticeable difference.

(I was fiddling with the single-threaded version, using Visual Studio 2010, compiling for x64.)

</comment></comment></comment><comment><USER20> Is Fabric Engine commercial software? If so, the authors of this post ought to disclose their interests as the owners.

<comment><AUTHOR> Hi there - apologies. Fabric is a commercial company. Fabric Engine will be free for non-commercial use - we're currently in beta so pricing is not yet finalized. I assumed the username 'FabricPaul' was a good indication, but thanks for calling it out.

<comment><USER21> "free for non-commercial use" == commercial.

</comment></comment></comment><comment><USER22> In a quick test I did, using a better compiler (gcc 4.6.2 or icc) makes it 15% faster.

<comment><AUTHOR> Cool - can you contribute the code to the repository so we can test and merge it in? Thanks

</comment></comment><comment><USER23> Fabric Server isn't available to play with?

<comment><AUTHOR> Hi there - not yet. We are going to start the alpha release very soon though. You can play with the client-side stuff though - it's essentially the same system. If you sign up to the newsletter you will get notification when we drop the FE Server stuff</comment></comment>


Ask HN: What do you find tricky about Public Key Cryptography? - <AUTHOR>

The other day I was explaining the Diffie-Hellman_Merkle-Williamson key exchange and public key crypto system to someone, and while they understood every individual step, they didn't really seem to "Get It".  They really started to struggle as I got into the connections between this an P versus NP, and they finally lost it when I was talking about NP complete and various algorithms.<p>Of course, it may have just been me, so I was wondering about the audience here on HN - is there anything in this area that you just don't "get", and would you be interested in having me try my explanations on you? <comment><USER2> That seems like explaining gene heritability with a quick detour through organic chemistry to explain on a molecular level how DNA gets unzipped. Did the person need to know those details? Were they obviously capable of understanding them? If there are not two "yes" answers here, one might question the likely success of attempting to cram half a college class into their heads in a session.

<comment><AUTHOR> They were asking the questions, and I was sketching a map of things only as they arose as a necessary part of answering them. I agree, it seems like a detour, but actually it's a bit like Dirk Gently - everything really is connected.

I'm thinking of writing up this farrago of topics and trying to make sense of the connections between them for those who are interested, but I was interested in hearing people's reactions to the topic. In essence, though, there hasn't been any. Which is disappointing, but there we go.

So I think it's two "yes" answers. They were asking the questions, so I felt that answering them was necessary. There were other questions that I dodged because they were too much of a diversion. And yes, I do feel that the person in question was sufficiently capable, they just didn't really "get it" at the end. Perhaps they just need time to absorb some of the specifics, and then next time they'll be in a better place and get further.

</comment></comment><comment><USER3> I think one problem is that both DH and RSA depend on the fact that finding inverses is hard in certain big groups, which isn't an intuitive idea.(Admittedly, in RSA, the idea that factoring is hard is intuitive, but then you have the problem that the fact that the big composite number gives you a group, isn't).

I always find it a shame that Fermat's Little Theorem, and multiplicative groups aren't taught earlier in a typical maths education, as the beauty returned from a small effort is significant.

</comment><comment><USER4> Diffie-Hellan is a pretty simple algo. You can do a frame-by-frame analysis of it in about fifteen minutes and it should be fairly easy to understand.

The trickiest thing about public key cryptography is that I always lose my keys!

</comment><comment><USER5> Monads and why they're useful (in application)

(I understand, but I just find it fascinating that no two monad explanations seem to be similar on the surface...)

<comment><AUTHOR> I'm curious as to what you think the connection is between monads and Public Key Crypto.

<comment><USER5> Oh. I misunderstood. I thought you were asking for examples of other 'easy to understand' mathematical concepts that programmers get stuck on that you could try explaining.

I admit, public key crypto isn't always easy to explain, but I believe it has more to do with it being non intuitive opposed to overly abstract or math heavy (though obviously the implementations are).

</comment></comment></comment><comment><USER6> The tricky thing about cryptography is key-management with secure key-exchange a close second.</comment>


What is this thing, called swing? (2016) - <AUTHOR> http://thehomeofhappyfeet.com/what-is-this-thing-called-swing/ <comment><USER2> (I've been swing dancing 13 years, playing swing music for 6)

This article is very thorough and gets across the nuance and futility of trying to define "swing" with only a few rules. See especially the section on swung eighth notes:

> _Swung-eighths. This is where it gets cool and tricky, and if you want to > swing like crazy, you have to understand this one. When you swing the eighth > notes, it means that you take a triplet, and you skip the middle sound. > Essentially what you end up with is 1 and a 2 and a 3 and a 4 and a [side > note, as a way to emphasize the beginning of the phrase, you'll sometimes > hear 1 2 a3 4 a5 6 a7 8 a]. This rhythm is common in Gypsy Jazz or Jazz > Manouche and is sometimes referred to as a shuffle. This, you may note is a > 2:1 ratio. Much swing music is actually played closer to a 3:2 ratio, which > is less displaced, but again there isn't a great way to notate this, so it's > more understood than proscribed._ (The original has strikethrough formatting > which has been lost in copy/paste)

To make it even more confusing, often rhythm players (guitar, drums, etc) will keep the swing ratio consistent (across a song, or across a phrase) whereas melody players (trumpet, sax, etc) might play with the ratio within a melodic phrase.

Another thing that makes swing swing is syncopation — the author alludes to this but doesn't define it — namely placing emphasis on the swung eighth notes that lie between quarter notes, rather than on one of the quarter note beats. Straight vs swung, and syncopated vs non-syncopated can exist independently, and you need swung _and_ syncopated for it to feel like swing.

<comment><USER3> It's really hard to _talk_ about swing.

It's much easier to _show_.

Also, "tightness" plays a major role in whether someone can swing well or not. How well _their_ swing matches up to someone else's.

</comment></comment><comment><USER4> There was this music production software, FruityLoops (FL Studio today) which had a "swing" slider. Playing a beat and then moving the slider made it immediately clear what swing is, and why this word was picked to describe it.

FYI, while it does sound interesting, modern pop music doesn't really use swing. Probably because "straight" music is more dance-able.

[https://howtomakeelectronicmusic.com/wp- content/uploads/2012...](https://howtomakeelectronicmusic.com/wp- content/uploads/2012/02/Using-Swing-In-Step-Sequencer-Full.jpg)

<comment> default-kramer I'm curious, why do you say straight music is more dance-able? I have no evidence, but my gut says it doesn't really make a difference - any dancer who is good enough to use the 8th notes is probably good enough to handle straight and swing.

Anecdotally, Montell Jordan's "This Is How We Do It" is one of the most reliable floor-fillers that I know of, and that swings. If you want a more recent example, "Can't Feel My Face" was huge for a while. (American perspective here.)

<comment><USER4> I was just speculating, I have no evidence either.

But it's clear that most popular music is straight, so there must be some underlying factor. EDM music, which is arguable the most dance-able music, sounds very weird to me when you swing it.

BTW, I am talking about regular people "dancing", not professionals.

</comment></comment></comment><comment><USER5> i highly recommend looking into UK Garage / 2step if you're into swung dance music. It's essentially the best qualities of 90's and early 00's R&B and D&B put through a dance lens. To me, nothing else in music is more authentically and beautifully 90s-early 00s. Pioneers of the genre such as El-B took the concept of swing and ran with it from a modern electronically produced perspective.

As an electronic musician I also have to say that UK garage producers are absolute masters. It's very, very hard to make swung music that has the qualities of "bump" and "flex" \- the prerequisites to a song that viscerally makes you dance - on a computer. "Flex" refers to the way the swing-level expands and contracts throughout a drum phrase. "Bump" refers to the way the flex propels you into the kick and snare.

here's an example of a song by el-b with super tight swing. it's hard to explain without having tried, how hard it is to produce something like this:

[https://www.youtube.com/watch?v=lZ3KM5E8wl8](https://www.youtube.com/watch?v=lZ3KM5E8wl8)

another example:

[https://www.youtube.com/watch?v=IlNNrXzi60o](https://www.youtube.com/watch?v=IlNNrXzi60o)

and finally, a 2step song, much straighter, but it encapsulates the sound of an era and genre.

[https://www.youtube.com/watch?v=VVycT8k0tjM](https://www.youtube.com/watch?v=VVycT8k0tjM)

</comment><comment><USER6> I totally thought it would be an article about the old Java swing gui library, but I think I like what it was actually about better.

</comment><comment><USER7> Meh. I feel like this article misses the point.

Swing is 3 against 2, metrically speaking, but it is also folklore, tradition, and a tremendous amount of micro-information in where each note is placed relative to the beat. The "cutting edge of jazz swing theory" video in the article ticks off most of the boxes:

* There's micro-information in whether a note is ahead of, on top of, or behind the beat. * The swing ratio can vary, and it tends to straighten out at higher tempos. * Drummers tend to play at a higher swing ratio than soloists.

All that said, it's been said that jazz is the marriage of African rhythm and European harmony, and that's not too far off. But the article neglects the Africa/tradition part of it entirely. Search for "Africa" in that article and you find one match. Search for "Black" and you find three matches, all in regard to the color, not the race. But that's where it comes from, and that's the context in which you need to understand it. Why are those patterns found across so many drummers listed in the "cutting edge" video (Art Taylor / Connie Kay / Billy Higgins / Elvin Jones / Tony Williiams / Carl Allen / Jeff 'Tain' Watts / Jack DeJohnette / Max Roach / Dennis Chambers)? It's because they're coming out of a common tradition, speaking the same musical language.

The writer of the article seems to like swing music around the late '30s, and claims that the rules fit well with that music because those people were playing swing without the influence of bop, soul-jazz, rock and roll, and other modern music. I would argue that the rules fit that period of music better for a different reason. This is when it was _pop_ music, and when simplified / whitened versions of it (Dorsey brothers / Glenn Miller / etc.) were most common.

</comment><comment><AUTHOR> Don't miss the video in the "So, what makes it swing?" section. I think this might interest most HN readers here, since it's about measurements and trying to objectify the "Swing feeling".

</comment><comment><USER8> Swing is musician accounting for inertia modulation in the player / instrument system. The stick / cymbal pair for instance, a cymbal swings, further strokes will be different depending on when it happens (cymbal coming back or still going ?). Energy waves between both and if the player play with the transfer back and forth he can modulate the swing feel.

The ease of flow you can feel when listening to swing comes from the fact that there's a lot of reuse, kinda like a tuning an antenna.

My 2 cents.</comment>


Swifty – Free Password Manager (Offline Storage, Gdrive Sync) - <AUTHOR> https://github.com/swiftyapp/swifty <comment><USER2> I have hundreds of online accounts. The login data is currently stored in a 1Password vault and in my macOS keychain. Is there an efficient way to copy this data into Swifty?</comment>


Alone and Homeless, 'Shutouts' of Society Sleep in Doorways (1971) - <AUTHOR> http://www.nytimes.com/1971/10/26/archives/alone-and-homeless-shutouts-of-society-sleep-in-doorways.html <comment><AUTHOR> The article relates to a question I've been wondering: when did the homeless crisis really emerge, and what, if anything, was "homeless" called before it was "homeless"?

The Google Ngram Viewer shows a massive spike in the term in the 1980s, which corresponds roughly to my awareness. Previously, there were "street people", "vagrants", or "bums", and going back even earlier, "hobos" and other terms.

The term "homeless" _is_ used previously, but it is almost always associated with _a specific event_ \-- going through the NY Times archives, I've seen multiple headlines referring to a specific disaster or tragedy, almost always a fire, occasionally a major storm, with a count of those "made homeless", usually in the 2-3 digit range.

The article I've submitted here is the first I've found that clearly discusses homelessness _not_ as a temporary and acute condition, but as a chronic one, and with the term _describing the associated class of people_.

The question I'm trying to get at is whether or not this represents a change in situation (though as the article notes, "How long has this been going on?... Long enough for someone to do something about it."), of terminology, or of awareness.</comment>


Scaling the GitLab database - <AUTHOR> https://about.gitlab.com/2017/10/02/scaling-the-gitlab-database/ <comment><AUTHOR> > Sticky connections are supported by storing a pointer to the current > PostgreSQL WAL position the moment a write is performed. This pointer is > then stored in Redis for a short duration at the end of a request. Each user > is given their own key so that the actions of one user won't lead to all > other users being affected. In the next request we get the pointer and > compare this with all the secondaries. If all secondaries have a WAL pointer > that exceeds our pointer we know they are in sync and we can safely use a > secondary for our read-only queries. If one or more secondaries are not yet > in sync we will continue using the primary until they are in sync. If no > write is performed for 30 seconds and all the secondaries are still not in > sync we'll revert to using the secondaries in order to prevent somebody from > ending up running queries on the primary forever.

Interesting approach. Kind of halfway between async replication and a per client synchronous commit.

Why wait for all of the slave databases to be in sync? If at least one is in sync, can you get all database interactions in the application to the valid subset?

Snippet of code from the article:

         query = "SELECT NOT pg_is_in_recovery() OR " \
        "pg_xlog_location_diff(pg_last_xlog_replay_location(), #{string}) >= 0 AS result"

> Here WAL-POINTER is the WAL pointer as returned by the PostgreSQL function > pg_current_xlog_insert_location(), which is executed on the primary. In the > above code snippet the pointer is passed as an argument, which is then > quoted/escaped and passed to the query.

Why escape the input and use string interpolation instead of a parameter?

<comment><USER2> Sorry for the late reply!

        > Why wait for all of the slave databases to be in sync? If at least one is in sync,
        > can you get all database interactions in the application to the valid subset?

If queries fail on the replica we'll cycle through the available replicas until we have one that works. If we didn't wait for all to be in sync it could in theory be possible we'd retry our query on a host that does not yet have the data, though this would be very unlikely. So basically we're being a bit paranoid here.

        > Why escape the input and use string interpolation instead of a parameter?

Rails doesn't really provide an easy way of doing this unfortunately. That is, to run raw queries you'll use something like this:

        ActiveRecord::Base.connection.execute 'your query here'

This particular API doesn't support passing any parameters, so you have to resort to manually escaping data and using string interpolation.</comment></comment>


As New York Rents Soar, Public Housing Becomes Lifelong Refuge - <AUTHOR> http://www.nytimes.com/2015/08/04/nyregion/as-new-york-rents-soar-public-housing-becomes-lifelong-refuge.html <comment><USER2> NYCHA has a huge capital shortfall -- to the tune of $18B.^1 Neither the city, the state, nor the federal government looks interested in putting in that kind of money. As it is a significant fraction of the total number of apartments are being held empty because of needed repairs, at some point in the not too distant future entire buildings are going to be uninhabitable if repairs aren't made.

There was a proposal need the end of Bloomberg administration to sell project parking lots(!), mostly in Manhattan, to developers that would build market rate housing. The money would then be used for capital repairs. The plan was bitterly opposed by residents who apparently value massively subsidized parking over non-falling-down buildings and/or believe that the money is going to magically appear in some other way. DeBlasio has put out a modified version of the same plan, it involves a mix of "affordable" and market rate apartments being developed on the same parcels. That of course, will mean less money for NYCHA, which means fewer repairs, but I guess he doesn't care.

Personally, I think it makes the most sense to sell outright a few of the most valuable properties and use the money to make the necessary capital repairs on the rest of the system. If enough of those empty apartments can be fixed up, it might not even be a net loss of public housing.

1 [http://www.nytimes.com/2014/08/12/nyregion/new-york- public-h...](http://www.nytimes.com/2014/08/12/nyregion/new-york-public- housing-faces-crisis-as-demands-and-deficits-grow.html)

<comment><USER3> > The plan was bitterly opposed by residents who apparently value massively > subsidized parking over non-falling-down buildings and/or believe that the > money is going to magically appear in some other way.

This isn't a very charitable evaluation. After all, these blocks have parking lots because the residents (or a certain number of them) need some place to park! Yes, NYC has a vast public transportation network, and many people don't need to drive, but this transportation network is often weakest in areas of high poverty, and the poor are also especially likely to work in highly inconvenient locations. Presumably these residents hope that if they put up some resistance to having their parking spaces sold to developers, then maybe their elected officials will find a better way of coming up with the money. It's not as though selling parking lots is the only way policymakers have ever devised for raising money, so I'm not sure why you would describe this as "magic."

Look at it another way: these are the people who live in the buildings. If they would rather keep the parking lots than pay for building repairs, shouldn't their preference -- particularly given their privileged access to useful information like how bad the living conditions are and how badly they need the parking -- be entitled to some weight?

All this is not to say that the sale/lease of parking space isn't a good idea --I'm undecided, myself. I'm just puzzled by your tone, which would seem to take for granted, with little evidence, that this is the only possible money- raising plan, and that anyone who doesn't use it to raise the maximum possible amount is an idiot, without taking seriously the proposal's significant effects on residents.

<comment><USER2> If there were one building with one parking lot, what you say would make some sense. But the dynamic you are missing is that some public housing residents have won the lottery within the lottery -- not only are they in public housing for which they pay little in rent, but they are in public housing that sits on some of the most expensive land in the entire nation. On top of that, they get virtually free parking in neighborhoods where even rich people don't own cars because it costs hundreds of dollars a month to park.

There was a mooted proposal which would have a net effect of sharing a bit of these resident's good fortune with some of the rest of the public housing community. Residents of those buildings would still have apartments in some of the most desirable places on earth, but they wouldn't also get parking there. The money freed up would be used to not only repair their buildings (although the plan did give them first dibs) but also buildings in less desirable areas. As I said it was fought bitterly.

This story is a parable for the entire "affordable housing" movement over the last 70 years. It doesn't aim to put in place policies that make housing more affordable generally, on the contrary it has been a driving policy goal of governments since the end of World War II to do everything possible to ensure that housing costs in general would grow faster than the rate of general inflation in order to give money to homeowners in a way that didn't look like welfare. Instead, the movement is designed to pick a few lucky winners and give them housing. Although there's generally hasn't been an ownership interest transferred to the lucky winners (but see Mitchell Lama Co-Ops) this housing has generally been heritable -- so much so that people today can't even get a lottery ticket because almost all the prizes have long since been issued.

As for as calling the alternatives magic, as someone who has observed NYC, NYS, and US politics for a couple of decades now, I feel pretty confident in labeling the idea that any of those governments is going to come up with $18B out of general funds for NYC public housing capital needs magical thinking. We can't even get a fair share of transportation funds.

<comment><USER3> I understand what you're saying about the good fortune of people who live in public housing in desirable areas. And I see what you mean about the benefits of spreading some of that good fortune around by selling parking. Both of these may be good reasons to support Bloomberg's plan.

But I don't see what any of this has to do with your assertions about the rationality/wisdom of residents who oppose the plan:

> The plan was bitterly opposed by residents who apparently value massively > subsidized parking over non-falling-down buildings and/or believe that the > money is going to magically appear in some other way.

> DeBlasio has put out a modified version of the same plan . . . [which] will > mean less money for NYCHA, which means fewer repairs, but I guess he doesn't > care.

</comment></comment></comment></comment><comment><USER4> I have no problem with public housing but let's call it what it is: a lottery for the working poor and lower middle class who desire to live in areas they could not otherwise afford. A lottery with much better odds than a multi state powerball, no doubt, but the same concept, with the winnings being distributed as low (heavily subsidized) rent. If we think it's important to have such disparate classes living close together even in high cost of living areas, then great - maybe this is the best way to make that happen. Some folks just a tad too well off for the lotteries, who otherwise could have squeezed in, will then be priced out. Winners and losers. Reframing the discussion in these terms will at least make it an honest debate.

<comment><USER5> Here in the UK, once you're in social housing (which we call council housing) you're in for life - which leads to situations like the late Bob Crow earning £150k/year (probably $250k/year equiv) and yet getting his rent paid by taxes levied on people earning a fraction as much. This, he was fond of saying, was in accordance with his socialist principles.

I'd like to see a system where a council house is on a fixed term, say 5 years or 10 years, then it goes to the next person on the waiting list, and you can rejoin the queue at the back if you so desire. That's more than enough time for anyone to make a smooth transition to the rental or homeowner sector.

<comment><USER6> (Social housing covers local authorities and private housing associations)

I believe many new tenancies are "starter" tenancy agreements; a probation period of 12-18 months. There are also fixed-term assured shorthold tenancies.

Tenancies started before 1989 are somewhat controlled by a council Rent Officer. Applications must be made to increase rent. Tenancies after 1989 experience yearly rent increases, capped to CPI I think.

There are also 'affordable rents', basically a way for housing associations to charge more for rent.

Not disagreeing with you, but social housing is quite different to the pre-1989 era.

</comment></comment></comment><comment> design-of-homes Many of the housing issues that New York faces seem similar to what's happening in London: shortage of housing supply, soaring rents, property at ridiculously over-inflated prices. The London market is overun with buy-to-let investors chasing after the same properties as first-time buyers (guess who's more likely to be snapping up those properties and chasing up prices).

The article touches on the importance of neighbours. I think we underestimate how important community is in a neighbourhood. People will always come and go in a neighbourhood, but knowing your neighbours (even if it's simply saying 'hello') and knowing that there is a reasonable number of people settled in your neighbourhood makes a big difference to the street or block in which you live.

Research in the UK has shown [1] that many people who rent feel no commitment to the area in which they rent or don't see the point of getting to know the people they share a street with. Longer, more stable tenancies might change this (much like they have in Germany). Or the ability to purchase their own home (if homes were affordable in London).

Property as investment has had an incredibly damaging effect on the London housing market. Do property investors have any interest or concern for the neighbourhood in which they rent out their property?? If buy-to-let comes to dominate a neighbourhood, what kind of effect does it have on that neighbourhood? Can you ever build a community around such a neighbourhood?

[1] [http://www.theguardian.com/commentisfree/2012/dec/09/home- ow...](http://www.theguardian.com/commentisfree/2012/dec/09/home-ownership- young-people-falling)

<comment><USER7> It's funny, but people in NYC rarely get to know their neighbors, regardless of rent vs. own. Cultural thing I guess. Maybe it helps ignore the extremely crowded population density.

</comment></comment><comment><USER8> Some interesting demographic data here: [http://www1.nyc.gov/html/nycha/downloads/pdf/CAFR_2013.pdf](http://www1.nyc.gov/html/nycha/downloads/pdf/CAFR_2013.pdf) (page 136).

A few things that stand out:

* About 175k families in public housing, with 400k people total (so about 5% of the NYC population).

* Slightly less than half of households have at least one person working.

* Average income is $23k. If only half of households work, does that mean that the average income among working families is >$50k?

* Only 11% of families are listed as being on welfare.

* Average time in public housing > 20 years, which supports what the article was saying.

<comment><USER9> > * Average income is $23k. If only half of households work, does that mean > that the average income among working families is >$50k?

There are ~37% of families with someone over 62, so that section may be drawing social security (assuming that is included in gross income, which it wouldn't for the IRS, but it would make sense to for a housing agency)

</comment></comment><comment><USER10> The more I read about what's going on in NYC, SF, London, I have to think of the visions from utopianist architects like Paolo Soleri and Buckminster Fuller who foresaw the over population of cities and not just the economic side effects, but the lifestyle and chaos inherited from the haphazard design of entire cities.

[image from Paolo Soleri, on "Archology", cities as ecosystems co-designed] [http://alastairgordonwalltowall.files.wordpress.com/2013/04/...](http://alastairgordonwalltowall.files.wordpress.com/2013/04/arcology-4.jpg)

All these megacities have lacked expansion efforts driving up costs of rent to unaffordable levels for most normal people.

As jobs are automated out of existence, and productivity increases, unemployment will continue to increase, the % of the population stuck in poverty level will likely continue to increase. Sooner or later these issues will need to be addressed with long term answers.

It seems like if anyone might actually implement newly designed large scale planned city architecture, it will be China.

[https://en.wikipedia.org/wiki/Arcology](https://en.wikipedia.org/wiki/Arcology)

</comment><comment><USER11> Let's face facts.

Regulation, Zoning and Rent Control cause shortages.

Few folks want poor folk living in their neighborhood.

</comment><comment><USER12> To be honest I think I am more offended that the housing authority can charger higher rents to some residents all the while not maintaining the buildings. Why aren't housing authority management dragged up before the cameras, if not into court. Money from rents should first go to the building the rent is derived from and only spent elsewhere if all that buildings needs are met.

Rent control, public housing, taxi medallions, street vendor permits, and more, all are things that can be made to sound good but the number of people harmed usually out numbers those helped in the long run.

There should not be any ownership imparted simply because you got there first. This goes for public housing as much as it goes for the medallion system.

</comment><comment><USER13> One solution which has some popularity in other places is corporate housing. So, if you work for ssamsung, for example, then you get to rent from them.

I can see how this can be viewed as negative as only those privvy enough to work for the corps who are willing to build would benefit and takes some of the responsibility from the state, this frees up non corporate housing stock for others pushing up the number of units overall.

Corp housing used to be more common in the us but seems to have waned greatly over time. I think people saw it as the employer taking back your money in the form or rent.

<comment><USER14> Wow. Please go read up on what the outcome has been _literally every single time this has been tried, many times in the USA 's recent history_.

Hint: it is one of the many reasons unions exist, and are a good thing.

EDIT: Or to go another way with this - the single worst aspect of the US health system is how your health insurance provider is tied to your job. This is probably one of the greatest shackles towards labor mobility in the US, but since it tends to benefit employers they're mysteriously all for it.

Tying someone's _place of residence_ to their employer is an even more insane, backwards step.

<comment><USER13> I understand; however, we see cities dedicating or subsidizing housing for teachers and other personnel. Also, companies while they are in business will carry that housing capacity thus taking that load off the city or town which isn't building enough stock.

In addition these would be normal units, not some bunk bed operations. They'd be no different from any other housing development in a given locale, likely much better than public housing.

I dont think we can discount it out of hand due to history. Other countries have varying success with these schemes. It's not that far removed from the principle of providing free meals to employees in order to make them more productive by having a shorter commute and one less thing to worry about.

</comment></comment></comment><comment><USER15> There is a limited supply thanks partly to public housing and rent control (people never leave and developers basically can't touch it), and also it's _incredibly_ expensive to develop in NYC:

 _" A 2010 study by the Association for Neighborhood and Housing Development estimated that covering the cost of financing, building, and operating a new apartment building in New York City, including taxes, required a minimum rent for its units of $2,100 per month. To live comfortably with such rent, a family would need an income of at least $86,000. Further, developers become understandably unwilling to construct apartment buildings where they can't be assured of such rent premiums. The high construction costs result not only in inflated rents in new buildings, therefore, but in an overall shortage of housing, which drives up the price of already-constructed unregulated units.

And it's New York's tentacular state and local government that helps make it so wildly expensive to build. The NYU study found a host of government policies that drive construction prices higher. For starters, city agencies responsible for overseeing and regulating building were often openly hostile to new construction, the study discovered. "The Buildings Department is still one of the major drivers of the high cost of housing in New York City, rather than an agency dedicated to reducing expense and facilitating development," the report observed. Even experienced builders, the study found, now typically employed well-paid "expediters" to move their projects through the city's foot-dragging approval process, adding an average cost of about $200,000 per building.

Taxes and fees tied specifically to development—many of them rare in other cities—are another factor in Gotham's sky-high building costs. For example, New York levies a transfer tax on land when a developer buys a plot, and then a mortgage-recording tax when a builder borrows to finance his project. And the builder faces significant sales taxes on construction materials, too. For a hypothetical New York apartment building, going up on a plot of land bought for, say, $5 million, real-estate, mortgage, and sales taxes would add $1.6 million to the development price tag.

New York's local and state elected officials also write laws and codes that curry favor with various special interests with a financial stake in development, raising prices higher still. Litigation-friendly New York State makes it easy to sue builders and developers, for instance, which benefits construction-worker unions and trial lawyers, two powerful Albany lobbies, but makes insurance on the construction of an apartment building as much as 8 percent to 10 percent of total costs—twice the national average. The Scaffold Law may be the most striking example of this kind of legislation. Unique in the country, it mandates that a developer or contractor is completely liable if an employee gets injured on a job site, even if worker negligence played a role. Even workers found to be drunk on the job have won big judgments.

Another costly government barrier to building is the city's excessive fondness for historic preservation. Initiated in the mid-1960s as a way of protecting truly exceptional structures—a fallout from the unfortunate demolition of the original Penn Station—the city's landmarking process has morphed over time into a way for local activists and progressive politicians to stymie development of any new construction in neighborhoods often all but devoid of historic value. Nowadays, notes Harvard economist and City Journal contributing editor Edward Glaeser, nearly 16 percent of buildable land in Manhattan resides in historic-preservation districts, and about half of it is largely off-limits to development. (See "Preservation Follies," Spring 2010.) In a city desperately needing housing construction, the preservation districts lost an average of 46 units of housing per tract during the 1990s, according to Glaeser's research. Not surprisingly, the cost of housing in these districts has risen substantially faster than in other areas of the city."[0]_

[0] [http://www.city-journal.org/2014/24_3_nyc- government.html](http://www.city-journal.org/2014/24_3_nyc-government.html)</comment>


Why do websites publish AMP pages? - <AUTHOR> http://daringfireball.net/linked/2016/10/21/google-amp <comment><USER2> IIRC Google is uses amp favorably when computing search rankings.

I think AMP and Facebook's Instant Articles are terrible for the web. They enforce "good behavior" in web deign by using a straight jacket, which gives Google or Facebook even more control over what types of web components and behaviors are viewed as "standard". And, as you said, it traps the reader in the Google or Facebook ecosystem.</comment>