Via-ipv6.com: enabling IPv4 sites for IPv6 only networks - <AUTHOR> https://ungleich.ch/u/blog/enabling-ipv4-only-sites-for-ipv6-only-networks/ <comment><USER2> The title "Hacker News in Now Reachable via IPv6" is false. The Ungleich guys have done amazing work on promoting IPv6, but this is simply a proxy.

However, if you want to actually use HN over IPv6, then force it in your hosts file:

        news.ycombinator.com 2606:4700::6810:686e

This comment's written over IPv6. :)

<comment><USER3> If that works, why not publish a AAAA record?

<comment><USER2> Their moderation tools aren't completely IPv6 compatible. I've emailed HN every so often about IPv6 support over the past few years and they seem to have been making progress on it.

</comment></comment></comment><comment><USER4> Proxying is a terrible solution, since it allows the middleman to read all your data and masquerade as you (since cookies are part of the data.)

Your should use the 6to4 tunnel provided by your ISP instead.

<comment><USER5> 6to4 has been de-preferenced by most operating systems.

what isps provide 6to4 tunnels, or even 6in4 tunnels (which i can only assume you meant?)

(agreed on the proxying point, you'd have to explicitly trust the proxy operator)

<comment><USER4> It's de-preferenced relative to v4. Which, if you have v4, you should just use directly.

I was wrong above -- NAT64+DNS64 (not a tunnel) is generally what v6-only ISPs provide.

</comment></comment></comment><comment><USER6> Slowly getting there, but (IMHO) until mobile telcos start to push IPv6, I'm not seeing the momentum pushing it into normality.

Thing is, IPv6 took a while to come about (1) to solve a problem that had in the meantime created many workarounds and alas those workarounds work and still carry on for so many. Hence the return on investing in IPv6 when you have existing infrastructure is outweighed by the costs still and in business - it just works carries more weight than Engineers desires.

I still wonder when it will become the dominant over IPv4, but even those news items saying that xxxx will be the year of ipv6 moved onto IOT and xxxx will be the year of IOT.

But good that HN are onboard, but what factors do others see are for the stagnant uptake on rolling IPv6 out?

(1) [https://en.wikipedia.org/wiki/IPv6](https://en.wikipedia.org/wiki/IPv6) "In December 1998, IPv6 became a Draft Standard for the IETF, who subsequently ratified it as an Internet Standard on 14 July 2017"

edit add - formatting and reference

<comment><USER7> According to Google [1], IPv6 is now about 30% of their traffic.

[1] [https://www.google.com/intl/en/ipv6/statistics.html](https://www.google.com/intl/en/ipv6/statistics.html)

<comment><USER6> Interesting as looking at that zoomed in you can clearly see peak and trough playing out that seems to indicate that IPv6 becomes more popular during the weekends! Which would perhaps indicate that uptake and usage is more common with users than businesses users, possibly.

Not sure of exact explanation exactly, but certainly consistent trend upon that graph. Though does bug me when you have time based graphs using time and no indication what TZ the midnight/day cut-off mark used - may be using browser local, may not, you just don't know.

<comment><USER7> The most common explanation I've heard is that home and mobile networks are adopting IPv6 more quickly than businesses, so you see more v6 traffic on the weekends when people are using their personal connections.

<comment><USER3> Large ISPs (in the USA anyways) like Comcast turn on IPv6 by default.

<comment><USER7> As I write this, I'm on a Comcast connection with IPv6.

<comment><USER3> My home has a comcast /60, so I could give every human on earth (call it 8 billion) an IPv4 worth of space (4 billion).

I've got a VPS as well with Linode that does IPV6 which makes IPv6 all the more handy.

In reality I just have a /64 for untrusted wireless, /64 for trusted wireless, /64 for trusted wired network, and /64 for untrusted wired network.

Nice that I can easily get to my OpenGarage widget remotely without having to redirect ports, or depend on some random cloud.</comment></comment></comment></comment></comment></comment></comment>


Ask HN: Marketing/Advertising information? - <AUTHOR>

What are your best books, online resources, articles, blogs, etc for information on marketing and advertising?  I want to know the essentials that would be useful to a web startup. <comment><USER2> [http://www.google.com/search?q=site:news.ycombinator.com+%22...](http://www.google.com/search?q=site:news.ycombinator.com+%22ask+yc%22+marketing)</comment>


Ask HN: Good C (not C++) code for reading/learning? - <AUTHOR> I'd like to polish up my C. Can you recommend some good open source projects which are good examples of coding style and organization in C? <comment><USER2> The source for Lua is pretty good (if a little dense at times), and you can read it in-browser: <http://www.lua.org/source/5.1/>

There's a suggested roadmap for reading it, too: [http://www.reddit.com/comments/63hth/ask_reddit_which_oss_co...](http://www.reddit.com/comments/63hth/ask_reddit_which_oss_codebases_out_there_are_so/c02pxbp)

It is written in _ruthlessly_ standard ANSI C (for maximum portability).

It will probably also complement your C -- it's intended to be a handy drop-in scripting language to embed in C programs, though it's also a pretty cool language on its own merits. They had an unwavering focus on keeping it clean and very small for embedding, and they make some really interesting choices along the way. It's sort of like a minimalistic Python; it gets a lot of power out of using "tables" (rather like Python dictionaries or Perl hashes) as a primary data type.

</comment><comment><USER3> SQLite is _always_ recommended in threads like this (of which, I will point out, there have been several here and at reddit...you might like to search for them). I haven't looked at it since very early releases, but I'm guessing quality has gotten better over time, since it is more stable than ever and faster than ever, and still astoundingly lightweight.

<comment><USER4> Interesting

</comment></comment><comment><USER5> This is probably more than you are looking for, but the fftw code ( www.fftw.org ) is a pretty amazingly designed piece of C code that does some very advanced stuff. However, if you trying to get off to a good start, you might want simplistic examples.

One thing I think helps you become a better programmer, is to read your own code carefully a long time after you have written it.

</comment><comment><USER6> GNOME code and the Linux kernel are both pretty good examples - writing a well-structured, small GTK+ app will do wonders for your C skills

</comment><comment><USER7> How about the Linux Kernel? \- Well-documented. \- Always good to know. \- Good, well-organised code. \- _Real-life_ C code.

</comment><comment><USER8> It's a little dated now but the Tcl/Tk source is very good. I'd also recommend the FreeBSD source tree.

</comment><comment><USER9> One piece of code I found particularly useful was the old tftp. It's small enough yet very instructive.

</comment><comment><USER10> Git?</comment>


The Polar Bears of Hudson Bay - <AUTHOR> http://www.huffingtonpost.com/mike-arkus/going-bi-polar-with-the-p_b_8501402.html <comment><USER2> This is nothing more than a travel blog with way too many photos. I thought there would be some commentary on how the polar bears are struggling to eat since the ice in Hudson Bay is not present for long, or how climate change is altering the habitats of various species of bears.</comment>


What should a 25 year old do to get hired as a CTO in 10-15 years? - <AUTHOR> What can young talent do to become technically strong and capable enough to be a CTO of large/mid size company in next 10-15 years? <comment><USER2> I see two basic paths, Corporate/Enterprise or Startup. One requires insane amounts of ladder climbing and political posturing but may have better(more stable) base pay. The startup path may be a bit more risky but could get you there faster. You can start a company that you believe has a good chance of being acquired (I suggest something that falls in the 500k-5 million range) That could drastically reduce the timeline. I think you would learn more about the actual job vs getting caught up in all the politics associated with mid to large sized companies as you move towards your goal.

</comment><comment><USER3> Working hard, being curious, have a lot of different experiences... and always trying to understand how a technology fit to a business or organisational need or constraint Some technologies are best to move fast, other to recrut cheap, and so on... In general, all CxO jobs require a good/deep understanding of 1) the field (technology, finance...) 2) how people work together in an organisation... and how to make them work to get some specific result under constraints (timing, finance..) 3) how the business work and why the company is successful.. or not: strength, weakness,

</comment><comment><USER4> Very much depends on the company but here's what I think helps, perhaps in this order...

1\. Be really good at Powerpoint

2\. Be really good at explaining technology to non-technical people

3\. Conversely be really good at understanding the business domain you work in

4a. Spend 15 years either at a big four consultancy

4b. Spend 15 years at the company you intend to be CTO at and be good at corporate politics

5\. Have a super technical wingman who is loyal (and doesn't want the CTO job)

</comment><comment><USER5> At a larger company:

\- you obviously need to move to management.

\- usually requires(do most of the managers have mbas?) an mba at a larger company.

\- could transition into project management then into resource management

\- be really good at what you do and out work everyone hours wise.

\- make sure your contributions are noticed up the chain.

</comment><comment><USER5> Traditional: 1\. Progressively get better and better roles at similar size companies(or same company) Possibly Faster: 2\. Get better roles at smaller company get to CTO(probably much faster) and then move to bigger and bigger companies.

</comment><comment><USER6> Start with becoming small startup CTO tommorow. If it succeed then mission acomplished and if not, re-evalute again inly.much smarter this time.</comment>


TIS-100 – Tessellated Intelligence System - <AUTHOR> http://www.zachtronics.com/tis-100/ <comment><USER2> For really good non-programming puzzle games, I'd recommend Snakebird[0] and Stephen's Sausage Roll[1]. Try out Snakebird first, it's cheaper and works great on mobile devices. Don't let the cute art fool you, it's a monstrous game. If you get through most of Snakebird and still don't hate yourself, look into SSR. It's much more hardcore, but has some mind blowing puzzles.

As far as programming puzzle games go, Zachtronic basically has the market cornered.

[0] [http://snakebird.noumenongames.com/](http://snakebird.noumenongames.com/) [1] [http://www.stephenssausageroll.com/](http://www.stephenssausageroll.com/)

<comment><USER3> > As far as programming puzzle games go, Zachtronic basically has the market > cornered.

I wouldn't say that: There is at least

\- Human Resource Machine

and if you look a little bit more around (programming games that are not programming _puzzle_ games in the purest sense) there is

\- Else Heart.Break()

\- Glitchspace

\- Hack 'n' Slash

There also seem to be (I don't know this game, but it seems plausible to me that they fit the list)

\- Cyber Sentinel

<comment><USER4> It's true, but all of those games are... well...

Zachtronics doesn't pull any punches. Their games are amazing. Even the deceptively simple Infinifactory is actually full of amazing and beautiful opportunities for elegant programming concepts (the first time you realize, "I can... I can make a clock with controllably variable periodicity!? What?" And TIS-100 resembles programming in a stripped down Erlang-like mode.

HRM is a great starter into the Genre, it's sure. But Spacechem is on a totally different level of complexity and beauty and depth.

<comment><USER2> What I should have said is that Zachtronics has the market cornered on programming puzzle games _for programmers_. I could suggest Human Resource Machine to someone who has never programmed before, but I would never do that with TIS-100.

Making a TIS emulator in Elixir sounds like a fun and useless project.

<comment><USER5> Somebody's already done one in C: [https://eviltrout.com/2015/06/29/an- emulator-for-tis-100.htm...](https://eviltrout.com/2015/06/29/an-emulator-for- tis-100.html)

And according to Zach, the intended market wasn't just programmers (which is why he explicitly killed bit manipulation, and the largest number a TIS-100 register can hold isn't a power of two), and I've heard tales of non- programmers enjoying it.

Then again, if you like Zachtronics games, especially TIS-100, then have I got a hobby for you...

</comment></comment></comment></comment></comment><comment><USER6> It reminds me of DCPU-16 that was supposed to be a part of the cancelled 0x10c game[0]. The specs[1] of the cpu and other hardware where published and the community created emulators, tools and programs around it [2][3]. Even custom, virtual hardware.

It wasn't clear what the DCPU-16 was going to be used for. But the community assumed it will handle navigation, communication, weaponary and internal spaceship systems.

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

[1] [https://github.com/lucaspiller/dcpu- specifications](https://github.com/lucaspiller/dcpu-specifications)

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

[3] [http://www.0x10cforum.com/](http://www.0x10cforum.com/)

<comment><USER5> IIRC, that use was confirmed. There was also a minecraft mod that allowed you to create computers with emulated 6502s as processors. It ran forth, but you could also customize the OS.

Shame it died, really.

<comment><USER7> I played that mod. It made me really want Forth to have been part of the college education I had.

<comment><USER8> Ah yes, Red Power. The developer, Eloraam has been working on making a standalone game based on it.

[https://twitter.com/TheRealEloraam/status/767550784464625664](https://twitter.com/TheRealEloraam/status/767550784464625664)

Also, if you like TIS-100 and Minecraft, check out the TIS-3D mod! It's basically TIS-100 in Minecraft. Build your own modular computers.

[https://mods.curse.com/mc- mods/minecraft/238603-tis-3d](https://mods.curse.com/mc- mods/minecraft/238603-tis-3d)

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

<comment><USER5> As I said, knowing Eloraam, it'll be done by 2029.

Mod looks cool, though.

</comment></comment></comment></comment></comment><comment><USER9> I bought their newer game, Shenzhen I/O last night and it is very cool. It's still early access but I've been enjoying it. [http://store.steampowered.com/app/504210/](http://store.steampowered.com/app/504210/)

Edit: Just realized there's a post about shenzhen too, woops.

</comment><comment><USER10> For the record, the game is 50% off here (and 10% goes to a charity of your choice): [https://www.humblebundle.com/store/tis100](https://www.humblebundle.com/store/tis100)

</comment><comment><USER11> If you loved TIS-100 you will absolutely love its follow up Shenzhen IO to death. Its like TIS-100 (in regards to the "solve problems by programming" part) only this time you also need to create the machine running your programs by taking components and linking them together. And I explicitly say "components" because you not only have microcontrollers, but also memory banks, bridges, screens and the like.

TL;DR: basically Shenzhen is TIS-100++ and its freaking awesome.

Check it out here: [http://www.zachtronics.com/shenzhen- io/](http://www.zachtronics.com/shenzhen-io/)

The video on that page was entirely made from ingame material, by the way.

<comment><USER12> I've seen it, it looks great. Do you have any idea how useful it is for actually learning how microcontrollers work?

<comment><USER13> Not the person you're replying to, but it's a good primer/introduction to toy with. Much of the waveform generation stuff and I/O aligns pretty well with stuff that was taught in school. Granted, it simplifies stuff a bit since it's a game. However, it does bring me back to my microcontroller design classes.

</comment></comment></comment><comment><USER14> Watching the videos, this really brings how it felt learning to code circa '76-'77... with Atari-2600 style sounds, an assembler (ZOMG), a back story plus achievements! Love it :-)

These kinds of games should be mandatory for CS education. Even better if you could toggle through the entire architecture being simulated, Bus, CPU/ALU, Memory and all.

<comment><USER5> There are a few differences: TIS explicitly aims away from bit-twiddling, and in fact has no real bits to speak of (the integer range is -99 to 99, IIRC, but it's definitely something along those lines.

</comment></comment><comment><USER15> Here is another programming game, this one with a nice GUI: [http://tomorrowcorporation.com/humanresourcemachine](http://tomorrowcorporation.com/humanresourcemachine)

<comment><USER16> from the same company!

<comment><USER5> No, actually.

</comment></comment></comment><comment><USER17> The most fun I had with a programming contest is the ICFP contest 2007 [0].

[0] [http://save-endo.cs.uu.nl](http://save-endo.cs.uu.nl)

        -=-=-=-=-=-=-=-
        Spoilers ALERT
        -=-=-=-=-=-=-=-

You will be writing an interpreter to write images, then you'll find sound, and you'll find yourself working with an interactive fiction, and...

</comment><comment><USER18> A fun game I've been playing: [http://www.microcorruption.com/](http://www.microcorruption.com/)

Gotta use those MSP430 assembly skills to bust through digital locks.

</comment><comment><USER19> You know what's also an open-ended programming game?! Programming.

<comment><USER20> Limited resources and means, you know, promote creativity. Programming a modern standard computer nowadays is quite available to average Joe and Jane. That's why we have tons of crapware. But, forcing them to program a less common, sophisticated, complicated or limited architecture forces them to adapt and into being more creative. This _serious game_ is quite a good example, and, I suppose that was also the intention behind it.

<comment><USER21> I prefer actual old hardware for that (60-70-80s), that way the results really give some strange satisfaction. Personal ofcourse.

<comment><USER22> Actual old hardware has a problem though: might me impossible to find.

For example I live in Brazil, I learned to code trying to port MSX Basic games to a 286 GWBASIC, because I never saw a msx in person.

Also, some other hardware I would love to fool around and never saw one:

C64, Amiga, Sega Saturn, 3DO, PC Engine, non-Intel Mac, a real NES (I owned a clone once), programmable calculators.

<comment><USER21> MSX's are hard to find in Brazil? I thought it used to be very very popular there. I see many of them here [0] for prices I would definitely pay; here it is very hard to find them for those prices still. I would buy stuff like this [1] or [2] blindly. If you buy it I will pay you more + shipment to me :)

C64s are still ok to get in other countries; MSXs are getting scarce. I managed to collect over 100 of them luckily as it is my favorite computer (nostalgia sure, but I also find it important that young people can see how it used to be).

I have all the computers you name there, several of each; I can trade you for a working Gradient or Hotbit. Or just pay you :)

Personally I like the ZX Spectrum & MSX the best to code on, because I was raised on Z80 assembly. After that the Amiga, but I already find that a bit too advanced; MSX is so limited (a little over 3 megahertz & usually 64-128 kilobytes! of RAM) it really is a game to get things working at some speed. But people are still doing it; for me the highlight is [3] which I find far more impressive than the latest JS-soup framework :)

Then again, this [4] is impressive!

[0] [http://lista.mercadolivre.com.br/msx](http://lista.mercadolivre.com.br/msx) [1] [http://produto.mercadolivre.com.br/MLB-791538729-console- msx...](http://produto.mercadolivre.com.br/MLB-791538729-console-msx- gradiente-11-_JM) [2] [http://produto.mercadolivre.com.br/MLB-792461786-msx- expert-...](http://produto.mercadolivre.com.br/MLB-792461786-msx- expert-11-c-teclado-funcperfeito-revisado-ccaixa-_JM) [3] [http://www.symbos.de/](http://www.symbos.de/) [4] [http://webmsx.org/](http://webmsx.org/)

</comment></comment></comment></comment></comment><comment><USER23> One of my all time favorite programming puzzle games is Box-256, which I haven't seen mentioned.

[http://box-256.com/](http://box-256.com/)

</comment><comment><USER24> If it weren't for this post, who knows when I would have found out there is an iOS version of this game! Discoverability on the iOS AppStore is really bad.

<comment><USER25> I'm not seeing it on iPhone. Is it iPad only?

<comment><USER26> iPad only. It's listed in the App Store as TIS-100P.

US App Store link: [https://itunes.apple.com/us/app/tis-100p/id1070879899](https://itunes.apple.com/us/app/tis-100p/id1070879899)

</comment></comment></comment><comment><USER5> Probably my favorite Zachtronics game. Although I haven't had a chance to play IF or SIO yet.

</comment><comment><USER27> It's actually pretty good! Trapped me for couple hours solving some non trivial puzzles!

</comment><comment><USER28> Did they just release two games at the same time (along with Shenzhen I/O)? Or did I miss this one earlier?

<comment><USER29> This is an earlier release

<comment><USER30> by the same people?

EDIT: NM, yes.... by the same

</comment></comment></comment><comment><USER31> Love it -- reminds me of a more focused Uplink.

<comment><USER5> This doesn't remind me of Uplink at all. For one thing, TIS very much focuses on actual programming, even if it is an estoric language for an architecture that could never exist.

<comment><USER32> > for an architecture that could never exist.

Interestingly, there _is_ a real world equivalent to the TIS architecture: the GA144[1] has lots of memory-constrained Forth cores with software defined I/O between them.

[1] [http://www.greenarraychips.com/](http://www.greenarraychips.com/)

<comment><USER33> Or the Connection Machine, where the individual processors were arranged in a hypercube.

<comment><USER5> Similar architectures could exist, but the exact one the TIS used? Not in a million years, unless somebody was explictly doing it to recreate the game IRL.

<comment><USER33> Ok, sure. It's only similar to architectures which have existed. I doubt there have been any serious ones which limited you to a dozen instructions at a time :)

There's nothing in the TIS-100 architecture that is unique or unheard of, just things that are left out of it.

</comment></comment></comment></comment></comment></comment><comment><USER34> I've played both TIS-100, and their earlier game, Space Chem. Like Space Chem, which doesn't have a whole lot to do with real chemistry, TIS-100 doesn't have a whole lot to do with programming. They use chemistry and programming as window dressing for what are otherwise pretty uninspiring puzzle games.

To my knowledge, the game that gets closest to real assembly language programming is Core Wars.[1][2]

Also, it's not assembly language, but Screeps[3] uses real Javascript programming, or any language that compiles to Javascript.[4]

[1] - [https://en.wikipedia.org/wiki/Corewar](https://en.wikipedia.org/wiki/Corewar)

[2] - [http://www.corewars.org/](http://www.corewars.org/)

[3] - [https://screeps.com/](https://screeps.com/)

[4] - [https://github.com/jashkenas/coffeescript/wiki/list-of- langu...](https://github.com/jashkenas/coffeescript/wiki/list-of-languages- that-compile-to-js)

<comment><USER35> I am not sure how you can say these games "don't have a whole lot to do with programming". They _are_ programming.

Maybe you didn't ever have the experience of programming on an 8-bit CPU and don't get the joke? The machines in these games are comically limited, "this is like the cruftiness of an 8-bit CPU but even worse". The funny thing about TIS-100 is that it's a speculative fiction game, postulating an alternate reality -- what if we had gone down the path of multicore CPUs back when they were still super-primitive?

<comment><USER35> Wait I just realized maybe a lot of kids these days don't know what assembly language is and that's why one might say this "doesn't have a lot to do with programming"???

<comment><USER36> It seems to me that all programming is, in some sense, about solving puzzles. I used TIS to as a platform to introduce my wife to programming, just to expose her to it and see if it interested her.

She's very much into puzzle solving, so it seemed a natural presentation for her. We shared screens (mac) and played together discussing how we would solve the problem and then work together to implement it.

It was pretty fun. Honestly I wish there were more games that were cooperative and not about shooting things. The only other game we play together, and have for years now, is minecraft.

BTW, braid is still one of my favorites.</comment></comment></comment></comment>


GCC: Improve on memory cost in coloring pass of register allocator - <AUTHOR> https://gcc.gnu.org/ml/gcc-patches/2016-01/msg01811.html <comment><USER2> Summarizing the interesting bit for non-compiler-specialists: This is an improvement to a part of GCC's compiler optimizations which will make compiled-with-GCC programs slightly faster. The SPEC INT benchmark mean score went from 3717 to 3730 (0.5%), and SPEC FP from 4752 to 4775 (0.34%). Which doesn't seem like much, but making a good compiler in practice tends to mean stacking lots and lots of improvements of this magnitude on top of each other.

<comment><USER3> But is 0.5% statistically significant? How do I know it isn't natural variation or measurement error?

He must have the most stable setup in the world if he has confidence in those results.

<comment><USER4> You know way way more about compilers than I do, but the key is in this:

Furthermore, there exists a path from h to a use of v which does not go through d. For every node p in the loop, since the loop is strongly connected and node is a component of the CFG, there exists a path, consisting only of nodes of L from p to h. Concatenating these two paths proves that v is live-in and live-out of p.

I have no idea how to formally prove that assertion (it's logically sound, afaik, someone like Walter Bright will have to jump in, he probably knows GCC inside-out), but if correct, the code change is correct semantically. The computational gain can be trivially exhibited (again, no idea how to 'prove' it) by throwing code at it and seeing the RTL emitted. (I agree it lacks 'rigor' in the academic sense, but based on the list to which he submitted his code-change and the fact that he's at Xilinx and sent it to his colleagues makes me confident enough that the change is sound.)

Edit: Fair enough. You've convinced me. (Though the SPEC2000 resulting numbers still have me in the 'maybe' category - your argument below is more sound than my ignorance.) Anyone reading this should defer to Danny's posts rather than mine for the time being (after a day or two, read the resulting responses to see the expert analyses on the mailing list). Keeping this post intact solely for continuity for the reader. RE: Walter - I'd assume he'd keep up with the competition and know enough about the RTL as it hasn't changed extensively in the last decade to make a valid opinion w/r/t changes. Either way, gracefully upvoting Danny's two posts ;)

<comment><USER5> "someone like Walter Bright will have to jump in, he probably knows GCC inside-out"

FWIW, walter has not contributed a single patch to GCC i can find in the past 10 years (It may be longer, i stopped looking) :)

Not that this makes him bad in any way, mind you, he's just not who i'd go to for gcc expertise. That would be someone like Richard Henderson, who is pretty much never talked about, but has touched pretty much all parts of the compiler and always does great work.

Also note that embedded developers in general do not have a good reputation among compiler people for doing "sound work". Again, not that this is a characterization of their engineering skills - They often have very tight deadlines, so the amount of time they can spend figuring out things instead of applying bandaids tends to be pretty limited. So they patch something, submit it, and move on.

<comment><USER6> "walter has not contributed a single patch to GCC i can find in the past 10 years (It may be longer, i stopped looking) :)"

It's worse than that. Because LLVM and GCC are copy-lefted and his compiler has a proprietary backend, he forces himself not to even look at their code in order to make the lawyers happy.

<comment><USER7> Haha, I once got sued by a company claiming I stole code from them, and their lawyer got sent packing when it turned out they had stolen the code from me. (I had a registered copyright on it.)

One thing I absolutely adore about Github is the audit trail about who contributed what and when. It's a solid gold defense, and a way to limit the damage if someone does check in bad code.

</comment></comment></comment></comment></comment></comment><comment><USER5> So, this is actually only true for natural loops :)

In particular: "Consideration of only enter_freq is based on the concept that live Out of the entry or header of the Loop is live in and liveout throughout the loop."

This is demonstrably false for loops with >1 exit, or multiple latches.

IE it assumes that there is a single loop exit and latch that everything goes through.

That said, most compilers, however, including GCC, just don't care about loops with these kinds of weird control flow structures, and either duplicate nodes, or just don't consider them loops ([https://gcc.gnu.org/onlinedocs/gccint/Loop- representation.ht...](https://gcc.gnu.org/onlinedocs/gccint/Loop- representation.html))

More interestingly, it's not clear why the patch should make any difference at all, nor is it explained. It just makes an assertion that it is better to do it this way (" This increases the updated memory most and more chances of reducing the spill and fetch and better assignment.")

(Expanded on this a bit to make it more clear).

When calculating the cost of spills/moves/etc, usually you want to take into account how often a block is executed. This is because you often have multiple places you can put spills/moves/etc to get a register. Multiplying by entry/exit frequencies tells the compiler "If you need a register, it is more expensive to spill something that occurs in a block that happens all the time, than something that occurs in a block that happens infrequently". As an aside, calculating predictions on loops ånd nested-loops statically is non-trivial (it requires estimating the trip count of each loop).

In any case, this patch changes the move/spill cost calculation to avoid taking into account the exit frequency of blocks (well, really edges, but let's ignore that) in loops, under the argument that it should be the same as the entry frequency.

The problem with that is exactly the last sentence. It shouldn't matter. This change should, in practice, be a no-op, or at best, is a random cost model change.

From another perspective, it just divides all the previous frequencies of things in loops by 2 compared to what they were before (assuming the exit frequencies are sane. If they are not, that is a problem to be solved instead of this one). There is no given reason this is a necessarily good thing to do :).

Basically, i'm not sure this patch will go in, because it's not clear it's really solving whatever underlying problem exists.

I expect someone to come along and tell them to provide better analysis of where exactly it's helping and what the cost numbers are that this is changing "for the better".

<comment><USER8> Why do you think this is a no-op? Looking at the diff, the code was summing the entry and exit counts. So, by the same argument, that means certain things were being double counted (considered higher cost) and now aren't.

I assume (like you), that someone will come along and point out that this doesn't really apply to all loops.

<comment><USER5> It's a noop in most cases because the cost of spilling a given loop variable is still the same relative to other loop variables. But yes, the only affect it should have is to possibly value loop variables low enough to spill them instead of non loop variables (note that non loop variables are calculated using both exit and entry frequencies) That is almost certainly a bad idea in general, execution frequencies are what you should use whether in loops or not. It most likely the real issue is a bunch of loops are having their relative (to non loop blocks) execution frequencies over estimated highly, and in reality the loop doesn't execute much

</comment></comment></comment><comment><USER9> IME, optimal register allocation isn't so important anymore. In normal code, function bodies are so small that all local variables can be kept in registers. I.e, if the # of local variables is small, like 5, then the register allocation is optimal by default. It would be interesting to see before and after assembly code from c functions that gcc generates.

<comment><USER10> At least C++ depends for its performance on very aggressive inlining of small (often one-line) functions.

It is not unlikely that your hundreds of tiny functions become one massive "function" after high level optimization.</comment></comment>


Show HN: Nebula – a distributed graph database written in C++ - jamie-vesoft https://github.com/vesoft-inc/nebula <comment><AUTHOR> Interesting stuff, thanks for sharing!

How did you decide to use an SQL-like query language rather than a declarative query language like Neo4j uses (Cypher query language)? What do you see as the pros and cons of that decision?

Do you have any plans currently to design an ETL tool to make extracting data from a RDBMS and loading into NebulaGraph easier?

I didn't see this in any of the documentation (though I did admittedly skim), but is there any sort of visual front-end built in? If not, do you have any plans to make one?

<comment><USER2> SQL is a declarative language. Cypher is somewhat SQL-like, also declarative language which exists to make the expression of graph queries with predicates over nodes and edges easier to express.

<comment><AUTHOR> Thank you for the correction. You are correct, SQL is a declarative language. It would've been more accurate for me to refer to Cypher as 'a more expressive declarative query language' (specifically for the graph database paradigm) than a typical SQL-like query language.

</comment></comment></comment><comment><USER3> Looks interesting. Good luck! Couple of questions: 1) why did you decide to create your own graph query language instead of trying to follow recent graph query languages standardization trend (e.g., see [https://www.tigergraph.com/2019/02/25/the-road-to- standardiz...](https://www.tigergraph.com/2019/02/25/the-road-to-standardized- graph-query-language-gql-part-1) and [https://www.tigergraph.com/2019/03/15/the-road-to-a- standard...](https://www.tigergraph.com/2019/03/15/the-road-to-a-standardized- graph-query-language-gql-part-2\);) 2) do you plan to support semantic features [i.e., RDF/S, Gremlin, SPARQL, inference]; 3) do you plan to have SDKs for popular languages [e.g., Python, TypeScript]; 4) did you benchmark (or plan to do so) Nebula Graph against competition in terms of performance [i.e., data import, query throughput and latency, inference speed, if/when supported]; 5) have you figured out which features will remain open source and which ones will be enterprise-only (I assume that you plan to follow the Open Core business model)? Thanks!

<comment> jamie-vesoft Thanks for the questions! Good ones indeed.

1)nGQL will be compatible with the international standard GQL.

2) Currently no

3) So far the following SDKs are available:

       Python https://github.com/vesoft-inc/nebula-python

       Java https://github.com/vesoft-inc/nebula-java

       Go https://github.com/vesoft-inc/nebula-go

4) We are working on the benchmark. Stay tuned.

5) Yes we'll follow the Open Core business model like you said. All the features that are open source today will remain open source. :)

Please let me know if you have any further questions.

<comment><USER3> It's my pleasure! Thank you for the clarifications. I will definitely follow your efforts. :-)

<comment> jamie-vesoft Much appreciated! You may find us on Twitter to follow the most recent updates.:) Also, welcome to be a contributor!

</comment></comment></comment></comment><comment><USER4> This looks _good_. I like the query language.

Whats the status of the C++ client?

[https://github.com/vesoft- inc/nebula/blob/master/src/client/...](https://github.com/vesoft- inc/nebula/blob/master/src/client/cpp/GraphClient.cpp)

I see it has connect/execute/disconnect. This seems like the minimum required. What can't I do with that basis?

<comment> jamie-vesoft Glad you loved the query language!

The C++ client is PR ready now:

[https://github.com/vesoft-inc/nebula/pull/1013](https://github.com/vesoft- inc/nebula/pull/1013)

</comment></comment><comment><USER5> Nice to meet everyone here. As a newcomer, I would like to introduce ourselves a little bit. Nebula is inspired by the Facebook internal project Dragon ([https://engineering.fb.com/data-infrastructure/dragon-a- dist...](https://engineering.fb.com/data-infrastructure/dragon-a-distributed- graph-query-engine/)). Fortunately I was one of the founding members of the project. The project was started in 2012. Since then I've been spent all my time working on the graph databases.

The goal of Nebula is to be a general-purposed, distributed graph database. We welcome any positive feedback and technical discussion. We would love to learn to the community and to provide a product which truly satisfies customers' needs.

</comment><comment><USER6> Any production usages that can tell us about how much it can handle? How does it compare to dgraph?

<comment> jamie-vesoft Thanks for showing interests in Nebula Graph!

In some production deployments, the graph size reaches hundreds of billions of edges and data size reaches dozens of TB.

</comment></comment><comment><USER7> I gave the tutorial using docker a try. The SQL like query language is OK until it gets to doing queries with where clauses on the data. Some form of help and auto completion would be great.

I recommend to align with the GQL standard: [https://www.gqlstandards.org/](https://www.gqlstandards.org/)

And Apache Tinkerpop. E.g. a RDF Sail implementation for Nebula. [http://tinkerpop.apache.org/](http://tinkerpop.apache.org/)

<comment> jamie-vesoft Thanks so much for trying Nebula! We really appreciate it.

Sorry about the where clause issue. Do you mind bringing an issue in this regard on our GitHub repo? So that we can assign it to relevant staff.

As to the query language, thanks for your suggestion and nGQL will surely be aligned with the GQL standard. We are keeping a close eye on it. :)

We are planning to support OpenCypher in the first half of 2020 and TinkerPop would be the next.

Thanks again! Here's our slack group btw and you may raise any question there: [https://join.slack.com/t/nebulagraph/shared_invite/enQtNjIzM...](https://join.slack.com/t/nebulagraph/shared_invite/enQtNjIzMjQ5MzE2OTQ2LTM0MjY0MWFlODg3ZTNjMjg3YWU5ZGY2NDM5MDhmOGU2OWI5ZWZjZDUwNTExMGIxZTk2ZmQxY2Q2MzM1OWJhMmY#)

</comment></comment><comment><USER8> Wow, not sure how I missed this! Bravo!

If anyone involved would appreciate access to Graphistry to experiment with a gpu client/cloud visual analytics side (e.g., jupyter & react), let me know (leo@....com). Would love to see them together!

<comment> jamie-vesoft Exciting! I know Graphistry from Twitter.

</comment></comment><comment><USER9> We changed the URL from [https://github.com/vesoft- inc/nebula](https://github.com/vesoft-inc/nebula) to the project page.

<comment> jamie-vesoft Hey, thanks for letting me know. May I ask why?

<comment><USER9> Because it's more project-specific and thus stands out more. There are a ton of Github links posted to HN, obviously.

If you'd rather we switch to the other URL, let us know and we can do that.

<comment> jamie-vesoft Ah I see. Thanks for the explanation! Could you please change the URL back to the GitHub URL? Also the title? Much appreciated!

<comment><USER9> I've changed the URL back from [https://nebula-graph.io/](https://nebula- graph.io/).

The submitted title ("Show HN: An open-source distributed graph database written in C++") led to lots of arguments, so we changed it in accordance with HN's rules about baity titles. That's in [https://news.ycombinator.com/newsguidelines.html](https://news.ycombinator.com/newsguidelines.html).

<comment> jamie-vesoft Thanks for the explanation. I thought that was the reason you changed the title. Makes sense to me. :)

</comment></comment></comment></comment></comment></comment><comment><USER10> It looks really neat! What's your plan on making this project viable in the long run? Do you envisage to monetize hosting, or maybe create a community vs. paid edition?

<comment> jamie-vesoft Glad you liked the project! Hosting service would be the main monetization method. In addition, we will be providing consulting, training and all sorts of enterprise services.

</comment></comment><comment><USER11> This is very interesting. Anybody use it? Alternatives?

<comment><USER8> We help bring gpu visual analytics & investigation automation to users of all sorts of graph DBs (think tableau & servicenow for graph), so based on our enterprise/big tech/gov/startup interactions:

1\. Shortlist (and in no order): Neo4j, AWS Neptune, Datastax Graph, TigerGraph, Azure CosmosDB, and JanusGraph (Titan fork) are the ones we see the most in practice, and not in production but rumor-mill, Dgraph, RedisGraph, & ArangoDB. The three-and-four-letter types seem to roll their own, for better or worse. There are also some super cool ones that don't get visibility outside of the HPC+DoD world, like Stinger & Gunrock. Interestingly, the reality is a ton of our graph users aren't even on graph DBs (think Splunk/ELK/SQL), and for data scientists, just do ephemeral Pandas/Spark. As someone from the early days of the end-to-end GPU computing movement, we're incorporating cuGraph (part of nvidia rapids.ai) into our middle tier, so you get to transparently benefit from it while looking at data in any of the above.

2\. I now slice graph DB's more in terms of OLTP (neo4j, janus, neptune, maybe tiger) vs OLAP (spark graphx, cugraph) vs batch (janus, tiger) vs friendly BI/data science (neo4j) vs friendly app dev / multi-modal add-on (CosmosDB, Neo4j, Arango, Redis). Curious to see how this goes -- given the number of contributors, I'm guessing it's doing well in at least one of these. +1 to hearing reports from others!

<comment><USER11> Thanks, I really appreciate the comprehensive write up of what your team is seeing. Any chance of a longer blog post that expands on this, especially pro- cons and performance?

<comment><USER8> Yes, that is a great idea!

</comment></comment></comment></comment><comment><USER12> The architecture diagram looks interesting, would love to read more about it if anyone finds something.

<comment><USER13> I found some articles about the architecture and design of the database in their repo:

Overall structure: [https://github.com/vesoft-inc/nebula/wiki/Nebula-Graph- Archi...](https://github.com/vesoft-inc/nebula/wiki/Nebula-Graph-Architecture- Overview)

Storage engine design: [https://github.com/vesoft- inc/nebula/blob/master/docs/manual...](https://github.com/vesoft- inc/nebula/blob/master/docs/manual-EN/1.overview/3.design-and- architecture/2.storage-design.md)

Query engine design: [https://github.com/vesoft-inc/nebula/wiki/Query-Engine- Overv...](https://github.com/vesoft-inc/nebula/wiki/Query-Engine-Overview)

Hope that helps. :)

<comment><USER14> Thanks

</comment></comment></comment><comment><USER15> Love the query language! Very easy to dive into. Any companies using this in production?

<comment> jamie-vesoft Glad you loved the query language. Simplicity and versatility are our design goals for the language.

Currently the project has been deployed in multiple leading internet companies in China, including Tencent, MeiTuan (Chinese Yelp), Red (Chinese Pinterest), Vivo, and so on.

</comment></comment><comment><USER16> SPARQL?

</comment><comment><USER17> It's not open source, as it is licensed under Commons Clause according to the README, which according to the FAQ is not open source.

I'd be interested in knowing whether the commons clause license has been challenged as the wording is rather simple

<comment><USER18> Honestly, I don't see what's wrong with expecting payment for your work if someone else decides to sell it. Why should 'open source' get conflated with free (as in gratis)?

For me, open source has been an incredible way to learn software - it's syntax, it's architecture, it's control flow, it's gotchas.

From my understanding of the license [1], you can see the code, learn from it, do whatever you want with it, modify it if you so please, improve on it, whatever. The only thing you cannot do is sell it. Because you've taken someone else's idea in the first place.

I see this happening all the freakin' time and it pisses me off no end. If I suggest a software to someone, the first thing they as is 'Is it open source?' What they really mean is 'Is it free?' Why? If someone is expecting to get paid for creating software for others, why is the feeling not reciprocated towards the person who's created the software in the first place?

From what I've seen, most managers and software engineers, expect to get paid for their work but all the software which helps them make that money, they expect for free.

I find that attitude extremely hypocritical, honestly.

[1]: [https://commonsclause.com/](https://commonsclause.com/)

<comment><USER19> Why should open source get conflated with things that are NOT open source? Putting restrictions around "commercial" use (which is notoriously hard to define) is not open source. Discriminating against fields of endeavor is not open source.

If you want to get paid for developing genuine open source software, there are things you can do to that effect. Get paid for support (even maintaining the code _is_ support). Offer to highlight companies that support your software (even if the highlighting is quite trivial, this is enough to unlock 'marketing' expenses and make it easier for business-oriented entities to support you). Start a Patreon page. There are _lots_ of things that can be done without adding any licensing restrictions.

<comment><USER20> > "without adding any license restrictions"

That would imply public domain. Every license has some licensing restrictions. MIT, BSD, and associated ones are closest to that, but still have restrictions. "Open source" in the literal sense in English is where the source is open to be looked at by everyone. Lots of software is like that, even fully commercial offerings. AGPL, GPL, and co have pretty drastic limitations on commercial usage (much more than the Commons Clause), but are obviously open source. The author should decide licensing, and if the source is available to be perused-- the English language would tend to call that, "open source". I think "OSI Approved Open Source License" would be a better phrase than the linguistically vague "open source". English has proper nouns for that sort of thing, and if we can go around writing "GNU/Linux", I think specifying the _type_ of open source license really isn't too much to ask for.

<comment><USER21> There are some licenses effectively like public domain, such as zero-clause BSD, CC0, WTFPL, Unlicense, etc.

GPL does not restrict commercial use any more than non-commercial use. What it does restrict is adding additional restrictions, it requires source code to be distributed, and it does not allow disallowing the user to substitute their own version.

If the source is available to be perused I think it is called "shared source" (or "source available"); "open source" is a subset of that, and is according to the OSI definition. "Free software" is also a subset of "source available". "OSI approved" is a subset of "open source" because OSI approved does not include public domain, even if it is still open source (which in some cases it is) (also some stuff that meets the OSI definition (by both words and intention) might not be OSI approved because OSI has not looked at it yet). And then there is also "FOSS".

</comment></comment></comment></comment></comment><comment><USER22> It's a proprietary license, false advertising ...

<comment> jamie-vesoft Thanks for your feedback!

While our original intention is to provide a real open-source graph database project for the community, we also want to prevent cloud vendors from monetizing the project without contributing back to the community. Exactly like what's explained in this TechCrunch article: [https://techcrunch.com/2018/09/07/commons-clause-stops- open-...](https://techcrunch.com/2018/09/07/commons-clause-stops-open-source- abuse/)

That being said, Common Clause seems to be the only license that can be used. Quote the article: "Academics, hobbyists or developers wishing to use a popular open-source project to power a component of their application can still do so. "

However, we will seriously consider the license issue. Please do let us know if you know any better licenses that can be used.

Much appreciated!

</comment></comment><comment><USER23> Why is this project tied so specifically to China? Honest question here....

<comment><USER24> What are those specific ties other than the company behind the project being located in China?

<comment><USER25> Still a red flag.

<comment><USER26> Is it? That's like saying that Intel being located in the US is a red flag for them leaving backdoors in their hardware... oohhh

[https://en.wikipedia.org/wiki/RDRAND#Reception](https://en.wikipedia.org/wiki/RDRAND#Reception)

<comment><USER25> And China has backdoors in their stuff. We shouldn't be using it.</comment></comment></comment></comment></comment>


China's Rags-To-Riches Transformation Isn't Over Yet - <AUTHOR> https://www.bloomberg.com/news/articles/2017-06-25/there-s-no-end-in-sight-for-china-s-rise-up-the-gdp-rankings <comment><AUTHOR> From the article:

"Importantly, this rise has translated into tangible benefits. The Chinese live six years longer on average and have full access to electricity, less than two percent of the population live under the global poverty line and the average calorie deficit has been cut by more than half, according to World Bank data going back to 1992.

Over the next five years, China's per-person economic growth will see it bypassing the likes of Mexico and oil-rich Azerbaijan, putting it just shy of Argentina."</comment>


Microsoft demos future Windows version running on Intel and ARM chips (video) - <AUTHOR> http://venturebeat.com/2011/01/05/microsoft-demos-future-windows-version-running-on-intel-and-arm-chips-video/ <comment><USER2> I just hope that, from the end user's perspective, they pull this off as smoothly as Apple managed the PowerPC to Intel transition. I'm taking it for granted that most .NET applications will work on Windows ARM out of the box, but that won't be nearly enough.

If people can't run existing native x86 Windows apps on this, it won't be thought of as "real Windows". Legacy x86-only Windows binaries will be around for a long, long time given the enormous size of the Windows ecosystem.

</comment><comment><USER3> In two years, Microsoft will probably be competing with...

...maybe the second or third-generation iPad? ...maybe the forth or fifth- generation iPhone? ...maybe Mac OS X Lion, or later? ...whatever might follow the A4 SOC? ...and whatever else Apple is baking in the Cupertino product ovens.

Not to mention Android Saltwater Taffy, and Ubuntu Peckish Pixie, or whatever...

And then there's HP and their WebOS, RIM, and the various other vendors that are already in or are seeking to get into the ARM and phone and tablet and related markets.

And then there's the inherent delay before folks can or will adopt the new Windows platforms. How many folks that are still on WXP and thinking about W7 and WP7 (as good as those are, too) are going to leap onto WARM, after all?

Microsoft need to aim _way_ past the existing iOS and Android and WebOS environments here and way past WP7, and they're going to be encountering a massive amount of (new) work as porting can inherently delay or derail parallel new feature development. And then the third-party vendors will need to add support.

And then will the existing customers then want to buy WARM products in quantity?

</comment><comment><USER4> The line

"If these ARM-based rivals can succeed in the market with their chips, they could break Intel's near-monopoly on Windows PCs. And if Microsoft can do it, Apple probably can too."

Has me shaking my head. Apple already basically _is_ doing that. I suppose you have to dumb tech news down in some cases, but still.

<comment><AUTHOR> I think what you quoted means that Apple can also move off of Intel. As far as I know Apple are not currently moving off of Intel.

<comment><USER4> I disagree- Apple could have used Atom for the iPad. They Purchased PA Semi, and seem to be taking an interest in that space. I dont think they bought them without at least entertaining the idea that they _may_ be able to transition this to Mac someday.

<comment><AUTHOR> desktop was implied. I mean even Microsoft is off intel everywhere else.

</comment></comment></comment></comment><comment><USER5> On one hand, it makes me happy to see that evolution away from the x86 ISA is possible. On the other hand, it saddens me a bit it's Microsoft driving this change - we may have better, more modern processors under the same old OS monopoly we face today.

<comment><USER6> You may need therapy if it saddens you to see Microsoft port its OS to non- Intel chips, like they used to do with NT. Who else is going drive change away from the x86 ISA?

<comment><USER7> People keep mentioning non-x86 ports of NT in the context of yesterday's news, but I think a more nuanced recollection of history may be in order.

There's one very important apparent difference between the move to support ARM and those old NT-on-RISC ports of yore: Microsoft never, for even a microsecond, took those ports seriously. They were brought into being for the sole purpose of creating uncertainty in the unix market to slow enterprise adoption of Unix on those exotic RISC architectures. NT, recall, was supposed to be "a better unix than unix" in those days. As soon as that move succeeded in neutralizing the competition, those ports became legacy.

By all appearances, on the other hand, the port to ARM appears to be intended for actual consumers — that is, not merely to freeze a market, but to enter one.

<comment><USER8> This is not really a fair recollection of the events. Things like NT for Alpha were not successful not because MS wasn't "serious" about it, but just by the fact that it didn't sell. Those architectures just weren't commercially viable. The products themselves were basically the same (and impervious to not being "serious") because of the investment they made in maintaining a microkernel that wasn't tied to x86.

<comment><USER9> This is closer to the mark. I remember rebuilding an NT 4.0 server on x86 after Microsoft dropped Service Pack support for Mips after SP1. We'd been sold a right lemon by the vendor who obviously must've known that about 3 months after NT4 ships Microsoft announced they were dropping MIPS. In the end, instead of buying more expensive IRIX kit or facing the political fallout from going back to Novell my then employer decided to grit teeth and go x86/NT4.

</comment></comment></comment></comment></comment><comment><USER10> Ok. So I didn't see that coming. That is actually rather impressive.

My only "complaint" here would be that Nvidia's Tegra system, although noticably smaller than the basic Intel-setup, seemed very much to be at the same scale, i.e. big. At least not tiny by the same factor as the Snapdragon setup.

On a related note: Whoah. A snapdragon seemingly capable of running Windows smoothly.

Anyway. If Microsoft can help getting rid of the x86-legacy and move on, I'll be the first to applaud it. x86 is a _butt ugly_ architecture and I'm surprised it has survived this long.

</comment><comment><USER11> They look really lost. It's 2011 and they just demoed "printing"

<comment><USER12> The reason why Microsoft wins consistently is they take things like "printing" pretty seriously.

<comment><USER13> But i still can't cancel a print job in Windows...</comment></comment></comment>


"How will they make money?" is the wrong question - <AUTHOR> https://medium.com/i-m-h-o/a5890c2c2cc0

<comment><USER2> It's far from cynical to ask how a _business_ proposes to make money, especially if it's non-obvious! Yes, there are other challenges beside this, marketing, engineering, and others, but the whole purpose of a for-profit company is to make money. Asking how a business plans to do so isn't naysaying, it's a sensible question.

Also, a valuation is more or less a made up number that suited the VCs and others. The words, "okay, we'll change the valuation to..." seem to be uttered quite commonly when the previous valuation is inexpedient.

</comment><comment><USER3> Social networks must be the ultimate winner-takes-all product. They're probably great investments for VCs. They're high return, and they bleed money until the magic inflection point so you can probably get good terms. I think they're crappy products for founders, because the risk is so high and you don't have the same opportunity for diversification that an investor does.

Speaking as a founder, I feel it comes down your own risk/reward preference. I'd rather have a good chance of a $50M exit than a miniscule chance of $1B.

<comment><USER4> True, but for the entrepreneurs and founders that want to take over the world (so to speak), they're perfect ambitions. While not all founders tend towards that goal, the ones that are most "high risk, high reward" will naturally gravitate to that.

No one founds a successful social network and _doesn 't_ end up wealthy. Tumblr, Facebook, Instagram, etc. all leave their founders with significant exits.

</comment></comment><comment><USER5> I beg to differ, if you dont make a profit, youre not a business. I dont care if you raised tonnes of money from investors, built a talented team, built an amazing product and sold it to facebook/google/yahoo for a huge sum. Thats failure because you couldnt make more revenue than the costs you had.

<comment><USER4> You effectively missed the point of the blog post.

The author isn't suggesting that revenue is insignificant compared to a user base; this is an extreme example of undercutting competitors via price slashing, and it's historically not necessarily a good idea.

That said - Tumblr has so many users that it's difficult not to be valuable. A social network can be a currency of its own - having ownership of a platform that tens or hundreds of millions of people use daily puts you in a position to make revenue in a number of creative ways.

Ev Williams' specific point is such that if you achieve that many users, you will eventually not find it difficult to be profitable. How could you? People wondered about Facebook this way. Then they introduced ads - the number of users only climbed.

Conversely, if Facebook maximized its potential for revenue streams before solidifying _organic_ user base increases, they would have plateaued a long, long time ago. That's the point.

<comment><USER5> I still take issue with the idea of "oh we'll worry about making money later" If facebook is the prime example then just take a look at what a piece of crap its become for users. Facebook couldn't find a decent revenue model so now they're cannibalising their users by making the experience terrible. Which in my opinion, long term is going to be their downfall.

Also, getting lots of users and then just slapping ads on your site is also a terrible business model and its what you tend to do if you haven't bothered to think it through clearly before starting.

</comment></comment></comment><comment><USER6> Maybe it is the wrong question, but VC's keep asking it. unless you have mad traction.

<comment><USER7> This touches on a lot of the no-nonsense reasons why a VC would say no if you have some traction, but not explosive traction.

As someone who has gone through the process of bootstrapping, getting traction, and trying to raise money for the first time in a "consumer unfriendly environment," I think he touches quite eloquently and precisely on a lot of important points. Most VCs don't lay it out as nicely as this either.

</comment></comment><comment><USER8> I contend that monetizing social software is actually very much easier than most people believe.

However, the trick, I think, is to look at assistive rather than extractive models. Rather than looking at how to interject ads into social media, or to otherwise hijack a fraction of the collective attention span of your userbase that you can then sell to the highest bidder, instead look at how to leverage social functionality to put tools into people's hands to help them help themselves in the service of commerce. For example, google search ads and pinterest.

Other examples: enable finding product and restaurant reviews, ratings, and suggestions by friends; improve wishlists for gift-buying; make group purchasing at discount easier for many products (games, books, movies, concerts, events, etc.); enable time sharing of services; facilitate picking up hobbies, skills, and activities; and so forth. There's tons of money in these ideas, but it's more common for companies to go to the advertising trough because it's seemingly so easy.

In my view it's always easier to make money off of a transaction that both sides obviously benefit from.

<comment><USER9> Everybody seems to keep forgetting about Geocities.

They had millions of passionate users who built over 38 million pages on the site. They introduced ads in 1997 and two years later became the _3rd most visited sited on the web_.

Yahoo acquired them in 1999 for $3.57 billion.

Yahoo was unable to _further_ monetize those users. There wasn't some magic money tap they could turn on to make money from the site (despite it's popularity). Geocities never made a profit.

What's Geocities worth today?

<comment><USER10> I think Josh has it mainly right in his Medium post [https://medium.com/i-m- h-o/a5890c2c2cc0](https://medium.com/i-m-h-o/a5890c2c2cc0) \- it's not just about traffic but engagement.

I was one of those passionate users on Geocities, to the point where I was given shares in the Yahoo acquisition for my work in the community. GeoCities died on the vine because they didn't continue to innovate on the site building and community they had. They certainly could have been so much more - foreshadowing blogs, social networks, everything myspace became, etc and could have found a way to build the kind of sticky (and huge) audience that monetises better - if they'd continued to develop.

<comment><USER9> I think it had more to do with the fact that Yahoo needed to start making money with Geocities... and couldn't.

The sequence seems to always looks the same:

1\. Big social network needs to change privacy settings and TOS in order to make money: users start to leave.

2\. Big social network is under increased pressured to make money and introduces paid accounts (or more advertising): most of the users leave.

3\. Big social network is no longer cool (because everyone's left and it's full of ads) and can no longer innovate (because there is no more money).

4\. Big social network dies

We've seen this play out before: Digg, MySpace, Geocities.

I'm willing to bet this will play out with the current crop of consumer networks: Facebook, Twitter, Reddit.

</comment></comment></comment></comment><comment><USER11> Excellent summary by Ev at the end of the post.

<comment><USER12> True. But the "monetize THEM" is not the perfect choice of words.

You don't monetize the users. Either a third party pays for their attention, or, they pay for their own access. No one owns the users. That's why they are so valuable.</comment></comment>


Source code of Germany's official covid-19 contact tracing app - <AUTHOR> https://github.com/corona-warn-app <comment><USER2> previously: [https://news.ycombinator.com/item?id=23401582](https://news.ycombinator.com/item?id=23401582)

</comment><comment><USER3> I have to say the main reason I did not install my country's (Norway) corona- tracing-app is that they said it could not be made safe if the source code was public. Nice to see other countries do the right thing.

<comment><USER4> Does your government have much of an open source culture? I think these arguments were already had (and won) in the UK, for instance.

[https://github.com/alphagov](https://github.com/alphagov) [https://github.com/hmrc](https://github.com/hmrc) [https://github.com/UKHomeOffice](https://github.com/UKHomeOffice)

<comment><USER5> > Does your government have much of an open source culture?

I'd say no, but it's a bit surprising, because it does have a pretty decent open _data_ culture. The weather [1] and mapping [2] data services are world- class, for example.

[1] [https://hjelp.yr.no/hc/en-us/articles/360009342833-XML- weath...](https://hjelp.yr.no/hc/en-us/articles/360009342833-XML-weather- forecasts)

[2] [https://kartverket.no/en/data/Open-and-Free-geospatial- data-...](https://kartverket.no/en/data/Open-and-Free-geospatial-data-from- Norway/)

<comment><USER6> Even though it is getting better, I would argue Norway still has a pretty bad open data culture. As far as I know Kartverket has only released the N50 with the more detailed N5 data still not being available to the public. The biggest pain points for me is the fact that marine depth data of a certain resolution is classified information [1] and they still wont release nautical maps for free.

I am hoping the open trend will continue because the Norwegian government sits on some really high quality data that could see a lot of interesting uses.

[1] [https://www.kartverket.no/en/data/bathymetric-data-and- DTM-o...](https://www.kartverket.no/en/data/bathymetric-data-and-DTM-of-the- Seabed/)

</comment></comment></comment></comment><comment><USER7> It is still unbelievable, that the German government paid 20 Million Euro for these apps. Hopefully the request for details about the contracts[1] will be answered by the corresponding gov agency.

[1]: [https://fragdenstaat.de/anfrage/kostenaufstellung-der- corona...](https://fragdenstaat.de/anfrage/kostenaufstellung-der-corona- tracing-app/)

<comment><USER5> What I find far more unbelievable is that countries – at least European countries that through the EU have a common legal framework – did not get together and share the bill for the development of a common open source app. Perhaps each country would have to do some minor local customization, but surely the vast majority of the code could be shared?

I frequently find myself pondering this whenever my government announces yet another contract for (the admittedly decent) IT services for interacting with state entities.

<comment><USER8> The money isn't spent on the app; it's spent on the backend, and there, scaling efficiency gains are limited because of diversity in computer systems.

Also, the app would have to be translated in many more languages. If you don't want that to increase time to market, it will cost a lot of money.

<comment><USER9> But in my understanding the backend of the german app is generic, since it only receives random IDs from the mobile apps and assembles a list of them to download again.

</comment></comment></comment></comment><comment><USER10> How does one know whether the app in playstore is compiled from this very repo + specific commit and not some other fork of it?

Edit: This is not questioning this particular app. A lot of govt are making their tracing app open source [1]. Since making it open source is supposed to increase trust hence the question.

[1] India app: [https://github.com/nic- delhi/AarogyaSetu_Android](https://github.com/nic-delhi/AarogyaSetu_Android)

<comment><USER11> For one: because this would be extra work within a short time frame. The source shows no extension points. Outside small tech circles nobody would have said anything if it were closed, if they have bad intention they could have made it closed.

For second: we can easily see that the app doesn't use GPS or similar, which is a nice indication

For third: Germans overall trust their government to not lie as much as other governments

For forth: Researchers will reverse the app

The only way this thing can work is, if the population trusts it, installs it and keeps their phone on. If the population doesn't trust it, it's doomed. It's in the self-interest of the project to be trustworthy and transparent.

If you understand German you might enjoy this podcast with two of the developers: [https://ukw.fm/ukw030-die-corona-warn- app/](https://ukw.fm/ukw030-die-corona-warn-app/)

<comment><USER12> This is not answering the question beyond "it would require some effort to do so". It is not unusual to have a different binary published, than what's in a public repo.

The following points you go on about are mostly irrelevant.

<comment><USER11> Well, then don't use the app from the app store and compile it yourself ...

<comment><USER13> Does that work, though? Afaik the app needs Google's or Apple's blessing to use the API.

<comment><USER11> No idea, but as those are closed source one can have the same doubts, so you need an OpenSource alternative to the API, which is in the works in order to be used in that app: [https://github.com/theScrabi/CoraLibre-android- sdk/](https://github.com/theScrabi/CoraLibre-android-sdk/) and [https://github.com/corona-warn-app/cwa-app- android/issues/75](https://github.com/corona-warn-app/cwa-app- android/issues/75)

That combined with an Android based on AOSP and trust issues should be reduced (while the bad government can still track you using cell towers and for that app one could still place Bluetooth beacons everywhere and the server's could still store more information (while the only keys transmitted are those of infected, which is quite little) ... so yeah, pick your level of conspiracy

</comment></comment></comment></comment></comment></comment><comment><USER14> Official site: [https://www.coronawarn.app/en/](https://www.coronawarn.app/en/)

</comment><comment><USER15> France also released the source code of its StopCovid19 app[1]

[1] [https://gitlab.inria.fr/stopcovid19](https://gitlab.inria.fr/stopcovid19)

</comment><comment><USER16> [https://github.com/DP-3T/documents](https://github.com/DP-3T/documents)

Here is the protocol it is based on.

</comment><comment><USER17> for reference, this is the source of the Austrian contact tracking app: [https://github.com/austrianredcross/](https://github.com/austrianredcross/)

<comment><USER18> And the Italian one: [https://github.com/immuni- app](https://github.com/immuni-app)

</comment></comment><comment><USER19> I'm very happy to see so many countries moving in the right direction.

It's not every country, but we're slowing moving there. :)

</comment><comment><USER20> I'm a hopeless optimist and romantic when it comes to software, and I really would have liked to see the covid app being done in some way that built confidence and inspired hope and optimism. My vision was that it could have been more like open source Eurovision where developers that participate had the chance to introduce themselves to the public, and some of the development and design could have been screen cast to us unfortunate souls trapped in our homes for months for some entertainment value and inspiration for budding developers. But eh, instead we get something good, something bad, but much of the same old same old, and in the end, I'm staying as far as I can from these apps as a result. Sad, there was a chance to do something amazing.

</comment><comment><USER21> This was officially released just a few hours ago by the way:

[https://play.google.com/store/apps/details?id=de.rki.coronaw...](https://play.google.com/store/apps/details?id=de.rki.coronawarnapp)

</comment><comment><USER22> @dang, can we get a title update to include the apostrophe in "Germany's"?

Or just change the title to how it's documented on the site? "Corona-Warn-App: The official COVID-19 exposure notification app for Germany"

</comment><comment><USER23> Will this app work without permanent Internet connection? (Will it buffer its data until one has working connection again and then upload data?)

<comment><USER24> Yes, it does work without an permanent internet connection. The whole point of this app is to be decentralized. No data is uploaded unless you share your sent tokens if you are infected. This requires an approval from the health departments to prevent abuse. The apps download the tokens of infected persons and check if they had contact locally on the device.

</comment></comment><comment><USER25> While everyone is looking at the code or press releases, only very few seem to research about how Bluetooth distance measurement works and if it's reliable enough with thousand of different smartphones out there having different chips and antenna characteristics.

The app may be great but the design simply seems not to work as expected.

</comment><comment><USER26> The more interesting part is that security audits for the frontend did find multiple high risk security issues in the app, which have been fixed by the developers.

But the organisation was not allowed to make a security audit of the backend. I mean the most critical part security wise was not allowed to be verified. This does not feel good.

</comment><comment><USER27> India also released source code of Aarogya Setu app

[https://github.com/nic-delhi/AarogyaSetu_Android](https://github.com/nic- delhi/AarogyaSetu_Android)

</comment><comment><USER28> are the (known) Android bluetooth-RCEs fixed everywhere, where this runs?

<comment><USER29> Of course not, why are you even asking?

</comment></comment><comment><USER30> Do you know how many contact tracing apps I can install? Do they conflict with each other? I'm thinking about travellers who often cross borders.

<comment><USER31> I installed 2 of the ones using the Exposure Notification API, just to check what happens in this circumstance (the german app is implemented differently, though) and Android allows access to it to only one app at a time. You can choose/enable/disable manually which app you want to grant access to the api.

</comment></comment><comment><USER32> Requires google play services to run with the developers not caring at all

<comment><USER33> Technically, you are free to implement the Exposure Notification [1] API for your own potentially open-source alternative of Google Play Services, right? Or why would this currently not be possible?

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

<comment><USER11> People are working on that: [https://github.com/corona-warn-app/cwa-app- android/issues/75](https://github.com/corona-warn-app/cwa-app- android/issues/75)

Edit: and also see [https://github.com/theScrabi/CoraLibre-android- sdk/](https://github.com/theScrabi/CoraLibre-android-sdk/)

</comment></comment></comment><comment><USER34> Covid has been curtailed without the need for these apps (in all the places that opened up). Why do people insist on pushing them to people? There is no evidence they work, even when with months of testing. No matter how anonymized you try to make them, the authorities and evil state actors will find ways to abuse the data -- it's like a law of nature now that all data will be abused.

E.g. in case of a bombing or riots, the police can arrest bystanders and use phones to tell who was standing next to whom.

Pushing these for security theater has long term bad consequences. I was hoping people would know that after the 1000th repetition but alas, people are incorrigible

[https://www.nbcnews.com/tech/tech-news/coronavirus- contact-t...](https://www.nbcnews.com/tech/tech-news/coronavirus-contact- tracing-apps-were-tech-s-chance-step-they-n1230211)

[https://www.wired.co.uk/article/contact-tracing-app-isle- of-...](https://www.wired.co.uk/article/contact-tracing-app-isle-of-wight- trial)

<comment><USER35> Covid has been curtailed mainly with extremely expensive lockdowns.

The purpose of the apps is to control the spread going forward, without lockdown.

<comment> _-___________-_ > Covid has been curtailed mainly with extremely expensive lockdowns.

Citation needed. We don't know conclusively what curtailed it in places where it has been curtailed, since there were many different control approaches occurring at the same time.

There are also several countries where lockdown effectively ended weeks or months ago, and spread is not occurring despite a lack of widespread use of these apps, not to mention a variety of approaches to lockdown itself with no obvious correlation between strictness of the approach and mortality/infection stats.</comment></comment></comment>


Ask HN: Decent and cheap hosted email services? - <AUTHOR> Most registrars (except Gandi) provide email hosting for an extra fee. What hosted email services do you use which cost less than $3/mo?
From my research: Zoho Mail https://www.zoho.com/workplace/pricing.html?src=zmail free plan for 1 email, or $3/user
OpenSRS seems to require a $95 fee to become a "reseller", then $0.50/email/mo: https://opensrs.com/services/hosted-email/ <comment><USER2> I have been using Yandex Mail [1]. It's free for unlimited users and 10GB/user storage. Yandex is a Russian company. Unless you have a problem with that, I think it's a pretty good solution.

[1] [https://domain.yandex.com/domains_add/](https://domain.yandex.com/domains_add/)

<comment><AUTHOR> Looks great, thanks!

</comment></comment><comment><USER3> Zoho has a free plan for up to 5 users. [https://workplace.zoho.com/orgsignup.do](https://workplace.zoho.com/orgsignup.do)

> 5GB/User, 25MB attachment limit.

> Web access only. Email hosting for single domain.

<comment><USER2> No IMAP support for free plan any more. [1]

[1] [https://help.zoho.com/portal/community/topic/zoho-free- tier-...](https://help.zoho.com/portal/community/topic/zoho-free-tier-pop- imap-activesync-no-longer-free)

</comment></comment><comment><USER4> I'm using pobox.com and pretty happy with it. I have the mailstore account which is $50/yr so about $4/mo.

</comment><comment><USER5> Google Suite is awesome for $5 a month? Why not go with one of the best for only $60 a year

<comment><USER6> To avoid google I moved everything to Runbox.com they are awesome people the business model is great (employers own the company), the price is pretty good if your domain host multiple mails, and they are in a country where privacy is protected. Linux friendly as well with all standard protocol, something protonmail seem not to care

<comment><USER5> Why do you think Norway respects privacy?</comment></comment></comment>


Show HN: A basic project manager in C# - <AUTHOR>

A little over a month ago, I asked HN what I should do as my final C# project last semester: https://news.ycombinator.com/item?id=8062174
The one comment I got was good, but I decided to take the easy path because I couldn't get Crystal Reports to play right with an Access database and InstallShield, and time was running out, so I opted for a project manager instead. Since I said I would show it to HN (even though almost no one noticed the thread) ... here it is.
It's rudimentary and i'm in the process of rewriting it completely because despite its simplicity I do kind of like it.
When you create a project (with or without a deadline) you get a notepad (which is really a rich text editor which I never managed to add controls to) and a todo list... and that's about it. You can add urls to the todo list and they will open in a browser. Everything works from a local Access database, but there is not even an attempt at securing the database.
I also removed Crystal Reports and the installer completely because I don't like them and never could get them to work properly. This is essentially the first application I've actually completely designed and finished.
https://github.com/kennethrapp/projectmanager <comment><USER2> Congratulations on making something from start to finish. Hopefully it's the first of many. Since you're rewriting it anyway, i'd consider moving away from Access if I were you.

<comment><AUTHOR> Thanks. I'm using SQLite for the rebuild.</comment></comment>


Ask HN: What are your favorite readings on the topic of managing innovation? - <AUTHOR>

<comment><USER2> [http://www.farnamstreetblog.com/best- articles/](http://www.farnamstreetblog.com/best-articles/)</comment>


How Mars Rover Curiosity's Nail-Biting Landing Works (Pictures) - <AUTHOR> http://www.space.com/16503-photos-mars-science-laboratory-curiosity-landing-guide.html

<comment><USER2> Mind = blown</comment>


Ask HN: What platform do you use for blogging? - <AUTHOR> <comment><USER2> I generate static pages using Pelican and host them on Github.

It's a great way to avoid lock-in. Your content is kept in Markdown. Pelican is a joy to use. It's all python, so it's possible to understand, hack, and extend if you'd like.

<comment><USER3> I just started with Pelican and I'm really liking it. I think I've tried most of the static site generators out there.

</comment></comment><comment><USER4> I wrote my own. I was bored and wanted to see whether I could write a full blogging platform using only Linux command line tools and bash scripts.

It turns out you can, but the resulting mix of single, double, and escaped quotes was a bit too hacky even for me. I rewrote some of it in Perl, and I've been using that ever since.

<comment><USER5> Have you published the scripts or anything about them? I've been using hexo ([https://hexo.io/](https://hexo.io/)), which is fine, but I've been thinking I might write my own but haven't settled on the language.

</comment></comment><comment><USER6> I use Jekyll for blogging. It's hosted by GitLab pages.

Writing a post with Markdown is fun since I don't need database to store it. Beside that, I also use Let's Encrypt for SSL.

</comment><comment><USER7> Ghost, self-hosted ([http://blog.tedmiston.com/](http://blog.tedmiston.com/))

I really like having full control over URLs.

</comment><comment><USER8> I like Medium, other than normal blogging features, you get twitter like exposure from this platform.

They also make your comments to other posters as your posts. This keeps conversations going.

What I think medium can improve for my case is that it's not designed specifically for programmers. Posting code, for example, is a hidden feature. There are also no syntax highlighting, no line numbers.

<comment><USER9> No way to monetize really, is there?

<comment><USER8> I have no idea. I currently don't have a monetization plan.

</comment></comment></comment><comment><USER10> I wrote my own: [https://github.com/dhruvkar/stic](https://github.com/dhruvkar/stic)

It's incomplete and sort of ugly. I still use it for my personal blog (dhruvkar.com).

For my consultancy, I use Hugo with the Universal Theme (automizzen.com).

Both hosted on Gitlab pages with LetsEncrypt SSL/TLS.

<comment><USER11> I use Hugo as well and love it. It's hosted on DigitalOcean, but as a starter you could host it on GitHub Pages.

My Website: [http://www.robinwieruch.de/](http://www.robinwieruch.de/)

Hugo: [https://gohugo.io/](https://gohugo.io/)

Hugo Themes: [http://themes.gohugo.io/](http://themes.gohugo.io/)

GitHub Pages: [https://pages.github.com/](https://pages.github.com/)

5 days to your own Website: [http://www.robinwieruch.de/own-website-in-five- days/](http://www.robinwieruch.de/own-website-in-five-days/)

<comment><USER10> Nice. I like that you had a setup with Digital Ocean. I find that I learn best when building somethingI care about. This is a good way to gently introduce the command line and git.

</comment></comment></comment><comment><USER12> Getting ready to build a couple of blogs yet this year to try out a couple of static site generator/CMS platforms: Hugo (Go) and Lektor (Python/Node). Both look quite capable. Likely will host on Netlify, although could be deployed on GitHub, S3, etc...

</comment><comment><USER13> I'm working on a little JS blogging application which is backed by GitHub issues. It's hosted by GitHub pages, and each issue in the backing repository is a blog post. I get markdown -> HTML, reactions/comments, tagging, etc. all for free from that.

<comment><USER3> Very creative. I'd like to check it out.

</comment></comment><comment><USER14> I host my own microblog that I wrote in ruby.

[http://blog.hajdarevic.net](http://blog.hajdarevic.net) [https://github.com/adnanh/mikro](https://github.com/adnanh/mikro)

</comment><comment><USER15> WordPress (the self-hosted variant). I use it to run my business website, which includes a blog.

</comment><comment><USER16> Github Pages. I'm using a blog template, and it's completely static. You can use external services such as Disqus to add dynamic features, but at its core, it's just a free static website host.

</comment><comment><USER17> Started with CityDesk (from FogCreek software), and migrated to wordpress (with a lot of 301s to keep old content indexed).

I guess I will go back to a static blog next year after 10+ years using wordpress.

</comment><comment><USER18> Related -> [https://news.ycombinator.com/item?id=12241492](https://news.ycombinator.com/item?id=12241492)

</comment><comment><USER19> I use this one [https://medium.com/](https://medium.com/). It suits for personal use as well as for business

</comment><comment><USER20> Github pages generated by Jekyll. Content is written in markdown which suits me perfectly.</comment>


100 works of contemporary literature by muslim writers - <AUTHOR> http://shelfjoy.com/shelfjoy/100-contemporary-books-written-by-muslims-that-are-powerful-weapons-of-mass-enlightenment <comment><USER2> I'm glad you didn't repeat the page title "powerful weapons of mass enlightenment", which is clumsy arrogance more than wit.

With respect to wowsig, and purely as a discussion point, I can't be interested in a list of books by Muslim writers, or Christian writers, or {insert belief system} writers. I'm interested in stories about humanity, but specifically from a religious lifestyle point of view? I don't know how that qualifies as enlightening.

You just know it's going to be tales of struggling to balance the expectations and demands of a strict religion with community relations and challenges regarding women's rights, values, rituals and education in a modern world. With an upbeat positive conclusion about unity, acceptance and awareness. Rinse and repeat.

Do I sound cynical? Well, I didn't say "God is dead" or anything. Although I think Nietzsche was onto something.

I'd like to see more pressure and questioning and challenging of religious ideas and practices in a modern world, more than questioning each other. I'm willing to bet a large proportion of people currently accused of being "anti- Muslim" simply don't respect Islam or any religion that has such a foothold in everyday life including education, family, business and politics. It might not be about "fear and ignorance", but reluctance to embrace Islam as the new member of the neighborhood.

In my opinion, the very nature of obedient religious devotion, is the overlooked source of division in multicultural society. Yet, division is blamed solely on those who vote against the next religious school or place of worship.

The very custom of wearing particular clothing to distinguish oneself as belonging to a particular religion, emphasizes the separation of "religious" from "non-religious" people walking the streets and in the workplace. In this case Muslim vs Non-Muslim. Personally I don't want to be a "Non-Muslim" I don't want to be a "Non-anything". When did that even happen? When members of the community are clearly marking themselves as members of a certain faith, I'm automatically divided before even opening my mouth. And that is something that makes me feel uncomfortable because we are _starting_ with division, and attempting to unify and get along from there. No surprise it's not working too well.</comment>


The Rise and Fall of the American SRO - <AUTHOR> https://www.citylab.com/equity/2018/02/the-rise-and-fall-of-the-american-sro/553946/ <comment><USER2> This is extraordinary in both medium and message. The message is about regulating away a large part of the housing economy and the price we're still paying for that. The medium is a graphic essay, a long form infographic that conveys its message with informality and power.

I only wish the text were searchable. It's a shame for these words to be invisible to spiders.</comment>


Solving the crypto-fq bug in ath9k (2016) - <AUTHOR> http://blog.cerowrt.org/post/crypto_fq_bug/ <comment><USER2> The code shipped in lede 17.01 that january(2017) and also went Linux mainline at the same time. Everybody on linux using an ath9k and ath10 chip is benefiting today, and it (or a variant) is in multiple commercial products now. I kind of expect it to be in all new products leveraging these chips.

Our writeup of how it works is here: [https://arxiv.org/pdf/1703.00064.pdf](https://arxiv.org/pdf/1703.00064.pdf) \- lots of pretty pictures.

I recently had to shut down my lab for lack of funding.

</comment><comment><USER3> Great work and thanks for solving the Crypto FQ bug making ath9k faster! Looking forward to using the fixes and the speed improvements we will get. It seems like you needed the WPA IV packets which are the same as for WPA key handshake. It must have been extra elusive to find the bug since the traffic was encrypted. Thanks also for working on solving buffer bloat, buffer bloat is annoying.

[https://www.bufferbloat.net/projects/bloat/wiki/Introduction...](https://www.bufferbloat.net/projects/bloat/wiki/Introduction/)

</comment><comment><USER4> I truly admire the CeroWrt team for their work on bufferbloat. Few people would have both the knowledge and persistence in solving this.

<comment><USER2> Well, cerowrt was the big "what can we do to fix ipv6, routing, wifi AND bufferbloat?" project, to produce an existence proof that typical home cpe could be made into something that did all these things. We made sure that everything important we did ended up upstream when cerowrt ended and the mailing lists with the accumulated expertise remain.

make-wifi-fast was this project where we took a deep dive into wifi, and cut 100x of the latency out across all rates and improved throughput on our tests by 2.5. That damn "fq bug" was the not the only, but certainly the worst bug we dealt with. Even harder was spending about 2 years, stumped, trying to come up with an efficient implementation of the fq_codel theory, in wifi. 5 years of work to get to this goal, with no progress til the end. No corp would have supported us...

This past year's project was sch_cake, which helps defeat bufferbloat on really slow connections. That will be in linux 4.19, writeup here: [https://lwn.net/Articles/758353/](https://lwn.net/Articles/758353/)

None of our projects ever attract funding, yet we do somehow manage to ship something great every other year.

After every "improvement", new problems emerge. We enabled ecn universally in the fq_codel for wifi code, in sch_cake, and partially in the sqm-scripts... then apple enabled ecn universally in their TCPs... last year... and I'm concerned now about how well that is working out. ECN was a "debugging aid" for us, mostly.

</comment></comment><comment><USER5> Good job! Might have closed a side leak there. Next step might be to to make sure certain TCP packets under a certain classification gets encrypted together with data traffic?

</comment><comment><USER6> Missing (2016) in title

</comment><comment><USER7> That is all well and good, and I don't want to sound ungrateful (I'm sure I do), but will we ever get WiFi working on ramips platform with mt76 driver?

<comment><USER8> Our company got burned when our sales people yielded to client's demand of using the cheapest chip around, and yes, Mediatek it was</comment></comment>


The Secret History of Women in Coding - <AUTHOR> https://www.nytimes.com/2019/02/13/magazine/women-coding-computer-programming.html <comment><USER2> Neither secret nor history. For a more objective, less ideological history of the ENIAC era at least, check out the book "ENIAC in Action".

<comment><USER3> In using the word "ideological," you've introduced a nice ad hominem attack. In my experience, "ideological" is a word invariably used as an ad hominem to undermine an argument that opposes the speaker's own ideological bias.

Do I know that to be true in this case? No, but then again, you have given no evidence to the contrary, you just threw the word out there to try to marshall an emotional response, then segued into talking about being objective.

That's smarmy.

Also, in calling this material "neither secret nor history," you're again engaging in rhetoric rather than argument. No, this material is not protected by Trade Secret or National Security law, but if it is not well known, the phrase "secret history of X" is a longstanding poetic metaphor.

As you well know, lots of articles use this phrase to describe knowledge that is not well-known, especially if it runs counter to common folklore.

If the above is not history, it's your obligation to give examples where it is known to be false.

Thanks for the book recommendation. I may take you up on it, because I don't assume that it must be wrong just because the rest of your comment is empty criticism.

<comment><USER2> Not "secret" in that it's a recurring narrative that's being pushed these days in many places.

Not "history", in that it's simply not a reasonably objective account of what transpired. The actual history has been a natural flow of fairly benign social trends, not some sort of malicious conspiracy.

Compare the writing in the book I cited to this piece. It's like night and day.</comment></comment></comment>


Amazon retroactively replaces Reamde, repelled readers revolt - <AUTHOR> http://www.teleread.com/ebooks/amazon-retroactively-replaces-reamde-repelled-readers-revolt/ <comment><USER2> From reading the comments, it appears that the article is, at the very least, slightly misleading as customers have the option not to replace their version.</comment>