A hands-on introduction to static code analysis - <AUTHOR> https://deepsource.io/blog/introduction-static-code-analysis/ <comment><USER2> It's good to see discussions of static analysis, but I often feel that these blog posts do a disservice to the techniques. The post leads by mentioning applications like bugfinding and security vuln detection but the examples here are barely above local syntactic checks. This is the common scenario in the majority of blog posts I see about static analysis, probably because it is just much easier to put together a quick write up on AST-linting. Heck, this article has a diagram that directly states that an AST is the input to a static analysis module, but that is true only for some kinds of things!

AST level analysis is certainly useful. Everybody should be using some sort of style checker. But AST pattern matching is a _completely_ different technique from the stuff used to do bugfinding that I worry that these blog posts will give the wrong impression about what static analysis can do and what it can't do.

I'd love to see blog posts about interprocedural pointer analysis, for example.

<comment><USER3> Article author here. Agree that the post merely touches the surface for static analysis -- because it was aimed towards an audience looking for an introduction to static analysis. The scope for the examples in this post had to be limited for this reason.

Inter-procedural pointer analysis -- Yes, a lot more trickier than these, but definitely more juicier. Will try to write a post on it in the coming weeks.

<comment><USER2> I think limiting the scope is fine in general. But one small suggestion would be to make it more clear that this is just one very simple technique. This does not come across at all in the blog post. The diagram you show, for example, seems to state that this is just how static analyses work - they are given ASTs to work with. Or at the very least include some examples of semantic properties. It seems incongruent when you describe static analysis as understanding the behavior of the program without running it and then use examples that are about syntactic style violations.

</comment></comment></comment><comment><USER4> The kinds of analyses mentioned here are typically grouped under "linting"–more advanced static analysis tools will typically do things like dataflow analysis.

<comment><USER5> Any beginner friendly articles on more advanced analysis that you'd recommend?

<comment><USER6> [https://en.wikipedia.org/wiki/Static_single_assignment_form](https://en.wikipedia.org/wiki/Static_single_assignment_form)

<comment><USER2> While computing phis for SSA does require dataflow analysis, SSA itself is not tremendously useful. The natural follow up to this would be "so what?" Something like live variable analysis is probably a much better first introduction to dataflow analysis since its application is much more obvious.

SSA is also not even universal among IRs for static analysis at this point. Heap-SSA is growing in popularity for complex dataflow problems involving fields.

</comment></comment></comment></comment><comment><USER7> Going to drop a toplevel comment and say while this is interesting (sincerely!) if people are interested in deeper tools/techniques the book Practical Binary Analysis is excellent, it ends in taint checking, symbolic excution techniques and uses Pin. [https://practicalbinaryanalysis.com/](https://practicalbinaryanalysis.com/)

Also worth checking out is BAP, the Binary Analysis Platform, which is the successor project to Bit Blaze, and is one of the most fascinating binary analysis frameworks out there for my money. It was the only one of the darpa CGC entries that ran on real binaries, not the much less complicated ones developed specifically for the challenge.

[https://github.com/BinaryAnalysisPlatform/bap](https://github.com/BinaryAnalysisPlatform/bap)

<comment><USER4> I'm unsure of what you mean: while I did not participate in CGC personally IIRC they used a custom platform that required teams to retool for. How would an entry that runs "on real binaries" be useful for this situation?

<comment><USER7> because the test binaries they used were not really close enough to reality to test finding real vulnerabilities. and BAP can, which, if you want to learn static binary analysis, seems useful

</comment></comment></comment><comment><USER8> Slightly tangential to what the article is about, but at least in the C/C++ world, the most important change to make static analysis popular for "the rest of us" was probably Xcode's decision to integrate clang analyzer right into the Xcode UI under a menu item (Xcode doesn't do many things right, but this is definitely one of the very good features).

This way, analyzing the code is a simple "button press" and works out of the box on every Xcode project.

Soon after, Microsoft followed suit in Visual Studio (even though in my experience, the MS analyzer doesn't catch quite as many things as the clang analyzer).

Before that, static analyzers were those no doubt useful but obscure "magic tools" which were very hard to integrate into an existing build process.

Even the most useful tool will be ignored when it is hard to use.

<comment><USER4> Somewhat annoyingly, the static analyzer that ships with Xcode doesn't seem to be packaged separately as in the command line tools…

<comment><USER8> Hmm, command-line clang accepts a --analyze option here ("Apple clang version 11.0.0"), and this seems to give additional output over the regular warnings. I'm not sure if that's the same thing as the analyzer integrated into Xcode, but some sort of static analyzer seems to be there.

<comment><USER4> Oh, I will have to try that. Thanks for sharing!

</comment></comment></comment></comment><comment><USER9> Thanks for this article, dolftax! I followed all the examples on my machine with no problem, and I learned some new stuff.

I have a question: how difficult is it to implement the ast? It seems like that the bulk of the work for this static code analysis.

<comment><USER3> "Crafting Interpreters" by by Bob Nystrom ([https://craftinginterpreters.com](https://craftinginterpreters.com)). Although the book falls short in covering static analysis (obviously), implementation of ast is covered in detail.

</comment></comment><comment><USER10> For "Detecting unused imports", why not record the line numbers on the first pass as well? Then we don't need to traverse the tree again</comment>


0x40 Assembly Riddles - <AUTHOR> http://xchg.xorpd.net <comment><USER2> [http://www.xorpd.net/pages/xchg_rax/snip_1e.html](http://www.xorpd.net/pages/xchg_rax/snip_1e.html)

This is a classic.

Also related: [http://www.df.lth.se/~john_e/gems.html](http://www.df.lth.se/~john_e/gems.html)

</comment><comment><USER3> At first I thought the book was trolling me, but then I sat down and worked through a few of the pages on paper and realized that there were interesting tricks behind them.

<comment><USER4> Agreed. The second snippet ([http://www.xorpd.net/pages/xchg_rax/snip_01.html](http://www.xorpd.net/pages/xchg_rax/snip_01.html)) is relatively simple to understand and is now my favorite two opcode program.

<comment><USER5> Is this the Fibonacci sequence?

EDIT: For anyone curious, being rax and rdx the starting terms, the rcx-th term is found in rax at the end of the loop.

<comment><USER4> Yup. The xadd opcode adds the two registers together and swaps them so that the previous element is always in the same register.

</comment></comment></comment></comment><comment><USER6> lea rbx,[0]

That is RIP relative, so it will be the address of the next instruction.

inc ax inc cx inc dx inc bx inc si inc di inc bp dec

Those are 40-4F. They are now REX prefixes.

48 is a 64-bit size prefix 40 is for low byte of si or low byte of di. 41 is register one taken from r8-r15 instead of r0-r7. 42 is index register from r8-r15 44 is 2nd register from r8-r15

</comment><comment></comment><comment></comment><comment>

I wrote this quiz.

64-Bit Assembly Quiz

1) In 64-bit mode, how many bytes are always pushed?

            PUSH    12
            PUSH    EAX

2) What happens to the upper 32-bits?

            XOR     EAX,EAX
            MOV     EAX,0x12345678
            MOV     EAX,0x80000000

3) How do you set FS or GS values?

4) If FS points to current task record, what's wrong with this instruction?

            MOV     RAX,U64 FS:[TSS_SOME_MEMBER]

5) Which instruction takes more bytes?

            MOV     RAX,U64 [R8]
            MOV     RAX,U64 [R13]

6) Are these the same number of bytes?

            MOV     RAX,1234
            MOV     R8,1234
            MOV     EAX,1234

7) True or False

      a) You can access the lowest byte of RAX.

      b) You can access the lowest byte of ESI.

      c) You can access the second-to-lowest byte of RAX.

      d) You can access the second-to-lowest byte of ESI.

8) How do you call a subroutine at 0x10,0000,0000 from code at 0x00,0010,0000?

9) How much faster is a REL32 call instruction compared to a software interrupt or SYSCALL?

10) How long does an IN or OUT instruction take on a 1GHz machine and on a 3GHz machine?

11) How do you push all 16 regs?

12) Should you put the regs in a TSS?

13) You can have 4K or 4Meg pages in 32-bit mode. You can have 4K or what size pages in 64-bit mode?

14) On a fresh CPU with an empty TLB, how many memory accesses (page tables) does it take to access one virtual address?

\----

TempleOS identity-maps everything, all the time, so the usual convention of upper memory being for kernel does not apply. It uses physical addresses, basically. It puts all code in the lowest 2-Gig memory range so that it can use the CALL REL32 instruction, the fastest. It never changes privilege levels or messes with page tables, once it is up-and-running.

\----

ANSWERS:

1) All stack pushes and pops are 64-bits.

2) The upper 32-bits are set to zero.

3) To set FS or GS, you use WRMSR to write a model specific reg. See IA32_FS_BASE and SET_FS_BASE.

4) Displacement addressing is now RIP relative, so RIP would be added to TSS_SOME_MEMBER. (Useless)

5) The R13 instruction takes one more byte because it is like REG_RBP in the ModR.

6) The R8 instruction needs a REX byte prefix to specify upper-8 reg.

7) You can access the lowest byte of any reg. You can access AH but not the second-to-lowest byte of ESI.

8) To call a subroutine farther than 2 Gig away, you put the address into RAX, then CALL RAX.

9) CALL REL32 is significantly faster. See ::/Demo/Lectures/InterruptDemo.CPP.

10) IN or OUT instructions happen at a fixed speed based on the original ISA bus clock.

11) PUSHAD is not available for 64-bit mode, so you do it by hand.

12) The TSS is no longer used to hold the task state because there are 16 regs and they are 64-bits, not 32-bits. I guess Intel decided doing it by hand was better than TSSes.

13) 64-bit mode has 4K or 2Meg page size.

14) For one access, there are 3-4 levels of page tables plus the location itself.

<comment><USER7> RIP-relative addressing is _possible_ for the lea instruction, but not mandatory. Also inc ax, etc. seem to assemble just fine in 64-bit mode, albeit with a prefix (0x66) and a different opcode (0xFF)</comment></comment>


Write HTML Faster with Sparkup (Vim and Textmate) - <AUTHOR> http://jetpackweb.com/blog/2010/03/04/write-html-faster-with-sparkup-vim-and-textmate/

<comment><USER2> I like this, opposed to other solutions to HTML's verbosity, in that this is like a Vim macro language. Quick to type, then expanded to full formed HTML. No need for any other compilation or intermediate processing to HTML.

<comment><USER3> The drawback, though, is that you can only use this to generate HTML quickly the first time you write it. Changing the code once it's generated is just as painful as it was when you were working with just HTML. This kind of write- only coding is like throwing away your source after every build.

</comment></comment><comment><USER4> You can also get similar results with some of the Zen Coding plugins for Textmate: <http://code.google.com/p/zen-coding/>

<comment><USER5> Obligatory emacs link: <http://www.emacswiki.org/emacs/ZenCoding>

</comment></comment><comment><USER6> or you could just use HAML (or NHaml, GHRML, etc.)

</comment><comment><USER7> While this is very cool for producing HTML, I still like HAML and StaticMatic better because it's reproducible. The Zen Coding plugin and this both look like they are just shortcuts, whereas HAML sticks around and gets expanded when I compile.

#sidebar.grid_4 =>

And I don't lose that. I have no problem writing HTML with the shortcuts I already have - it's maintaining what's there that's the real pain, at least for me.

</comment><comment><USER8> "If you are a fan of HAML but forced to use standard HTML in your projects this plug-in might make you a bit happier."

Sounds great to me.

</comment><comment><USER9> How is this better than markdown? Or should I say, how is this different than markdown?

<comment><USER10> For one you can't do spans or divs, or apply classes and ids. Markdown isn't a replacement for HTML.

</comment></comment><comment><USER11> I think it misses a
 in the example.</comment>


Potential iOS flaw – auto download apps bypasses device restrictions - <AUTHOR> I have just discovered that several iPhone only apps have been downloaded to my iPad using the automatic download feature from iCloud.
For example I was able to use WhatsApp and Fiverr on my iPad.
Any potential for bypassing other restrictions with this? <comment><USER2> You're required to PIN, Touch/FaceID, and/or enter iCloud password simply to purchase an app, even when it's free, unless you specifically set otherwise in your device settings. What attack do you envision that would be possible here that doesn't require an attacker already in possession and full control of your iCloud-linked device?

</comment><comment><AUTHOR> Not sure how much of an issue it is since you can legitimately download iPhone only apps to iPad through App Store, but the fact that auto download does it for apps that aren't supported on iPad is curious. Such as WhatsApp for example, that does not work on my iPad, yet it was auto-downloaded.</comment>


How Authy Built A Fault-Tolerant Two-Factor Authentication Service - <AUTHOR> http://blog.leanstack.io/how-authy-built-a-fault-tolerant-two-factor-authentication-service/

<comment><USER2> Hi Daniel from Authy here. I helped with the design of this infrastructure last year and I was a little shocked we weren't able to do automatic fail-over with PostgreSQL.

I'd be interested to know if anyone here is running a Postgres pool that handles automatic fail-over how are you doing it? Specifically which watch-dog are you using, how are they handling slave to master promotion, how do you add more slaves automatically and how do you load-balance.

<comment><USER3> Sorry, this is not a reply, but I second that motion. I'm currently involved in a project with a pretty big Postgres DB, but we haven't been able to find good literature about high availability deployments. It also seems like all solutions are third party software, most of which lack proper documentation or haven't been updated in a long time.

</comment></comment><comment><USER4> Just my $0.02:

OpenVPN has a built-in 2-factor authentication based on the X509 certificates: you need to have a valid certificate together with a valid password to connect to the VPN service. SMS/phone based authentication does not add another factor since it is also a "what you have" type of authentication (i.e. your laptop can be stolen in exactly the same time as your phone is stolen). Of course, X509 certificates work the best in the enterprise environment but that's the OpenVPN target market anyway.

<comment><USER5> Given that it's possible to memorize a certificate, it definitively _cannot_ be a 'something you have' factor. Something you have is more than just data. A client cert is nothing more than a fancy long password.

<comment><USER6> The base64-encoded SSL certificate for *.ycombinator.com is 1,755 characters. Maybe there are a few savants in the world who are capable of memorizing that, but for the overwhelming majority of human beings, it's never going to happen.

<comment><USER5> Point is, it's information. It's very easily copied. The whole point of 'something you have' is that it's not just data, but something more than that.</comment></comment></comment></comment>


Sound waves are a form of antigravity because they have negative mass - sahin-boydas https://www.newscientist.com/article/2176191-sound-waves-are-a-form-of-antigravity-because-they-have-negative-mass/ <comment><AUTHOR> Paywalled</comment>


LaTeX package for using CSL styles? Is it on the horizon? - <AUTHOR> <comment><AUTHOR> I know one can do it indirectly using pandoc ... but is there a LaTeX-native solution?</comment>


Social site for people with chronic medical conditions - <AUTHOR> http://www.patientslikeme.com/

<comment><AUTHOR> And a more complex one for diabetes: <http://www.sugarstats.com></comment>


EarthBound's Copy Protection (2011) - <AUTHOR> http://media.earthboundcentral.com/2011/05/earthbounds-copy-protection/index.html <comment><USER2> Another favorite is in Zac McKracken - you need to enter symbols in from the manual when traveling to other areas, and failing a few times puts you in jail with a stern lecture ([https://youtu.be/ArjZbizPrwY?t=48s](https://youtu.be/ArjZbizPrwY?t=48s))

<comment><USER3> That approach has its own problems. Working Model, a physics simulator from Knowledge Revolution (Macintosh, mid-1990s) used a copy protection scheme where it asked for the last word from some page in the manual. Unfortunately, after the copy protection was set up, but before the product shipped, someone made a small change to the manual that caused repagination. Page numbers in the first two thirds of the manual still worked, so the product seemed to be OK. Those in the last third didn't. Fortunately, you could just restart the program and try again, hoping for an early page number.

<comment><USER4> Makes me wonder when a paying customer being directly disadvantaged by DRM first happened, and what the effects were.

<comment><USER5> Well, you can go back to at least the Middle Ages in Europe, when valuable books were sometimes chained in place in monasteries or libraries to keep people from running off with them.

<comment><USER6> That's not DRM though. Nobody stopped you from making a copy without the chain. (apart from the fact that it would take ages and be quite expensive a the time) Actual theft protection is not DRM.

<comment><USER7> Right DRM is not copy protection. DRM is about keeping legitimate buyers from exercising free trade. You can't buy up a dozen games on steam, for example, and resell the games on. Of course people still do, but that's what steam's drm is intended to quell. You can't take a bluray, make a copy, upload it to somebody's email for a price, and destroy the original. This is a perfectly honest thing to do, it's super easy to do, but it's incredibly risky in the US to do it.

</comment></comment></comment></comment></comment></comment><comment><USER8> Would a publisher be liable to a pirate for damages if their anti-piracy measures include code of the form:

        IF is_pirated() THEN dd if=/dev/urandom of=/dev/sda

<comment><USER9> IANAL, but probably. Such a case would be somewhat comparable to the Sony BMG scandal from a decade ago. The circumstances would be somewhat different, especially if _only_ pirates were actually harmed, but there would still probably be a good case under the CFAA.</comment></comment>


Ask HN: How startups changed you as a person? - <AUTHOR> I am sure startups brings  lifestyle changes and even change in our thought process.What are the changes that you have witnessed in yourself after you became involved with startups? <comment><USER2> After exposure to the C* level, and being on the board of a quasi-non-profit that was trying to transform to a proper non-profit.... I realize the power games at that level are far more "important" \- the technical work of course is the foundation, but if you have people with anti-social personality disorders at the helm, all the super improve-the-world tech matters little.

I perhaps am just unlucky, I am not trying to tar and feather all business majors and 'Management". But I have learned not to trust anyone at all when money and power is involved. My psychopath-dar has been greatly improved. Organizations with incompetent or worse management never amount to anything and they are a headache to work for.

When I was just a regular "joe" starting in the first Internet bubble, I went with a company where the management all had a track record at well known companies, and the ones I met seemed like decent people. It was a good company, but the bubble burst too fast before we could get any real traction. The other company I turned down imploded due to some drama and "too young" management.

</comment><comment><USER3> Maybe its with experience, and working in a more traditional role for so long afterwards, but I feel like the biggest change was awareness of how long things take to do.

I still see people dive head first into problems and I just think "man, insurance is going to be immense," or "do you know how long that's going to take!" I can't work out if naivety is actually a benefit, or if these people see value or a future I don't.

So really, I see time as far more limited and more valuable as it ever was, and it stops me from picking up new things (for good or for bad).</comment>


Hosting Survey: GoDaddy #1, CloudFlare #2 - <AUTHOR> http://w3techs.com/blog/entry/new_surveys_on_web_hosting_and_reverse_proxy_services <comment><USER2> Surprised that DigitalOcean isn't on this list.

<comment><AUTHOR> They're not in the blog post, but they're in the full list with 1.2% market share (which happens to be the same as Linode's share): [http://w3techs.com/technologies/overview/web_hosting/all](http://w3techs.com/technologies/overview/web_hosting/all)</comment></comment>


How To Build A Political Social Network That Actually Works - <AUTHOR> http://techcrunch.com/2013/04/19/strategies-for-building-political-social-networks/

<comment><USER2> my favorite:

 _"To create an (un)social network, focus on how your product will provide value to its first users, not its last. "_

<comment><USER3> Thanks! Although I kept meaning to change that but never did. I wanted something more like "To create an (un)social network, focus on how your product will provide value to it first users, not its _peak_ users." Or something like that. "last" makes it sound like, well, last. Like the company is failing and you're down to your last user. I meant it in more of the full adoption sense. Lots of things I'd like to fix in the article..

</comment></comment><comment><USER3> Thanks digging my article! I'm curious what people thought about.

<comment><USER4> My team and I are starting up a legal social network. We have since changed names and pivoted slightly to address several different markets but here is a video I made which describes a small part of what we are about - <http://youtu.be/3m194rui52Q> . I see you went after funding from places like Sunlight Foundation and Google Ventures. I'd like to know more about that process if you wouldn't mind sharing...

<comment><USER3> Cool, just watched the video, looks really ambitious! Yeah I'd like to hear more and share what I can. Let's setup a call or something. email@example.com</comment></comment></comment>


A Plan for Blowing Up Asteroids - <AUTHOR> https://www.buzzfeed.com/danvergano/nuclear-asteroid-deflection-nasa <comment><USER2> Whatever happened to safer gravity-tractor strategies?

<comment><USER3> Guess maybe if you don't have the time for that an impact gizmo could be handy. Maybe they could launch a Tesla at it as the technology is proven there.</comment></comment>


Google's Sergey Brin Warns of the Threat from AI - <AUTHOR> https://www.theverge.com/2018/4/28/17295064/google-ai-threat-sergey-brin-founders-letter-technology-renaissance#ampshare=https://www.theverge.com/2018/4/28/17295064/google-ai-threat-sergey-brin-founders-letter-technology-renaissance <comment><USER2> I'm AI will be get too developed and those "Terminator" movies from the 80's may not seem so far fetched pretty soon. Kind of scary.</comment>


Welsh Climber on Anniversary with Wife Killed in 1,000-Tonne Yosemite Rock Fall - <AUTHOR> http://www.independent.co.uk/news/world/americas/yosemite-national-park-death-british-climber-killed-falling-rock-el-capitan-crushed-andrew-foster-a7973716.html <comment><USER2> Not trying to sound insensitive but does anyone know What happen to their dog? Was it with them?

No mention of their companion dog in any of the stories</comment>


The Most Important New Technology Since the Smart Phone Arrives December - <AUTHOR> http://www.technologyreview.com/view/428350/the-most-important-new-technology-since-the-smart/ <comment><USER2> Hyperbole.</comment>


Why Sand Is Disappearing (2014) - <AUTHOR> http://www.nytimes.com/2014/11/05/opinion/why-sand-is-disappearing.html <comment><USER2> This is basically the same content as the one from ejolt:

[http://www.ejolt.org/2014/08/building-an-economy-on- quicksan...](http://www.ejolt.org/2014/08/building-an-economy-on-quicksand/)

The original documentary, Sand - Die neue Umweltzeitbombe:

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

</comment><comment><USER3> There is a documentary about this called the Sand Wars. Here is the trailer

[https://youtu.be/CAPfwwb59uY](https://youtu.be/CAPfwwb59uY)

<comment><USER4> That is hilarious.

</comment></comment><comment><USER5> The aspect of Dessert Sand not being a suitable alternative to Beach Sand was news to me.

I had a half baked notion that, given the long term downturn for Oil and the increasing shortage of Sand, the Middle Eastern countries could diversify into selling Dessert Sand apart from Black Gold. Guess it is not meant to be.

<comment><USER6> Not suitable for beaches but it's probably still suitable for industrial use, which is much, much larger than the beaches. It's just that it's not yet cost effective to haul sand halfway around the world

<comment><USER7> Unfortunately, desert sand is specifically not useful for one of the largest industrial uses: Concrete. The weathering of sand in a wind-blown environment reduces the sharp edges and makes it significantly less strong. The ideal in concrete sand is as sharp and as new as possible. It is also ideal that it be dust-free, since dust and other very fine particulates also negatively effect strength.

</comment></comment></comment><comment><USER8> Similar weird are the snow making machines in the Alps and other regions. Thousands of units with water from many artificial lakes on top of the mountains to create snow for tourists.

<comment><USER9> At least when the snow melts it returns to the rivers and streams where it came from.

<comment><USER10> Sadly the lakes are often lower down the mountain which requires a lot of not very environmentally friendly pumping to get it up. Here's one set up [https://www.skiroundtop.com/how-snowmaking- works](https://www.skiroundtop.com/how-snowmaking-works)

</comment></comment></comment><comment><USER11> The sea near where I live throws up huge amounts of sand each winter storm. It just keeps coming. The owners of the bay beach are give it away for free. They just cant get rid of it quickly enough. I take a few dump trucks worth every year.

So from my own subjective experience there seems to be a lot of sand in the sea. Are we really running out? Or is this just alarmist journalism?

<comment><USER12> I've heard in the news here in South Africa the prices of sand are going up and we are running out of sand, so I think this has a real basis in reality.

</comment></comment><comment><USER13> "...a practice that disturbs the sea bottom, creating turbidity that kills coral beds and damages spawning grounds, which hurts inshore fisheries."</comment>


British teenagers have lower IQs than their counterparts did 30 years ago  - <AUTHOR> http://www.telegraph.co.uk/education/educationnews/4548943/British-teenagers-have-lower-IQs-than-their-counterparts-did-30-years-ago.html

<comment><USER2> Can anyone find the original article? The Telegraph doesn't even tell you which journal it's in, let alone give you a reference.

I'm curious as to whether they attempted the potentially-career-ending analysis of seeing what happens when the data is broken down by race.</comment>


WhatsApp and the software that is eating the world - <AUTHOR> https://medium.com/supbra-founders/3224acf732d4

<comment><USER2> There's a very interesting article on Forbes about WhatsApp founder Jan Koum, which is illuminating. If you didn't read it now go now it at [http://www.forbes.com/sites/parmyolson/2014/02/19/exclusive-...](http://www.forbes.com/sites/parmyolson/2014/02/19/exclusive- inside-story-how-jan-koum-built-whatsapp-into-facebooks-new-19-billion-baby/)

What I found more interesting is that WhatsApp was a very down to earth, conservative company, since the beginning. They have strong views on ads. They used pricing to manage the growth and avoid growing too fast. They avoided VCs as much as they could. They avoided marketing and PR, preferring to focus on the tool as much as possible. They were concerned with being able to make ends meet from early on, and only took VC to have cash in the bank as an insurance to guarantee the payroll - cash that they didn't strictly need (they are already breaking even at the time). Jim Goetz (from Sequoia) said that it was the first time in its life that he invested in a company that was already paying corporate taxes. That's not your usual "let's do something and see if it works" kind of startup.

One more proof of their mindset is that they did in fact "pivot" early on. WhatsApp was not a messaging tool, just became to be one as they noticed that people were using status updates that way. Manhy companies with much less successful pivots talk about it as if they discovered the philosopher's stone; in the case of WhatsApp, I've never heard about this pivot history before.

This kind of positioning goes strongly against much of today's VC-backed business mindset. Hope more companies were like them...

</comment><comment><USER3> Your artcile is interesting, but in my opinion, it is still early to say if there is a valuation bubble around startups acquisitions. $16B sounds a lot to me. Also, business that scale without monetize are exceptions. Here in Brazil, Investors hold them money until you show them some clients. If you raise money in early stages you have to sell give in a lot of share. But I agree with you that it can open some minds.</comment>


Energy Dept – $46.2M for 48 Projects to Advance Solar Power Technologies - <AUTHOR> https://energy.gov/articles/energy-department-announces-462-million-48-projects-advance-solar-power-technologies <comment><USER2> Some favorites:

\- "Two-Dimensional Material Based Layer Transfer for Low-Cost, High- Throughput, High-Efficiency Solar Cells" \-- could finally make gallium arsenide thin film cells cheap. (Alta Devices thought it had solved this, but didn't and pivoted toward cost-insensitive customers. Worth another try.)

\- "Fault Tolerant, Shade Tolerant High Voltage PV Modules" \-- could produce silicon-based modules that are more durable and perform better under non-ideal conditions. Doesn't require drastic technology changes but could bring modules' average annual energy yield closer to the ideal.

\- "Isovalent Alloying and Heterovalent Substitution for Super-efficient Halide Perovskite PV Solar Cells", "Low-Cost Scaffold-Reinforced Perovskite Solar Modules with Integrated Light Management", "Perovskite on Silicon Tandem Solar Cells" \-- perovskite materials have the potential to be the first new commercially viable thin-film solar material in 20 years. If tandems with crystalline silicon can be commercialized they could beat the 1-junction Shockley–Queisser efficiency limit and become the _first ever_ multi-junction cells cheap enough for terrestrial use.

\- "Direct Metallization with Reactive Inks – Assessment of Reliability and Process Sensitivities", "Electroplated Aluminum - An Alternative to Copper or Silver Electrode in Silicon Solar Cells" \-- both projects aim to reduce/replace use of silver for cell contacts. Silver is the only material- scarcity bottleneck at present for scaling silicon PV up to the terawatt-per- year manufacturing level.

And a few (IMO) poor choices: SolarReserve, Echogen Power Systems, and Solar Dynamics will develop new concentrating systems and new thermal energy storage materials for concentrating solar thermal technology. Give up already on this dead end. Compared to PV, solar thermal costs more, has higher mechanical complexity, works in fewer locations, consumes more water, and needs more land per unit of energy delivered. The one theoretical advantage over PV -- after- dark power via thermal energy storage -- is rapidly being erased by source- agnostic electricity storage.</comment>


Lawmaker Says Snowden Leaks Will Cost Country 'Billions To Repair' - <AUTHOR> http://www.npr.org/blogs/thetwo-way/2014/02/05/272151126/lawmaker-say-snowden-leaks-will-cost-country-billions-to-repair <comment><USER2> lost me at "repair" ...</comment>


Trump Shutdown Must End - <AUTHOR> https://joelx.com/trumps-shutdown-must-end/14546/ <comment><USER2> We'll see what happens once the airports shut down. If not this paycheck then certainly the next - air traffic controllers are going to strike and then it's Game Over. Trump may declare the strike illegal, but the court case currently proceeding from the union is going to argue otherwise. Since no one has missed a paycheck yet then technically no one is not being paid to work. Once Friday's paychecks are missed the government is in breach of contract. This could get really interesting really fast.</comment>


Kevin Rose quits CEO role at Digg - <AUTHOR> http://www.computerworlduk.com/news/it-business/3237629/kevin-rose-quits-ceo-role-at-digg/?cmpid=sbycombinatorschapman

<comment><USER2> That's not the original title, which is simply "Kevin Rose quits CEO role at Digg".

see also:

<http://news.ycombinator.com/item?id=1650814>

(still on the homepage)

</comment><comment><USER3> Talk about linkbait:

 _"Rose, the founder and chief architect of Digg, took up the role of interim CEO when Jay Adelson resigned in April."_

That's it. nothing to see here, move along..</comment>


Drone Imagery for OpenStreetMap - <AUTHOR> https://www.mapbox.com/blog/drone-imagery-openstreetmap/ <comment><USER3> This is insanely cool, and a bit crazy too. 45 minutes to map 10km^2, so two of them, swapping out batteries, you're talking one person mapping 90 km^2 a day. So a city like San Francisco (121 km^2) in a couple of days? Or San Jose (467 km^2) in a week? That is pretty interesting. Make your own map with license to your own assets pretty reasonably I'd guess.

<comment><USER4> The laws would have to change to allow you to fly these over populated areas. There's a reason the blog post is about flying over someone's private farmland. As a commercial company you can't even charge a farmer to fly over his land, the owner of the land has to do it himself.

<comment><USER5> Attach transient, disposable cameras with precise positioning to wide-ranging self-piloting lifeforms not subject to FAA approval, such as city pigeons.

<comment><USER3> While you may be kidding, such a thing with a drive by upload to a local wifi network might be possible (no opinion on practical) but basically a camera, gps module, altimiter, and wifi link. Put feeding stations on Starbucks or near other free WiFi hotspots that dispense seed if the leg unit uploads a picture.

</comment></comment></comment></comment><comment><USER6> This is very cool. TileMill ([https://github.com/mapbox/tilemill](https://github.com/mapbox/tilemill)) is also one of the most amazing open source web apps I've seen for a while.

</comment><comment><USER7> Completely awesome. I was curious so I looked up the eBee price. $12,000 - <USER2> steep for a hobbyist, but I'm sure that price will come down over time as drones become more widespread.

<comment><USER8> Man that's expensive. You could probably build something similar on a quadrocopter base for a tenth of that. Not a lot to the thing when you look at it.

<comment><USER9> A multi-rotor will ccurrently only give you 10-15 mins flight time with a payload. There are cheaper options (than the OP) that are also more practical.

</comment></comment></comment><comment><USER10> Folks have been doing this for years, and for cheaper, with balloons and kites. Check out the awesome work at publiclab.org, where they've mapped the gulf oil spill in 2010, pollution at the Gowanus canal, Occupy encampments. Stitch the photos with the OSS Ruby tools at mapknitter.org, publish them with a public domain license, and they'll actually be added to the google base map!

Buy a kit for < $100: [http://store.publiclab.org/products/balloon-mapping- kit](http://store.publiclab.org/products/balloon-mapping-kit)

</comment><comment><USER11> If only we didn't have to rely on nonfree software for the processing.

</comment><comment><USER12> I used to work for a mineral exploration company that purchased an Ebee in the spring, and used it heavily this summer in Northern Canada (mountainous, extremely remote terrain). It's a pretty neat unit and only required about 1-2 hours of reading the manual and making a quick flight plan before we were ready to fly it. The software that ships with it is super duper easy to figure out. Though it may be too simple as some of the control we would have liked wasn't there.

That said, the gov't paperwork before we were able to fly it was a nightmare, but operating it in remote, helicopter access only areas (no humans/buildings/etc around for dozens and dozens of kilometres) did ease the requirements a tiny bit.

Generating DSMs from the geo-ref'd images within an hour or two of flying a flight plan was pretty awesome though. Being DSM (Rather than DTM/DEM) is kind of annoying with tree-cover, but in less treed areas is still better than the Government of Canada 30m DEM.

</comment><comment><USER13> volunteers with army of drones can can cover cities, there can be a kickstarter for each city funded by its resident. I will fund for chennai and bangalore for sure

<comment><USER14> Prepare to have your expensive drone captured or destroyed by your government, and to be investigated as a criminal.

</comment></comment><comment><USER15> This is so cool.

I'd really like to do a drone services startup focusing on municipal govt's and agriculture. It seems like you could solve a lot of surveying/permitting issues for cities. With ag, special cameras can give farms a lot of data (I know this is being done already). I think becoming sort of the "Waste Management for Drones" could make a lot of money.

</comment><comment><USER16> I was really bummed when I read that one of these costs about 12k. But then I realized how much money you could make taking this around the country, mapping out cities and licensing the images out. Heck, just taking private gigs for colleges, estates, parks, and things of that sort could make you good money. I think i found a new side business.

<comment><USER17> Check your local laws first.

I see lots of $5k+ multicopter/camera setups for sale at _big_ losses here in Australia, when people obviously got all excited about starting their own aerial photography business – then bumped into the legal reality of flying these things commercially as opposed to being a hobbyist.

If you want to accept money for flying RC aircraft here, you almost need the same qualifications as a commercial pilot _and_ a commercial airframe mechanic. There are a few dozen companies who've got the required qualifications, and they're _very_ protective of their turf. You _will_ get "noticed", and the authorities (CASA here in .au) will come knocking.

</comment></comment><comment><USER18> Wow, as a big multicopter and fixed wing enthusiast/hobbyist, I find this to be super awesome. It also literally hit home for me because I noticed that it was captured only a few miles away from where I grew up, haha. These technologies look very promising for things like mapping agriculture and providing recon in environmental disasters.

</comment><comment><USER19> I live abroad and was considering pitching this as a low-cost alternative to satellite imagery and crowd-sourcing with the the government GIS teams and national computer research center ehre. Very, very cool to see it in action!

</comment><comment><USER20> Cool, but you can't let your drone fly over cities. Not in my country and I suppose not in most places around the world.

My brother however will be happy to use his quadcopter to contribute with some aerial images of fields

</comment><comment><USER21> Does anyone know a free alternative to Pix4D (the image stitching software)? I'd love to try this myself.

<comment><USER11> No. An OpenStreetMapper has come up with his own rather less sophisticated pipeline for doing this sort of work:

[http://wiki.openstreetmap.org/wiki/User:Balrog/Aerial_Imager...](http://wiki.openstreetmap.org/wiki/User:Balrog/Aerial_Imagery/Rectification)

but it's a way off what this software seems to be able to do.

There's not much magic in what Pix4D does - the algorithms are generally well documented (though tricky to get to work well from what I understand), it's just no-one's done it yet.

</comment></comment><comment><USER22> This could end up being quite a significant threat to Google Maps.

<comment><USER23> Unless google maps either hires them or makes their own solution.

<comment><USER22> I don't mean that their solution will necessarily be better than Google's, but it looks like it could produce top-down imagery that is about as good. Being OpenStreetMap, it will likely be liberally licensed. With the data freely available, the barriers to everyone creating Google Maps competitors will suddenly be minimal. Currently those barriers are very significant (data creation/licensing costs), so them being lowered so dramatically will be unfortunate for Google.

<comment><USER24> A significant amount of the data is freely available data produced by the U.S. government(s). The issue is processing it into something nice.

The level of coverage that can be done with that data can sort of be inferred from this post:

[https://www.mapbox.com/blog/mapbox- satellite/](https://www.mapbox.com/blog/mapbox-satellite/)

(they basically processed landsat imagery to get large scale data for the entire globe, and free imagery of the US gets quite a bit finer scale)

</comment></comment></comment></comment><comment><USER25> n00b question: can anything be done about the mosaicing in the images (look at the corrugated roof, the edge of the concrete etc)?

<comment><USER26> It's caused by the quick and dirty image scaling algorithm, it doesn't take enough samples per pixel. We used to see this sort of stuff in computer games before mipmaps were invented, which are smaller versions of the image pre- scaled using a fancy algorithm and then used in place of the larger image when it's smaller on the screen.</comment></comment>


ESA and Inmarsat deploy real-time "4D" air traffic control system - <AUTHOR> http://arstechnica.com/information-technology/2016/12/esa-inmarsat-atc-iris-precursor-details/ <comment><USER2> Hey thats xfce running on that computer!</comment>


Red Pitaya: Open hardware instrumentation for everyone - <AUTHOR> http://www.kickstarter.com/projects/652945597/red-pitaya-open-instruments-for-everyone?ref=home_spotlight

<comment><USER2> I'm sure this is good for many things, but it won't make a great digital oscilloscope. A sample rate of 125Msps is not really high enough for a bandwidth of 50MHz in that context. The low-end Rigol oscilloscopes do 1Gsps.

<comment><USER3> How do they manage that? 1Gsps ADCs are really pricy.

<comment><USER4> They time interleave four Analog Devices AD9288 [0] dual 100MS/s 8 bit ADCs that are over clocked to sample at 125MS/s (so 125MS/s times 8 = 1GS/s).

What's fascinating is a number of people in the HW community have managed to reverse engineer the Rigol DS1052 scope. A Hellene on the EEVBlog forums has lovely pencil drawn schematics [1].

[0] [http://www.analog.com/en/analog-to-digital-converters/ad- con...](http://www.analog.com/en/analog-to-digital-converters/ad- converters/ad9288/products/product.html)

[1] [http://www.eevblog.com/forum/blog/rigol-ds1052e-nasty- surpri...](http://www.eevblog.com/forum/blog/rigol-ds1052e-nasty- surprise!/msg55197/#msg55197)

<comment><USER5> The eevblog article was quite an interesting read. Thanks for sharing!

</comment></comment></comment></comment><comment><USER6> Ah, I posted this almost a month ago [https://news.ycombinator.com/item?id=6282350](https://news.ycombinator.com/item?id=6282350)

</comment><comment><USER7> [http://www.linkinstruments.com/mso19.htm](http://www.linkinstruments.com/mso19.htm)

This has existed for a while and it's more accurate and most likely better tested. It's better suited to replace a lab oscilloscope, and a bit cheaper, but doesn't have the function generator or the other extra features mentioned for the Red Pitaya like the web interface

<comment><USER8> Another relatively similar instrument is the PicoScope series [http://www.picotech.com/oscilloscope.html](http://www.picotech.com/oscilloscope.html)

</comment></comment><comment><USER9> The Zynq chip is a big plus -- easy reuse of the hardware platform -- but the analog... Duh. Deal-breaker.</comment>


Zero Marginal Cost: Why comedy is only source of innovation left - <AUTHOR> https://medium.com/@tbsmartens/why-comedy-is-the-only-force-of-innovation-left-2475fb501c51#.k98ezy3w8 <comment><AUTHOR> It´s really the draft of an idea but I´d be curious hearing opinions and feedback. Let me know :-)</comment>


A Cultural History of Fat - <AUTHOR> https://www.historytoday.com/reviews/weight-world <comment><USER2> A company that produces food that is more appetizing and less filling than its competitors will sell more of it and beat them in terms of revenue and profit. They either have to align themselves or die/be assimilated.

Even without any ill intent, growth seeking in the food industry would have lead to an obesity epidemics.

[https://soundcloud.com/user-876103472/grow](https://soundcloud.com/user-876103472/grow)

<comment><USER3> If I eat a snickers bar and afterwards I'm still hungry, I'm not necessarily going to eat another snickers bar. If I eat a very flavorful salad but perhaps am not feeling quite satiated, next time I'm not necessarily going to order the competitor's product that is drenched in olive oil.

I'm sure there is some truth to these sorts of "survival of the fittest" arguments, but you can only simplify how people reason about food or how they consciously or subconsciously decide what to eat so much before it becomes a parody of itself.

<comment><USER2> I'll put it aletrnatively:

Since 1) we eat too much and 2) we're not being force-fed, what drives the food down our collective throats?

How do you explain the obesity epidemics which is a very recent phenomenon, if not through perverse market forces?

<comment><USER4> Laziness. Supermarkets still sell raw food (vegetables, meat, etc) that can be used for cooking. But it takes time and effort to do it (+washing) so buying already made but unhealthy dishes is appealing for a lot of people.

<comment><USER5> But why are the ready made meals unhealthy? It's not because they're ready made rather than fresh cooked.

<comment><USER6> Ready made meals are usually higher in sodium and fats than fresh cooked meals.

Edit - [https://www.consumerreports.org/food-shopping/supermarket- pr...](https://www.consumerreports.org/food-shopping/supermarket-prepared- meals-what-to-watch-out-for/) The article doesn't call out higher amounts of fat in prepared food, but does mention higher cost and added preservatives.

</comment></comment></comment></comment></comment></comment><comment><USER7> This article does not discuss in depth the change in diet from mainly protein and fat based diets of the hunter-gatherers to carb-rich diet of today.

<comment><USER2> We've had a carb rich diet since the neolithic revolution.

The obesity epidemics started after WW2.

I don't think that they are related.

<comment><USER8> > We've had a carb rich diet since the neolithic revolution.

This isn't true.

The modern diet gets 90% (asspulled number, sorry) of its energy from sugar, white flour and potatoes.

None of these three really existed in any measurable quantities three hundred years ago.

Sugar especially is something only very modern people started to eat in huge quantities.

<comment><USER2> Bread was the staple food for most of that period. GP was contrasting modern and paleo diet.

It would be wiser to contrast 1918 with 2018 (and I agree with you that refined sugar and starch are most likely involved in the current mess).

<comment><USER8> > Bread was the staple food for most of that period.

No, not really. The refined white flour we eat today basically didn't exist until very recently.

Their bread wasn't like our bread. It was coarsely-ground and made of bran, barley and rye. Compared to what we eat today, it had much higher fiber content and more fat. It would have been much harder for our ancestors to mainline pure carbohydrates by eating bread like we do.

Carbs in themselves aren't so bad, but the problem is that your body won't ever be sated by eating carbohydrates. (Kids around Halloween will attest.) Eating pure carbs is a very bad idea.

<comment><USER2> I never said it was white bread... Besides, I agree with the rest of your comment.

</comment></comment></comment></comment></comment></comment><comment><USER9> How are the cultural metaphors verified, like the connection between focus on the afterlife and fatness attributed to the rise of Christianity in Europe?

I still can't put a handle on how historians are able to determine what a culture's prevailing attitude is toward something when it seems so ephemeral.

</comment><comment><USER10> This is a slim summation of the contents of a fat book.</comment>


C++17 Compiler Bug Hunt - <AUTHOR> http://ithare.com/c17-compiler-bug-hunt-very-first-results-12-bugs-reported-3-already-fixed/ <comment><USER2> Basically compiler fuzzing. I'm not surprised that bugs were found.

 _Recently, I have run into quite a few issues with different C++17 compilers (actually, I found that none of the compilers-I-tried is really C++17 compliant yet);_

IMHO the fact that the spec is so complex that it is near impossible to implement it correctly should be a big hint, yet people seem very eager to continually stuff more features into the language, which can interact with all the other features in complex ways.

<comment><USER3> In a recent project the juniors pushed for C++17 use; I've never seen so many code comments about compiler bugs in a single project that size. It targets only two platforms using GCC and clang.

This is not to say that compiler developers do a bad job; however, don't expect complex language revisions to be production grade from the get-go.

<comment><USER4> Don't go too far, or you'll get...

auto i = { 1 };

<comment> loup-vaillant Wait, is that an integer, or an array? Serious question, with initialiser lists I'm not sure any more.

<comment><USER5>
        auto i = {5};

is a std::initializer_list<int>, whereas

        auto i{5};

is an int (as of C++17): [https://godbolt.org/g/eXXN3o](https://godbolt.org/g/eXXN3o)

See also [https://stackoverflow.com/questions/25612262/why-does- auto-x...](https://stackoverflow.com/questions/25612262/why-does- auto-x3-deduce-an-initializer-list) .

<comment><USER6> If you change the compiler version (to e.g. gcc7) your blurb compiles in C++14.

</comment></comment></comment></comment></comment></comment><comment><USER7> This article is interesting, but its links to the GH project [1] appear to be mishandled somehow because they link to the article itself.

[1] [https://github.com/ITHare/kscope](https://github.com/ITHare/kscope)

</comment><comment><USER8> One genuine question, is it possible for C++ committe to push for a simpler language by depracating features? Or this policy would have disastrous effect on the community?

<comment><USER9> Tools for automatically updating source code would be a good thing. It'd allow removing old compatibility features, and save time modernizing code bases. Python did it with 2to3.

<comment><USER10> You have clang-tidy:

[https://www.kdab.com/clang-tidy-part-1-modernize-source- code...](https://www.kdab.com/clang-tidy-part-1-modernize-source-code- using-c11c14/)

</comment></comment></comment><comment><USER11> What did I just read?

<comment><USER12> I had a hard time understanding the post, too.

AFAICS, kaleidoscope produces random code (which does nothing meaningful) that should compile. Then, they feed the random code into the C++ compilers Clang, gcc, and MSVC. The random code triggers bugs in the compilers, which are summarized in the post.

Actually, they don't feed the random code, but kaleidoscope uses the template system to "directly" produce randome code.

<comment><USER11> I wish there were more technical details on kaleidoscope. Just seems like lots and lots of borderline-meaningless high-level overview.

</comment></comment></comment><comment><USER13> I recall being impressed the last few times I submitted bug reports to GCC. They were really on top of their game.

</comment><comment><USER14> While this is a fairly interesting article and that code is an interesting piece of work as well, I found it a hard read solely because of the way it's presented. The bunnies, the big bold text in between the other text, the oh- so-slight difference in font size to indicate different headings (I think?), nested bullet points with sometimes only one entry in a level, making me wonder why there even is a bullet. Oh and I like humor, but those Job title/Hobbies entries, the <wink/sadface/whatever/>, I don't know, it's like everything but funny to me? Mainly distracting.

<comment><USER15> It is pretty normal that people will bikeshed about blog format on the internet, because people often don't have the technical chops to talk about the content, but why is it that these bikeshed comments get upvoted here?

<comment><USER14> I'm fairly sure I do have the technical chops to talk about the content, being very used to C++ in all it's glory, but I don't have much to add to the article: once broken down to it's intent/meaning, it's clear to me what it's about and why the code is useful. Which is why I said it's an interesting article. And why I upvoted the post.

That being said, to address your concern: this is HN, where in my experience pretty much anything can get discussed, and not-so-topnotch blog formats is one of those things. Upvotes in this case simply mean others have the same feeling with regards to the general readability of the article. Also note that, as far as I recall, there has been more than one post - not just comment - on HN exactly about this: conveying information in a proper manner is an important aspect of the internet in general. Not just bikeshedding. Even more so for technical stuff, imo.

</comment></comment></comment><comment><USER16> Is this a stand up fight sir?</comment>


Show HN: Google search blacklist - <AUTHOR> Yesterday the top upvoted comment for "Why We Desperately Need a New (and Better) Google" http://news.ycombinator.com/item?id=2057772 was adding personal domain blacklists. I offered to build this if there was enough interest so here's a minimum viable product for Chrome (Firefox soon to follow): https://chrome.google.com/extensions/detail/jiicbcimbjppjbckmoknagndlhjbeohb. Your feedback is welcome! <comment><USER2> Great initiative. Having a "Add domain to blacklist" option on right click would be a nice addition.

I seriously wish this matures well like Adblock Plus. Imagine having a crowd sourced blacklist of domains and users can easily add it to the extension. (similar to easy filter based on geographic locations for adblock)

<comment><USER3> Great idea - would just require some sort of moderation in that format though. I'd much rather manage my own list of domains to blacklist. A crowd sourced one I fear could be exploited and prevent me from seeing content I'd otherwise like to be able to find.

<comment><USER2> Yes, moderation is definitely necessary. For instance, easylist for adblock which has over 10000 filters is maintained by five people and is updated with input from the forum members.

<comment><USER4> any search blacklist needs to include experts exchange as a basic default (perhaps the basic list can be disabled as necessary).

its mindblowing google hasn't done this yet

</comment></comment></comment></comment><comment><USER5> Wow, fast, excellent work Jason.

Clickable - [https://chrome.google.com/extensions/detail/jiicbcimbjppjbck...](https://chrome.google.com/extensions/detail/jiicbcimbjppjbckmoknagndlhjbeohb)

</comment><comment><AUTHOR> Code is now on Github: <https://github.com/jhchen/Search-Engine-Blacklist>. I'll be working on implementing the changes you all have suggested but feel free to message me if you want to join in!

</comment><comment><USER6> Thanks Jason! Excellent concept. Is there any way that I or others can help?

<comment><AUTHOR> Thanks I'll be adding it to Github later today as soon as the code is in presentable form ;)

</comment></comment><comment><USER7> Really badass piece of work, Jason, thank you for taking a bite out of this problem. Simple, effective.

Some gravy on top would be an in-line blacklist button beside search results but even spending thirty seconds to set up the blacklist in advance gives you a Google that's a lot more useful than the default. Bravo, sir.

</comment><comment><USER8> Good work.

Stackoverflowerizer does a similar job by redirecting to the original content when user clicks on a similar website link.

[https://chrome.google.com/extensions/detail/gledhololmniapej...](https://chrome.google.com/extensions/detail/gledhololmniapejefjfocffkhoamlll)

</comment><comment><USER9> Very nice, I never noticed your comment but I'm glad you posted this and followed through. I had something like this in mind and added it to my to do list after reading the same article. I'm glad you made it available first. Cheers to you!

</comment><comment><USER10> Customer Feedback for Search Engine Blacklist : <http://seblacklist.uservoice.com/forums/94117-general>

</comment><comment><USER11> That's awesome man! Keep up with the good work. It's definitely people like you that keep the Internet fun. :-)

</comment><comment><USER12> Awesome stuff. Hope this gets big enough to warrant some further action from Google.

</comment><comment> mike-cardwell Neat. Please make this extension work for other search engines too. Especially DDG!

</comment><comment><USER13> Next, I'd like to be able to share my blacklists ;-)

</comment><comment><USER14> Nice, I'll try it out over the next few days!

</comment><comment><USER15> Any chance for a Safari extension as well?

</comment><comment><USER16> Google's official spam reporting extension: [https://chrome.google.com/extensions/detail/efinmbicabejjhja...](https://chrome.google.com/extensions/detail/efinmbicabejjhjafeidhfbojhnfiepj?hl=en)

<comment><USER12> Does that actually go anywhere or is it like all their other official channels of communication?

<comment><USER17> Yes, clicking "Report spam" in the Chrome extension goes to our official spam report page and autopopulates the spam report form with that result.

<comment><USER18> ... and then what happens?

<comment><USER17> Two things: first, the data is used to improve our algorithms. Second, spam reports get 4x the weighting when we prioritize sites for manual spam investigation. That does mean that if you do a spam report on a page/site that only gets seen (say) once every six months, it might not get looked at on the manual side though, simply because there are other sites that are hurting users more.

Giving spam reports 4x the weight compared to the sites that we autodetect is how we try to balance responding to outside feedback with spending our review cycles on the spam that impacts users most.

<comment><USER4> glad you're reading this thread matt.. maybe its time to give us both private and crowdsourced blacklists?

experts exchange and ehow need to be gone by now and the data will be incredibly useful for your search quality

</comment></comment></comment></comment></comment></comment><comment><USER19> You could set this up like Adblock, where sites being blacklisted are anonymously reported back to a central location. Highly blocked websites are offered to be automatically added to the blacklist when you install the extension.

</comment><comment><USER20> Thanks so much. This looks very, very promising.

</comment><comment><USER21> Amazing work, thanks for this!</comment>


Ask HN: If I mod a GPLv3 webapp and host it must I release source? - <AUTHOR>

After an hour or so of reading it's my understanding that this is only required for AGPL.  Any insight is appreciated. <comment><USER2> I am not a lawyer, nor am I deeply versed in the nuances of GPL.

That being said, I believe the intention of the Affero clause was to close the loophole in the GPL which allowed companies to keep their products closed source as they never actually provided the software to their customers .

</comment><comment><USER3> IANAL but your understanding is correct.</comment>


Ask HN: What made you abandon learning to draw? - <AUTHOR> I'd love to hear more about any/all of<p>- what motivated you to learn to draw<p>- what you were interested in drawing<p>- what your biggest roadblock/weakness to getting better was<p>- how many times you've tried to learn <comment><USER2> I've always loved to draw. It's relaxing. I watch cartoons. I wanted to be an animator when I was a growing up.

People, scenes, animals. Both realistic and stylized.

Time. Art is as much a trade as anything else. It takes constant practice to get good and maintain it. Software paid better than art.

I have a bachelor's of arts, in art. I would draw, paint, or create for 20+ hours a week, every week, for a couple years. I also have an associate of arts in graphic design.

Ultimately, I do not practice anymore because I love programming too, it pays better, and there isn't enough time in the day to be great at both.

</comment><comment><AUTHOR> For me, personally:

> what motivated you to learn to draw

Half of me wanted to impress my friends. The other half of me wanted to make stories come to life.

> what you were interested in drawing

Mostly animated characters. Faces. Portraits.

> biggest roadblock/weakness

PROPORTIONS. I hated how I'd draw something and it would always look "slightly off" but I couldn't really put my finger on exactly why

> how many times you've tried to learn

Probably about 3 times..

</comment><comment><USER3> I discovered that although I can draw very well I have no visual memory. (For this reason it is actually very difficult for me to know who I'm talking to, even if I know them quite well.)</comment>


TED Talks For Becoming A Happier Person & Finding Your Passion In Life - <AUTHOR> http://blog.sokanu.com/top-10-ted-talks-for-becoming-a-happier-perso

<comment><USER2> Lazy, they forgot the most important one imho: [http://www.ted.com/talks/matthieu_ricard_on_the_habits_of_ha...](http://www.ted.com/talks/matthieu_ricard_on_the_habits_of_happiness.html)

:)

<comment><AUTHOR> A great point, I just didn't put it up because I just posted that a couple of days ago :D. See->[http://blog.sokanu.com/matthieu-ricard-on-the-habits-of- happ...](http://blog.sokanu.com/matthieu-ricard-on-the-habits-of-happiness)

Should add it to the list though, it's the ultimate happiness video. Thanks!</comment></comment>


The relatively unknown megafauna tragedy and its relevance today - <AUTHOR> http://barefootmuse.wordpress.com/2014/08/19/the-relatively-unknown-megafauna-tragedy-and-its-relevance-today/

<comment><USER2> I highly recommend the book "Ghosts of Evolution" about the lingering effects of these extinct megafauna on our lives today. Many of our ecosystems and even many species evolved in response to their presence.

A major theme of the book is how many of the fruits we see today (especially avocados, osange oranges, honey locust pods, possibly mangoes and many other large fruits) originally evolved to be eaten by megafauna. The idea is they would eat the fruit whole and swallow the pit, and poop it out somewhere. Evidence for this is that many of the trees have defenses against non- megafauna eating the fruits, or others have out-of-proportion defenses against any living animal today, the fact that many pits will only grow if they have been scoured (for example by the digestive system of an animal), and that the pits often seem over-defended, and the fact that many of these fruits are not eaten by any living animals and often fall from the tree and rot in place.

<comment><USER3> Thank you - I had never even thought of that despite eating those fruits every day. (Well every week)

</comment></comment><comment><USER4> This article is poorly written, bringing up Paraceratherium is disingenuous considering they went extinct 23 mya. It took 400 years after Columbus for the American Bison population to drop to near extinction, not 70 years.

Do people upvote articles without reading them?

<comment><USER5> > It took 400 years

This is not a meaningful number either if the drop (or, more to the point, the overhunting) only really started 70 years before the end of the period.

I haven't found any clear statement about this, but the following article talks about the "19th century hunts".

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

<comment><USER6> Yes, I assume the bison of the Great Plains were somewhat nonplussed when Christopher Columbus landed on an island in the Caribbean.

The point being that Columbus is not the relevant marker, even though the article brought him up. In this sense the GP comment has a point, that's bad writing.

It is interesting that the bison continued to thrive (until the 1800s), and I guess I never thought about why they outlasted the Ice Age/predation thing that killed off the other large animals.

<comment><USER7> I'm curious. How do you figure the natives killed off all the tens of millions of megafauna given that extinction occurred when they had just arrived over the bering strait, numbering a few thousand across north and south america?

<comment><USER6> I read the summary reports by experts, and that's their explanation (incidentally, I'm not sure about counts, but "tens of millions" sounds high for most megafauna species -- their small numbers is part of their survival problem).

If I remember right, the last time I read this story was at the elephant exhibit at the San Diego Zoo, or perhaps the standing exhibit at the La Brea Tar Pits. I'm just an interested outsider, so that's good enough for me.

IIRC, the whole Bering Straits story is itself more complex than I learned in grade school. It was open longer, and was wider and bigger than originally thought. I believe humans came across in several waves that are genetically or archeologically separable. I read a lot of stuff in _Science_ , and remember about 20%, and 50% of those memories are part-wrong, so take this with a grain of salt. ;-)

</comment></comment></comment></comment></comment><comment><USER8> If you're wondering how overkilling can happen, the Romans killed 9,000 wild animals (lions, bears, etc) in _one_ day during an opening event for the colosseum. And proceeded to sport kill thousands after: [https://en.wikipedia.org/wiki/Colosseum](https://en.wikipedia.org/wiki/Colosseum)

I can imagine exotic and big game has been the prime target of humans for a very long time.

</comment><comment><USER3> A terrible article about a fascinating subject.

I am inclined to give the benefit if the doubt in the whole " The only place megafauna has survived to some extent to the present day is in Africa where people traditionally have lived in harmony with nature". In many hands that would be hippy happy pseudo racist claptrap. And it might be but the next paragraph points to the more realistic "harmony with nature = avoiding humans"

I have severe doubts about the overkill theory - the fossil record is fairly sketchy and so many species died out within a few hundred thousand years of us arriving on the scene that exact timings are hard to believe. On top of which the practicality seems a bit hard - I can accept that some creatures might be defenceless against men and spears (giant sloths seem likely to lose out) but I am going to struggle seeing sabre tooth tigers as easy prey for man.

Climate change, Eco system collapse and diseases carried by apes and their dogs seem to hold the occam razor prize for most likely explanations. A spear through the kidneys would just be making a bad day at the office worse for megafauna.

</comment><comment><USER9> "The only place megafauna has survived to some extent to the present day is in Africa where people traditionally have lived in harmony with nature."

Bullshit.

From what I understand it's attributable to megafauna evolving alongside humans as they emerged in Africa. They had time to "learn" how to survive in the face of this new predator. In places like North America humans slaughtered and multiplied faster than their prey could adapt.

<comment><USER10> Though by many standards I could be considered an environmentalist, I find the "harmony with nature" trope to be laughable. Nature is not harmonious; it is a vicious battle of killing, eating, and survival. We should absolutely preserve and protect our environment. We can never live in "harmony" with something that is far from harmonious.

<comment><USER11> I likewise find the "harmony with nature" idea to be laughable, but for a very different reason. If "nature" has any meaning at all, then we are part of it. Other animals are perfectly happy to change their situation to their benefit. Beavers, for example, can create lakes by choking off rivers. Are they living "in harmony" with nature? That feels like a strange question to me, and so I wonder why it shouldn't feel like a strange question when the beavers are replaced by humans.

<comment><USER12> Animals without a natural check on their population and resource consumption can also experience a population boom followed by a sharp decline and even collapse, possibly extinction.

<comment><USER13> Yes, very true. I've recently been working on a mathematical extension of the Logistic function that models this process that's often seen in nature:

[http://arachnoid.com/peak_people](http://arachnoid.com/peak_people)

<comment><USER10> I wonder, could you create a closed form of the final solution by allowing only a portion of the nonrenewable resources to be consumed? At least, this should remove the sudden discontinuity in the slope of the nonrenewable resources function.

<comment><USER13> > I wonder, could you create a closed form of the final solution by allowing > only a portion of the nonrenewable resources to be consumed?

You may not be surprised to hear that that was my original, much desired goal, but after much thought and experiment I realized that the abrupt discontinuity caused by the exhaustion of the nonrenewables is real, for the reason that, in practice, the rate of nonrenewable use increase as their exhaustion approaches, creating an abrupt knee that resists conversion to a closed form.

> At least, this should remove the sudden discontinuity in the slope of the > nonrenewable resources function.

But that abrupt end to nonrenewables is real -- it reflects the fact that the growing colony becomes increasingly reliant on them as their exhaustion approaches. So the knee can't be removed without changing the meaning of the equation.

Oh, well -- as it turns out, there are many very common differential equations that resist conversion to closed form. Orbital systems with more than two bodies are a classic example. Another one is the integral to the common exponential function that gives us the normal distribution -- very commonly used in statistics and elsewhere, but no closed form. All applications of the normal distribution use a numerical algorithm called the "error function" to produce results -- all of them approximate, and having the drawback that they cannot be symbolically differentiated or integrated.

Maybe a much more skilled mathematician that I am could find a way around this obstacle, but I doubt it.</comment></comment></comment></comment></comment></comment></comment>