Function multi-versioning in GCC 6 - <AUTHOR> https://lwn.net/Articles/691932/ <comment><USER2> The fact that different CPUs have different features was one of the original reasons you never ran a generic kernel. The generic kernel was just that, generic. As a result it made no assumptions. Now in Windows and later Linux and FreeBSD kernels there are kernel modules that can change behaviors but sometimes that still doesn't give you the max performance for the integer code. Fortunately it isn't that much of a burden.

That said, I'm sure HPC folks compile with all the bells and whistles for the exact model, options, and probably CPU stepping enabled.

<comment><USER3> HPC guy here; Nope, we don't bother recompiling the kernel for every piece of hardware we have. HPC code tends to run 99.99% in user space, kernel performance doesn't matter that much.

End user applications, that's another matter, and here using all the latest vector instructions etc. can make a difference. Usually less so than what one might hope, though. The really big deal tends to be using optimized libraries such as OpenBLAS, FFTW, MKL instead of doing numerical linear algebra yourself in a naive fashion, or using the reference netlib BLAS.

Another very common problem we see is poor application I/O patterns. Yes, every HPC site loves to brag how many GB/s their Lustre system does, but if you divide that by the number of CPU cores in a cluster, that ratio is quite low. Additionally, like other clustered file systems, Lustre metadata performance is relatively poor, so applications banging on lots of small files can easily tank the performance of the entire Lustre system.

</comment></comment><comment><USER4> This seems particularly interesting as a contrast with [https://news.ycombinator.com/item?id=13145245](https://news.ycombinator.com/item?id=13145245) .

<comment><USER5> Solves and creates different issues. With FMV you essentially have to build the compile unit with the highest level of microarch support so that the pre- processor interprets the intrinsics headers and doesn't eliminate intrinsics you might need.

(ICC solves this in a differently annoying way - where all the intrinsics are available, even if they are incompatible with the platform you are on.)

For some light entertainment, think about what happens with static initializers and compiling for different microarch flavours. If your C++ static init function happens to generate an AVX insn, and you've only got SSE2, welcome to SIGILL before main().

<comment><USER6> Can't you get the same behavior as icc in gcc/clang by just using target specific optimization options at the function level?

See for example stage 1 here: [https://gcc.gnu.org/wiki/FunctionSpecificOpt](https://gcc.gnu.org/wiki/FunctionSpecificOpt) (that document appears dated, but do things still work that way?) Afaik, clang/llvm have similar functionality.

<comment><USER5> That stage1 example is pretty ugly - using __builtin_ia32<x> would work, but they are the only things harder to read than the intrinsics themselves!

Plus there are some intrinsics that are just macros, (sets, masks, etc), and you don't get them from the preprocessor just by setting the function target.

As an aside, that page really is dated - it is just early proposals afterall - as SSE5 didn't see light of day like that. VPCMOV ended up in AMD's XOP set.

ICC also has its auto as well as manual dispatch options:

auto: [https://software.intel.com/en- us/node/682440](https://software.intel.com/en-us/node/682440) manual: [https://software.intel.com/en-us/node/684505](https://software.intel.com/en- us/node/684505)

I believe this is the area where Intel had their knuckles rapped for only working on "GenuineIntel" processors, and why there are big disclaimers on everything now. I've not tried using these myself as they aren't portable solutions.

</comment></comment></comment></comment><comment><USER7> I wonder how long we have until we run out of x86 opcodes. Even if it's a variable-length instruction encoding, there's going to come a point where the size of the instruction outweighs any performance benefits, not to mention the effort that goes into designing new instruction extensions in a chip.

Then again, perhaps that's all that's left for Intel to do now. Evolution of marketing ploys: transistors -> clock speed -> #cores -> instruction extensions.

<comment><USER8> _there 's going to come a point where the size of the instruction outweighs any performance benefits_

Except for the fact that many of these new instructions perform some huge nontrivial operation in hardware that would've required hundreds or more regular instructions previously --- AES is a good example. It seems like a general principle that instruction sets tend to become more CISC-y over time, as dedicated hardware and instructions designed to operate on such replace slower software implementations.

</comment></comment><comment><USER9> Does clang / llvm have anything similar?

<comment><USER5> Clang doesn't have function multi-versioning (FMV), but it now supports the ifunc attribute for runtime resolution:

[http://clang.llvm.org/docs/AttributeReference.html#ifunc- gnu...](http://clang.llvm.org/docs/AttributeReference.html#ifunc-gnu-ifunc)

</comment></comment><comment><USER10> pretty nice. i like the code in the article, seems much cleaner to look at different functions for different arch. This will come handy during code maintenance.</comment>


PHP Dev wants to learn a framework Symphony or Rails? - <AUTHOR>

What framework is better what is the growth opportunity? Stick with PHP or move to Ruby/Rails ? <comment><USER2> Growth in which way? If you are referring to expanding your programming chops, then I would move onto something that's not a web scripting language since PHP to Ruby would largely be a parallel move.

If you are referring to financial opportunities, then I think you are asking the wrong question. Business / marketing / people skills are far more important than programming languages for making good pay days. You need to learn to sell!

In the big picture, picking PHP or Ruby is fine unless you have a specific need for one over the other (available libraries?) Since you already know PHP, it would be more important to be highly proficient in PHP before you worry about moving to a different web scripting language. After that, make sure that you are can easily make "boss level" in Javascript and then start working on your mobile skills.

Can't go wrong with JS and mobile!

<comment><USER3> I'd fully agree with the last half of this! PHP is a great language for you to have, especially depending on where you live! I know that in Seattle right now we would do anything for a PHP developer!

The next step is to get a lot better at PHP, just learning the language won't be enough you need to become a PHP assassin. Then add JavaScript to your strengths next, strong front end developers are tough to find, get in that space.

And finally, the one thing I urge ALL developers to do, get into mobile! Be sure to take on Java for Android or Objective-C for iOS! If you dominate those, you will be very well off without ever having to worry about the business side of things.

</comment></comment><comment><USER4> Ruby/Rails sounds cool from what I hear.

</comment><comment><USER5> Django (Python) or Rails (Ruby)</comment>


Is Your Tribe Holding You Down? - <AUTHOR> http://www.copyblogger.com/two-tribes/

<comment><USER2> Gah, marketing people.</comment>


Ask HN: I'm tired of development. What should I do next? - <AUTHOR>

(Edited: title changed to use the word "fuck", which is a great way to get more visibility on HN. Also I tl;dr'd it.)
What would you recommend for someone that has fully resolved to change their career from developer to X, but has no answer to the question: "What is X?"
If there are career counselors that could help, how would you suggest finding one that would give good advice? What books and/or tests would help for those that are in a similar situation, have fully decided that they are on the wrong path, and who have abandoned almost all hope? <comment><USER2> Do you like/tolerate teaching people? You could probably make a decent amount of money teaching people to code while not actually doing much of it yourself. If that's out of the question, you should ask yourself how physical you want your new career to be. If you're not afraid of manual labor, self employed plumbers and electricians make a killing and are always in demand (no sarcasm intended btw).

<comment><AUTHOR> I have tried teaching in the past, but it isn't my strong suit. I enjoy manual labor, but I'm not sure I could do it full-time and know myself well-enough that I couldn't manage various teams, etc. to work my salary closer to what I have now. I'm not very outgoing. Plumbing would be interesting, and I've done some in the past, but doubt it would make enough, I'm not that handy, and managing the team and business would be tough. I like the idea of being a writer, but I don't write much before giving up for months and then starting on something new months later.

<comment><USER3> Consider pipefitting in oil and gas, similar to plumbing better wages.

<comment><USER2> Nice. This is a great suggestion and timely. I hear that gas pipefitters in the Australian outback make ~200K a year if you're willing to travel...

<comment><USER3> Northern bc, or ab. 40+$ hour plus 150 a day loa.

</comment></comment></comment></comment></comment><comment><USER4> The recommended books for a person in your situation are from Barbara Sher.

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

You can usually find them for a few dollars at a used bookstore.

<comment><AUTHOR> Thanks! I'll definitely take a read of those.

I'd also like to take the Strong Interest Inventory but already think I'm an Artistic + Realistic: [http://en.wikipedia.org/wiki/Holland_codes](http://en.wikipedia.org/wiki/Holland_codes)

</comment></comment><comment><USER5> Logical paths might be connected to your development work. Clients, vendors, or other related companies might know you and be interested in hiring you.

<comment><AUTHOR> Good idea for some. Unfortunately, I have not directly interacted with many outside of my team at each company, and all of those teams are developers and almost all still work in development.

</comment></comment><comment><AUTHOR> Looks like maybe PG changed the title to removing "fucking". Sorry for the offense! Thank you for fixing it.</comment>


Japan's 7-Eleven payment app gives easy access to scammers - <AUTHOR> https://www.bbc.com/news/world-asia-48878159 <comment><USER2> One of the scarier things about this is that 7-Eleven isn't a convenience store here -- it's a retail chain owned by 7&i Holdings and closely associated with Seven Bank.

They also provide various things like health, car, and automobile insurance.

So you'd really expect a conglomerate of this size to have financial things down.

<comment><USER3> As a Seven & I shareholder, things have been going poorly for a while now. It's a shame because this company has a chance to be truly great. Luckily, I hedged on FamilyMart, too.

</comment></comment><comment><USER4> According to Katsunori Shigeta [1], 7-Eleven belatedly removed the target email address... using CSS (`display:none`). The summoned official had also said that one has no knowledge about the multi-factor authentication [2].

[1] [https://twitter.com/shigezo/status/1146700322460463104](https://twitter.com/shigezo/status/1146700322460463104)

[2] [https://twitter.com/shigezo/status/1146944325684621312](https://twitter.com/shigezo/status/1146944325684621312) (the initial tweet had an error on this)

</comment><comment> ga-vu The BBC references a ZDNet story, but never links to it. Here it is: [https://www.zdnet.com/article/7-eleven-japanese-customers- lo...](https://www.zdnet.com/article/7-eleven-japanese-customers- lose-500000-due-to-mobile-app-flaw/)

There's also been two arrests made, per ZDNet. Source: [https://www.sankei.com/affairs/news/190704/afr1907040036-n1....](https://www.sankei.com/affairs/news/190704/afr1907040036-n1.html)

</comment><comment><USER5> Well, this thing happens frequently when every _websites_ want to throw their "apps" to the customers. But their actual "apps" are out-sourced by cheap MSP somewhere. That explains the lack of security effort.

</comment><comment><USER6> >The 7pay mobile app was designed to show a barcode on the phone's screen when customers reach the 7-Eleven cashier counters. The cashier scans the barcode, and the bought goods are charged to the user's 7pay app and the customer's credit or debit cards that have been saved in the account.

Why is this app even needed? Is EMV contactless not a thing in Japan? Did 7/11 want to join the mobile pay bandwagon?

<comment><USER7> Japanese 7-11 take contactless just fine, even Apple Pay works. I guess they just wanted to add their own "flavor" to the already maddening mix of available payment and loyalty card options.

</comment></comment><comment><USER8> Writing software is easy.

</comment><comment><USER9> Japan has an effective justice system and police force.</comment>


The Kush civilization flourished in Sudan nearly 5K years ago - <AUTHOR> https://www.smithsonianmag.com/travel/sudan-land-kush-meroe-ancient-civilization-overlooked-180975498/ <comment><USER3> > I first learned of Sudan's extraordinary pyramids as a boy, in the British > historian Basil Davidson's 1984 documentary series "Africa."

This one seems to be on YouTube: [https://www.youtube.com/watch?v=X75COneJ4w8&list=PL6mz4AK- lT...](https://www.youtube.com/watch?v=X75COneJ4w8&list=PL6mz4AK- lTo6KOzj309JKOzssfFArBxiQ)

<comment><USER4> This series is amazing. Thank you for sharing

</comment></comment><comment><USER5> I was starting to worry that the author would omit one of the classic factoids on this topic: that there are more pyramids in what is now Sudan, than there are in what is now Egypt. And not by a small margin! (This is mentioned, pretty far into the article.)

<comment><USER6> And here is a fact to add to your repertoire of non-factoids! Factoid, is in fact a fact which is not actually true, but has been so often repeated it is accepted as true! ([https://www.merriam- webster.com/dictionary/factoid](https://www.merriam- webster.com/dictionary/factoid))

Unless of course you are referring to the _other_ meaning of factoid, which is the opposite meaning..

<comment><USER7> I think the opposite meaning of factoid (ie: a small, very specific fact) is actually the more common usage.

I've _never_ heard anyone actually use the original meaning, but frequently hear the "small fact" usage - except to point out the opposite meaning. (I've done some work in question answering, and the "small fact" usage is exclusively the way I've seen it used in that field)

<comment><USER8> I find that the most common usage is for someone describing what they think is a small, very specific fact, but is in fact just a repetition of an old wives' tale with no veracity whatsoever. So maybe the original definition isn't _intentionally_ used that often, but it does end up being relevant quite a lot!

</comment></comment></comment></comment><comment><USER9> There's a nice webcomic called Drawing History that gives a gentle overview of many ancient civilisations, including the Kush [https://m.tapas.io/series/Drawing- History/info](https://m.tapas.io/series/Drawing-History/info)

</comment><comment><USER10> Meroe is spectacular and virtually no tourists and overall rather safe compared to the other three quadrants of the country. I can recommend that and scuba diving in Port Sudan highly. [https://www.robk.com/2013/08/21/sudan-2012/](https://www.robk.com/2013/08/21/sudan-2012/)

<comment><USER11> What are the square structures in the back of the 2nd to last photo?

</comment></comment><comment><USER12> If the area was more prosperous today, it would have hired many historians and PR to spread its historical significance. Many European cities do this to increase tourism revenue.

<comment><USER13> I'm guessing it had been prosperous while it was in the middle of the trade route between egypt and punt, and that after some change (broken off trade, or just rerouted via the red sea to cut out the middle man?) lost that envious position.

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

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

</comment></comment><comment><USER14> > The land south of Egypt, beyond the first cataract of the Nile, was known to > the ancient world by many names: Ta-Seti, or Land of the Bow, so named > because the inhabitants were expert archers; Ta-Nehesi, or Land of Copper;

Oh, is that what Ta-Nehesi Coates is named after? I decided to look, and apparently his name is slightly different, Ta-Nehisi. What's weird just just how often he's miscredited with the wrong name in articles online, whether they be blogs or new agencies (those might be alternate spelling tagging) or book clubs.

As I myself have an uncommon spelling of a fairly common name (with no common variations), I can only imagine how annoying this must be. It's probably self propagating at this point, since anyone that searches for it with the wrong name will find plenty of (wrong) evidence that they guessed right, depending on where their eyes land on the page.

<comment><USER15> Note that Ta-Nehisi Coates insists on the pronunciation "Ta-Nehasi Coates."

<comment><USER14> Yeah, the first few times I heard him on a podcast, I thought people were calling him "Tallahassee".

</comment></comment></comment><comment><USER16> Recommend sources for human culture/civilization history from 10,000 B.C. to 5,000 B.C.?

Most of the top search results and Wikipedia entries tap out on cultures prior to ~5,000-~3,000 B.C.

Of course there are stand alone pages such as Neolithic_founder_crops [https://en.wikipedia.org/wiki/History_of_agriculture](https://en.wikipedia.org/wiki/History_of_agriculture)

Chalocolithic Period [https://en.m.wikipedia.org/wiki/Chalcolithic](https://en.m.wikipedia.org/wiki/Chalcolithic)

<comment><USER17> Against the Grain by James Scott.

<comment><USER18> Thank you I just ordered it.

</comment></comment></comment><comment><USER15> "Kushi" is still a current slur against black people in Israel and other Hebrew-speaking areas.[1] It's a bit like calling someone a "chinaman." Also, some people point out the sound similarity of קוֹף (monkey) and כושי (Kushite).

[1] [https://www.timesofisrael.com/chief-rabbi-compares- african-a...](https://www.timesofisrael.com/chief-rabbi-compares-african- americans-to-monkeys/)

<comment><USER19> I wouldn't say this is accurate. Well, some might use it that way, but as a kid this is the word we were taught for black folk with no harm intended, it's also the name used in the bible--I believe it's originally from the bible.

<comment><USER15> The Troubling Resurgence of Racial Slurs Like 'Shvartze' and 'Kushi'[1]

Hasidic singer slurs Obama at Jerusalem concert[2]

Terra incognita: Israel's k-word: Can Holon teach us a lesson in racism?[3]

[https://forward.com/opinion/361625/michael-twitty-black- jewi...](https://forward.com/opinion/361625/michael-twitty-black-jewish- relations/)

[https://www.timesofisrael.com/hasidic-singer-slurs-obama- at-...](https://www.timesofisrael.com/hasidic-singer-slurs-obama-at-jerusalem- concert/)

[https://www.jpost.com/opinion/columnists/terra-incognita- isr...](https://www.jpost.com/opinion/columnists/terra-incognita-israels-k- word-can-holon-teach-us-a-lesson-in-racism-344425)

<comment><USER20> drorco didn't say no one uses it as a slur, they were relaying their experience having been taught the word means no ill will. I don't really see a reason to try to prove his experience wrong.

<comment><USER15> They claimed that describing this word as a slur is inaccurate. This word is commonly used and described as a slur.

<comment><USER19> I think what happens is that overtime certain groups have taken "ownership" over the word by using it as a racial slur but originally it just means "someone from Kush". In Hebrew if you take a location and add "I" as a suffix it means someone originating from that place, e.g: "Americai"-> someone from America, "Kushi"-> someone from Kush which is a country occasionally used in the bible to refer to Africa.

I guess in English there are also such words that originally had no use as a slur but later "denominated" to racial slurs.

The reference to Kushi->Kof (monkey) is totally off. Doesn't sound similar at all for my native Hebrew ears.

<comment><USER15> Look, this is just childish equivocation. A lot of words that are considered offensive also have (or used to have) other, innocuous meanings. What you're doing is like a child saying "Nah-uh, this word just means _happy_!"

A word is offensive in polite society because a population of people finds it hurtful, or because another population of people uses it in an intentionally hurtful way. Usually it's both. Innocent words can become slurs, and other slurs, over time, can become obscure and lose their power.

For example, the "n-word" in English obviously comes from the Spanish or Portuguese for the color black. Despite that, it's an offensive slur.

The older colloquial term in the English language for Romani people apparently comes from the word "Egyptian." There is no problem with being Egyptian. But many people find this particular word hurtful, and polite society is actively trying to retire it.

Maybe you have personal ideas about what "should" or "shouldn't" be hurtful, but I'm surprised that we don't seem to agree on how people actually use these words in reality. "Kushi" can be a slur even if your grandma's pet name for you was "my little Kushi" and you love that word to death.

<comment><USER21> This is just the euphamism treadmill in action. The name for an outgroup becomes a slur over time because it refers to an outgroup.

<comment><USER22> The treadmill stops when you actually change public attitudes. African American/Black have been the main terms in American language for 50 years now, with some back and forth between the two, but no further replacement.

<comment><USER23> What makes you think that won't change? As a Jamaican American, I look forward to the day when people stop referring to me as "black"

<comment><USER22> Because you prefer "Jamaican"? Or "African American"? Or nothing? I can't tell what you mean from context.

I don't think "black" "white" and "brown" can go away as descriptors like "blond" and "redhead", but maybe someday they will stop being identity categories. America already has large non-native black populations in certain areas (West Africans, Somalis, West Indies, etc.), but I think the country still thinks of Black = African American = descendent of U.S. slaves for now, because the non-native blacks are still mostly focused regionally, like Somalis in Minnesota.

I guess this is another reason for the treadmill: distinctions that were implicit before maybe need to be made explicit as different things become salient.

<comment><USER23> You said the treadmill stops when you change public attitude, and you imply the terms Black and African American used to refer to black people are acceptable designations for groups of people as of now. I'm making the point that that is completely subjective, as in my case I don't like being referred to as an African American, because I'm not, and black is basically a synonym for "Not african american", yet these are the default terms and you say that there is "no further replacement". My point is that words change meaning all the time, we are not heading into some inevitable singularity where all of these words over here are objectively good in all situations and all of those words are objectively bad in all situations and this will remain so for eternity - language is not that stagnant nor black and white, and for me that is a good thing. It is 100% your personal opinion that you find the terms Black and African American acceptable designations for groups for the foreseeable future, but don't project your personal opinion onto others - <USER2> personally look forward to the day where people refer to me as Jamaican and not just "black" or mistakenly, African American, and in the same way there are those who hold the opposite opinion and those who don't want to be generalized at all. That you personally like or dont like a particular label has no bearing on whether or not everyone else agrees with your opinion.

Tl;dr your statement "The [euphemism] treadmill stops when you actually change public attitudes" actually means "The euphemism treadmill stops when you actually change public attitudes in such a way that I am personally comfortable with it's final state", because in reality the treadmill will never stop, someone will always push to keep it going, it's the reason why language shifts and changes over time.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER24> According to the Hebrew Bible, a wife of Moses was from Sudan. And there are many references to a "Kingdom of Kush" which is taken to be where modern-day Sudan is. So at least 3500 years ago, we have some evidence of a thriving civilization there.

<comment><USER25> She even sells cosmetics today!

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

</comment></comment><comment><USER26> If our cultural memory of much more recent events indicates anything, I reckon we've "forgotten" quite a few things that went on 5k ya.

</comment><comment><USER27> > _"It's like opening a fairytale book"_

Breathtaking photos and awesome article! I knew nothing about the Kush before reading this.

</comment><comment><USER28> I think it's fair to say that Kush has never been 'forgotten'\--in fact, it's been heavily researched, documented, debated. This article title is a bit clickbait-y, and hinges on the current fad of 'Europeans are all racists and didn't acknowledge/appreciate a Black civilization', which is of course wrong.

<comment><USER29> Yes, Sudan hasn't been totally ignored, but the 3 classical areas of Rome, Greece, and Egypt have gotten a very disproportionate share of work, with France and the Levant/near east as second fiddles. On that scale, I think it's fair to describe Sudan and other outlying areas (like the Caucasus) as effectively ignored.

The article also isn't talking about "Europeans are racist and didn't appreciate black people". It's referencing about how Sudanese archaeology has been plagued by Diffusionism, a formerly dominant school of thought that's come under heavy criticism in the past 40ish years. Some people, myself included, will argue that diffusionism is a product of prejudiced ideologies and worldviews, but that's at least one step removed from what you're suggesting.

<comment><USER30> The work is in proportion to the amount of documents that are retained today. The reason why Rome and Greece are "popular" is they determined intellectual thought from the fall of the Western Rome until, probably, humanism (some one millennia later) so much of what they wrote down has been retained (or, more accurately, wasn't destroyed).

As an example: we know Carthage was a huge civilisation...until Rome razed it so we have no real idea today what ancient Carthage actually was like apart from that it was significant enough for Rome to burn to the ground.

Also, talking about "Europeans" is indicative of a total misconception of history in the period. Rome was a Mediterranean as much as a European one (north of Rome wasn't Europe as today, it was just a bunch of tribes). Many important figures that, ironically, people today say are examples of an over- emphasis on "Europeans" were Africans. Augustine being the best example, basically founded the theology of the early Church, he was a Roman but he was (in today's terms) also African. In short, trying to read the present back into the future is not smart.

<comment><USER29> The work of archaeologists is absolutely not in proportion to the amount of surviving documents. Most of my digs have been in places and periods with few to no written records, for example.

As for the comment about Europeans, I was talking about modern academics (particularly of the early through late 20th century). The leading archaeologists of that period primarily came from European and American traditions. I have no idea what Augustine has to do with 20th century academia. Please feel free to enlighten me if there's a connection though.

<comment><USER30> That wasn't the claim. You should read the reply chain but the point isn't about archaeology but our interpretation of civilization outside Rome and Greece. You wanted to know why these civilizations get that share of work...the reason why is that their thought was more relevant to us (again, most Europeans believed in Aristotelian science until humanism). And, again, these civilizations were more African than European...it is nothing to do with racism (which was the implication).

That wasn't the claim. I will explain, although you would do just as well to go back and read what I said more closely...again. The point is: many people who are perceived to be part of the European tradition (i.e. Rome/Greece) are not Europeans. So when someone says: Europe has got a disproportionate share of work, these regions are ignored, their civilizations are ignored...this is wrong. Most of these civilizations were mutli-culutural/multi-national, and included Africa (the other big contributor would be the Middle East). Again, attempting to read the current political view onto the past. And the point about Augustine is that he was African, the point about academics who say things like: we are too Euro-centric is that they define Europe in a way that makes no historical sense (unsurprisingly, as they are usually arguing about things in the present, not anything related to history...the concept of Europe itself is not something with a clear historical meaning).

<comment><USER29> It seems like there might be a misunderstanding of what I wrote. Quoting myself:

> ..the 3 classical areas of Rome, Greece, and Egypt have gotten a very > disproportionate share of work...

Greece and Rome (in the sense of the empire) are literally the "classic" in so-called classical archaeology [1]. Egypt is included because it's comparable for this particular case and there's a pretty substantial overlap with "core" classical archaeology.

Again, I've written nothing about whether these areas encompass parts of Africa nor whether they were wholly European. I also haven't implicated racism as the reason for that disproportionate amount of study. The things you're criticizing aren't my views and trying to put words into my mouth isn't appreciated.

[1] [https://lsa.umich.edu/classics/undergraduate- students/majors...](https://lsa.umich.edu/classics/undergraduate- students/majors-and-minors/classical-archaeology.html)

</comment></comment></comment></comment></comment></comment><comment><USER31> "Be, be-fore we came to this country

We were kings and queens, never porch monkeys

There was empires in Africa called Kush

Timbuktu, where every race came to get books

To learn from black teachers who taught Greeks and Romans

Asian Arabs and gave them gold, when

Gold was converted to money it all changed

Money then became empowerment for Europeans

The Persian military invaded

They heard about the gold, the teachings, and everything sacred

Africa was almost robbed naked

Slavery was money, so they began making slave ships

Egypt was the place that Alexander the Great went

He was so shocked at the mountains with black faces

Shot up they nose to impose what basically

Still goes on today, you see?"

\- From I Can by Nas [https://genius.com/Nas-i-can- lyrics](https://genius.com/Nas-i-can-lyrics)

<comment><USER32> It sounds really deep, but there doesn't seem to be any truth to it? Wikipedia mentions internal problems and conquest by a neighboring kingdom: [https://en.wikipedia.org/wiki/Kingdom_of_Kush](https://en.wikipedia.org/wiki/Kingdom_of_Kush)

I don't understand why make up stories when there are more than enough material with the colonial history.

<comment><USER33> One of the most frustrating aspects of these liberationist counter-narratives is the pretense that whoever conquered or succeeded certain civilizations/cultures, did so by a unique application of force.

Roughly: 'our people were good and peaceful until evil warlike invaders with wholly-different human motivations wiped us out.'

We should aim to fix injustices in the world. But building false narratives of differential demonization will only recreate problems in the long run.

<comment><USER34> How does an invasionary force conquer a foreign land where they are outnumbered other than by being warlike?

Lets define warlike as those who have achieved a high degree of skill at warfare.

The Mongols who conquered cities and states were famously warlike. So were the Macedonians/Greeks under Alexander.

</comment></comment></comment></comment><comment><USER35> It's pretty common for archeology to be scanty when a civilization doesn't leave behind any writings to study. If you want to be remembered you gotta write stuff down, and do so in a way that survives the ages.

It also helps to be closer to the modern era. Complaints that the Greek and Roman empires are better known seem a bit silly when you consider that they were in their peak closer to the present day than they were to Kush.

<comment><USER36> Kushites did have writing though: [https://en.wikipedia.org/wiki/Meroitic_script](https://en.wikipedia.org/wiki/Meroitic_script).

<comment><USER37> It's not writing that's well understood. There's no parallel texts like the Rosetta Stone. Also, Meroitic isn't closely related to any other language we have knowledge of. As a result, we can read a few names and little else.

<comment><USER38> I think that wraps around to the issue one of the other comments raised, which is the contention that less effort has been put into this area compared to, say, the civilizations whose languages are represented on the Rosetta Stone. Who's to say that there isn't one for Kush, buried in some undiscovered site? Or, what about using ML to investigate similarities in construction and form between the languages conveyed in Meroitic and other languages?

</comment></comment></comment></comment><comment><USER39> There's a Kush civilization flourishing in my closet today.

</comment><comment><USER40> I guess the people there blazed it and lit up too much? /s</comment>


Watch a Drone Take Over a Nearby Smart TV - <AUTHOR> https://www.wired.com/story/smart-tv-drone-hack/ <comment><USER2> I think the biggest problem with smart TVs is that manufacturers abandon models after only a few years. You might only get updates for < 3 years and after that, well tough - your TV reached the end of its supported period. No more new functionality and crucially no more security updates.

Most people will still use the TV and keep it connected to their network without realising the security risks.

And the above is for mainstream TV brands, imagine how bad it is for weird off-brands and store own-brands where the original software is of unknown provenance and the chances of any updates is nill.

<comment><USER3> I just hope they never start embedding mobile radios in TVs to circumvent people who know better than to connect their TV to their network.

I would imagine they can exfiltrate their tracking info with very little network traffic over LTE.

<comment><USER2> Back in the late 90s when digital TV was being rolled out, RTÉ in Ireland developed a technology called WiNDS. You won't find much technical information about it online because it never moved beyond the prototype phase. WiNDS provided a return path for ordering PPV events and other interactivity by embedding a GSM data modem in your set top box. It would transmit back to base using your regular TV antenna.

<comment><USER4> Satellite boxes would have plugin modems for this.

Sometimes they'd give you a bit of credit, but others wouldn't activate the program unless you phoned home.

</comment></comment></comment></comment><comment><USER5> Cool, he's using some of my code.

[https://github.com/drmpeg/dtv-utils/blob/master/dvbt- blade.p...](https://github.com/drmpeg/dtv-utils/blob/master/dvbt-blade.py)

<comment><USER6> Awesome. Have you ever seen the movie _The Recruit_ with Colin Farrell? There is a great scene where his character remotely "hacks" a TV at a job fair.

</comment></comment><comment><USER7> TVs seem like the last thing that needs to be smart. Why can't I buy just the panel that shows the image and then connect whatever Android TV box I want so I can display the video? Then I can make sure that's patched/upgraded/whatever without having to throw away the actually-expensive panel every time.

I guess that doesn't make people keep buying TVs...

<comment><USER8> My current "Smart TV" setup is a 10 year old 42" dumb tv with an Amazon Fire TV stick plugged into the back. I don't know what I'll do when it dies (it's dying).

I wish you could just buy modern TVs that are essentially just monitors.

<comment><USER9> Serious question, why do you need a giant TV? Why not just use a personal device like a computer, tablet, or phone to watch whatever?

I imagine you'll say something about watching TV with other people, which seems fair, but in my experience people don't watch TV "together". The TV is on, maybe one person is paying attention to it, most are just on their phone, or talking to eachother.

Maybe my experience is an outlier here.

<comment><USER10> I'm staring at a screen 50cm away for 8 hours a day already... it's nice to give my eyes a break and stare at one 3m away for my remaining awake time. ;)

</comment></comment></comment></comment><comment><USER11> Did he actually 'take over' the TV or just overpower the OTA broadcast? If the latter then the 'Smart' part is irrelevant (and so is the drone for that matter). A yagi with 50 watt UHF amplifier would likely do just as well from the ground.

A tempest attack on a display, on the other hand, would be more interesting and the drone might actually be useful for that. Add a gimbal for a directional antenna and you'd be golden. [https://github.com/martinmarinov/TempestSDR](https://github.com/martinmarinov/TempestSDR)

<comment><USER12> > Did he actually 'take over' the TV or just overpower the OTA broadcast? If > the latter then the 'Smart' part is irrelevant (and so is the drone for that > matter). A yagi with 50 watt UHF amplifier would likely do just as well from > the ground.

He overpowered the OTA broadcast, the drone is unneccessary and it can be done with an amp and a directional antenna. How do I know it? It says so right in the article.

<comment><USER11> I didn't make it that far. The obviously oversold attack depleted my interest.

</comment></comment></comment><comment><USER13> Reminder that most tvs are smart, because their price is subsidized by selling your data. The extra cost for a 'dumb tv'/monitor is payin for your privacy.

</comment><comment><USER14> I have a Samsung Smart Plasma TV. 1080p

It is fast, 3D capable. I actually have hooked it up to my computer to do real high end CAD (NX) in 3D. Frankly, it is amazing. I probably am the only one in North America who does it. Spiffy, and I really am sad plasma displays are no longer produced. Might just score another one while I can.

Nothing beats glowing phosphorus in glass man!

I did update it for newer codecs to play movies on USB, but that is it.

Totally unsupported now.

I like to buy the Smart models on clearance. I got this one, and it is huge, for like 800 bucks. Ignoring the smart part can be a cost savings if one looks.

</comment><comment><USER15> Watch Dogs</comment>


Show HN: A programming language I've been working on called Ark - <AUTHOR> https://github.com/ark-lang/ark <comment><USER2> You should also checkout myrddin, a new systems programming language sharing many features with rust and C.

github: [https://github.com/oridb/mc](https://github.com/oridb/mc) website: [http://eigenstate.org/myrddin/](http://eigenstate.org/myrddin/)

</comment><comment><USER3> Funny enough, there I already arc, which is what HN uses.

From Wikipedia:

Arc is a dialect of the Lisp programming language developed by Paul Graham and Robert Morris.

Also, this is the language that drives the HN web app we enjoy daily.

[https://en.m.wikipedia.org/wiki/Arc_(programming_language)](https://en.m.wikipedia.org/wiki/Arc_\(programming_language\))

<comment><USER4> Lesson for today: look up the name to see if it wasn't taken already!

...then go with it anyway, deliberately! ;)</comment></comment>


OT and CRDT trade-offs for Real-Time collaboration - <AUTHOR> https://www.tiny.cloud/blog/real-time-collaboration-ot-vs-crdt/ <comment><USER2> I've been doing a pretty deep dive on CRDTs and OTs to get the right user experience for our collaborative website builder[1]. I'm still not done with the implementation and subsequent testing (i.e., splitting text nodes, as mentioned in the post). But the core algorithm behind Automerge[2], formalized in the OpSets paper[3] is extremely promising. A good example of its power is the ability to do an atomic tree "move", whilst preserving strong eventual consistency.

I'm so glad to see that the HN community cares about this problem space. Maybe I should finally write that blog post on CRDTs and how to implement them yourself following the OpSets spec.

[1] [https://www.makeswift.com](https://www.makeswift.com)

[2] [https://www.github.com/automerge/automerge](https://www.github.com/automerge/automerge)

[3] [https://arxiv.org/abs/1805.04263](https://arxiv.org/abs/1805.04263)

<comment><USER3> I think that blog post would be a great idea, would love to read it

<comment><USER2> Really? I'll get something out this week. My Twitter handle is in my profile. I'll probably tweet about it when I write it.

</comment></comment></comment><comment><USER4> Wanderlog ([https://wanderlog.com](https://wanderlog.com)) is a Google Docs for planning travel, and naturally, we had to figure this out early in the process.

If you're on a Node.js/React stack, we highly recommend using the combination of OT-JSON0 [1] and ShareDB [2], two excellent libraries. OT-JSON0 lets you perform operational transforms on any JSON-serializable structure pretty intuitively, and ShareDB handles synchronizing it between multiple clients and resolving conflicts. Building your own is going to be a pain, so unless your core business is a text editor like TinyMCE, it's probably best to stand on the shoulders of giants.

Another approach that we didn't end up using is Figma's: especially if you're working on anything other than text editing, ask if you actually want to use operational transform. Something simpler might be good enough -- in Figma's case, they use "last write wins" because they were able to break the document into small enough, atomic elements. [3]

[1] [https://www.npmjs.com/package/ot-json0](https://www.npmjs.com/package/ot- json0)

[2] [https://www.npmjs.com/package/sharedb](https://www.npmjs.com/package/sharedb)

[3] [https://www.figma.com/blog/how-figmas-multiplayer- technology...](https://www.figma.com/blog/how-figmas-multiplayer-technology- works/stack)

<comment><USER2> We're actually using ShareDB at Makeswift right now and for us it has become a horrible burden. There are very subtle bugs on their data persistence layer with concurrency and the API is a bit of a mess to work with in my opinion. I'm glad to see other people are having success with it, though.

<comment><USER5> I've been given advice that ShareDB is "pretty antiquated and not well supported". I'm told it is not difficult to rewrite in modern NodeJS, replacing things like callbacks and event emitters with async/await produces a much simpler and more reliable server.

</comment></comment></comment><comment><USER6> There's one thing I'd add here, as advice to potential implementers of collaborative editing algorithms. Test the system rigorously, autogenerating concurrent workloads of all the operations (including undo), and also various delays. If this had been done early on, all the broken algorithms (some published with formal proofs of correctness!) would have been caught. A lot of the broken algorithms work under light loads - TP2 requires at least three concurrent edits, two inserts and one delete, to trigger.

<comment><USER5> We're using property-based testing where we can, which I hope to cover in a future post

</comment></comment><comment><USER7> At Mixcut.com (Building real time collaborative video editing) we use a combination of OTs and a variant/simpler version of CRDTs that provide the most coverage of the various features needed. The usage of low latency websockets to shuttle OTs and building completely around OTs is key.

It's working great for us in beta, we've recently shipped multiplayer to our users and overall it's very stable. With a lot more in store soon, please check it out!

</comment><comment><USER8> Thanks for linking to my blog post :)

"This is the exact "split node" scenario I described earlier; applying bold near the start of a text node necessarily has to split the text node into three parts (before, bold, and after)."

Not sure why you split it up into sections. In my CRDT implementation, I would add meta-data to each character, with the boolean property which is either bold or not. It's certainly cumbersome to keep the cursor at the right place when inserts are being made, but it's doable. [https://pierrehedkvist.com/posts/1-creating-a- collaborative-...](https://pierrehedkvist.com/posts/1-creating-a- collaborative-editor)

I personally never understood how OT actually works, clearly, Google Docs and others find it useful. But to me, CRDT has more solid proof and reasoning behind it, and it is easier to comprehend. [https://medium.com/@pierrehedkvist/creating-a- collaborative-...](https://medium.com/@pierrehedkvist/creating-a- collaborative-app-using-crdts-5013349f4682)

<comment><USER5> I definitely read a few of your posts during my research, thanks for your hard work :)

The best CRDTs do treat each character separately (as I think I mentioned at one point?). But not all of them - the video and my example is an example of one that doesn't.

It's also very difficult to support arbitrary nested trees with a per- character data type, which leads to the compromises I talked about.

</comment></comment><comment><USER9> Is the article suggesting to apply a string CRDT to an entire JSON structure? Are people doing that?

At the very least, I would expect different JSON data types to use different CRDTs. For a collaborative model, I would expect the semantics of the data model to be reflected in the choice of CRDTs for different substructures in the JSON.

<comment><USER10> No, the state of the art CRDT solution for json is something like Automerge ([https://github.com/automerge/automerge](https://github.com/automerge/automerge)), that treats the document like a collection/combination of CRDTs of different types. (the author doesn't mention it explicitly, but it's linked at the end)

<comment><USER11> I have been using Automerge recently for a project, and I have found it to be very, very user-friendly.

Our use-case is offline-editing of documents with an eventual sync-with- yourself-online. It's _mostly_ there as a sync tool, not as a p2p colalb editing. Unless you count yourself as a peer, I guess!

We store a document in local storage which is the result of `Automerge.save(automergedoc) => serializable string`. That can be loaded with `Automerge.load(s) => doc`.

"Changes" are a first-class concept in automerge (makes sense, I guess) so you can do

       before = Automerge.from({..some doc..})
       after = Automerge.change(before, "optional commit msg", (doc) => doc.hello = "world);

With that done, you can get a diff, `Automerge.getChanges(before, after) => [changes]`.

Those `[changes]` are what we try and send to a server and keep them in a `Set()` for each document (background sync, service worker, etc make a nice experience.

This is all wrapped up in Redux, and a middleware that captures the changes, and a reduxStore subscriber that puts the document back into local storage after any changes.

It is for the application programmer virtually transparent, and so far we've yet to find a fault with it.

I'm sure I'll come to regret making "changes" my principle data type, as the server implementation just sees serialized blobs of data, and has no concept of the structure of the document. That's solveable if I need it ever, because there's a protcol compatible implementation in Rust, and I could always use the JavaScript one on the server too, just haven't needed yet.

The serialization is also quite large, in the order of kilobytes for what are actually quite small docs, but they do contain the original commit messages too, and the Automerge team is planning to release an optimized serialization format early this year, which they say will be especially useful for fields with lots of changes, such as text fields, which currently pay a heavy toll in terms of tracking `[changes]`. Fortunately that also doesn't affect me.

I can also +1 some of the advice to keep your whole document in a CRDT. We use React+Redux, but since React Hooks made stateless functional components a reality, we felt it was appropriate to use React exclusively for the UI state, and track only document states in Redux reducers. It feels light-weight and sustainable, although we're only about a month and 5k LOC into the project. Time will tell I guess.

<comment><USER10> Yeah, personally the feature I'm looking forward to is materializing "changes" into a document without losing editing history.

At some point your set of changes grows too large or you want to trim it to, say, a few weeks or months. Afaik that isn't possible yet without losing the ability to merging later on.

<comment><USER12> I'm farmilliar with Automerge, but not its specific features on state compression. In general change set compression is possible with CRDTs but there are some "gotchas" you need to look out for. Most notably, all peers interested in a changeset, have to be completely in sync at the moment of compression, otherwise, depending on which underlying CRDT type you use, there can end up with duplicate entries in for example a Set type. Depending on the use case, 100% peer sync is possible, in others its more challenging.

</comment></comment></comment></comment></comment><comment><USER13> So.. we're left with no real explanation to why OT is better than CRDT other than a 5s video showing a poorly managed text node update that moves the cursor. I feel tricked.

<comment><USER14> Really?

> In OT, every user action is broken down into one or more operations. These > operations are transmitted between clients along with their baseline > reference; if two users perform actions at the same time, incoming > operations must be transformed to include the local operations that have > happened since that baseline. They are then applied locally and form the new > baseline.

> This constant transformation of operations turned out to have too many edge > cases where clients were found to not produce the same baseline (the "wrong" > papers above). When that happens, the clients will never converge on the > same result and break the fundamental assumption of collaboration.

And that's exactly right. It's fairly easy to have an OT system that is very vulnerable, because clients can cheaply generate change sets that are extremely computationally expensive on the server side. I've seen a system where a single mobile phone could, in a few seconds, lock up the synchronisation server for days.

<comment><USER13> But the article is arguing _in favor_ of OT, not CRDT. A couple examples of those edge cases would go a long way, the one given is not very helpful to make a point.

<comment><USER15> What's wrong with the one given? If my cursor moves because some other user makes some other text bold, that doesn't sound like a desirable experience?

<comment><USER13> Because it doesn't highlight a particularly relevant deficiency of the CRDT protocol. Preserving cursor position is not hard in that case. The post even mentions stronger downsides of OT, the example does not support the conclusion. Why is OT better?

<comment><USER15> Huh, the article gave me the impression that preserving the position was a crucial problem there.

As for the last question, I think the later posts will get to that.

<comment><USER12> Preserving the position of the cursor is a crucial feature for collab editors. However, he doesnt go into detail explaining why CRDTs make this feature impossible. Sure the CRDT route splits the text, but I fail to see why that makes cursor pos preservation impossible?

<comment><USER5> It's not impossible, particularly in cases where the model is fairly flat.

In complex models it is symptomatic of a larger issue with complexity in CRDTs; the post was already quite long and I didn't want to repeat any more of the research I'd linked to.

<comment><USER13> You mention that example as a turning point for choosing OT, confirming your research. But to an outsider it is not particularly convincing. Especially since you'd expect a CRDT implementation to use the rope/tombstone structure, applying the transform to that sequence of characters and not actually have to split a text node, which looks like a limitation of this particular implementation, or tight coupling between the data model and the DOM.

The post is a good introduction to OT and CRDT, but is very light on actual trade-offs and seems to end with a gut-feeling conclusion, when the title promised "trade-offs between".

<comment><USER5> It's hard to offer more detail than that in a blog post. I'm not going to repeat the research papers or write one of my own. The post is already so long and complex, covering so many surface details, I couldn't reasonably push it any further.

<comment><USER13> I'd suggest skipping right to the meat of the subject (pros/cons in this case), assuming some previous knowledge, if that's what the article proposes to share, and simply point readers to learning resources; it's not possible to start from scratch on every topic. The deeper the subject, the more glaring this problem becomes.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER16> > the prospect of peer-to-peer editing with end-to-end encryption is an > exciting one

Have you heard of CryptPad ? Not exactly peer-to-peer but has encryption so that the server sees nothing.

<comment><USER5> I haven't! This is what our server team is looking at as an option for encrypting our RTC traffic.

[https://tweetnacl.js.org/](https://tweetnacl.js.org/) [https://github.com/dchest/tweetnacl- js/wiki/Examples](https://github.com/dchest/tweetnacl-js/wiki/Examples)

</comment></comment><comment><USER17> this is a wonderful writeup! thank you!

I'm researching the same thing.

Any tutorial on OT implementation? Especially, I need to handle structured data, like json.

<comment><USER18> This article popped up on HN recently and is a great intro to CRDT implementation. It says OT is much more difficult.

[http://archagon.net/blog/2018/03/24/data-laced-with- history/](http://archagon.net/blog/2018/03/24/data-laced-with-history/)

<comment><USER5> That's included in my research links, yes :D

</comment></comment></comment><comment><USER19> The only thing I remember from the CKEditor post from last year was that it took "42 man-years" to implement: [https://news.ycombinator.com/item?id=18220020](https://news.ycombinator.com/item?id=18220020)

I wonder if it's better understood now and can cost less R&D time.

<comment><USER5> It is, as I'll cover in the second post ;)

</comment></comment><comment><USER20> w00h00, this is my area of expertise.

After 8 years of working on this, I have changed my thoughts:

\- The correct algorithm is not always the correct user experience.

\- End-to-end encryption is too important to not have.

\- Offline support is great, but it behaving consistently is more important than it behaving "intently".

\- Biggest pain points can most easily be solved at the editing layer, not data layer.

As a result, OT gets thrown out the door immediately.

I built the most popular CRDT powered database on the market ([https://github.com/amark/gun](https://github.com/amark/gun), 11K+ stars, 11M+ monthly installs), but have some harsh words for CRDT obsessed people:

CRDTs are great, but if you create an infinitely complex one to handle "every word editing operation" it'll actually result in an inferior user experience.

As such, for example, GUN supports lock-free concurrent operations on any depth of data in a graph, but keeping text/strings behavior atomic is way more important than having built-in automatic string merges.

Why? It is much simpler to build a correct text/string CRDT on top of a predictable, stable, graph CRDT that is understandable.

Another example is, in our blog editing tools, despite having spent years researching & implementing (+ others in our community) precise character-by- character CRDT resolution schemes, I found I personally had a much better offline & local first user experience with a predictable per-paragraph sync scheme.

This is a stupid simple approach, but what it means is that I as a user, can easily predict whats going to happen, so if I'm offline I know I should just copy a new paragraph and fiddle with things there, cause it isn't gonna get "auto delete regrammar merged".

Generally speaking, me and colleagues don't "fight" over the same paragraph, we're usually concurrently writing different "sections" at the same time, it is pretty rare to grammar fix their edit same paragraph as they're typing it - that is also just kinda, rude looking.

Anyways, finally, is that the majority of text styling and DOM edge cases can be handled by having a deterministic canonical DOM hierarchy that always gets applied at the editing layer, BEFORE any CRDT operations even occur.

So for instance, re-arrange the DOM tree such that <i> is always inside <u> inside <b>, or something like that.

We built this into a library called normalize, and it instantly eliminated so much complexity, especially at the CRDT level. Ping me if you want a demo of this library.

Finally, for everyone else, we also built an _INTERACTIVE CARTOON EXPLAINER_ of an extremely basic text CRDT to help others understand the more detailed concepts:

[https://gun.eco/explainers/school/class.html](https://gun.eco/explainers/school/class.html)

<comment><USER21> You are a charming and energized speaker and perhaps that is why Tim Draper thinks you a good investment as with others he has made. Acronyms like 'PTSD' and 'PARTY' in the project is likely good at attracting people who think they sound fun and do not question many details.

It is difficult to get brief clear details about how gun.js works. There are distracting or simple documents, discussions about high level ideas and tangentially-related topics. In some cases 'worse is better' yes but it sets a tone that the project is hiding internal problems of implementation or can not easy explain its own design.

The transparency of gun.js enterprise organizations also raises questions. Are people on your team related to you? Do you pay yourself and team and open source contributors?

<comment><USER20> Thank you!

They also like the math & science behind it, some investors do DD, some don't.

You're tone is pretty assuming, smug, and insulting.

It is running in production with millions of people, yes there are some hiccups, but surviving & we're improving it to scale even more.

I rebuild GUN from scratch in 30min on stage, that is how little/simple GUN is:

[https://gun.eco/docs/Porting-GUN](https://gun.eco/docs/Porting-GUN)

Do I pay myself? Lol. Yes. No, I do not pay OSS, but yes people contribute regardless, strangers help me, my kids help me, investors help me, family & friends help me.</comment></comment></comment>


Pigs recorded using tools - rising-sky https://www.nationalgeographic.com/animals/2019/10/first-tool-use-pigs-visayan-endangered/ <comment><AUTHOR> Finally this is proven. It is by no means surprising. Wild domestic pigs, which I know are a different species, are a plague in much of North America and Australia partially due to their intelligence. Half the North American pig problem is in Texas where an estimated 2-2.5 million pigs roam the country side. Because they are such a threat to the environment and their population is so out of control there is no limit on hunting them in either season or quantity.

Pigs are particularly challenging to control because of their intelligence and lack of predators. Because of their size, intelligence, and aggressiveness they have no natural predators in Texas. They are quick to learn of hunting traps and will either avoid or disarm them. A herd of pigs reduced in population by 70% can rebound within 2-3 years without continued management.

They tear up the land and are a serious threat to the natural ecology and food supply. Their damage to commercial agriculture is estimated at $50 million per year, but their damage to property and the environment is estimated at close to half a billion each year. Because of their high intelligence they are adapting their range from rural areas to suburbs and urban areas. Unlike coyotes, which have also adapted from rural to urban areas with great success, they are often not afraid of people are known to hurt people in attacks.

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

<comment><USER2> I found it interesting that many of these things you could also say about humans. Massive populations, no predators anymore, environmental damage, intelligence ...

<comment><USER3> There are a ton of cool similarities, including compatibility of tissues in transplants! Also according to cannibals we taste similar (hence 'long pig' as a term for human flesh). Smart, deeply interesting animals.

[https://www.mnn.com/earth-matters/animals/stories/pigs- and-h...](https://www.mnn.com/earth-matters/animals/stories/pigs-and-humans- more-closely-related-thought-according-genetic-analysis)

<comment><USER4> Reminds me of this:

[https://phys.org/news/2013-07-chimp-pig-hybrid- humans.html](https://phys.org/news/2013-07-chimp-pig-hybrid-humans.html)

</comment></comment></comment></comment><comment><USER5> A friend of mine is a farmer. He supplies all kinds of meat to butchers in the local area, except pig.

I wondered why, and he told me that after he had kids he decided pigs are about as intelligent as a 3 year old, and he simply couldn't bring himself to kill them anymore.

<comment><USER6> This is my personal view, but that is nonsense. I understand intelligence is not all these things, but 3 year olds can follow instructions, do pretty advanced problem solving, speak, do basic math, understand logical problems. I'm sure you can find some aspect where a pig and a 3yo are on the same "level", but as a general comparison, it absolutely fails.

<comment><USER7> I think it's impossible to compare human and animal intelligence because there's a "hard-coded" part to intelligence. I don't think being unable to understand human language says anything about the general intelligence of a non-human animal since humans are at least partially hard-wired to understand language.

That pretty much precludes any animal from ever being able to "follow instructions", "speak", "understand logical problems", etcetera. Even if they would have the general intelligence to do the things we want them to do, it's very difficult to encode that information in a way that they would understand.

</comment></comment></comment><comment><USER8> For those stymied by the ambiguous parse in the title: Pigs using tools, recorded using cameras.

<comment><USER9> I initially read it as we are using (even better) tools to record pigs.

This is in part because an article about pig facial recognition frontpaged on HN before: [https://news.ycombinator.com/item?id=19277846](https://news.ycombinator.com/item?id=19277846)

</comment></comment><comment><USER4> I listened to a podcast today where they guy being interviewed said something to the effect of:

"We like to say that humans are the tool-using animal, but we've found that lots of animals use tools. What I think is the actual advantage of humans is that we are the mimicking animal. We see what works for other animals and find ways to do the same thing without having to evolve those traits"

I thought that was a really interesting way of thinking about it.

<comment><USER10> There is no single thing having or not having which distinguishes people from other animals, the difference is in the degree at which we can use tools/mimic/create mental models etc.

<comment><USER11> Is your claim there exists no uniquely human trait as compared to other animals?

That's interesting I feel like there is but I'm not so certain. How about the Sapiens take on gossip?

<comment><USER10> There are many traits that become available only when some other trait gets to a high enough value.

For instance gossip requires speech or some other method of communication so only very few species get a chance to it (maybe dolphins? but not likely).

There are traits that are definitely unique, like building rockets, but they are usually complex things.

</comment></comment></comment></comment><comment><USER12> >One of the Visayan warty pigs—a critically endangered species

It's a rare species, what they saw might be genetically coded behaviour, previously unseen because not much behavorial data is available.

<comment><USER13> What makes you believe this is a more likely explanation than imitation of what they saw their peers doing?

<comment><USER14> Electric fences haven't existed long enough for evolution to have encoded genetic responses to them.

</comment></comment></comment><comment><USER15> There's a great book called "Lesser Beasts" that dives in to the cultural history of pigs (mostly in Western societies).

<comment><USER4> Seconded. This is a great book.

</comment></comment><comment><USER16> I wonder if future species will look back on humanity like we look back on the dinosaurs. Interesting to consider... there's also probably a short story in there.

<comment><USER17> There is an interesting theory that humans are descended from pig and primate hybrids. This may sound bizarre, but there is evidence of pig primate hybrids in the wild and so-called humanzees have been bred. This theory is also one of the few alternatives to the aquatic ape hypothesis that can explain why humans have skin that is more common for aquatic mammals.

<comment><USER18> If true, there would be genetic evidence of this. I've never heard of such a thing. It sounds ridiculous.

Do you have a source?

<comment><USER17> I'm having trouble finding the links as the recent humanzee hype currently dominates everything. ... Wait, here is the main page where this is discussed in detail with references: [http://www.macroevolution.net/human- origins.html](http://www.macroevolution.net/human-origins.html)

However, it is critical to understand that with hybrids there may be little if any genetic evidence remaining or it may be simply too scrambled to understand. Hybrids from a genetic point of view are complicated and do not necessarily leave a well defined record in their genetics.

<comment><USER19> This somehow hits most of my alarms for "bad science", hah.

</comment></comment></comment></comment></comment><comment><USER20> Is the next revolution upon us?[https://ebooks.adelaide.edu.au/o/orwell/george/o79a/index.ht...](https://ebooks.adelaide.edu.au/o/orwell/george/o79a/index.html)

</comment><comment><USER21> Are they ramen yet? Or still djur or varelse?

</comment><comment><USER22> > "It brings us closer to animals," she says

It is so human to act like we are not also animals.

</comment><comment><USER23> At least someone is making progress.

</comment><comment><USER24> The video is missing the Also Sprach Zarathustra theme.

<comment><USER25> My thought exactly. Someone should mash it up

</comment></comment><comment><USER26> Obligatory "Cows with guns" comment

</comment><comment><USER27> Intelligent or not, with tools or not, Garlic butter pork chops are my favourite dish.

<comment><USER28> I'll probably get downvoted to hell, but hey... let's have this little experiment:

Pigs when they are slaughtered die a horrible death [0]. Right before you have your pork chops, or even during, could you watch a video of a pig being killed and slaughtered (with sound on) and would you still have the same enjoyment - knowing where it came from?

You might not care about animals, so what about the people working in slaughterhouses. Could you work in an environment where you had to kill & slaughter animals all day, hearing their screams, smelling the blood etc. What do you think this environment does to ones psyche? Slaughterhouse workers experience PTSD.

Now you might not care about these workers. How about our biosphere? Several studies have shown the immense strain and damage large scale animal agriculture has on our biosphere [1]

Hey look, we all (or most) love our BBQs or pork chops or whatever. But when approaching this with a critical / logical mind - do we really think that all the damage our craving for culinary pleasures warrants the damage it creates on a human, environmental and animal level?

Ethan Brown provides some alternatives that are worth exploring: [https://www.ideacity.ca/video/ethan-brown-beyond- meat/](https://www.ideacity.ca/video/ethan-brown-beyond-meat/)

[0] This if for the UK, but I imagine it's the same for anywhere else [https://www.viva.org.uk/what-we-do/slaughter/slaughter- farme...](https://www.viva.org.uk/what-we-do/slaughter/slaughter-farmed- animals-uk)

[1] [http://www.ox.ac.uk/news/2018-06-01-new-estimates- environmen...](http://www.ox.ac.uk/news/2018-06-01-new-estimates- environmental-cost-food) \- The researcher himself of this study gave up meat & dairy completely after he completed this study/.

PS. If you raise or hunt your own then ignore the stuff above (which is mostly about factory farmed carrion)</comment></comment>


Cambridge Analytica and SCL Elections Commence Insolvency Proceedings - <AUTHOR> https://ca-commercial.com/news/cambridge-analytica-and-scl-elections-commence-insolvency-proceedings-and-release-results-3 <comment><USER2> Cambridge Analytica was founded by Robert Mercer, a hedge fund billionaire. If it was at all worth keeping CA going as a going concern, they would, but the brand is toast. They're not even worth the association for the tinpot dictators that kept Bell Pottinger going.

The CA brand was always the least valuable part of this equation anyway and is essentially collateral damage.

Mercer will find other ways to funnel his billions into influencing political outcomes and the wheel will keep on turning.

</comment><comment><USER3> Don't let the door hit you on the way out...

Now let's guess the name of the next semi-anonymous holding company and it's wholly-owned subsidiary with identical board members and customers.</comment>


Justin Beiber Linux - Beibian - <AUTHOR> http://biebian.sourceforge.net/

<comment><USER2> What's with the banner "Stop being gay..."?

Someone is really lacking a little maturity.

</comment><comment><AUTHOR> That's enough internet for today. I am going to rest in my coffin.</comment>


Show HN: Concise Software Reviews - <AUTHOR> https://siftery.com/reviews <comment><AUTHOR> Excited to share our new software reviews product with the HN community and get your feedback. Over 2k individuals, including many YC founders, investors, and other notable folk, have left a review as well - please do add your voice if you like what you see.

At Siftery, we've taken a data first approach to software discovery. We're now tracking 41k products and finding new ones every day, so reviews alone don't cut it. However, we do think reviews can add critical context in the last mile, and we've structured our reviews feature around that.

Alex Wilhelm at Crunchbase made an interesting observation about our approach - "Siftery, however, is foregoing appending AI technology onto human-built recommendations. Instead, it is sticking humans onto AI-built recommendations."

([https://news.crunchbase.com/news/ai-focused- recommendation-t...](https://news.crunchbase.com/news/ai-focused- recommendation-tool-adds-human-touch/))</comment>


Ajit Pai admits Russia interfered in net neutrality process amid lawsuit - <AUTHOR> https://www.dailydot.com/layer8/net-neutrality-comments-lawsuit/ <comment><USER2> More concerning is the legal interference by corporations.

Yes Russia interfering with everything is an issue that needs to be resolved, but afaict the current administration will favour corporations over people every time so I doubt it was even necessary in this case. Pai had stated repeatedly that this he had every intention of doing whatever his former employers wanted.

</comment><comment><USER3> Pot meet kettle.</comment>


Land Life Company: reforest the world's 2B hectares of degraded land - <AUTHOR> https://landlifecompany.com/ <comment><AUTHOR> OP here, this is not my startup. I simply met a co-founder while he was educating me about some issues the world has other than global warming (see all the issues we discussed here [1]). If you have questions about reforestation, I can relay it to him.

[1] [https://news.ycombinator.com/item?id=20419288](https://news.ycombinator.com/item?id=20419288)</comment>


Downtime is an effortless way to improve your memory (2018) - how-about-this https://www.bbc.com/future/article/20180208-an-effortless-way-to-strengthen-your-memory <comment><USER2> I recently started reading "Deep Work" by Cal Newport and this is one of the points highlighted in the book. I'd recommend it (even though I haven't finished it yet).

I'm trying to be mindful during my day and I walk to and from work every day which is around 9km total. The beneficial effects (on attention, memory etc.) are twofold. In the morning it wakes me up and by the time I'm in the office I'm ready to dive into my work straight away. I see a lot of people that arrive drowsy or sleepy in the office and they need at least an hour to actually start doing anything meaningful. In the evening I use the walk as a "shutdown" ritual after which I don't think about work anymore. I also take a 30-40 minute walk during lunch time. It's a good point during midday to relax a little bit and be refreshed for the second half of the day. Overall for the day I walk around 11-12km. Health benefits of walking aside I really see how it's making me more focused and I do better work because of it.

<comment><USER3> I started that book but never finished it. I got about half way thru and quit b/c I never found anything that revolutionary. A lot of it seemed to be rehashing studies that other people did.

The gist of it seemed to be: if you need to do work that is mentally challenging, block off large chunks of time to do that work b/c interruptions are more disruptive that you think they are.

It would make a good blog post and I'm sure there are hundreds of them on the topic but I don't get why it needs to be a book other than he convinced someone to publish it for him.

<comment><USER2> I see your point and I agree - the book is not groundbreaking or revolutionary. Me walking to work is something I've done for a couple of years and not an idea I discovered because of the book.

With that said I think it's a well written and researched piece. I'll finish it because even though I'm already using some of the techniques provided inside, it's good to reinforce the things you know but it's also good to see things from another perspective. Like for example I've never really given thought to the monastic or bi-modal style of deep work although they are reality for a lot of people. Small things like that are valuable (at least to me).

</comment></comment></comment><comment><USER4> It's funny how this seems to be a form of meditation. It seems like an incredibly useful tool for the modern age.

I wonder sometimes just how the brain manages to deal with the influx of all these new, abstract ideas on a daily basis. Doesn't seem like there's much time to digest it all.

But if this works, if it really is an effective tool for learning, I could see it as a good way of bringing clarity into your life as your brain synthesizes patterns and makes sense of what it's been working on for the past few hours.

The indecisiveness that people often report feeling during the day may just be a lack of time spent consolidating all the information you've acquired up to that point.

Maybe it's a sign you need to take a step back and do absolutely nothing.

<comment><USER5> That's also the one interesting argument against podcasts. That they take the last remaining moments of doing nothing (vacuuming, doing the dishes, commuting,...)

Especially interesting since one of the most popular podcasts is also run by a very reflected meditation proponent (Sam Harris).

<comment><USER6> It's funny you mention this, I've been thinking about this lately. I make a 1.1 hour sporty bike ride every day and listen to podcasts while doing so, but I'm often asking myself if I should just not do that and instead listen to myself.

The same goes for falling asleep, where I used to listen to podcasts but they got replaced by YouTube videos which I just listen to. I remember the time when I dealt with my thoughts before falling asleep. That was maybe 10 years ago.

And kids nowadays will probably never get to know that feeling.

<comment><USER7> I've never been able to "deal with my thoughts" and also get sleep so since I was able to read I consume fiction before bed to wipe the mental slate clean. Before it was books, now mostly audiobooks or occasionally music so I can keep it dark for my wife. If I can't do this its usually 1-3 hrs of brain processing worries from the day, next day etc. There must be others like me who can't just turn off instantly.

<comment><USER8> FWIW, I'm very similar. I find that the light pollution of a fully dimmed screen in night mode, reading light text on a black background, is negligible. (FWIW I mostly read in Pocket.) That amount of light doesn't keep me awake, let alone my wife. I think headphones would disturb me much more.

</comment></comment></comment></comment></comment><comment><USER9> "We don't give them any specific instructions with regards to what they should or shouldn't do while resting," Dewar says. "But questionnaires completed at the end of our experiments suggest that most people simply let their minds wander In one study, for instance, participants were asked to imagine a past or future event during their break, which appeared to reduce their later recall of the newly learnt material. So it may be safest to avoid any concerted mental effort during our down time. "

Astounding. I assumed that the high performing test subjects would have used some sort of special memorization technique, but in fact doing and thinking nothing actually wins out.

<comment><USER10> It is possible none of the subjects were familiar with memory techniques. Though I expect the same results would hold: after performing the technique, take a break so the brain can transfer the encoding into long term storage.

</comment></comment><comment><USER11> Completely disagree. Every time my servers are offline it stresses me out, can't sleep, customers yelling at me.

There's nothing worse than downtime! Five nines baby!

<comment><USER12> Based on the downvotes some people clearly don't have a sense of humour.. but this made me chuckle!

<comment><USER13> I made a sardonic reply to someone else's joke reply the other day and it was fun to watch it bounce around all day between +4 and -3 every couple of hours. Everything in moderation.

</comment></comment></comment><comment><USER14> After some long nights either performing work tasks or going to local meetups I try to take a nap on the train when I commute back to work. Sometimes during my breaks I do some breathing exercises using my Apple Watch.

But, now that I am using meal replacements the actual time that I take to eat lunch and or breakfast goes from 15 minutes to nearly 1-5 minutes which I spend preparing the meal replacement and ingesting it. Since I now have 25 minutes left and I typically eat at around 11am when most people eat around 1pm I have actually started either meditating or doing nothing.

Going on for other ergonomics that should be done during work and or mental tasks remember to check that your workspace is paired with a good chair and that your monitor is at eye level and your mouse and keyboard or other input devices don't require you to reach.

Another thing that is handy is rewarding yourself for a task not necessarily with food but with some form of exercise. After I complete a task using a computer I typically take a victory lap. This seems to actually cause positive reinforcement by rewarding myself with that victory lap. I know that dog trainers will use a toy instead of food to reward their dogs. It also will help your ergonomics and could help with back problems. I find that walking and or doing planking removes back pain for me (I'm 31).

<comment><USER15> I honestly can't tell whether this is satire.

<comment><USER14> This isn't satire... :(

</comment></comment></comment><comment><USER16> I find more and better solutions to problems without actively thinking about them in a 1 hour yoga class than I can actively trying to solve them all day at work.

It's gotten to the point that I need to bring pen and paper with me into practice.

<comment><USER17> I've said to myself that I do my best work in the bathroom. Whether sitting on the toilet (sorry) or standing in the shower, it seems that enforced brain idle time can be more productive than "trying".

I wonder if there's also a relation to the 'doorway = change of context' in there somewhere? It literally gets you thinking outside the box.

<comment><USER18> For me it's the shower, running or cycling. Performing some kind of physical task that is largely done on 'auto-pilot' in physical space. A more complex task, such as playing soccer, which requires that I exert physical _and_ mental effort won't produce these results.

<comment><USER17> Off-topic, even maybe the inverse, one of the things I like about 'more complex' tasks like playing sports, is the single-mindedness that goes with it. It quietens the rest of the world for a time; nothing matters but the immediate, and it takes up 100% of processing to do it justice.

<comment><USER19> >is the single-mindedness that goes with it. It quietens the rest of the world for a time; nothing matters but the immediate, and it takes up 100% of processing to do it justice

This right here is the essence of "Meditation". No gimmicks, No bullshit, nothing.

Stages from the Yoga-Sutras of Patanjali - "Pratyahara, Dharana, Dhyana, Samadhi".

You can do this instant to instant on any current activity you are engaged in (aka "Mindfulness") or for extended periods of time on literally any one objective/activity.

</comment></comment></comment></comment></comment><comment><USER20> My best ideas - the ones that lead to actual publishable breakthroughs - <AUTHOR> seem to happen in the shower. Some combination of enforced downtime, warmth, relaxation and white noise from the water seems especially effective.

</comment><comment><USER21> After a demanding session of piano practice I often have the natural desire to just sit and look out of the window and think and do nothing for approx. 10 min.

</comment><comment><USER22> As I grow older, I can feel it when I learn something new. That's usually my cue to stare into nothingness and just think about what I just learned before letting it just get absorbed.

</comment><comment><USER23> I'd really like to see controlled comparisons of different forms of cognitive downtime--daydreaming, meditation, gaming, sports, yoga--measuring for these effects.

</comment><comment><USER24> When I read this title I thought it's about optimizing servers by rebooting them more often so they get rid of leaked memory. Also a form of medition I guess.

</comment><comment><USER25> Maybe day dreaming has a similar memory consolidation effect to dreaming?

</comment><comment><USER26> Using this to excuse my 6+ hour Cities Skylines binge on a Sunday.

<comment><USER27> Have there been any studies on the effects of stress by playing computer games? Maybe it's the type of games I play, but I often find I feel more stressed after playing computer games.

<comment><USER28> Yes, it's basically congruent with what the BBC article mentions. Being immersed into a video game leads to less memory formation of what happened beforehand. This can be used in trauma prevention etc.: [https://www.nature.com/articles/mp201723](https://www.nature.com/articles/mp201723)

</comment></comment></comment><comment><USER29> Silicon Valley is backwards in this regard. There's this mentality of always being busy; I can't help but feel it is a ruse for extroverts to flash their social proof at each other. In Silicon Valley, people always want to seem busier than they actually are, and people who are not busy are seen as inferior.

The next time someone asks if you're working on a side project, say "no". Carefully notice how their interest quickly turns into contempt. Similarly, people don't want to hear that you're "taking it easy" or "doing nothing" this weekend. That's literally all I tell people at work, and it just turns people off.

<comment><USER30> So what do you do on the weekends?

<comment><USER29> I'm taking it easy this weekend.

<comment><USER30> But what does "taking it easy" mean?

</comment></comment></comment></comment><comment><USER31> Is this title really _" Resting is a good way to rest"_ ?

> _It seems to benefit young and old people alike_

Oh wow this is science.

</comment><comment><USER32> "Effortless"

I envy David Robson at the BBC, for whom it is apparently effortless to take time away. Because it certainly isn't without effort for me to not accidentally find myself back at my desk, late in the evening, working on just one more thing.

<comment><USER33> Doing nothing is literally effortless.</comment></comment>


Audio Adversarial Examples - <AUTHOR> http://nicholas.carlini.com/code/audio_adversarial_examples/ <comment><USER2> Now I understand why Hacker News allows only text comments. @u82%@582)&^^%</comment>


Oculus Quest becomes first VR set with native hand tracking - <AUTHOR> https://arstechnica.com/gaming/2019/12/oculus-quest-keeps-getting-better-adds-vr-hand-tracking-this-week/ <comment><AUTHOR> _We 've seen hand-tracking experiments on other VR headsets, but these have largely come in the form of proprietary add-ons like Leap Motion, which require additional hardware and a bolted-on rendering pipeline._

Possible compromise: Why not a comfortable glove to enhance tracking?</comment>


In Surveillance Debate, White House Turns Its Focus to Silicon Valley  - <AUTHOR> http://www.nytimes.com/2014/05/03/us/politics/white-house-shifts-surveillance-debate-to-private-sector.html?hp

<comment><USER2> I'm sorry but different standards apply to government than to private industry. It is one thing for industry to monitor customers. It is a whole different ballgame when the government monitors its citizens.

Industry cannot legally arrest people. Government can. Industry cannot forcibly draft men over the age of 18. Government can. Industry cannot force you to pay income tax. Government can. A far tougher standard must be applied to government because only government is allowed to get away with certain things.

<comment><USER3> Are you saying that the government should have harsher controls than private industry, or are you saying that privacy intrusion is okay as long as it's not the government doing it?

<comment><USER4> I think he's pointing out that privacy violations by private industry carry far less risk compared to those by the government, because private industry cannot legally deprive me of life, liberty, or property.

Because the government has the right of violent force over you, it must be far more closely controlled to ensure that opportunity for abuse of that right is minimized.

To say that privacy violations by the government are bad is not to say that such violations by private entities are good, but they are certainly far less costly.

</comment></comment></comment><comment><USER5> Industry shall now be punished for bringing to light the abuses of Government.</comment>


Show HN: StartupSort, a new job search engine for smart engineers - <AUTHOR> https://www.startupsort.com <comment><USER2> I used this site, and I have to say, I was impressed. I would have to say that the amount of startup data and jobs they have compiled is unparalleled except by angel.co, but StartupSort has a MUCH better UI that makes it easier to actually find jobs that are of interest and in the right region.

</comment><comment><USER3> Whoa. This is _amazing_. I love how you guys estimated company growth. This is my default job search tool now! I didn't even know a lot of these companies were hiring, because they don't post it anywhere.

If I had one suggestion, it would be figuring out which companies are desperately hiring (paying for lots of job ads on various sites) vs the ones that are passively hiring. Maybe even check how long the jobs have been open.

</comment><comment><USER4> Seems cool. I just don't understand why most HR sites do not accept "online resume" as an option. I just want to provide a URL to my online resume instead of uploading a PDF file.

Specially in the case of a website focused on software jobs. I am sure I am not the only "software engineer" who maintains an online resume written in HTML and would like to reuse it accross multiple similar sites.

There is a "Paste" option, but pasting a URL seems... dirty.</comment>


Show HN: CodeJunkers – HTML5 Loot-Based Programming Game - <AUTHOR> https://codejunkers.com/ <comment><AUTHOR> Hey everyone,

This is a project I've worked on haphazardly over the past year and a half, only going full steam during the past two or so months. A loot-based programming 3D game in the browser. The basic premise: beat up enemies, gather loot, upgrade your ship with new abilities (and use methods to control them). Currently it is a series of levels with a progression curve like .../¯¯¯ but I wanted to demonstrate some of the things that are possible.

Warning, it's a bit buggy overall, and, Firefox has some CSS issues. Guess that's what I get for rolling my own HTML/CSS solution! But I would appreciate feedback. Does the prospect of LOOT excite you? Do you want LOOT in the browser? Is the programming aspect interesting or just a gimmick?

Notable 3rd-party tech/libraries:

\- Three.js (makes WebGL so easy)

\- Matter.js (good 2D collision library)

\- Esper.js (JavaScript interprer in JavaScript)

New tech created:

\- CodeJunkers ECS game engine (hot-swap components during runtime)

Things I wish I didn't skimp on:

\- Building tools. (It's no fun hand-writing JSON for 15 levels.)

\- Skipping a real HTML/JavaScript framework. (My "views" are very hacky and have/are causing me headache.)

Plans for the future:

\- Infinite mode.

\- PvP/Coop ladders.

\- Refactor the "views" using a real HTML/JavaScript framework.

\- Convert to TypeScript.

If you have any questions about the project, I'll be glad to answer those here.

If anyone needs a junior dev or game designer in the Bay area, hit me up: firstname.lastname@example.com :D

</comment><comment><USER2> Nice game! Few comments so far: \- mobile view? \- intro image with galaxy is too heavy \- not clear, that to equip the Simple Grabber, I need to double- click on it, the first module I d&dpped. With SG it doesnt' works. I personally think, you're too humble to label yourself as junior .. =)</comment>


A new project stashes carbon dioxide in the form of minerals - <AUTHOR> http://www.slate.com/articles/health_and_science/new_scientist/2014/07/carbfix_co2_storage_project_mineralize_carbon_dioxide_into_carbonates_to.html <comment><USER2> Does anyone know any more about this or can someone point to a publication on the process?

<comment><USER3> [http://www.sciencedirect.com/science/article/pii/S1876610209...](http://www.sciencedirect.com/science/article/pii/S1876610209008030)

[http://www.geothermal- energy.org/pdf/IGAstandard/WGC/2010/23...](http://www.geothermal- energy.org/pdf/IGAstandard/WGC/2010/2308.pdf)

</comment></comment><comment><USER4> It's been done before. It's called coal. But then at the end of the Carboniferous Era fungi learned how to break down lignin. This ended the trapping of vast amounts of atmospheric carbon in layers of non-rotting plant matter that would get buried over time.

All that carbon in coal seams used to be in the air. Not many people know the atmospheric CO2 level during most of Earth's history was well over 1000 ppm, and commonly around 3000 ppm.

[http://www.geocraft.com/WVFossils/Carboniferous_climate.html](http://www.geocraft.com/WVFossils/Carboniferous_climate.html)

Interesting contradiction isn't it? Our slowly rising atmospheric CO2 level today is just reaching 400 ppm, and this is claimed by some to be disastrous. Yet it has usually been far higher, and Earth thrived in those times.

<comment><USER5> > Interesting contradiction isn't it? Our slowly rising atmospheric CO2 level > today is just reaching 400 ppm, and this is claimed by some to be > disastrous.

There is no contradiction other than with the reframing that global warming deniers use to communicate with their less educated members. Anybody with 2 working neurons realises that fit for life and fit for human are 2 distinct concept, otherwise they can jump in the thriving ocean and live like a fish.

In general actual debate are around either if global warming happens or not ( which is pretty much settled ), if CO2 is the main factor or not ( also pretty much settled, although some other gas are investigated ), the actual effect on human ( pretty much settled that it is going to cause grief, the debate is around knowing if that affect us in the first world yes or no and the timescale )

The bitter debates (the actual contradictions) are around what to do without destroying your economy, not sacrifying your economy for a problem that will not really affect you and position your economy to profit from it.

<comment><USER6> It is telling that your response is laced with pejoratives and begging the question. This seems like a common pattern. If it weren't for the fact that the actions that may be taken, using this issue as justification, could destroy economies and greatly reduce quality of life for billions of people, it would be comical that you then go on to talk about "actual debate."

</comment></comment></comment><comment><USER7> Problem: too much carbon dioxide.

Solution: stash it in minerals.

Problem: its expensive to go to space.

Solution: use the minerals to build a space elevator (or at least a mountain upon which to build it..)

Problems?

<comment><USER8> Find a way to bring back some O2 which was accidentally stashed during this process as CO2 in rocks and H2O?</comment></comment>


HP motherboard with unlisted, etchings-removed integrated wifi - <AUTHOR> https://plus.google.com/103470457057356043365/posts/VkHmpcUf1gV <comment><AUTHOR> Apologies in advance for title liberties, but this is an otherwise untitled G+ posting.

A newly-purchased, over-the-counter HP PCI motherboard is found to have a WiFi chipset, with etchings removed, that fails to appear under Windows Device Manager, and is not listed in any of the hardware manuals or manifests.</comment>


How Apple could have avoided much of the controversy - <AUTHOR> https://chuqui.com/2016/10/how-apple-could-have-avoided-much-of-the-controversy/ <comment><USER2> As discussed earlier: [https://news.ycombinator.com/item?id=12842270](https://news.ycombinator.com/item?id=12842270)

</comment><comment><USER3> After my 2015 retina MBP was stolen earlier this year, I've been patiently waiting for this year's MBP release to upgrade. But after seeing what Apple released last week, I'm gonna pass. I'm fully switching to Linux now (been using it for some months now while waiting) and I'll be picking up some other laptop.

At the minimum, I expected Apple to deliver a laptop with this year's CPU and an nVidia GPU (CUDA compatibility is what I need) that can do VR. As it stands now, Apple under-delivered on both fronts. Not only that, but the new MacBook Pro also has a much worse keyboard than last year's rMBP. If I wanted to type on glass, I'd pick an iPad or type on my phone. Using new MBP keyboard for more than few hours will hurt after few hours.

To add insult to injury, Apple's pick of a weak AMD GPU that doesn't meet even the lowest VR requirements was the final nail in the coffin. Why they even included a discrete GPU when the one they picked is so damn useless is beyond me. It's sad that none of the Macs meet the lowest requirements for VR. Not even their desktops.

Then comes the cost. New MBP is incredibly expensive. Not only is the MBP way more expensive than previous models, but all the ports that I use will cost me an extra $300 in damn dongles. That's totally insane and I can't justify it because I'm a student.

Apple's quest for thinness over all else has completely destroyed the Macintosh. They don't seem to care how a laptop performs and what people use them for and all they care is how thin something is and how little ports it has. It's now pure form over function.

After SJ died, Apple's now being lead by people who look at Apple's products through an Excel sheet. I bet they view removal of ports and introduction of over a dozen expensive dongles as a way to boost their profits as well.

<comment><USER4> out of curioity, which laptop did you get to run Linux?

<comment><USER3> Well, it's not a laptop. I picked up a used i5 based desktop PC with 16GB of RAM and an nVidia 1060 card for $450. That was my budget. I was saving the money and planning on buying a new MBP. Now I have no idea what laptop to get. I might as well pick up the cheapest used ThinkPad for $250 since I have a fairly decent desktop.

I'm into graphics now and Macs seems to be useless for serious graphics work given the sad state of GPUs and drivers for macOS.

<comment><USER4> Understood! I'm desparately needing nvidia GPU on laptop for some on the go deep learning works...</comment></comment></comment></comment>


A worm exploiting OpenSSL's SSLv2 code (2002) - <AUTHOR> https://tech.slashdot.org/story/02/09/25/1210247/new-linux-worm-found-in-the-wild <comment><AUTHOR> Despite this news, browsers was not able to disable SSLv2 until 2006.</comment>