Miles of Ice Collapsing Into the Sea - <AUTHOR> https://www.nytimes.com/interactive/2017/05/18/climate/antarctica-ice-melt-climate-change.html <comment><USER2> The article was interesting in that it use the word "could". In context, the only ice that will contribute to sea level rises is land based. We could lose all the sea based ice and the overall effect most likely will be a drop in sea level.

To get a 1 metre sea level rise, requires the melting of land based ice of a volume equivalent to the entire surface area of Australia covered to a depth of 45 metres or so. The energy requirements for phase conversion is at least 1 million 25 MegaTonne nuclear bombs going off,

Based on every relevant paper on the subject that I have been able to find, and it appears that it would take anywhere between 1000 and 3500 years before we would get this 1 metre rise.

The last set of figures that I saw from the IPCC is that it would be about 1000 years to see this kind of rise, if their measurements were correct.

The thing I find interesting is that we (as humans) have a very short term memory of what has happened in the past. Especially, when things are driven by authoritative groups such as governments (and attendant bureaucracies) and science committees and panels.

<comment><USER3> > The article was interesting in that it use the word "could". In context, the > only ice that will contribute to sea level rises is land based. We could > lose all the sea based ice and the overall effect most likely will be a drop > in sea level.

These shelves are built from ice that has flowed from land to out over the ocean, the more it melts the more that flow increases and the more ice goes from being on land to being in the ocean.

> To get a 1 metre sea level rise, requires the melting of land based ice of a > volume equivalent to the entire surface area of Australia covered to a depth > of 45 metres or so. The energy requirements for phase conversion is at least > 1 million 25 MegaTonne nuclear bombs going off,

There was a thunderf00t video very recently on this topic (sorry I can't link to it from work), I forget the exact figures that he came too but the energy effect of global warming was on the order of thousands of megatonne bombs a second.

<comment><USER2> My comment about the 1 million bombs is related to just the amount of energy required to convert solid water to liquid water at 0 degrees Celsius.

The figures that I have seen from various studies indicate that only a very small amount of the energy stored in water ever gets to actually meting ice.

In regards to the ice flows, the flow is caused by evaporated water from the oceans being deposited on the land at the glacier. Without that depositing of water vapour, there is no flow. Hence, until a determined study is made on the full dynamics of this cycle, mayhaps one should not be using this as the driving example or even as an example.

</comment></comment></comment><comment><USER4> Doing something about global warming (a-hem climate change) always boils down to Maslow's hierarchy of needs, people at the bottom who are struggling for housing, food, safety, etc are not concerned with coal power station emissions (as an example.) So we get short term goals from politicians that are just scary in how short sighted they are.

[1] [https://en.wikipedia.org/wiki/Maslow%27s_hierarchy_of_needs](https://en.wikipedia.org/wiki/Maslow%27s_hierarchy_of_needs)

</comment><comment><USER5> Serious question, if sea level increases are so damaging and feared is it possible to build a water pipeline (like an oil pipeline) from higher coastland to a lower area and then create an artificial river to use in an artificial dam. I think estimates put sea levels rising at around 3 mm a year. I did the rough math and 3mm cubed is a lot but I think it can be doable for $15B and the potential artificial dam might be useful too. I have absolutely no knowledge of any of this though and apologize if the idea seems stupid

<comment><USER6> If I understand you correctly you're suggesting treating the ocean like an elevated lake, and putting a pipe to a lower place so the water pressure could generate electricity.

The two things that come to mind for me are:

1\. It's hard to find land lower than the ocean ([https://en.wikipedia.org/wiki/List_of_places_on_land_with_el...](https://en.wikipedia.org/wiki/List_of_places_on_land_with_elevations_below_sea_level))

2\. Piping salty ocean water inland will make a lot of people unhappy. It would totally change the environment that was already there.

But interesting idea. Death Valley might be a valid place for it, since it's already a salty waste land.

<comment><USER5> Yeah so the Afar Depression would be feasible and would stop 12 years worth of ocean rises and create a lot of power, but would cause a lot of costs and issues to the area. I thought Death Valley was huge but only stops around 3mm of ocean so just 1 year of the current rise rate

</comment></comment></comment><comment><USER7> Mods, can you decapitalize the title please? The original article doesn't capitalize it (although see below for details).

<comment><USER8> Although it probably shouldn't be capitalized here, the article title definitely appears in an all-caps style on my browser (the html <title> doesn't, which is possibly what you mean, but I'd probably argue that in any normal conflict the actual content-title would win)

<comment><USER9> I dug into this a bit as my curiosity was piqued. The actual HTML h1 element is title case, and styled via a CSS text-transform to uppercase.

That said, regardless of how it was applied, the all-caps is for style, not the proper title of the article.</comment></comment></comment>


Ask HN: What news feed source you want? - github-cat We have created a single page app(well actually a few pages) which pull tech news/story feeds from various popular sources and integrated them into one page. So far, we have news from Hacker News, Reddit, Digg, DZone, Slashdot, The Register, Tech Crunch, BuzzFeed, Lobsters, CSDN and 36Kr.
We are wondering what other source you would want to see? Where else do you read tech stories? This would help us integrate them as well.
Our page location is http://www.pxlet.com <comment><AUTHOR> I don't want more. I want less. I could care less about what exact shape the bump is on the iPhone X, or how React ruined your life, etc.

Highly relevant news could be a unique selling point, but all I ever hear from people is how impossible it is.</comment>


Effective learning: Twenty rules of formulating knowledge (1999) - <AUTHOR> https://www.supermemo.com/en/articles/20rules <comment><USER2> I tried using Mnemosyne (a Linux program that uses the same algorithm) years ago when I was in school, and did not find it effective. It was a pain to enter the cards, and a lot of my material was mathematical. Also, you needed to be _really_ consistent. Take 2 weeks off and the algorithm behaved poorly.

Looking back, I think the problem was the lack of documentation on what to expect. There are always questions of how many cards should you do in one session, and how you should rate them.

A few days ago I started again, this time using org-drill. As with everything org-mode related, the experience is _much_ better this time round. When it presents you a card, it has all the LaTeX rendered, and all images showing. Let's see if I don't get sick of it this time round.

<comment><USER3> Using a spaced repetition system for math has never worked well for me. It's useful for memorizing mathematical facts (for example, the mean/variance of various statistical distributions), but over time my intuition will fade, and I'm left parroting facts, having lost the understanding of why they are true.

In my experience, spaced repetition systems excel when I can create cards that take 10 seconds or less to answer. So they work really well for something like language learning. But it's difficult to reduce mathematical arguments into 10 second chunks.

<comment><USER2> What you say is generally true for mathematics, but it can help for the basics: Definitions of terms, etc. Basically, my goal was/is to memorize the facts one really _should_ know without needing to look it up. For example, I've learned statistics at least thrice in my life, and beyond the very basics, the material doesn't stick. I think it's good for retaining a minimum amount of knowledge that you can use in the field any time you need it. Things like the recursive rule for the Gamma function, or that pairwise independence does not imply mutual independence (although a better flashcard would ask you to recall an actual counterexample), or what each probability distribution is useful for (I don't think I'd ever want to memorize the mean/variance, though).

I agree with you that overly relying on flashcards will take away the intuition, which is critical in fields like mathematics. At the same time, one can use flashcards in addition to other methods. It's not as if using one approach impacts your ability to learn via other approaches. Also, I think one can be clever in how they use them for mathematics. A lot of theorems rely on a certain key trick or two, so I think it makes sense to have flashcards asking what the trick is. I think flashcards are great for memorizing counterexamples, as well. Or heck, even regular examples. Depending on the branch of mathematics, knowing these is immensely helpful (e.g. in analysis).

Having said all that, I'm not using it for math presently.

<comment><USER4> > I agree with you that overly relying on flashcards will take away the > intuition, which is critical in fields like mathematics.

Can't you just write a card that specifically asks you to give the intuition behind some concept?

E.g. "What's the intuitive interpretation of the gradient of a scalar field, \nabla \phi?" Answer: "\nabla \phi is a vector that points in the direction of greatest increase of \phi."

Etc.

</comment></comment></comment></comment><comment><USER5> Archive.org has it: [https://web.archive.org/web/20180906202316/https://www.super...](https://web.archive.org/web/20180906202316/https://www.supermemo.com/en/articles/20rules)

</comment><comment><USER6> The link works, but not if you follow it from here.

[https://www.supermemo.com/en/articles/20rul](https://www.supermemo.com/en/articles/20rul)

<comment> pure-awesome You're right; clicking it fails but copy-pasting works.

Weird, why would that be?

EDIT: Well, copy-pasting opens the site but not the article.

<comment><USER6> For some reason it got truncated

[https://www.supermemo.com/en/articles/20rules](https://www.supermemo.com/en/articles/20rules)

</comment></comment></comment><comment><USER7> Another link to the same page that works: [https://www.supermemo.com/articles/20rules.htm](https://www.supermemo.com/articles/20rules.htm)

<comment> pure-awesome Doesn't work for me.

</comment></comment><comment><USER8> This is an alternative link I've been using this week personally:

[http://super-memory.com/articles/20rules.htm](http://super- memory.com/articles/20rules.htm)

I just wish the mobile supermemo version let you export your cards. I left supermemo a year ago for anki because of that - don't want to get locked in when I have thousands of cards.

The windows version apparently does allow exports, but it seems separate from the web version and does not run on Linux.

</comment><comment><USER9> "Do not learn if you do not understand"

Seems strangely backward to me. Understanding is my end goal when learning.

<comment><USER10> Learning is not the same as studying, but if English is not your mother tongue you can easily mistake one word for the other. e.g. in german it is the same word. I assume it was written by a polish native speaker. Apparently in polish they also only have on word for it - uczyć.

</comment></comment><comment><USER11> Page isn't working for me:

[https://i.imgur.com/vr9zLtH.png](https://i.imgur.com/vr9zLtH.png)

<comment><USER12> Same here</comment></comment>


Show HN: StatusBay–provides the missing visibility into K8s deployment process - <AUTHOR> Hi Guys,
Yesterday we have released StatusBay . StatusBay is an open source tool that provides the missing visibility into the K8s deployment process
https://statusbay.io/
https://github.com/similarweb/statusbay
https://github.com/similarweb/statusbay-helm
Would love to hear your thoughts & feedback. Enjoy! <comment></comment>


How Diablo Was Reverse-Engineered Without Source Code [video] - <AUTHOR> https://www.youtube.com/watch?v=5tADL_fmsHQ <comment><USER2> I really appreciate the rise of YouTubers that are fairly knowledgable in retro gaming and computing niches. David Murray (of The 8-bit Guy) and Clint Basinger (of Lazy Game Reviews) are two other YouTubers who consistently put out interesting content about retro stuff. Of course they all have their areas of expertise and interest, and sometimes there's things vague or occasionally outright incorrect, but I think the entertainment value more than makes up for it.

This video is really cool, though. It's full of interesting anecdotes, and I enjoy the visual content showing things like looking at the binary in Ghirda.

Even though the answer does just boil down to discovering debug symbols and a version with debug assertions enabled, I still recommend watching as they go above and beyond, especially near the end when introducing some of their own work.

(Edit: fixed spelling error in Clint's surname.)

<comment><USER3> I'll recommend GameHut[1], a channel run by Jon Burton[2] who worked on a lot of classic titles himself. The clickbaity titles and thumbnails are a little unfortunate, but there's a lot of interesting content on how things were programmed, with all the details broken down. e.g. 'Mickey Mania's "Impossible" 3D Chase'[3].

[1] [https://www.youtube.com/channel/UCfVFSjHQ57zyxajhhRc7i0g/vid...](https://www.youtube.com/channel/UCfVFSjHQ57zyxajhhRc7i0g/videos?view=0&sort=da&flow=grid)

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

[3] [https://www.youtube.com/watch?v=nt- AxAqlrOo](https://www.youtube.com/watch?v=nt-AxAqlrOo)

<comment><USER4> > The clickbaity titles and thumbnails are a little unfortunate

They bring views which helps him make more videos.

<comment><USER5> One day enough people will see through clickbait titles that they won't work anymore. At least I hope so. It may be happening already, I don't know.

If that happens, it will be yet another example of optimization for the short term at the expense of the long term, and people still will fail to understand why that tradeoff is bad. Sure it's great for current-day you, but future you will pay, somehow.

<comment><USER6> How will the future "you" be paying? Not really clear what you mean. I don't see the short vs long tradeoff.

<comment><USER5> There are many people who do not understand that optimization for the short term is paid for in the long term. Far too many. I don't understand how people do not understand that, and I recognize that, apparently, most people do not.

All decisions have (or are) trade-offs. Cause & effect. Since a cause cannot have an effect in the past, all causes have effects in the future, be it one nanosecond in the future or one thousand years in the future. That is to say, all decisions have consequences, and those consequences are always in the future.

If you optimize for the short term, you are, by definition, not optimizing for the long term. So, short term optimization necessitates long term de- optimization.

Examples:

Spend money now and have none for retirement (short term benefit), or save money now, and have it during retirement (long term benefit)?

Pollute the air now, earning maximum profit at the expense of air cleanliness in the future, or pay a lot of money today to find cleaner ways to operate, and have clean air in the future?

Fully invest in clickbait headlines today, earning ad impressions today, and risk clickbait fatigue later, or find a longer term strategy to retain readers in the long-term?

I can't readily think of an example decision that optimizes for short term gain that does not also optimize for long term loss.

My problem with this is that the short term is indeed very short, and the long term is very long. Short term optimization has long term consequences, and I would prefer short term consequences over long term consequences.

<comment><USER7> > If you optimize for the short term, you are, by definition, not optimizing > for the long term. So, short term optimization necessitates long term de- > optimization.

I don't think " short term optimization necessitates long term de- optimization" follows. They can be both optimal.

> Spend money now and have none for retirement (short term benefit), or save > money now, and have it during retirement (long term benefit)?

Spend money now on something that increases your chances to get more money (easy example education?) and benefit now and at retirement.

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> Tl;DW: There were versions of the game released that still had debug symbols.

<comment><USER2> To be more particular:

\- The Japanese Playstation port contained debug symbols

\- A Windows debug binary with all assertions in tact was found

It is my understanding that this combination allowed for a better understanding than just symbols alone.

(Could be a little fuzzy on the details; I watched this video last night, not just now.)

<comment><USER9> To give further background, the Devilution team has primarily relied on these resources:

1\. The Japanese Playstation port with debug symbols contained in `DIABPSX.SYM`. (see [1]).

Example debug info of the Cathedral dungeon generation algorithm:

      // address: 0x801259D0
      // line start: 612
      // line end:   624
      void DRLG_L1Floor__Fv() {
       // register: 19
       register int i;
       // register: 20
       register int j;
       // register: 3
       register long rv;
      }

2\. The debug release of the PE executable, which contained assert strings (see [2]).

Example assert string:

      "plr[myplr].InvGrid[i] <= plr[myplr]._pNumInv"

3\. The Rich header of the PE executable, which details the exact version of the original compilers and linkers used to build `Diablo.exe` (see [3,4]).

Example information recovered from the Rich header of `Diablo.exe`:

      Id  Build  Count  Name       Description
       0      0    155  Unknown    [---] Number of imported functions (old)
       1      0    229  Import0    [---] Number of imported functions
       6   1668      1  Cvtres500  [RES] VS97 (5.0) SP3 cvtres 5.00.1668
       2   7303     29  Linker510  [IMP] VS97 (5.0) SP3 link 5.10.7303
       3   7303      1  Cvtomf510        VS97 (5.0) SP3 cvtomf 5.10.7303
       4   8447      2  Linker600  [LNK] VC++ 6.0 SP3,SP4,SP5,SP6 link 6.00.8447
      48   9044     72  Utc12_2_C  [---] VC++ 6.0 SP5 Processor Pack
      19   9049     12  Linker512        Microsoft LINK 5.12.9049

4\. Discovery of the original set of compiler flags used to build `Diablo.exe` (see [5]).

Primarily "/O1" was used, but there are also peculiarities such as the use of both Microsoft Visual Studio 6 and Microsoft Visual Code 5 for linking the game.

5\. The heartfelt dedication of a team of people. GalaXyHaXz did the initial heavy lifting and succeeded in the tremendous task of getting the decompiled source code of Diablo 1 compiling with the original toolchain. Later on she released the project open source and a community of open source collaborators formed. Most of us have never met in real life prior to joining the project, which stands to show that there is strength in online collaboration that transcend both culture and borders.

6\. The Beta release and the Alpha4 release of Diablo 1 has also proved invaluable resources for cross-validation as the compiler optimization level was not set to release mode for these binaries.

Interestingly, in the process a number of bugs in the original implementation of Diablo 1 were discovered. These have been documented in the source code of Devilution with `// BUGFIX: foo` comments, and have also been detailed in [6].

To track the progress of the project, the "Binary identical functions" milestone has been used in tandem with an assembly diffing tool developed in Rust (see [7,8]).

Anecdotally, it was an incredible moment when we first managed to run the cross-platform port of Diablo 1 (DevilutionX, see [9]) natively on Linux and succeeded in playing a multiplayer game connecting our computers in Korea and Denmark. It is equally thrilling to see the modding and porting community picking up the torch and already succeeding in porting Diablo 1 to Nintendo Switch!

The main reason for conducting this bit of software archeology is to preserve the classic title that is Diablo 1, for generations to come. And to revive it for modern hardware platforms and make it more mod-friendly in the age of open source software.

Happy coding! \- The Devilution Team

P.S. the project README explicitly states that to play the game, you still need to have access to the original game assets released on the Diablo 1 CD. To acquire a legal copy, please refer to [https://www.gog.com/game/diablo](https://www.gog.com/game/diablo)

P.P.S. for the verification process, there have been proposals that are both ambitious at a level of PhD research (see [10]) and that made us feel warm and fuzzy <3 In the end, many of the techniques outlined were discussed mostly on a design level, some were included as Proof of Concepts, but most of the work in reverse engineering Diablo 1 was from tender labour of a team that care for Diablo 1 the way you would your firstborn child.

[1]: [https://github.com/diasurgical/scalpel/blob/master/psx/_dump...](https://github.com/diasurgical/scalpel/blob/master/psx/_dump_/_dump_merge_c_src_/diabpsx/source/drlg_l1.cpp)

[2]: [http://diablo1.se/notes/debug.html](http://diablo1.se/notes/debug.html)

[3]: [https://github.com/diasurgical/devilution/issues/111#issueco...](https://github.com/diasurgical/devilution/issues/111#issuecomment-426059660)

[4]: [http://bytepointer.com/articles/the_microsoft_rich_header.ht...](http://bytepointer.com/articles/the_microsoft_rich_header.htm)

[5]: [https://github.com/diasurgical/devilution/issues/111](https://github.com/diasurgical/devilution/issues/111)

[6]: [https://github.com/diasurgical/devilution/issues/64](https://github.com/diasurgical/devilution/issues/64)

[7]: [https://github.com/diasurgical/devilution/milestone/3](https://github.com/diasurgical/devilution/milestone/3)

[8]: [https://github.com/diasurgical/devilution- comparer](https://github.com/diasurgical/devilution-comparer)

[9]: [https://github.com/diasurgical/devilutionX](https://github.com/diasurgical/devilutionX)

[10]: [https://github.com/diasurgical/devilution/issues/171](https://github.com/diasurgical/devilution/issues/171)

<comment><USER10> Super noob question but i'm trying to wrap my head around how one could figure out the source code just based on things like debug info and assert strings? I watched the video and am staring at your examples and I just don't understand how you go from those to actual source code.

<comment><USER11> In the disassembly we can see a bunch of fine grained operations but the meaning behind them is opaque. For example, we see two array access operations but its not clear what they do. They might look like this:

mov al, [array + ebx]

Considering the assert statement from point 2: "plr[myplr].InvGrid[i] <= plr[myplr]._pNumInv"

From this we can see what the variables were named in the source code. Assuming "plr" = player and "InvGrid" = Inventory grid, we can deduce one the array access operations is to get the current player and another is for getting an item from the inventory grid.

</comment></comment></comment></comment></comment><comment><USER12> I've been watching all of Modern Vintage Gamer's content for about 9 months now. This guy puts out some really nice videos with high production quality. There was a great video about game disk copy-protection a few weeks back. Awesome stuff, and very well researched.

Some other really good content out there is Game Historian, RetroRGB, My Life in Gaming, and Wrestling with Gaming. If you're into hardware restoration then Retro Man Cave has a lot of content too.

<comment><USER13> The DF Retro series on the Digital Foundry channel is great too.

And RetroAhoy on the Ahoy channel.

</comment></comment><comment><USER14> The original Mac version of Diablo also came with debug symbols, at the time I had written some sort of 'companion cheater map' thing that piggybacked onto the game for doing various nefarious things. It was called 'Dieblo' !

I also had to reverse engineer a whole lot of things, but at the time with Macsbug and a little bit of patience (and an OS with no memory protection whatsoever) it was pretty trivial work.

</comment><comment><USER15> It's much easier to do reverse engineering on programs compiled with old compilers, nowdays compiler are really good at optimizing shit, which means making the assembly code more complex, using new instructions etc...

</comment><comment><USER16> I love open-source mods/remakes of legacy games. It requires technical expertise and exceptional patience to build something so large in scale and complexity. The disgusting amount of work to accomplish this compounded by the fact that it's free for everyone makes me envious of their passion. A technical feat that is equally admirable as it is impressive.

</comment><comment><USER17> Doesn't "reverse engineered" imply that source code wasn't used?

<comment><USER18> well, source code wasn't used was it?

Anyway, I think "reverse engineering" is a broad category that include disassembly techniques. "Clean room reverse engineering" is a stricter idea.

</comment></comment><comment><USER19> I wonder why blizzard didn't just release diablo as open source.

I assume there's no strong minded folks at the top like John Carmack.

Id Software went through a little turmoil when he wanted to release the doom source, but it sort of highlights his unshakable confidence.

<comment><USER20> They may not have the original source. They lost quite a lot of the original Starcraft Assets and they were only later found by lick in someone's garage or loft well over a decade later IIRC.

I have a lot of code myself (mostly perl scripts, very old .NET and Java code) for old systems that are deployed that weren't in any sort of source control until recently.

This may surprise some but until 2006-2007 most source control systems were by today's standard terrible.

I've been through the torture of working sometimes with Accurev and Microsoft Sourcesafe and tbh you are better just zipping up your source code and putting a date and time on the archive name. Even more modern systems like Team Foundation Server are painful.

</comment></comment><comment><USER21> Semantic question but doesnt reverse engineered already means you have no access to source code?

<comment><USER22> Yeah. On the other hand probably most of us had a chance to work with code that needed some reverse engineering to be understood ;)

</comment></comment><comment><USER23> So is Devilution considered the current best port by the Diablo community? When I last checked there were at least 3-4 others.

</comment><comment><USER24> Ah, the good old mpq files... I remember extracting sound/music from Warcraft 3 and using them as ringtones.

</comment><comment><USER25> Aha! So game developers do write tests after all :)

</comment><comment><USER26> This sounds lees like reverse engineering and more like decompiling.

<comment><USER27> Yeah, this was hotly debated on Reddit that it wasn't truly reverse engineering.

<comment><USER20> Well it is by most definitions tbh. Tbh the people on Reddit aren't the brightest.

</comment></comment></comment><comment><USER28> Amazing video ;)</comment>


Ask HN: Should I use disqus for my start up? - <AUTHOR>

I'm going to be starting something that's like giphy/imgur/gfycat etc. Is using disqus fine? Or would that negatively impact the 'value' of my start up? I'd like to hear ideas/thoughts/opinions on this as I googled and googled but not one seems to be able to answer this question. <comment><USER2> Disqus is good for an MVP. It's easy to embed and works well.

If you're worried about "owning" the data/community, you could host your own discourse ([http://www.discourse.org/](http://www.discourse.org/)) instance and use their embed feature ([http://eviltrout.com/2014/01/22/embedding- discourse.html](http://eviltrout.com/2014/01/22/embedding-discourse.html)).

Embedding is sadly missing inline commenting, though.

<comment><AUTHOR> What do you mean by embedding is missing inline commenting? What's inline commenting?

</comment></comment><comment><USER3> Personally I dislike disqus. I guess there's nothing wrong with it, but if you have a kind of service users will need to register with anyway - why not create your own system that you can customize however you want, and keep your own data, etc, etc?

On the other hand if you are just working on MVP, and comments are not your main value prop, and you just don't want to bother with implementing your own system - sure, whatever, go for it. There's nothing too horrible about disqus, it's fine.

</comment><comment><USER4> I have used disqus in the past and I would say, go for it! Pros and cons:

\+ Highly customizable

\+ Loads of moderation options(whitelists, blacklists)

\+ Active community

\+ Easy to use admin tools

\- Seems to load slowly sometimes

Also, the most compelling reason for using it is that you don't need to waste time coding your own commenting system. In the future if you decide to make a commenting system of your own, you can always export comments from disqus.

</comment><comment><USER5> If the comments have any SEO value to you, then no I wouldn't use disqus, I'd make sure the comments actually lived in the DOM of the page.

But if the comments are just an add-on with little SEO value, then sure, quick and easy.

</comment><comment><USER6> If you do, know that I won't be using it. It's a single data point, I know, but I felt I should mention it.

I don't like enabling semi-arbitrary JS from one place among all the sites I visit.</comment>


Show HN: My Dad and I wrote a simple distributed storage system in PHP - <AUTHOR> The goal was to aggregate LEB providers and/or homelab enthusiasts to ensure redundancy and high availability. I added a simple URL shortener to test it out.
All feedback is welcome!
Link Shortener: https://github.com/christian-kramer/qdlink
Distributed Storage: https://github.com/christian-kramer/qdstore
Live Site: http://qdl.ink <comment><USER2> It's kinda down?

<comment><AUTHOR> Sorry about that, try HTTP</comment></comment>


A Guide to Python Frameworks for Hadoop - <AUTHOR> http://blog.cloudera.com/blog/2013/01/a-guide-to-python-frameworks-for-hadoop/

<comment><USER2> Former[1] primary mrjob maintainer here, thanks for the shout-out! I'd like to make a couple of notes and corrections. In particular, I thank you for recommending mrjob for EMR usage, as it's something we've made a point of trying to be the best at.

First of all, _all of these frameworks use Hadoop Streaming._ As mentioned in the mrjob 0.4-dev docs [2] (pardon the run-on sentence):

"Although Hadoop is primarly designed to work with JVM code, it supports other languages via Hadoop Streaming, a special jar which calls an arbitrary program as a subprocess, passing input via stdin and gathering results via stdout."

mrjob's role is to give you a structured way to write Hadoop Streaming jobs in Python (or, recently, any language). When your task runs, it's taking input and output the same way as your raw Python example does, except mrjob is passing it through to the methods you've defined after running each line through a deserialization function. It picks the code to run based on command line arguments such as --mapper, --reducer, etc. The output of the code is again serialized. The methods of [de]serialization are defined declaritively in your class, as you showed.

So why did you find mrjob to be slower than bare Hadoop Streaming? I don't know! In theory, you're running approximately the same code between the mrjob and the bare Python versions of your script. If anyone has time to dig into this and find out where that time is being spent, I would be grateful. Results should be sent to the issue tracker on the Github page [3].

Feel free to ask clarifying questions. I realize I may not be explaining this effectively to people unfamiliar with the ins and outs of Python MapReduce frameworks.

I'm thinking of organizing the 2nd "mrjob hackathon" in the near future, so please ping me if you're interested in contributing to an easy-to-handle lots- of-low-hanging-fruit OSS project. (Particularly if you're a Rubyist, because we have an experimental way to use Ruby with it.)

[1] mrjob is maintained by Yelp, where I worked until recently. It's still under active development, though it's slowed somewhat since Dave and I moved on.

[2] [http://mrjob.readthedocs.org/en/latest/guides/concepts.html#...](http://mrjob.readthedocs.org/en/latest/guides/concepts.html#hadoop- streaming-and-mrjob)

[3] <http://www.github.com/yelp/mrjob/issues/new>

<comment><USER2> One last thing I forgot to mention: there was a typedbytes support pull request for mrjob at one point, but it was behind the dev branch enough that it wasn't practical to merge. It is possible (probable?) that typedbytes support will make it into a future release if an interested party could put in the time. I would have done it myself if I had been able to make head or tail of the typedbytes documentation.

Also, if you're just starting out or want to look over the docs, I'd recommend using the dev version hosted on readthedocs instead of the PyPI version, as the author did: <http://mrjob.readthedocs.org/en/latest/index.html>

<comment><AUTHOR> I did only a bit of profiling on mrjob, but it seemed that the ser/de was significantly slowing down the overall computation.

<comment><USER2> Here's the code that's doing the actual line parsing: [https://github.com/Yelp/mrjob/blob/master/mrjob/protocol.py#...](https://github.com/Yelp/mrjob/blob/master/mrjob/protocol.py#L144)

It's just splitting on tab for input and re-joining on tab for output. Some extra logic for lines without tabs.

EDIT: The example in the post is using JSON for communication between intermediate steps, while the Hadoop Streaming example is using a custom delimiter format. So this isn't really a fair comparison; the mrjob example could just as easily use the same efficient intermediate format.

<comment><AUTHOR> Here is the profiling output: <https://gist.github.com/4478737>

The input is RawProtocol, which simply splits on tab. But after that, mrjob defaults to using JSON internally, and this is causing a lot of slowdown.

<comment><USER2> So mrjob isn't slower at all! You just chose to use JSON for your intermediate steps in the mrjob example, instead of the delimiter format you used in the raw Python example. I believe the mrjob docs do say what the defaults are. RawProtocol can be used for intermediate steps just fine.

Please either mention this difference in your post or update the code and conclusions. If there's a place in the documentation where we should mention optimizations or details like this, I'd be interested to know.

I should have thought of this before. Oh well.

<comment><AUTHOR> My goal was to use mrjob's features, not strip them down for performance. I find mrjob's natural use of JSON very appealing in terms of user-experience. It means that keys can be more complex types without the user having to manually figure out the best way to encode them. I make it clear that this is an appealing property of mrjob, and I make it clear that this is the reason for the slowdown. As is, the code will not work with RawProtocol internally because the key is a tuple of words.

<comment><USER2> I can't find the part of the post where you explain that JSON parsing is the reason for the slowdown. You just say mrjob itself is slower. While I agree that mrjob's defaults encourage the use of JSON, I think it's unfair to blame lack of optimization on the framework, given that the bare Python example could just as easily have used JSON.

One real issue with mrjob is that it assumes you're only going to have one key and one value. It isn't straightforward to use multiple key fields. The workaround is to write a custom protocol (which, btw, is very simple [1]) that uses the line up to the first tab as the key, and the rest of the line as the value, probably splitting it on tab as well and passing it through as a tuple. If we had made multipart keys simpler to use, maybe you would have chosen to use a more efficient format.

Anyway, the main part I take issue with is:

"mrjob seems highly active, easy-to-use, and mature...but it appears to perform the slowest."

That's just not true. It would be fair to say that optimizing jobs with multipart keys isn't straightforward and therefore encourages non-optimal code, but that's moot if you're just using one key and one value, as most people do.

I'm really not trying to dump on you here. I liked the post! I would just prefer that it was more precise about these things.

[1] [http://mrjob.readthedocs.org/en/latest/guides/writing- mrjobs...](http://mrjob.readthedocs.org/en/latest/guides/writing- mrjobs.html#writing-protocols)

EDIT: If anyone's thinking about downvoting this guy (someone did), don't. This is a discussion in good faith.

</comment></comment></comment></comment></comment></comment></comment></comment><comment> throwaway54-762 Slightly tangential, but I'd like to shamelessly plug my HDFS client library (with nice Python bindings)[0].

If you want to access files on HDFS from your Python tasks outside of your typical map / shuffle inputs from the streaming API, it might be handy? It doesn't go through the JVM (the library is in C), so it might save a little latency for short Python tasks.

[0]: <https://github.com/cemeyer/hadoofus>

Also, I'm pretty new to publishing my own open source libraries. If people would be so kind, I'd love some constructive criticism. Thanks HN!

<comment><USER2> The main thing you need to do is publish your Python package to PyPI. This should fill in the gaps in your Python packaging knowledge: <http://guide.python-distribute.org/>

<comment> throwaway54-762 It's a C library, though — is that acceptable for PyPI? Thanks for the feedback!

<comment><USER2> Yep - if it's a Python library that can be 'python setup.py install'ed, then it should be on PyPI. That's true of modules requiring C extensions.

</comment></comment></comment></comment><comment><USER3> The only framework I've used of the ones discussed is Hadoop Streaming with Python. For our use case (rapid prototyping of statistical analytics on several-terabyte structured data), it worked perfectly and was almost frictionless.

As the article calls out, we had to detect the boundaries between keys manually, but that didn't add much complexity. We called into Python through Hive scripts. Our group had little prior experience; some had used Python before, no one had used Hive/Hadoop much or at all, but we were all productive within a day of ramp-up time. I'm positive we were more productive than if we'd implemented everything in Java, even for the people more experienced in Java than Python.

If I have any future projects requiring similar analysis, I'd like to use Hive with Hadoop Streaming and Python again.

</comment><comment><USER4> A while back I did some tests to compare the Hadoop Streaming library to the Dumbo library. I have to agree, if your MapReduce jobs are not crazy complicated, and don't require chaining...it's best to just write it using the raw Streaming library.

</comment><comment><USER5> You can do hbase stuff via streaming as well with this library <https://github.com/vanship82/hadoop-hbase-streaming></comment>


MacOS 10.12 Sierra: The Ars Technica Review - <AUTHOR> http://arstechnica.com/apple/2016/09/macos-10-12-sierra-the-ars-technica-review/ <comment><USER2> nice overview, P7 on macOS APFS: lazy allocation, process level file locks, write coalescing, copy-on-write (instead of journaling), encryption.</comment>


Ask HN: how's that CR-48 notebook working out for you? - <AUTHOR>

Assuming you are using one for your day to day work. <comment><USER2> I've found it to be a mixed bag, which really, as beta software and limited hardware shouldn't be unexpected.

The good:

First, it helps if you were already a big user of the Google services. After losing all my work when my laptop got soaked in college I was prepared for the next go round. I've taken all my notes in Evernote (not the greatest writing interface - fabulous for other things and importing docs) or Google Docs. I exclusively use the Cr-48 for school except for writing papers because footnotes and legal writing guidelines are just easier in Word.

All of my extensions synced over upon signing in, like on an Android phone. LastPass worked right away without any hassles. Ditto for bookmarks.

There are a number of extensions/applications/webapps that can duplicate the traditional desktop experience. Some, like the New York Times are really nice. Simplenote in Chrome is just like any other browser. Some "webapps" are just bookmarks. Like Mint. TweetDeck is nice and runs well but I never was a big fan of it in general.

The free 100mb of 3G courtesy of Verizon has been a lifesaver because honestly, either the software or hardware will drop WiFi and require turning the machine off and on to get it back. And without the Internet, the experience isn't so hot.

The mediocre:

Having been spoiled with a Macbook the trackpad on the Cr-48 isn't very responsive and doesn't even handle two fingered scroll well. I don't fault Google on that - it's a free laptop with minimal hardware, it's just a frustration, not a ChromeOS issue. (likewise the screen isn't the best, but again, hardware not software. the real devices should be better)

Sometimes I really want to have an application separate and even opening a new window doesn't make it feel that way. You have to remember it's just a browser. The clock app is a large box that pops up similar to a Gmail notification. I think a little more start menu/taskbar like behavior as part of the Chrome interface would be nice.

The filesystem is a pain. You don't usually need to access it, but when you do it feels like you are in the wrong place. Integrating say, Dropbox would be fantastic. Sync a few files to the SSD but most stay in the cloud. And the user wouldn't ever have to see Unix style folder structures.

The bad: The Cr-48 looks like a laptop. It has a webcam, a full keyboard, USB and even VGA. But unless rooted it is not a laptop. It is just a web browser.

Trying to keep in mind that the Cr-48 is not the hardware ChromeOS will always use is tricky. Had I loaded it onto my laptop I probably would have quit using it after a day or so. I honestly really like having a small, light, fast browser in that form factor that can also do serious typing.

I don't consider, even after months of use, the iPad to be good for long periods of typing. Even with a bluetooth keyboard it is an awkward experience. The Cr-48 doesn't have that issue. It feels like any other laptop while typing.

The problem with the Cr-48 is that I can't imagine when I would purchase a device similar to it. Not as a second laptop. And I wouldn't make it my primary machine supported by an iPad or other tablet and a smartphone to divide my computing time.

Google TV is running Android right? And it has Chrome in top of that. Why not do the same thing here? Why have ChromeOS and not just Android running Chrome with the webapp store? People will get used to webapps without having a cloud- only computer. If Honeycomb had Chrome instead of the standard Android browser I don't see why Google couldn't toss it into something with a keyboard that looked like a laptop but was really just tablet/smartphone guts without a touchscreen. Even dualcore capable Gingerbread would be more than enough to replace the Cr-48 in execution.

</comment><comment><USER3> I love the cr-48. The only thing I wish I could have is a full emacs install for use in a tab. I'll be completely satisfied once I figure that out. I have a personal "cloud" at home so it's the perfect complement.

Hardware wise its great. I've had a 14 inch laptop and a 7 inch netbook and this is the sweetspot. It can also run my 23 inch monitor.

The keyboard is similar to my Apple aluminum keyboard (the only Apple product I own and admittedly love). But to my surprise it's more quiet than the Apple keyboard.

The laptop's outer appearance is exactly what I've always dreamed of.

When more mSATA SSD's hit the market I will be upgrading it. I'd like to dual boot chrome OS and a linux distro of my choice.

</comment><comment><USER4> I tried, but was underwhelmed. Too slow. Too many restrictions (CR-48 requires a _complete_ migration to online with no exception, not that I wasn't aware of it at the beginning).

<comment><AUTHOR> So you are not using it anymore? Too slow is interesting, seeing Google's focus on speed.

</comment></comment><comment><USER5> I've enjoyed using it - I was already checking my mail online, using Google Docs and Calendar to manage my documents and time so the transition was pretty smooth. It's become my daily browsing, bookmarking and emailing machine. As for using it for any type of development, well - I can say I tried haha.

</comment><comment><USER6> I would tell you if I got one :(

</comment><comment><USER7> I wanted to like laptop. It's too slow and clunky for getting work done. Just surfing it's ok but I prefer a bigger screen.</comment>


Why Elon Musk thinks we're characters in a computer simulation - <AUTHOR> http://www.vox.com/technology/2016/6/23/12007694/elon-musk-simulation-cartoon <comment><USER2> Or we live in a game and 'avatars' are moderators. Perhaps some of the people in the game are PCs with no awareness of their being in the game and the rest are sentient NPCs.</comment>


Senators want to block Facebook's Saverin from reentering the U.S - <AUTHOR> http://venturebeat.com/2012/05/17/senators-block-saverin-citizenship/

<comment><USER2> We shouldn't punish people who take advantage of the US tax code, we should change the codes they take advantage of. But that involves _actual work_ \- reaching across the aisle, discussing, drafting and agreeing on law. I'm not in any way surprised that the Senate would prefer to do anything else.

Quasi-related tax rant: I am not a US citizen, but I live here. I want to get a green card (the process for that is another rant entirely). If I get one, I will owe tax on my earnings in _any_ country. Earn £20,000 in the UK? Well, the UK gets a tax cut of that. Oh, and so does the US, for reasons unknown. America is the only country that does this, as far as I know.

<comment><USER3> The US wouldn't get a cut of that unless the exchange rate really sucked and that £20,000 was worth more than $90,000. Plus any UK taxes you paid on it (assuming there is a taxation treaty between the UK and US) are deductible from your US tax liability.

In general you have to either live in a country that doesn't have a tax treaty with the US or not pay taxes on your income in the country in which you reside.

<comment><USER4> That is only true for "Earned Income" if he's not self employed. If he's a web contractor for example, he still has to pay self-employment taxes %15.3 of his UK earned income received from his UK clients, EVEN IF HE LIVES IN THE UK... to the US... fair? really?

[http://www.irs.gov/publications/p54/ch03.html#en_US_2011_pub...](http://www.irs.gov/publications/p54/ch03.html#en_US_2011_publink100047390)

</comment></comment></comment><comment><USER5> A Brazilian who got US citizenship, helped create thousands of jobs in the US, moved to Singapore in _2009_ and effectively lives and works there since then, applied to drop his US citizenship in January 2011 and will pay the exit tax for it will now potentially be subjected to an illegal (re constitution) retroactive law to "punish" him when the main reason (I speculate) he decided to do so is the crazy American legislation that wants expats to pay their taxes twice (abroad and at home) even if they really live and work abroad?

Ah..it's election year

</comment><comment><USER6> Why not, after all actions must have consequences. If he wants to avoid taxes and it's legal by all means he should do it. But there should be consequences to his actions, this proposition seems like a possible one (quite extreme though).

I would like to remind all the wannabe rich on HN who believe that one day they will be in his shoes, nobody succeeds alone and your success has a price for the country. For example in the case of Facebook there are more infrastructure costs for the whole internet, additional regulations have to be passed, etc...

PS: Ghostery on Venturebeat: 17 spying widgets found... Not going on that website ever again.

<comment><USER7> Isn't this completely backwards? Why would you be able to punish someone for doing something completely legal? Do we punish profitable corporations who pay no tax? Of course not; they're abiding by the laws. If you want to prevent this stuff from happening, change the law.

<comment><USER8> > If you want to prevent this stuff from happening, change the law.

Isn't that what they are trying to do?

<comment><USER9> "Isn't that what they are trying to do?"

No they are not. They are trying to skim money out of someone who worked his ass off and when it is time to get paid, he is being shortchanged.

<comment><USER10> The only thing he provided was the angel funding for Facebook. He literally hasn't done any work to earn the increase in the value of Facebook's stock since he got fired a few months after Facebook launched. This guy is practically _the_ reason for founder vesting cliffs.

He's not being shortchanged; he's done nothing to earn this money.

</comment></comment></comment></comment></comment><comment><USER11> A better idea would be to deport the Senators to Somalia or Turkmenistan or somewhere, and block them from re-entering the U.S.

<comment><USER12> How would this help anything?

<comment><USER11> It would be a start. Our government is totally evil, corrupt, and invasive. Anything that takes away from their ability to interfere with things is a Good Thing.

Deport all the Senators, then the House Reps, then all of the judges, the President, Vice President, and then start on the rank-and-file bureaucrats... Oh, how I long for that day.

</comment></comment></comment><comment><USER13> My understanding is that the rule blocking reentry from people who drop citizenship for tax reasons is longstanding. I'm entirely in favor of both the rule and the application in this case.

This goes on frequently within the US, too. A friend of friends made north of $100m in the dot-com bubble on a company that later collapsed. He made his money in SF, but bought a house in Nevada so that he could dodge the California taxes.

It may be legal, but it was a douchebag move, the moral equivalent of going out for a meal with a big group and sneaking out before the check arrives.

<comment><USER9> "the moral equivalent of going out for a meal with a big group and sneaking out before the check arrives."

Not quite. Saverin played a major part in cooking the meal (using your analogy) and deserves his fair share of sneaking out before the check arrives. Heck, he should be paid for making the meal and a thank you!!

<comment><USER13> Please. The fellow played a modest early role and was then forced out because he wasn't competent to handle the rest. His was a minor role in a major startup, and he is basically a lottery winner. For which I say: congrats!

Also, you misunderstand restaurants in the same way you misunderstand economies. The guy who chops the vegetables in the 3 months after the restaurant opens should certainly be paid and thanked. But his job only exists because of heavy investment by the restaurateur.

And that sous chef should still pay his taxes just like everybody else, because restaurants are heavily dependent on civic infrastructure.

<comment><USER14> _And that sous chef should still pay his taxes just like everybody else, because restaurants are heavily dependent on civic infrastructure._

The issue in question is whether the sous chef, after leaving the US permanently and renouncing his citizenship, should pay taxes to the US on his investments above and beyond what any foreign investor would pay.

Saverin did pay his taxes just like everybody else. The question is whether he should now pay taxes above and beyond what other Singaporeans are obligated to pay.

<comment><USER13> Do you have any evidence that he's sold all his stock? Because he wouldn't have paid all his capital gains tax until the last share is sold.

If he has indeed paid all the tax on the Facebook lottery winnings, then I don't have a problem with him renouncing his citizenship. But I've seen estimates that he saves $100m by doing this, and I presume that's because he still has the stock.

</comment></comment></comment></comment></comment><comment><USER15> This is political BS aimed at making rich people look bad in an election year and nothing else. As if 60 million means anything at all to our budget. Less than 2k people left last year. At most we are talking about a few billion in a multiple trillion budget. It just doesn't matter. The negatives of not having intelligent businessmen ever come back far outweighs the few bucks we could have taken from them. I'm just going out on a limb, but I suspect facebook has generated more than 60 million for the government so far.

</comment><comment><USER16> I find it funny that the US is acting like a scathed lover when in actuality it was her own restrictive propensities that push him away. GG USA for scaring away another great BF.

</comment><comment><USER17> I don't get why people keep saying Saverin filing his paperwork in January 2011 makes it _completely obvious_ that he was _not_ doing this to avoid paying taxes. Facebook was going to have an IPO and the guy was clearly preparing for it.

It may not be illegal, but it sure is disgusting.

</comment><comment><USER18> I just sent a letter to Sen Casey, one of my senators. I want to know why he is wasting his time on this crap. I can think of a lot of other issues that he should be spending his time on.

</comment><comment><USER19> Wouldn't this be a retroactive law? Surely it wouldn't apply to him as he renounced his citizenship before the law was made?

<comment><USER10> No, the restriction only applies to criminal laws.

Also, having renounced his citizenship and already given up his U.S. residency, he is no longer subject to the protections of the U.S. constitution.

</comment></comment><comment><USER20> Lots of Rich people pay less income tax than the middle working class or even the lower working class. Should we kick them out of the country too, for being intelligent?

Don't we all want to pay less tax? If there was a legal loophole would you do it?

<comment><USER13> I don't particularly want to pay less tax. I just want to pay my fair share. Having lived in places with much shoddier governments, I think I get pretty good value on my dollar. So when somebody is trying to dodge their fair sahre, I don't like it.

</comment></comment><comment><USER21> What about the hoards of riches who invest in foreign countries?

I mean, they made their money in the US, not just do they use the infrastructure, but also take money from American people directly.

Now they want to send the money out, and help other countries to start businesses and create jobs?! They might as well live in those 3rd world countries themselves, forever!

<comment><USER5> if they are US citizens they pay taxes in the US even if they do live in those "3rd world countries" 9after having paid whatever taxes they owe to the "3rd world countries"...)

</comment></comment><comment><USER22> Does this mean we can stop Arrington from reentering California too?

</comment><comment><USER23> The visa rules already say this, as was pointed out by pretty much all news stories at the time. Is there any way this isn't just grandstanding and cheap point-scoring?

[http://www.uscis.gov/ilink/docView/22CFR/HTML/22CFR/0-0-0-1/...](http://www.uscis.gov/ilink/docView/22CFR/HTML/22CFR/0-0-0-1/0-0-0-55/0-0-0-441.html)

<comment><USER24> There's no evidence he qualifies under that clause. He didn't renounce to avoid taxation, quite the opposite: He was paid up on his taxes and paid an "exit tax" according to the quote in an article I read last night.

The USA requires you to get permission before renouncing. Part of the process of getting that permission is being audited by the IRS to make sure you're up to date on your taxes, and paying an excise tax on the money you're taking out of the country.

The clause you're referring to is for people who sneak money out of the country and then trick the US into "letting" them renounce where the US thinks they are up to date on their taxes but they aren't because they hid the money.

There's no evidence he has hid any money, and no evidence that he has renounced to avoid paying taxes.

Unlike most countries, the USA taxes citizens on their worldwide income, no matter where it is earned or where they live. This means that unless you want to be paying taxes to the USA for money earned outside the USA for businesses outside the USA, you have to renounce.

</comment></comment><comment><USER25> California is 20% illegal immigrants, paying no tax at all. Those ones they do not block from entering...

<comment><USER26> This doesn't pass the laugh test, even if you had a source, which you don't.

Have you heard of the sales tax? You might have come across mention of it somewhere. I'll give you a hint. It's around 9% in CA, depending on where you live.

</comment></comment><comment><USER27> Non US citizen here.

I think the senators are taking this personally. More than 'He didn't pay the tax' this is about 'Does US no longer matter that people are renouncing citizenship?'

The fact is rest of world thinks they don't need US or go to US to do big things, anymore. That is something for the Senators to think about.

</comment><comment><USER24> Sure, lets keep foreign born past citizens who helped create $100B companies from coming back to the USA. That will show them!

I really don't think we could survive another attack on the order of Facebook!

<comment><USER28> I don't think Saverin's contributions are really proportionate to his windfall. But even that aside, yes, it's great that people come to this country to build things. But this country also offers a lot that makes that possible (there's a reason they come here, after all), not least the enforcement of laws and a relatively level playing field, and part of the bargain is that you pay some back when you win.

You could argue that what he's doing now amounts to insider trading.

<comment><USER24> You seem to be arguing that he didn't "pay some back when you win". However, as part of the renunciation process you have to be up to date on your taxes, and you have to pay a tax on any money you move out of the USA. Thus he's already paid his taxes.

Now he's a citizen and resident of singapore. He's got a couple investments there. But your claim that he owes the US taxes on what he built in the USA would seem to no longer apply, right? Since he's building the next thing in singapore, wouldn't he owe singaporean taxes?

If he didn't renounce, the US government would be taxing him on the money he makes in Singapore on a singapore business as well. Even though he's no longer benefiting from the "services" provided by the US government.

The US is unusual in the fact that it taxes citizens on their worldwide income. Further, it imposes fairly onerous reporting requirements that make it difficult for US citizens who live outside the USA to conduct business.

Just because he spent 10 years here, doesn't mean the US really deserves a cut of everything he makes for the rest of his life. This is why there's a renunciation process, and he has gone thru that process legally.

<comment><USER28> I think the way the US claims taxes on foreign income is wrong. But this is clearly not foreign income, and he's leaving with clear foreknowledge of a likely future windfall.

I don't think anyone is claiming he has not complied with the law. They're saying that if he wants to renounce citizenship, he must also renounce the benefits of being in the US. If that's truly his intention anyway, then he has nothing to worry about, right?

I'm sure that even if this happens he's not going to shed many tears. If he wants to see his family, they can just meet somewhere else.

<comment><USER24> Either he sold his Facebook stock before leaving, in which case he already paid taxes on it. Or he didn't, and since FB is an american company listed on an american exchange, when he sells any of it he'll still be subjected to long term capital gains, as any other non-US citizen who owns stock on a US exchange is.

Thus the only thing to be upset about is that we have a person who has the ability to produce a high income for himself that the USA can no longer tax.

<comment><USER29> Non-resident aliens are specifically excluded from paying capital gains to the US. I wonder why? The US also refuses to collect information on income earned in the US by foreign residents (currently there are some efforts to change this, being obstructed by congress). Of course if you suggest that this means the US is a tax haven then you are in for an earful. Other, bad, countries are tax havens. Never the magnificent USA!

A far more equitable solution to the Saverin 'problem' would be to apply CGT to ALL US-derived gains. Most countries do this. But that is unlikely to happen as it would reduce foreign investment...

</comment></comment></comment></comment></comment></comment><comment><USER9> I do not understand the fuss about this. If Saverin gave up his US citizenship legally, plans to live _outside_ the US for many years, who cares what taxes is he avoiding? These senators need to get their acts together and fix the tax code instead.

<comment><USER28> If he truly intends to live outside the country and not return here, then what's proposed has no teeth. But it's more likely that he's doing what many wealthy people have done before him, namely renouncing citizenship officially, but continuing to spend as much time as they please in the US. It actually seems pretty reasonable to deny reentry to someone who has left and had a nice windfall as a result. (Perhaps cleaner: demand repatriation of any capital gains as a condition of visa issuance. Assets acquired _after_ the renunciation are of course exempt.)

<comment><USER5> he's been living and working in Singapore since 2009 and there is no way for a non citizen "to spend as much time as they please in the US". You'd need a Visa that is linked to work and in that case work would be of course taxed in US.

<comment><USER28> Wealthy people can get investment visas pretty easily:

<http://en.wikipedia.org/wiki/E-2_visa>

<comment><USER5> which is what I wrote: there is no way he can just spend as much time as he wants without approval, supervision. And the Visa can be rejected</comment></comment></comment></comment></comment>


31C3 Ticket Shop Has Opened - <AUTHOR> http://events.ccc.de/2014/11/23/31c3-ticket-shop-has-opened/

<comment><USER2> Firefox won't take me to the actual ticket purchasing page, claiming a certificate problem:

 _tickets.events.ccc.de uses an invalid security certificate. The certificate is not trusted because the issuer certificate is unknown. (Error code: sec_error_unknown_issuer)_

That's unfortunate. Doing s/https/http/ doesn't work either. Of course I guess all expected customers know how to add an exception to their browsers, but I couldn't be bothered when just browing out of curiosity. :)

<comment><USER3> That's supposed to be like that. If you don't like to see the warning message you'll have to import the [http://www.cacert.org/](http://www.cacert.org/) root certificate.

</comment></comment><comment><USER4> I am conflicted whether to go, on one hand I have nothing better to do in that period, it's cheap, and it's the only time of the year I get to meet 'my people', on the other hand, last time I went (29C3) most of the talks were about privacy and ethics bla bla, rather than the hard technical stuff I went there for in the first place.

If even Ange Albertini has had all of his three proposed talks rejected, the rest this year better be damn good!

I hope they won't make again those ridicolous creepercards from two years ago, some people seem to never have grown out of highschool.

<comment><USER5> I have ever actually attended a congress, but I watch the live streams passionately since the 25c3. 29c3 was IMO the worst congress, 30c3 was a way better.

<comment><USER6> The location made 29c3 so much better than be previous ones because for once it wasn't totally overcrowded.

<comment><USER5> I can't comment on that because I was not physically there, I only "attended" in a figurative meaning of the word.

</comment></comment></comment></comment><comment><USER7> Prices are:

Supporter 140: 140.00 EUR

Supporter: 120.00 EUR

Standard: 100.00 EUR

Business Platinum: 750.00 EUR

Business Gold: 600.00 EUR

Business Silver: 450.00 EUR

Members of the CCC e.V.: 80.00 EUR

Up-and-coming: 25.00 EUR</comment>


Everyme (YC S11) Launches Mobile App That Aims To Get Social Circles Right - <AUTHOR> http://techcrunch.com/2012/04/10/everyme-launch/

<comment><USER2> I've been beta testing Everyme for a few months, and I am a huge fan of the founders too (<http://news.ycombinator.com/item?id=3539676>)

Everyme makes perfect sense - I regularly encounter "status updates" (be they links, updates, or photos) that I want to share to a subset of my friends or family. Everyone does.

The Techcrunch article totally under sells the huge thing that Everyme does that no one else does:

> Everyme uses your phone's address book for sharing, and if people don't have > Everyme accounts, they can still see and post content through email and text > messages

How cool is this? Suddenly, I can create a family circle - and even my family - who are barely on Facebook - can enjoy and engage with relevant content. I think this is huge, and it is also going to drive huge adoption for Everyme. My Grandmother isn't on Facebook, hell, she isn't on Email, but she _is_ on SMS. Everyme just works.

For the first time ever in a social network, when you post a relevant status update, _everyone_ that you want to see it, will see it.

I am hoping they add a Maps / Location feature, and then they've also solved the Beluga gap in this market. I really think these guys are on to something.

<comment><USER3> > Everyme uses your phone's address book for sharing, and if people don't have > Everyme accounts, they can still see and post content through email and text > messages

This is actually a really cool way of solving your initial social network chicken and egg problem as well. When someone is regularly getting content from your app by text or email, they are eventually going to think of signing up for the service to make managing all that content easier.

</comment></comment><comment><USER4> This is a real disappointment for me. While in development, Everyme was presented as a smart address book that would centralize the contacts from all your social networks (Facebook, LinkedIn...), as explained in this article: [http://techcrunch.com/2011/10/18/andreessen-horowitz- crunchf...](http://techcrunch.com/2011/10/18/andreessen-horowitz-crunchfund- tencent-back-intelligent-social-address-book-everyme/).

It sounded like a great idea to me to centralize all these contacts in one single place and to be able to sync them with your iPhone's address book.

But it seems that they moved away from this idea to become a Path / Google+ hybrid.

<comment><USER5> You should take a look at our service: <http://connex.io>

Our value proposition is quite close to Everyme's original one.

Let me know what you think!

</comment></comment><comment><USER6> _"Everyme uses your phone's address book for sharing, and if people don't have Everyme accounts, they can still see and post content through email and text messages."_

This is a brilliant way to overcome the chicken-and-egg problem, which is probably the biggest problem a new social network is facing.

I don't want to share my kids' pictures with everyone on Facebook. And no, my mom is not going to join Google+ (nor should she), so having her receive the posts by emails for now is just brilliant.

I think the Everyme guys may be on to something.

<comment><USER7> Facebook supports granular privacy for all posts via friend lists, and will even suggest friends to add to lists.

Want to share pics with just your family? Don't want to turn down a friend request from a coworker, but don't want them to see anything (Restricted list)? Facebook has these features. These social networks are going nowhere.

<comment><USER8> The lists on Facebook aren't shared. They're just _my_ lists, nobody else can see who they're shared with. Socially this makes them utterly useless, it doesn't form communities. (Facebook groups does this, but it isn't central to the experience, like it is apparently in everyme)

Facebook also requires that everyone you share with has a Facebook account. When I have a party, I have to go and email everyone by hand who isn't on Facebook. You can put their emails into Facebook, but I assume that will make the recipient sign up, so I don't do it.

Both these improvements in Everyme make a lot of sense to me. If only it a) had DuckDuckGo like privacy, b) was truly distributed, c) wasn't for one proprietary OS only.

Ah well.

</comment></comment></comment><comment><USER9> >The app doesn't allow users to share anything from Everyme to Facebook, Twitter, or other social networks — Cameron says that's so you know that what's shared in a Circle stays in the Circle.

These guys have it right. It's about time a social network started focusing on the quality of communication rather than the quantity of connections.

<comment><USER10> Agree with the focus on quality of communication, but is the issue here self- inflicted? Is Everyme trying to solve a problem created because too many of us "friended" their co-workers?

<comment><USER11> Does it matter if it's self-inflicted? People want, need, and pay for solutions to self-inflicted problems all of the time.

Besides, am I really supposed to ignore friend requests from co-workers? It's a socially dangerous thing to do!

</comment></comment></comment><comment><USER12> This makes a lot of sense to me. Back in college, Facebook was a place for _communication_ with friends. Wall posts back and forth had an intimate feel, and no one worried about privacy when it was a closed network.

Somewhere along the way to to a professional career however, I cleaned up my profile, switched most of my updates to public, and shifted towards news sharing and commentary. Twitter and Google+ serve the same purpose for me, and Path feels restrictive since I don't really want to mix family, high school friends, college friends, work friends. This looks like it definitely has the potential to fill that void for private group communication.

</comment><comment><USER6> Facebook should open a new savings account and deposit $1.37 million every day. In two years it will have the $1 billion they'll pay to acquire Everyme.

<comment><USER13> Consolidation-athon?

</comment></comment><comment><USER14> Eeesh, was not aware that merely creating a circle would spam all of my friends in that circle. I like the idea behind everyme, but if it isn't properly communicated when I'll be sending stuff to friends you lose a lot of trust really fast.

Edit: Not entirely true, requires a post first, see ensuing thread...

<comment><USER15> Hi newhouse. Thanks for trying Everyme. We've thought a lot about this process and have made sure not to do anything without your permission. We don't spam your friends when you create a Circle. We only share things with your Circle friends when you actually post them, by clicking the share button in the Circle.

<comment><USER14> You're right, my error. I had a friend mention that she received two separate text messages, the first being about the post, the second being the context (i.e. they were added to a circle). I mistakenly assumed that they weren't sent together and sent in the opposite order. Might be nice to somehow communicate more explicitly that no one is notified until after you post something in a circle.

<comment><USER15> Yes, I agree! That is something we are working on. We are in a difficult place because we are extraordinarily cautionary about what messages we send through email/text but we don't to clutter the UI with alerts and confirm dialogs.

<comment><USER16> Some problems:

I mistyped a phone number and I cant remove it.

There are people in my family circle which have the same last name but are not in my family and I cant edit the circle.

I cant delete a circle....

ARGH I think I just sent "Sam loves this" to a bunch of people! WTF.

I am deleting this until this crap is fixed.

<comment><USER15> Sam, slide to delete works on phone numbers, circles, stories, people in your circles, and other places in the app where you need to remove data. Hope that helps! email@example.com if you need more assistance.

</comment></comment></comment></comment></comment></comment><comment><USER17> You can do this using Facebook's Lists. Can you not?

People seem to be using it. I'm seeing more and more posts from my friends shared with "custom" lists. I myself use that feature (esp. the built-in "Close Friends" list) often.

That doesn't mean this is a bad idea from the investment point of view.

</comment><comment><USER18> I like that I can post content through email and text messages. That said, do we really need a single app that manages multiple 'circles'?

When I look at my phone, my apps are my 'circles'.

For close friends and family, I have text/email/Path. For my significant other, I have Pair. For college/social friends, I have Foursquare/Instagram. For mass distribution, I have Facebook/Twitter. Etc.

With more and more apps offering Twitter/Facebook login, I can quickly pick and choose who I want to share an app with and form a 'circle' around that app.

<comment><USER19> Never thought of the various social apps like that before .. there really need not be One Social Network To Rule Them All !

</comment></comment><comment><USER20> Some UI elements look exactly like in Path app, is this the same company?

</comment><comment><USER21> I don't understand why people don't just use email for this. A few months I set up a mailing list for our family at fiesta.cc (easy private mailing lists) and we've all been using it a lot.

</comment><comment><USER22> Do we really need another social network site? Yes, we do! I am still waiting for a winner that allows me to share private details such as kid photos and contact information with select family members close friends. I want this data to be unavailable to anyone outside of my circle, including advertisers. Are there options available now that do this? Yes again, but I need a solution that I can get Grandma on board just as easily as my technically inclined brothers.

<comment><USER23> most grandmas don't use smartphones...

<comment><USER24> How long are we going to be saying that grandmas are technologically illiterate?

RFC 3 is older (by a few months) than me - April 1969.

Bob Kahn and Vint Cerf are about 70. (That's old enough to be a great grand- parent.) Jon Postel was born in 1943. There are many old women who are Internet pioneers because they were librarians, and the Internet was something that got rolled out to university libraries early on.

<comment><USER25> The killer app for getting the elderly online and using computers/tablets/smartphones has been Skype, in my experience. Specifically, video chat. It's revolutionised communication with family who live far away. I suppose these days FaceTime would be equally appropriate. From there it's a slippery slope for most of them. The retired in my partner's and my family now spend more time playing video games than those of us in our 20s. (they simply have more time to spare)

I could see them picking up on something like this if they could overcome the trust barrier. Most 50+s I know don't trust Facebook and don't have an account there (I don't trust them either, but I'm in the minority in my age group).

</comment></comment></comment></comment><comment><USER26> Circles! Woo!

Not really.

I am completely underwhelmed by this. Not impressed. At all.

I fail to see what this adds to the social network landscape that's unique or can't be easily replicated by FB, G+, etc. Just seems bland. Like white bread.</comment>


Ask HN: How do you raise a seed round if you're not physically in the US - <AUTHOR> Hi HN
I have a startup with 3 co-founders. We're a registered Delaware C-corp.
- Operating for 11 months now
- 50 signups every week, 2,231 registered users
- 2-7k in revenue every month,
- 10% profit margin
- dedicated team
- Bootstrapped, and committed initial funds ourselves
However, we don't operate in the US, and our primary customers right now are in a developing country.
We plan to expand to multiple countries, because that was our goal all along, but we don't have the money to do it.
My question is: as someone not in the US, and with people who have no fund raising experience (but having read almost all the YC posts) how do we raise money. We have literally no idea how to start.
I mean, I've a lot of advice: "get an introduction to a VC", "don't cold email", "it's a numbers game", "it's not a numbers game", etc.
But literally, how do we start? <comment><USER2> Based on the information you provided, you will not be attractive to USA based VCs. The numbers you provide might be good in your country but not in the USA. So I would suggest that you should approach wealthy local people as potential angel investors. With their investment you should be able to grow to a higher level and be able to attract a B round from perhaps an adjacent country with a comparable but somewhat more vibrant economy.

Some people might suggest moving your operations to Silicon Valley, etc. But that would require USD 1m+ to have any chance of success. That probably would be out of your reach until you get B or even C round investments locally.</comment>


Skill based heat map of demand and salary in US, as per the industry - <AUTHOR> http://www.aspiringminds.com/skill_map_skill_view/ <comment><AUTHOR> Hi,

We've tried to create a heat-map of demand and salary for different skills in the US. We've tried to cover a range of skills for each state.

An analysis report on the data can be found at- www.aspiringminds.com/skillmap/.

Note:

\- The salaries and demands are according to the salaries offered by the industries in different states.

\- We are working on incorporating the living costs in the particular areas, which will give a higher intuition to job seekers about what s/he should earn to have a decent living.

Please suggest changes that might make it more intuitive and helpful to job seekers.

Cheers!

</comment><comment><USER2> not working

<comment><AUTHOR> Could you please try once again?

The geoJSON data actually takes a bit of time. You will be able to see the loading of geoJSON-data state by state.</comment></comment>


Hubble makes surprising find in the early universe - <AUTHOR> https://phys.org/news/2020-06-hubble-early-universe.html <comment><AUTHOR> Link to paper: [https://arxiv.org/abs/1807.07580](https://arxiv.org/abs/1807.07580)</comment>


CA to vote on repealing prop 209: allowing discrimination based on race and sex - <AUTHOR> https://ballotpedia.org/California_Repeal_Proposition_209_Affirmative_Action_Amendment_(2020) <comment><USER2> Title is mismatched and misleading. Actual page title: "California Repeal Proposition 209 Affirmative Action Amendment (2020)"

<comment><AUTHOR> In what way does it lead a reader to believe something that is untrue from the actual page? Are you saying that the actual page does not describe a vote to repeal proposition 209?

From the page:

> A "yes" vote supports this constitutional amendment to repeal Proposition > 209 (1996), which prohibited the state from discriminating against or > granting preferential treatment to persons on the basis of race, sex, color, > ethnicity, or national origin in public employment, public education, and > public contracting.

Some of the text that would be removed from the CA constitution:

> The State shall not discriminate against, or grant preferential treatment > to, any individual or group on the basis of race, sex, color, ethnicity, or > national origin in the operation of public employment, public education, or > public contracting.

</comment></comment><comment><USER3> > After 25 years of quantitative and qualitative data, we see that race- > neutral solutions cannot fix problems steeped in race."[15]

?</comment>


Xkcd strip used as a exam question - <AUTHOR> http://i.imgur.com/fT0DA.png <comment><USER3> A friend of mine created a nicely organized database of xkcd strips to help teachers find subject-appropriate examples:

<http://andromedayelton.com/dckx.php>

Some topics clearly show up more often than others...

</comment><comment><USER4> This isn't really surprising.I usually find myself wishing that Randall Munroe (author of XKCD) would teach most of my classes. Not only is he a polymath, but he's completely insane. Those are the best teachers.

<comment><USER5> I'm rather unconvinced that Randall Monroe is a polymath.

<comment><USER6> He postures himself as one, at least.

<comment><USER5> I'd go so far as to say he's _interested_ in a lot of stuff, but his actual level of knowledge is pretty much "dude with a Bachelor's Degree and access to wikipedia".

Nothing wrong with that, but let's not get too excited.

<comment><USER7> > "dude with a Bachelor's Degree and access to wikipedia"

Yeah, but that's actually pretty smart. There are a lot of people who haven't yet figured out that you can look up almost _anything_ online....

</comment></comment></comment></comment></comment><comment><USER8> We show Exploits of a Mom (<http://xkcd.com/327/>) with the moms last speech bubble blanked out to candidates during interviews. You might be surprised how many have trouble explaining what is going on.

<comment><USER9> I didn't get it until the last bubble. I thought the son did the exploit and the mom was covering for him. I'm still unclear if that was actually the childs name or this was a one-off exploit by the mom.

<comment><USER6> Does that really matter?

The parent poster is saying that interviewees don't get what's going on _with the exploit itself_.

<comment><USER9> But they pretty much show the exploit in the previous pane... How could they not get the exploit?

<comment><USER10> That's the point. If the candidate doesn't know that that is a SQL injection, then you have a problem.

</comment></comment></comment></comment></comment><comment><USER11> I've seen this one used in an Introduction to Psychology exam: <http://xkcd.com/32/> And the velociraptor problem was a class exercise for calculus: <http://www.xkcd.com/135/>

</comment><comment><USER12> The best I've had in my experience is a Calvin and Hobbes strip, but they're probably too classic to matter.

<http://www.gocomics.com/calvinandhobbes/1995/08/23> I had to identify and analyze the survey bias that his response creates for a test in an introductory statistics class.

</comment><comment><USER13> Next, everyone will be called a cheater and have to retake the exam because they have read xkcd before.

</comment><comment><USER14> if they use this one, does it become a recursive loop ? ... nerd sniping: <http://xkcd.com/356/>

<comment><USER4> Personally, <http://xkcd.com/308/> is what I live my life by.

</comment></comment><comment><USER15> I find it odd that the test's adaptation removes the first two words from "standard creepiness rule: don't date under (age/2+7)". Is it objectionable to refer to dating with large gaps of age as creepy?

<comment><USER16> Perhaps it's objectionable if you're a professor with a lot of hot students.

<comment><USER17> I find it creepier when a professor's unwilling to cite a source accurately.

</comment></comment></comment><comment><USER18> Edit: Just noticed that the Wolfram links break because of their syntax. HN then worsens the problem, by shortening the displayed links with '...', meaning copy/paste breaks! So I'm just removing the http prefix and you'll have to copy/paste to view any of the graphs.

\---

This seems to disagree with the gist of the comic, but I think the answer to the final part (largest dating pool) is 23 years old.

I arrived at that by doing the following, please correct me if you spot an error along the way!

The dating range for any age, t, would be defined as:

      lower limit = .5t + 7
      upper limit = 2t - <USER2>

This agrees with the example in the XKCD strip. The dating range for an 18 year old is from .5(18)+7 = 16 to 2(18)-14 = 22. Because this is linear, the range will always be increasing with age.

Despite the range growing with age, we know that the proportion of singles is decreasing with age. Sigh. That's where the other model comes in. The author of this problem gives:

      S(t) = e^(-0.05*t)

That looks like this: www.wolframalpha.com/input/?i=Plot[E^(-0.05+x),+{x,+85,18}]

I believe the largest dating pool would correspond with the greatest area yielded by taking the definite integral of this function from .5t+7 (the lower age limit) to 2t+14 (the upper age limit). To see this in pretty print, you can visit this link: www.wolframalpha.com/input/?i=integrate+(E^(-.05 _x))+dx+from+(.5_ x%2B7)+to+(2*x-14)

Evaluating that for any age would give the area under the curve corresponding to that age.

The next step, then, would be to find the maximum area for any age. To do this, we should be able to take the derivative of that previous equation, and set it equal to 0 in order to maximize it. Again, correct me if I'm wrong, but for the result of that, I get:

      -2000(e^(-0.1t+0.7) - e^(-0.025t+0.35)) = 0

I plotted that to find that the max was located at age t = 23.

This graph illustrates the size of the dating pool corresponding to age along the x axis: www.wolframalpha.com/input/?i=Plot[-2000(e^(-0.1x%2B0.7)-e^(-0.025x%2B0.35)),+{x,+0,+100}]

Comments? Did I approach this totally wrong? Did I miss something along the way? Does that seem reasonable?

<comment><USER19> The upper age limit is 2t-14 (as you note earlier in your comment) rather than the 2t+14 you mention later.

Integrating, you get -20(e^(-0.05(2x-14)) - e^(-0.05(x/2+7)))

The derivative (eliminating the constant) is: (e^0.7) _(-0.1)(e^(-0.1x))+(e^-0.35)_ (0.025)(e^(-0.025x))

Wolfram gives about 32.5 as the root. You can plot the integral (try www.coolmath.com/graphit) and mouse over to confirm.

</comment></comment><comment><USER20> We had an entire set of programming questions at ProCo (programming contest held at Stanford for high school students) themed with XKCD comics last May: <http://cs.stanford.edu/wiki/proco/PastContests/2010Problems>

</comment><comment><USER21> Ideal dating pool seems to be around age 32.

I don't know how to optimize a function with an integral in R yet (unsurprising, just installed it 20 minutes ago), therefore I can't give a better answer. Now I want to learn R.</comment>


Show HN: Tabd – Send chrome tabs straight to a friend's browser - <AUTHOR> http://tabdextension.com/

<comment><USER2> Does it sync cookies and localstorage or does it just exchange url's?

<comment><AUTHOR> It just exchanges url's. You can attach a note with the tab too, and that is currently the only additional information that is sent with the tab.

I'm looking into other parts of the page we can send, but due to tricky security issues around that, progress on that has been slow.

</comment></comment><comment><USER3> What are the security implications of this?

<comment><AUTHOR> This is a good question. Tabd does a few things for security:

* You must be friends on Tabd to send a tab. Standard friend request style. Thus you can block people who send tabs you don't want.

* If you spam a tab, (ie send the same tab over and over), Tabd will only deliver that tab once until the receiver actually opens it.

* Everything sent over https

* Url flagging functionality - You can set Tabd to temporarily not open NSFW tabs.

If there are more security concerns, please voice them! I'm definitely trying to make this app as secure as possible. While I've done a lot, I'm sure there's more that can be done!

<comment><USER4> so what is preventing me from sending a phishing URL?

<comment><AUTHOR> Nothing, think of it as the same as if you just emailed your friend a phishing URL. Except this way is much more convenient to do so :)

Pretty soon there will be a "block whoever sent me this" feature, but I haven't got around to building that yet.

Until then, just don't add people on Tabd that you don't know and trust!</comment></comment></comment></comment>