Consider: Email 2.0 - <AUTHOR> https://www.consider.co/ <comment><USER2> Thanks, but I'll stay with Email 1.0 for as long as I can. It is one of the last remaining corners of the internet that is not infested with all the human-hostile behaviors you call "features".

Centralized walled garden, bound to fail, or worse, acquired by some super- evil corp at any moment ("our wonderful journey"), packed with emojis, real- time information on who is looking at what worse than the Stasi and loss of control of your timeline is what EVERYONE ELSE ALREADY PEDDLES. These things are part of the problem, not part of the solution. For fuck's sake, leave email alone.

<comment><USER3> As long as one does not go with gmail. Which is, sadly, what most people think IS email :(

<comment><USER4> I'm quite happy with Gmail... It doesn't have any of the negatives listed above.

<comment><USER5> Sure, it was not acquired by some super-evil corp but it was created and owned by one instead. That seems even worse (especially when considering that google was not evil in its early days, or at it was not widely known).

It is also willing to lock you out of your account and keep begging for your phone number (even if you haven't entered it previously) in order to unlock it.

</comment></comment></comment></comment><comment><USER6> Some of the features here are honestly anti-features.

Pinned messages — the last thing I want is someone else choosing how to manage my inbox and what ends up where.

"Presence" aka more user tracking, now also in your inbox. Who in their right mind would want this, never mind paying for it?

There's also no mention of how all the rest of the concepts interface with users who don't buy into the system. Are there partial updates, are people without a subscription just cut out of comments etc?

There are many companies touting email 2.0 but I deeply doubt this is it.

</comment><comment><USER7> Email 2.0:

* Centrally controlled by a single company.

* Closed protocols (so it seems - didn't see evidence to the contrary).

* Encourages you to "Upgrade your conversations" with emojis.

I'm definitely willing to pay! ... for this not to be anywhere near me.

<comment><USER8> Yet everyone is so eager to abandon IRC for Slack and that type of garbage. What is really the difference here?

<comment><USER9> There's still no quick and easy way to set up an IRC server for a company.

There are plenty of ways to easily set up email.

<comment><USER10> apt-get install ircd-hybrid?

</comment></comment></comment></comment><comment><USER11> This seems like a cool idea, but from reading the info on the page I don't quite understand exactly what it is. Is it a mail client? I think it is? If it is an email client, does it have mobile apps? Or do I keep using my gmail app as is?

Sorry if I'm missing the obvious, but those were my first set of questions after reading the site.

<comment><USER12> > If it is an email client, does it have mobile apps?

It says on the website:

Consider is built for Web, Mac, iOS, and Android.

<comment><USER13> So is it an email (SMTP/IMAP/POP) client or not?

</comment></comment></comment><comment><USER14> This looks similar to Topicbox ([https://www.topicbox.com/](https://www.topicbox.com/)) that Fastmail is building.

Overall I think the current paradigm of mail clients is not the correct one: a MUA today is still a glorified view of individual emails, as if it was "just" a maildir viewer. I would rather have a HN- or Reddit-like view, where focus is put on the conversation rather than on the people. This will be more useful than focusing on folders (What's the use of a "Sent" folder ?)

</comment><comment><USER15> What makes email so versatile with little rent-seeking is that it is a decentralized protocol. Companies that want to provide services involving email cannot do so by owning all your contacts or data (like YouTube, Twitter, etc.) — they must offer competitive services. And all because you can exit easily.

More things need to have this ease of exiting with all of the data (cryptographically guaranteed): banks and financial services, social networks, content distribution systems, etc.

</comment><comment><USER16> Every single one of these tools only connect to Gmail. It's kind of a bummer.

<comment><USER17> Gmail has 2.0 Billion users right now. Anything that's successful is going to build an Outlook integration. The reason they aren't launching with Outlook integrations is because it's hard to launch as an enterprise product without any validation for the core value prop; otherwise you'd be spending years building permission management features without knowing whether the actual core product is even useful in the first place.

<comment><USER18> I'd imagine the OP wasn't expressing frustration about not having Outlook integration along with Gmail integration. But instead that it doesn't work with the email protocol, thus working with any standards compliant servers.

<comment><USER17> > But instead that it doesn't work with the email protocol, thus working with > any standards compliant servers.

That isn't really a thing though. The email protocols cover the format of the message and how it's transmitted, there isn't any standard for how servers are implemented that would allow one to develop email software that automatically works with any server. Otherwise Nylas wouldn't be a thing.

<comment><USER19> That is simply not true. For Client-Server communication there is IMAP (for management of your mailbox) and SMTP (for sending emails) which is also used for Server-Server communication.

The fact that clients such as Thunderbird (or mutt) exist and work with basically all email hosts is a testament to this fact.

</comment></comment></comment></comment></comment><comment><USER20> Is there any technical detail on how these features are implemented?

I would like to support improved email but at least some of this has to be implemented at the protocol level, otherwise it's just another walled garden that will wither and die out in a few years.

<comment><USER21> > otherwise it's just another walled garden that will wither and die out in a > few years

Or worse it's another walled garden that doesn't die out in a few years. Not because what it offers in trade for locking you in is worth it, but because the inertia it creates makes sticking with it seem more appealing than migrating to something that could be even worse.

</comment></comment><comment><USER22> Basecamp are also working on a new Web based Email. We went from little to no competition in the space to having two launches within same time frame?

I guess this is a sign that people are generally not happy with Gmail?

<comment><USER23> This situation isn't new, we've been watching this competition grow from an adjacent field for the past year or so. While not directly comparable (nor competing with) this, the way we solve the email problem don't require you to use Gmail, nor giving away your privacy, since we do on-premises. ([https://aether.app](https://aether.app))

</comment></comment><comment><USER24> Hard pass.

They say they're trying to save emails because emails are a unique form of communication that Slack doesn't address. But it doesn't feel like they're actually thinking about email as a platform, they're just blindly stapling features to it. It's not clear how those features interact with existing email features (do inline conversations work with HTML/CSS styling).

And the features don't seem to have much to do with the parts of email they praised. They spend a paragraph talking about how they love email because it doesn't have notifications, because it has subject lines, and because it's an open platform everyone can use. And then they spend a long time talking about how they're going to add a bunch of chat and forum/wiki crap, on a closed platform that not everybody can use. What does any of that crap have to do with asynchronous, thoughtful communication?

 _If_ (and that's a really big if) there's an email 2.0, it's probably going to be people settling on Matrix or building something new on top of ActivityPub. I mean, what are the real problems with email? Spam, over- complicated protocols, bad encryption flows, the difficulty of self-hosting (largely because of spam), bad message-signing flows and verification of contents, wildly outdated clients which make it difficult to use modern CSS.

But congrats, I can add emoji reactions now. Which is apparently an acceptable tradeoff for giving up the ability to communicate with anyone on Gmail.

I don't want to be _too_ negative, but I'm kind of irritated that this made the front page at all, and I suspect the reason is likely purely because it mentions email in the title. My uncharitable analysis is that there's nothing worthwhile to see here. It's just another VC spending a bunch of other people's money to desperately try and solve a problem that doesn't exist by throwing engineers at a web app.

</comment><comment><USER25> I know I'm not the target audience but I'm at the point where if the most salient element on a startup's website is a button that says "Get Started" or "Request Access" I hit the back button.

This fluffy nonsense is really starting to feel lame.

<comment><USER26> What should it say instead?

<comment><USER25> I wish I knew. Sales and marketing are way outside my skill set. Fundamentally I just want to be convinced the product is "better" before I agree to jump through the hoops of giving up yet more of my personal information to a company that's going to spam me until it dies. Make me want your product so much I have to _seek out_ the "Get Started" button.

I know that's not how VC metrics work. They want maximum engagement in minimum time. But IMO these kind of "engagements" are hollow and customer-hostile.

<comment><USER26> Sites that don't have prominent calls to action are basically dead in terms of usage and engagement. If you made such a site, you'd just be screwing yourself over because no one is using your product.

</comment></comment></comment></comment><comment><USER27> i liked the font on the landing page. turns out it's a free open source font from an award winning designer! [https://www.dafontfree.io/averta- font/](https://www.dafontfree.io/averta-font/)

<comment><USER28> Not open source and also not exactly free (2 of the 48 styles are freely available). Still, pretty reasonably priced as far as fonts go: [https://www.fontfabric.com/fonts/averta/](https://www.fontfabric.com/fonts/averta/)

</comment></comment><comment><USER29> Email 2.0 will probably never come, because too many people are already using emails.

Due to this, fixing email has to be done on the client side.

What are the problems of emails (as a user):

* not encrypted by default

* spam

What I think would make a good email client to combat spam is a plugin for browsers: generate a random per-domain email every time you sign up for something. This makes unsubscribing very easy, and this allows you to see when a service your registered with shared your email with someone else.

Do you need anything else? I'm thinking of at least two other use cases:

* work. But you probably already have a separate work email.

* friends. But your friends are already probably on facebook, or whatsapp, or ... I have zero friends using email to reach out to me these days.

</comment><comment><USER30> Perhaps just me but Google wave had some potential to be 'email 2.0'

</comment><comment><USER31> Actually, I'd definitely prefer this as a shared knowledge retention and shared actioning platform compared to Slack. Slack requires your team to adopt it 100%, commit to using it as the main communication medium so everything has a written record, and be in IM-mode all the time, and at a pretty steep price. Most of its downsides go away if you pursue the same goals but build it on top of the email paradigm instead. I hope Consider will get some adoption and then some tail wind to influence this type of a change.

</comment><comment><USER27> I don't see email 2.0 being a paid service. Competition to something like Slack or Microsoft Teams, sure.

<comment><USER32> > I don't see email 2.0 being a paid service. Competition to something like > Slack or Microsoft Teams, sure.

Email 1.0 is already a paid service, by definition. The fact that some companies offer "free" email accounts in exchange for ads doesn't change anything to the fact that servers need to be paid for.

</comment></comment><comment><USER33> Hey everyone, here's our new service, but sorry, you can't actually sign up and use it. We aren't actually even sure we have a product yet, just a landing page for it. Subscribe for updates though...

/s

</comment><comment><USER34> Looks remarkably similar to what Front have been doing for several years. [https://frontapp.com](https://frontapp.com)

<comment><USER35> I think Front is more for external communication and Consider is more for internal communication. These are different usecases

</comment></comment><comment><USER36> 2 features I need: 1) robust group email and 2) copy me out - reverse cc applied to all down thread mails.

<comment><USER37> 2) seems a lot like it is a missing client side feature

</comment></comment><comment><USER37> People will want to use it? It will be fun?

Honestly, doesn't sound like email.</comment>


Don't keep yourself DRY; be REAL instead - <AUTHOR> http://blog.inklingmarkets.com/2010/05/dont-keep-yourself-dry-be-real-instead.html <comment><USER2> [accent=French]Listen to me very carefully, I will say zis only once![/accent] ;)

</comment><comment><USER3> "REpetition'sn't ALlthatbad"?

<comment><USER4> :) Nice, I'll consider that one.

</comment></comment><comment><USER5> DRY is a principle of writing programs.

I don't think it applies to human communication in general and I have never seen the term DRY applied to questions of human-to-human communication.

My blog posts aren't object oriented either...

<comment><USER4> Joe, my point wasn't that people are literally applying the term DRY to their human to human communications. My point was that they unintentionally do it. I'll see time and time again a blogger or writer or speaker stuck. And one of the reasons they are stuck is that they feel they are out of material. What they can say has either been said by themselves before or someone else.

And I feel especially us programmers who are so used to not repeating ourselves are especially victim to this.

So my point is there is a ton of treasure in polishing and reiterating wisdom you or other have shared before, since the time or times you tell it in your own way may very well reach an entirely new audience (or old audience that really needs to hear it again).</comment></comment>


How Valve Crowdsources the Policing of Cheaters in Counter-Strike: GO - <AUTHOR> http://arstechnica.com/gaming/2016/01/how-valve-crowdsources-the-policing-of-cheaters-in-counter-strike-go/ <comment><USER2> The missing perspective here is Overwatch isn't very effective. Blantant cheaters are easy to find but anyone with half a brain can use certain types of cheats to remain easily undetected. The only solution valve has to stop cheaters is automatic detection through software which they do with VAC. However, "private" cheats (essentially paid for and only shared with small few, likely never advertised publicly) are notorious for never being detected.

Both may reduce some cheating but overall CSGO remains one of the most cheater infested games. The latest approach by valve is something called Prime matchmaking, where you must verify your identity with a phone number in an attempt to reduce throw away cheating accounts. This further divides the user base into smaller groups.

Many of the problems with cheating stem from the data passed between client and server. Though many of these design choices have advantages for other client performance/features, they allow cheating to prosper.

As a side note, third party match making such as ESEA use a more extensive and supposedly more effective anti cheat software. These services are usually paid as well.

<comment><USER3> > Many of the problems with cheating stem from the data passed between client > and server. Though many of these design choices have advantages for other > client performance/features, they allow cheating to prosper.

Could you tell us more? What is one of these design choices?

<comment><USER4> Not the OP, but I assume they mean that it sends things like the other players' locations, which can be found by cheaters to be seen with map hacks and such.

<comment><USER5> It got a little better a while ago, where they only distribute player locations to clients that have to be aware of that player due to either line of sight or being able to hear them. Faceit has a more aggressive system where player locations are only sent once you see them, which sometimes, in high- latency scenarios mean you suddenly see then appear somewhere without having them seen moving there. It's all a trade-off, I guess.

<comment><USER6> Doesn't this also mess with tactics such as being able to hear someone coming? I don't play CS:GO, but I do play Enemy Territory (id Software, 2003) and hearing when an enemy is coming is a crucial part of being able to get the first shot and kill someone.

Of course you could expand the limit of when to send data to the point where you can hear someone, but that wouldn't defeat short-range wallhacking, which is just about the only kind of wallhacking that's useful.

</comment></comment></comment></comment></comment><comment><USER7> I spend a lot of time going through Overwatch cases. Simply put, unless the case is obvious, you really cannot say anything other than innocent.

Also, games where a team has a "full stack" or a lobby of 5 friends all communicating, a player could easily look like they're wallhacking when actually their team just has great communication. But, this information is not conveyed to the reviewer.

But one thing that Overwatch does have is the ability to convict someone of griefing. I have fallen foul of these once and faced a 6 week ban from the game. Overwatch does work but the person must be very blatant with their cheats/griefing.

Personally, I think the single most effective action Valve took against cheaters was the introduction of "Prime accounts". Players who link their mobile number to their account can choose to only queue into games with other players that have done the same.

This almost creates a "low priority" queue. If you find yourself part of this, it's generally accepted that you may be against hackers and griefers.

</comment><comment><USER8> CS:GO is the most tragically neglected of the major e-sports. It succeeds due to its source material.

Case in point: Overwatch is neutered. CS:GO competitive servers have a tick rate of 64 (that is, per second), which is already considered too low by many players, given that CS is a twitch shooter. Overwatch halves that tick rate to 32. So - investigators use footage at half the resolution (so to speak) of the actual game. This can both make cases harder to prove _and_ make split-second decisions look like cheating, since half the data is missing.

<comment><USER5> Overwatch isn't really meant to catch those cheats where your unsure at all. It is really only for the blatant cases which presumably make up most of the cheats players encounter in games as well. Things like slightly better aim would be pretty impossible to prove even with the same tick rate as the game. Look at the reddit witch hunts against professional players when they are thought to be cheating. Those accusations are usually false, and also often based on the raw replay data from the game.

Besides, it can already be hard to detect certain forms of cheating, e.g. if one player wallhacks and just relays info to their team. Even when watching the whole team in overwatch, instead of only a single player, this sort of thing is hard to see. Tick rate won't change that either.

</comment></comment><comment><USER9> So much junk seems to go into games to make sure people don't cheat. I wonder how much faster/responsive a network based game could be if it was just assumed no one is cheating. I'm sure more things could be done client side, like all player vs AI engagements.

<comment><USER10> Every player could use the same pseudo random number generators with the same seed and predict the same random result instead of downloading it from the server.

<comment><USER11> Sure, until any player gave any input whatsoever. How are you going to predict player actions?</comment></comment></comment>


PostgreSQL most useful extensions - <AUTHOR> http://railsware.com/blog/2012/04/23/postgresql-most-useful-extensions/ <comment><USER2> I didn't know about PostPic, that is really useful, thanks for posting this.</comment>


Vitamin D slashes risk of cancers by 77 percent (2007) - <AUTHOR> http://www.creighton.edu/publicrelations/newscenter/news/2007/june2007/june82007/vitamind_cancer_nr060807/index.php <comment><USER2> Hi there. I'm TV's thunk. To stay healthy and happy, just follow these simple rules:

1) To prevent cancer, go have some fun in the sun.

2) But to prevent skin cancer, stay out of the sun.

3) Avoid carbs and meat and regular produce.

4) And don't waste money on that organic stuff -- it's no better than normal!

5) You may want to stop wearing shoes, since they can mess up your feet.

6) Avoid alcohol, except for a couple heart-healthy drinks a day.

7) And most of all, don't stress out over this stuff too much -- it can cause heart disease.

The more you know. [star, rainbow]

<comment><USER3>
      3) Avoid carbs and meat and regular produce.

Meat is very low in carbs. In fact, meat (red and white) is high in protein, essential amino acids, zinc, vitamin B12, selenium, phosphorus, niacin, vitamin B6, iron and riboflavin. (Ref: [http://en.wikipedia.org/wiki/Meat#Nutritional_benefits_and_c...](http://en.wikipedia.org/wiki/Meat#Nutritional_benefits_and_concerns))

<comment><USER4> And it there is substantial evidence that it (red meat) increases the risk of cancer.

<comment><USER5> There's been quite a bit of controversy over some of these studies and how they measure the level of consumption and whether what you describe as an increase is just a "link"/correlation versus causation: e.g. <http://www.acsh.org/factsfears/newsID.1210/news_detail.asp> \- I think the "eat in moderation" idea applies here.

<comment><USER4> Check your sources

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

Some quotes

"ACSH frequently defends industry against claims that its products create risks of injury, ill-health or death."

"The ACSH has been accused of being a corporate front group in the guise of a neutral council on science."

<comment><USER5> Does that make their points any less valid? Would it not seem reasonable to look at both sides of the issue - especially given the issues that they raise with the studies (particularly given some of the oversimplifications in the media after they were published)?

<comment><USER4> > Does that make their points any less valid?

If you are relying on them to provide a reasonable and unbiased summary of the scientific consensus on an issue then yes. There is no reason to trust what they are saying. They are likely to have cherry picked the evidence to support their customer's views.

Of course the points 'could' be valid but because of the lack of trust you would actually have to go to the source material to have any level of confidence. Perhaps you should do this.

<comment><USER5> Alternatively, I could read their comments and read a few of the original studies (or at least their summaries) and find the questions that they raise are indeed valid - which you may choose to do as well. They did not provide a consensus view but rather pointed out the limitations of the study which the original authors also pointed out though others, like the conclusions you have made, have cherry picked from.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER6> Sorry guys, don't get excited yet. Bad, misleading headline.

What?

 _"Subjects were randomly assigned to take daily dosages of 1,400-1,500 mg supplemental calcium, 1,400-1,500 mg supplemental calcium plus 1,100 IU of vitamin D3, or placebos."_

It's not vitamin D. It may be vitamin D or it may be vitamin D + calcium. Why didn't they have a group that was supplementing only vitamin D and not calcium? I don't know, but since they didn't test that, there's no way to know that it is just vitamin D.

Who?

 _"The four-year, randomized study followed 1,179 healthy, postmenopausal women from rural eastern Nebraska."_

Given the age, male-female ratio on HN, it's not clear that vitamin D supplementation would be beneficial to the average HN reader. Also, all the women were 55 and older.

Besides that, as the article mentions, skin color and other genetic heritage also matters. If you are a woman and Caucasian, this study is more likely to apply to you; if you aren't, who knows?

In case someone considers going out and supplementing with both calcium and vitamin D on account of this study, I want to point out that unnecessary calcium supplementation can be detrimental, and it can contribute to things like stress, poor sleep, and prostate cancer (if you have one).

<comment><USER7> _"It's not vitamin D. It may be vitamin D or it may be vitamin D + calcium. Why didn't they have a group that was supplementing only vitamin D and not calcium? I don't know, but since they didn't test that, there's no way to know that it is just vitamin D."_

The first rule of scientific criticism is: always read the paper.

The classic clinical manifestation of a Vitamin D deficiency is rickets -- the direct consequence of a calcium deficiency. This is because vitamin D is a known enhancer of calcium absorption from the intestine. All other benefits are hypothetical. In light of this information, the researchers controlled for the variability of dietary calcium across participants in the study; they chose to supplement calcium for everyone up to the highest US RDA value.

Does that mean that it might be the combination of calcium + vitamin D that conveys the greatest benefit? Well, yes, in fact, that turns out to be true. But since it's trivially easy to supplement calcium _and_ vitamin D simultaneously (and nearly every vitamin D supplement that you can buy includes a calcium supplement), clinically speaking, it makes no difference.

But most importantly, the title of the original paper is _"Vitamin D and calcium supplementation reduces cancer risk: results of a randomized trial."_ ([http://www.ncbi.nlm.nih.gov/pubmed/17556697?ordinalpos=1&...](http://www.ncbi.nlm.nih.gov/pubmed/17556697?ordinalpos=1&itool=EntrezSystem2.PEntrez.Pubmed.Pubmed_ResultsPanel.Pubmed_DefaultReportPanel.Pubmed_RVDocSum)), suggesting that the authors are well aware of the relationship between the substances, and are actually _interested_ in the combined effect of calcium and vitamin D. They wanted to know if calcium + vitamin D had a greater cancer-reducing effect than calcium alone, and found that it did.

As for your other critiques, the authors state right there in the abstract of the paper that the results are for postmenopausal women in Nebraska, and they don't try to overgeneralize. But since the relationship between vitamin D and calcium are the same for men and women, it's really not unreasonable to suggest that the results could apply more generally -- even if you had to adjust the nutrient levels to fit the age, sex and location of the patient.

<comment><USER6> Wha...? Wait a second. The title for the link submitted is: _Vitamin D_ slashes risk of cancers by 77 percent (2007)

If what you're saying is true, that calcium + vitamin D confers the greatest benefit, then the link title is still wrong. But what in the study says that calcium + vitamin D conveys the greatest benefit? (ie Vitamin D alone wouldn't convey as great a benefit) It may be true, but it's not obvious from the article that was linked, and it's still not obvious from the original paper that you linked to.

The article and you are assuming that what is having the anti-cancer effect is the calcium, and the vitamin D helps you absorb the calcium, thus enhancing that effect.

First, I don't assume what you do, which is that supplementing calcium is always a positive. Second, what if vitamin D has some action other than help you absorb calcium. Even if I'm not an expert in this, I find it hard to believe that medical researchers have completely precluded vitamin D from having any action other than help your body absorb calcium, and if it alone helped prevent cancer, it may be really nice to know, especially if you don't want to be increasing your calcium.

I don't get the attitude. I was talking about the information was provided by the article. There may very well be a study about men 20-40 years old, of varying ethnic backgrounds, who take just vitamin D (no calcium) and it's found to decrease cancer versus control, but _that's not the information provided here by the article or the original study_.

Your point about actual vitamin D supplements on the market mostly coming with calcium suffers from the same logical problem. The article headline (original or on HN) should tell me what exactly is decreasing the cancer risk, not some assumption about what consumers will end up buying and what they'll _likely_ also end up supplementing with _additionally_. If the conclusion had been vitamin D alone decreases the risk of cancer, do you think there wouldn't be manufacturers churning out pure vitamin D, without the calcium?

EDIT: Okay, parent has updated post. I appreciate that you softened your tone. Sure, I know it says that they aren't sure of the generality of the study in the article. I think it's worth pointing out because again, there's that disconnect between the title and the content. Title says "TAKE VITAMIN D" without qualification. Article says different.

Responding to your new point about the generality of the study--if the requirements for men and women really are the same (I don't buy it), then why study post-menopausal white women in Nebraska? I can see age for the cancer risk, but why not men, and why not of different ethnicities? If you're going to tell me that post-menopausal white women 55 and older are more likely to be deficient in calcium and vitamin D, then well, maybe the effects are exaggerated and other groups don't need the supplementation.

PS Computational biology is cool, I did programming work in a bio lab trying to identify splicing sites back in undergrad.

<comment><USER8> And now you've learned a valuable lesson, which is that titles given by a third party to pop summaries of studies somehow (amazingly, I know) don't invalidate or replace the information actually contained in the study. Not being able to live life based on the information present in headlines is kind of tragic, huh?

<comment><USER6> What the heck? I didn't misunderstand the study by only looking at the headline. The full paper _confirms_ what I said in my comments.

My criticism of the study as possibly being of limited applicability (older, white women) still stands whether you only looked at the summary article or the original paper. That the PI agrees means that she knows her study is flawed (or let's say limited).

Read the other comments; people are taking it as if it applies to them. Some of the people voting this link up also may have thought something similar.

There was a suggestion made that it doesn't matter whether it's vitamin D by itself or vitamin D + calcium because you could just take both. My criticism was calcium isn't necessarily good, especially for men, because too much calcium is associated with basically bad nerves and prostate cancer.

What about what I said is a misunderstanding of the study or "failure" to lookup the original paper?

<comment><USER8> I didn't say you misunderstood the study. I said you learned that headlines can be misleading, which I assumed was new information to you given how much of a whiny little rant you felt you needed to give us about this instance of that fact.

</comment></comment></comment></comment></comment></comment><comment><USER9> I have a close friend who has brutal hangovers when he drinks, and he claims (and I've seen this in practice) that since he started taking Vitamin D supplements his hangovers are much reduced in severity - sometimes to the point of being nonexistent. I'm not sure if its placebo or something else that hasn't been taken into account. But if was interesting to notice.

Vitamin D is one of the supplements I take - not as a hangover cure, but because I don't get enough sun.

<comment><USER10> I wonder if his supplements also contain B vitamins. It's been known for a long time that certain B vitamins will ameliorate hangovers. My understanding is that alcoholic drink makers have been trying for years to supplement their product with B vitamins but have been blocked by the FDA or the FTC, apparently because they think getting rid of hangovers will make people drink more. This info came from Pearson and Shaw's Life Extension book years ago. The best link I could find is this: [http://www.ehow.com/how_4886290_prevent- hangover-vitamin-b-c...](http://www.ehow.com/how_4886290_prevent-hangover- vitamin-b-complex.html)

<comment><USER11> WHAT THE FUCK. what's next? blocking lung cancer treatment because it encourages people to smoke?

fuck the nanny state. jesus.

<comment><USER12> The nanny state doesn't have to be perfect. It just has to work most of the time, benefits outweighing drawbacks.

<comment><AUTHOR> And who decides?

Exactly. It's always the (neo) puritans...

</comment></comment></comment></comment></comment><comment><USER13> For years I had a big poster on my wall showing diagrammatically the the main complex of biochemical pathways of the human metabolism. Awesome and humbling to contemplate. Daily it reminded me that cause and effect relations in this system cannot generally be simple.

<comment><USER14> Where can I get a copy of that?

<comment><USER13> I bought it at a campus bookstore. You may find one on line. See one here:

<http://www.expasy.ch/cgi-bin/show_thumbnails.pl>

</comment></comment></comment><comment><USER15> _Most Americans and others are not taking enough vitamin D, a fact that may put them at significant risk for developing cancer_

As usual, the only thing that Vitamin supplements cure is vitamin deficiency. If you don't have a deficiency, they won't do a blind bit of good, and may even be harmful. <http://newsimg.bbc.co.uk/1/hi/health/6399773.stm>

</comment><comment><USER16> It could also be said that a Vitamin D deficiency increases the risk of cancer.

<comment><USER6> Can it? What evidence is there that the placebo group or the calcium group were vitamin D deficient? One group taking vitamin D beyond their normal daily requirement does not mean the other groups were deficient.

</comment></comment><comment><USER17> As usual, check Peter Norvig's article about what to look for in reports on research studies.

<http://norvig.com/experiment-design.html>

</comment><comment><USER18> Well anyway I think a good and safe rule is: take a lot of sun, but avoid the "bad hours" (11:30-16:00 range in Italy, more or less) where it's simply too strong and will likely hurt.

</comment><comment><USER19> I'm sure every hacker here with a latte/cappucino habit has plenty enough Vitamin D and Calcium in their diet to get these benefits.

<comment><USER20> You mean from the milk? Milk doesn't have anywhere near as much as is suspected to be necessary.

<comment><USER19> My milk calcs show that about 7 servings of milk a day would be enough to hit 1000IU/day, enough to bring 50% of the population up to the recommended level. So maybe milk alone isn't enough, but it certainly matters. Aren't osteoporosis rates down owing to lattes? :)

</comment></comment></comment><comment><USER21> name three things that have risen in popularity or frequency in the past thirty years:

a low fat diet, sunscreen advocacy, and autism rates.

pregnant women need vitamin d awareness more than any other population segment.

[http://www.vitamindcouncil.org/health/autism/vit-D- explains-...](http://www.vitamindcouncil.org/health/autism/vit-D-explains- autism.shtml)

<comment><USER22> _name three things that have risen in popularity or frequency in the past thirty years_

Rubik's Cubes, international flights and home computer repair accidents.

</comment></comment><comment><USER11> if you see A and B together it can be because C is causing both of them, not because A causes B or vice versa.

<comment><USER23> Can you please explain?

<comment><USER11> i'm just restating post hoc ergo propter hoc.

<http://en.wikipedia.org/wiki/Post_hoc_ergo_propter_hoc>

basically falsely attributing cause when this inference isn't warranted.</comment></comment></comment>


Wanted: Sr. Software Engineer  NYC Startup - <AUTHOR> https://jobs.github.com/positions/c27f0668-5b74-11e2-9ed4-2f95be6a68af

<comment><USER2> If you don't mention anything about the compensation package -- salary range, equity, benefits, etc. -- I have no idea whether it's even worth my while sending you an e-mail.

</comment><comment><AUTHOR> Willing to relocate the right candidate from anywhere in the US! Great opportunity :)</comment>


AES timing variability at a glance (2005) - <AUTHOR> http://cr.yp.to/mac/variability1.html

<comment><USER2> I highly recommend reading the explanation on how this is significant, it goes into more depth about timing attacks:

[http://cr.yp.to/antiforgery/cachetiming-20050414.pdf](http://cr.yp.to/antiforgery/cachetiming-20050414.pdf)

<comment><USER3> And a more recent revisiting of this subject, [http://cseweb.ucsd.edu/~hovav/dist/aes_cache.pdf](http://cseweb.ucsd.edu/~hovav/dist/aes_cache.pdf)

</comment></comment><comment><USER4> So it seems that modern Intel x86 processors have hardware support for AES ([http://en.wikipedia.org/wiki/AES_instruction_set](http://en.wikipedia.org/wiki/AES_instruction_set)). Does that solve the problem?

<comment><USER3> Pretty much, yes. The instructions are constant-time.

</comment></comment><comment><USER5> I like the presentation with the colored graphs, it definitely it a good way of demonstrating the problem.

However for his own implementation, it's hard to see how significant the residual timing attacks are. If fact just looking at the graph, and without the acknowledgment in the introduction, I'd be hard pressed to say that those pictures had any irregularity at all.

<comment><USER6> Wouldn't that just mean that you need a lot more tries to do a successful timing attack? Not sure if the regularity of his algorithm is enough to make it entirely impractical. I'm not even sure if it's not entirely impractical already using one of the less regular algorithms.

</comment></comment><comment><USER7> It would be interesting to see how things have progressed (or haven't) in the intervening years.</comment>


Ask HN: If you knew this was a bubble, what would you do differently? - <AUTHOR>

When I saw that the valuation of Zynga might be between 7 and 9 billion dollars, I honestly began to get worried. I think that for people in the startup field, it might be hard to think of that as an unrealistic number, because everyone -wants- their new business to be so valuable. Maybe someone has experiences to share from the last time the tech stocks crashed, whether there were warning signs? <comment><USER2> 7-9B for Zynga isn't that unreasonable. The valuation for Phillip Morris is 107B, and they sell rolled-up tobacco. Starbucks is 25B, selling coffee. Simple things that are highly addictive basically give you a license to print money, and are valued accordingly by stockholders.

The warning signs for the first dot-com bust were when businesses whose only competitive advantage was that they lost money on any sale got funded. Things like Value America, or Pets.com, or AllAdvantage.com. When you strip away the "here, we'll give you money to use our product so we can gain market share", there was essentially no reason to use those over existing alternatives. Giving away money is not a sustainable business model, hence bubble.

By that standard, the only major e-property I'd be worried about today is Bing...

<comment><USER3> I'd be really interested why you highlighted Bing. Its services, especially the maps, seem to have potential.

<comment><USER2> I highlighted it because of Bing Cashback, which is exactly the sort of money- losing stunt that dot-com businesses pulled at the height of the boom to gain market share.

Microsoft, at least, has the cash that they can afford to blow a few hundred million for nothing, and the smarts to discontinue the program when it's obvious it doesn't work.

</comment></comment></comment><comment><USER4> In a bubble I'd be even more wary about working with other companies (I'm pretty wary as it is).

I rely on a lot of other companies to run my business. I have a web host, e-mail providers (for personal and bulk), multiple analytics providers, a cloud backup service, an open source content management system—and that's just naming a few types of businesses that I rely on.

In a bubble, it's more likely that any of these companies could disappear (but it could still easily happen in a non-bubble). I'd be even more diligent about having my data backed up and an alternative plan for if one of these companies goes out of business.

Another risk is that a company that you rely on will become too successful. Etacts is a perfect example. I loved their product and used it a lot. Now it's gone because Salesforce bought them.

I'd also be more aggressive about getting paid for advertising. Right now, I'm pretty relaxed about invoicing companies after I run a sponsorship campaign. I want to ensure that they're happy first. If I was really worried, I'd make them pay up front.

There are some things that I probably couldn't overcome. Google disappearing would be one. I'd lose 80% of my traffic, my e-mail, my analytics, and a bunch more.

You should always be wary of whom you work with. There are a lot of sexy startups for startups right now. They offer some great services, but what will you do when they disappear, kill the product you rely on, or get rolled into a bigger company? It will happen, bubble or not.

</comment><comment><USER5> My question would be (assuming you answer yours): Why are you acting in a way that you wouldn't if you _did_ know it was a bubble?

Doing something stupid has little to with the macro-economy. What you should be doing is conducting yourself in a non-idiotic manner all of the time, as protection from things like bubbles; then you don't need to worry about a thing.

</comment><comment><USER6> Worried about what? That you don't have any Zygna options?

</comment><comment><USER7> The saying "In a hurricane even turkeys fly" comes to mind.

      KONAMI CORPORATION = $2.70B
      NINTENDO CO LTD = $41.21B
      ACTIVISION BLIZZARD = $13.21B
      TAKE-TWO INTERACTIVE = $1.37B
      ELECTRONIC ARTS = $6.15B

If this were 1998, you would dump all your money into these stocks in the anticipation that the bubble would continue to expand for several years, and spill over into related areas. You get your money in, call up your Goldman Sachs buddies, and flip them to Mutual Funds after they're overvalued. Rinse and repeat until the bubble blows.

</comment><comment><USER8> 1\. Continue what I'm doing

2\. ??????

3\. Profit?

Bubble or no bubble. Doesn't change a thing. I'm going to keep focusing on what I do best.</comment>


How to choose a license for your work - <AUTHOR> https://www.gnu.org/copyleft/copyleft.html <comment><USER2> I find this website is much easier for that: [http://choosealicense.com/](http://choosealicense.com/)</comment>


Ask HN: Where to go next with my prototype - <AUTHOR>

Hi,
Newbie here. I've spun off my university project into a web prototype that I want to launch eventually, and I've submitted it in the current YC batch. I'm pretty good with it so I've got it hosted, put up a fairly basic (1 person usable) proof of concept prototype. It's also innovative (sorry guys, can't give too many specifics yet). However, I'm not experienced when it comes to rolling out on a mass public scale technically i.e. hosting scalability (cloud?), security, concurrency, redundancy, integration with facebook etc. With the odds for YC against me (as a single founder, not on the strength of my application I would hope), I need a little advice on how to proceed ahead for a Plan B case. I have experience with databases, websites and authentication and I could realistically scale the technology to a private beta phase... beyond that, having someone experienced on the deploy side would be incredibly useful. How do new startups deal with this?
ps: If you're an HNer in/around London (England) with strong Flash (AS3) skills, taken a web 2.0 from prototype to public beta, (massive bonus if you can do iPhone apps), and keen to get involved in an innovative concept, please do get in touch! <comment><USER2> First, if you're looking to get any interest at all, you'll have to divulge more information. Anyone with the experience and skills to help you out has come across hundreds of (or likely has their own) ideas to execute on, and nothing you've said will make yours stand out.

Second, each of the points you're looking to learn about are simply a matter of googling a bit. Without knowing your backend, it's hard to tell you to either go use Heroku, or slicehost, or ec2. Security is highly context- dependent. And so on.

Anyway, it's very cool that you've taken your university project and have built on it, so congrats on that front. Often times the best ideas come from that setting.

Just share a bit more with us :)

</comment><comment><USER3> "sorry guys, can't give too many specifics yet"

Ideas are a dime a dozen. The real value is in the execution. Execution is nearly impossible to duplicate.

<comment><AUTHOR> Thank you, and I completely agree if I was aiming to be the next eBay execution would be absolutely paramount. However, my (working) prototype is inherently novel and specific to the extent that there is limited scope for messing up the execution, and as a corollary there is a limited number of ways in which you would use/consume it. Sorry to be vague but I'll release more info one of these days once I figure out where to go with it!</comment></comment>


Ask HN: I have a startup idea, the project is 90% done. But.. - <AUTHOR>

Hi everyone! I'm malaysian. Going to gradute in CS soon. Currently I'm working alone on my own web project in purpose to run a startup right after I've finish my last day in CS faculty or maybe before the last day.
But the problem is, I always doubt at my own ideas and potential to execute the idea. Yes, I'm ready to take any risks but at some times, severally, I feel unmotivated, uninspired any more because of my surroundings and friends network are not really into realistic interest in entrepreneurship.
Any positive constructive advice on how to overcome these emotional obstacles, how to manage poisonous unmotivated people around and how to stay persist on what I believe will work.
That's all. Thank you. <comment><USER2> First of all, it's nice to see Malaysians other than myself dabbling in entrepreneurship. As a Malaysian, I know what it's like trying to run a start- up locally; the environment is just too non-conducive, for various reasons I'm sure you're familiar with.

My advice is to try to dissociate yourself from all the noise out there (all the get-rich-quick seminars, how-to-make-millions-on-the-internet books, work- from-home business "opportunities", etc.) and immerse yourself in the real gems of knowledge (e.g. blogs by entrepreneurs, Hacker News, TechCrunch, etc.) to get the right paradigm.

Second advice, get new friends. Go to local start-up gatherings and know people. Best of all, get incubated in a local incubator. Unfortunately, if you depend heavily on social validation and you're not self-contained socio- emotionally (i.e. you feel the need to "hang out" and "talk" to someone all the time just to be functional), which you sound like you are, I think this might be a painful change to make. If you've identified your current friends as a negative influence on your ambitions and personal objectives, you know it's time to discard them.

The truth is that your current friends are probably a dime a dozen. If you want fight the negative influence, the only option is to dissociate yourself from them, not to try to "manage" it or, worse, to try to change them. Start spending more time with your family instead to fulfill your socio-emotional needs.

<comment><USER3> seriously, where is the local startup gathering in Malaysia? anyone around KL?

I'm Malaysian too.

<comment><USER4> Whoa, I didn't know there are other Malaysians on HN. We should probably meet up.

<comment><USER5> We should do that!! ... Lets start a revolution! ;)

<comment><USER4> Would love to meet up with Malaysians on here. Not sure how that would be set up but I'm always open. If you need to get in touch, simply shoot an email my way.

</comment></comment></comment></comment></comment><comment><USER6> Cool. I'm Malaysian too but located in East Malaysia. I'm working alone on a web project too. From my experience, going alone is emotionally tough, working first may help find people who share the same ambition. Don't give up...."how can you fail if you don't give up" :) Tell yourself you're going to take 4 years (or more if you're still young) and giving it all you have. Even if you fail, you would have gained valuable experience and knowledge.

Be careful of saying that the software is done and launching it big. What you have is probably a product that you think what others will want. Until you get feedback and slowly releasing it to the world, you do not know. Probably getting those unmotivated people around you to try your software might be helpful as a start.

I think historically there's been a higher chance of failure but as long as you learn from the mistakes, you'll do fine. Fail fast.

fyi, I used to lecture CS in Malaysia :) and I failed trying to launch an ecommerce site in Malaysia. But I'm at it again.:)

This article may shed some light on your dilemma [http://www.fourhourworkweek.com/blog/2008/10/03/harnessing-e...](http://www.fourhourworkweek.com/blog/2008/10/03/harnessing- entrepreneurial-manic-depression-making-the-rollercoaster-work-for-you/)

Keep reading and learning. If you don't already know, I find the following things helpful \- <http://ecorner.stanford.edu/> \- <http://steveblank.com> \- twitter

It's not about the idea. It's the execution. If it's a good idea, someone else is probably doing the same thing...unless you have a crazy idea. Know your competition and realised that you are one person against probably a whole team of people if it's not a niche enough market you're targeting.

Well that's my opinion anyway...:)

</comment><comment><USER7> Release as soon as possible so you can get started working on the other 90%.

<comment><USER8> the other 90%...lol....exactly, words of wisdom!

<comment><USER9> patio11 is refering to the 90/90 rule:

> The first 90% of the code accounts for the first 90% of the development > time. The remaining 10% of the code accounts for the other 90% of the > development time.

<http://en.wikipedia.org/wiki/Ninety-ninety_rule>

<comment><USER8> Agreed, I was trying to show my agreement with this important principle. Unsuccessfully it seems. :)

</comment></comment></comment></comment><comment><USER10> A mentor of mine has saying that startups are an emotional rollercoaster. One week you are high of the positive feedback after pitching to an investor, next week you realize that they are still far from investing. One week you get tons of work done, next week you bang your head against some stupid technical problem that you thought was trivial. One week you have a spike in adoption curve for a random reason, next week it flattens for apparently no reason.

You just have to learn to ride the emotional rollercoaster. For some people, it comes naturally. They are confident and positive, constantly living in their own reality distortion field. Some analytical people have doubts all the time.

If you have doubts about your capability to execute, consider that as part of the business and just push through the emotional low back to high.

But if you have doubts about your overall idea, then you just have to go back to the idea. Why I'm doubting it? Idea should be something that you think has obvious potential and you just wonder why others aren't doing it. Often times it's enough to adjust your original idea a bit. Get feedback, fresh perspectives. Pivot. And you suddenly feel confident again.

</comment><comment><USER11> Get a beta out. Test the app against the many out there who might benefit from it, not the few you know who wouldn't. Totally different set of people, so one shouldn't influence your success with the other.

In terms of entrepreneurship, just spend more mental time with other startup- types. There must be some in your city/country. There are definitely more online, people who are in exactly the same situation as you and who have the same worries. Read what they have to say, forget about what salary-focused people tell you.

You might fail initially, but at least you can say you tried and even failure helps in terms of succeeding sooner or later.

</comment><comment><USER12> Find a smart friend who has similar motivations as you do, even if they don't want to work with you. It's unbelievably helpful to have someone to bounce ideas off of.

Secondly, don't rule out working for someone else before you start your own company. It's very helpful to figure out what your strengths and weaknesses really are on someone else's dime. Of course, there are plenty of reasons _not_ to work for a big company, but this is one reason _to_ work for a big company. In a big company, you're forced to work with a variety of different people you might not work with on your own. This gives you an idea of what types of people you work well with, what kinds of people you don't, and will also make you appreciate working for a smaller company (at least it will if you're cut out for a smaller company).

</comment><comment><USER13> I can't figure out a way to be both friendly and answer productively.

Stop blaming other people, it will seldom help. If you succeed, it will be because you got out there and did the work and got in the right place at the right time. If you don't succeed, it will be because you personally fucked up. You can get that attitude, and accept that finding some way to succeed is your responsibility. Alternatively, you can blame your friends and whine on the internet about how it's so hard and the people around you are all to blame for everything. I have a feeling I know what you are going to do.

<comment><USER14> I didn't read the OPs question like "woe is me" at all.

I've been in their shoes. Feeling isolated, having doubts despite my optimistic nature, lacking sources of good advice. I'm sure it's a familiar story for many HNers.

I wasn't born knowing Paul Graham or the Church of Lean. I didn't always live in a city rife with smart people building startups.

It's a slow, steady process of learning, adjusting, and learning again. That the OP is here asking questions and seeking advice shows me they're on the right path.

</comment></comment><comment><USER15> Get a cofounder, there must be many good candidates in your CS class.

<comment><USER16> I don't think getting a co-founder is a universal answer for everything.

<comment><USER11> Agree fully. I see it as replacing a short-term problem with a long-term one, _unless_ you find a really good partner. Many, aren't.

</comment></comment></comment><comment><USER17> Here are a few things that might help:

1\. Build the core product and launch a beta soon. Release early, release often. This will help you gauge the response and adapt. This will help you remove uncertainty about your own launch/idea etc.

2\. You should definitely try to involve atleast one more person. As a lone founder, sometimes things can be a little dull.. However this should not mean you should force yourself to look at co-founders.. it's a tricky situation.. But, go out and talk to people, and meet more people and i'm sure you will come across people you want to work with.

3\. Even if you do find someone to work along with, things can still be quite challenging for start-ups. It's something you should be prepared to face upto. This is exactly what makes the process rewarding and you should look at what you are learning from the process.

</comment><comment><USER18> Why do you say the fact that you always doubt your ideas and potential is a problem? This is really a good thing, ask yourself a few times every day if you are going in the right direction, and most likely by answering honestly and adjusting your route on your way there you have a bigger chance to complete your journey.

You are young and the world doesn't expect from you the knowledge and experience to be confident about anything. There are very few (if any people) who are able to be confident about such things. So just take it easy and believe in yourself.

And based on what I've seen, it's the people with no sufficient knowledge and experience who are usually confident. The more you know, the more things out there for you to consider. So, as I said, believe in yourself and never give up.

</comment><comment><USER19> No one understands you? Hang out online where people do. You're already here on Hacker News, so nothing to worry about.

Now, back to your 90% done project... ship something sooner rather than later. You're probably still missing a lot! If you think coding is most of the work, you are wrong. How will people know about your project (apart from telling us here on HN)?

It's not something to worry about, on the contrary. It's a great learning experience. So ship and iterate.

</comment><comment><USER20> I suggest keeping a list of items you executed. Just anything that you accomplished in your project. So that way when you get down you can stare at the list and be reminded that you've already come this far and done this much.

</comment><comment><USER21> Release it, market it, and let the people judge. If you get sales, you'll know you were wrong. Trust the data, not your fear.

</comment><comment><USER22> Hey hey I'm Malaysian too! Just ignore everyone else around you and launch your project already! :)

</comment><comment><USER23> One question, how you measured your done idea by 90%? Or it's just sheer metaphors?

</comment><comment><USER24> #startups on freenode (irc)

</comment><comment><USER25> Emotional obstacles? They are something you have to overcome by yourself.

You're like a shy person asking for dating advice.

No one can help you but yourself.

<comment><USER16> Well, a shy person asking for dating advice may get a good one and benefit. So I think I'm going to give one.

alifaziz, I often feel unmotivated too. I often feel like I don't care for the thing I'm working on anymore and that no one else cares and that I don't know why am I doing it. The solution is simple: ignore these periods (just say to yourself: I know what it is and it's temporary). They will pass. Then you get your motivation back and that's when you'd have to act.

<comment><USER25> Dating advice for a person who's shy are as useless as a chocolate teapot - the problems are in the fact that he's shy, not that he'd desperately need dating advice.

</comment></comment></comment><comment><USER26> Just release it. If you succumb to your own self doubt, it will self perpetuate until you're lost all desire to work on the project anymore. The faster you see that people like what you did and want to use it, the faster your motivation will come back and you'll be able to keep on working.

This is coming from a guy who struggles with the same stuff, so take it as you will

</comment><comment><USER27> Every successful person has doubts about their own ability to execute and just keeps moving. Pretty soon you'll realize you are the best at what you do because you are focused on doing it well.</comment>


Tetris clone written in Zig running on WebGL and WebAssembly - <AUTHOR> https://raulgrell.github.io/tetris/ <comment><USER2> So much cutting edge technology for something that could have been written in BASIC running on a Z80 :)

That being said, Zig is an interesting, well-deigned language. Despite being young, it already has tons of features. And compatibility with the C ABI is a big plus.

<comment><USER3> ...I think it's interesting that WebAssembly moves the "code bloat problem" into focus again, because WebAssembly apps cannot afford to have huge upfront downloads or long installations. They must start in a second or so.

The Tetris example is under 60 kBytes (compressed), and that includes all data as well (there's a sprite/font sheet embedded in the wasm blob). This is in the same general size range as 8-bit BASIC programs.

That means that Zig doesn't need a big runtime to work, similar to C, but unlike C# or Java (or even C++ / Rust, unless you ignore most of the respective standard libraries and restrict yourself to a minimal "embedded- programming" style).

Here's a similar example (shameless plug), a WASM C64 emulator in under 64 KByte download size. This is implemented in C:

[https://floooh.github.io/tiny8bit/c64.html](https://floooh.github.io/tiny8bit/c64.html)

I can (most likely) get to the same result in Zig, but with a much nicer "better C" language (and build system!)

(...of course there's a huge web browser dangling off the WebAssembly blob, but this is mostly runtime components that are not even needed for this type of WASM programs (we really need smaller, more modularized browsers!).

<comment><USER4> I'm not sure what you mean by your comments around C vs. C++/Rust. All of them have no required runtime. All of them generally have libc supplied by your OS, which is a runtime.

Even in C you must restrict yourself to the runtime your building on, i.e. your target might not have libc. Rust and C++ are the same in the regard that they are capable of doing this.

<comment><USER3> There was a time when Rust executables came with an embedded jemalloc, but that's been fixed in the meantime (I think). But that's not what I mean in the C++ and Rust case, instead:

Both C++ and Rust make it quite easy to "accidentally" add bloat indirectly through their standard libraries because they encourage high-level abstractions which may "unfold" into a lot of binary code from very little source code.

It can be avoided but requires to give up on many of the high-level language features which Rust and C++ differentiate from (for instance) C.

<comment><USER4> I can speak better for Rust in this regard, so I won't comment on C++, but I also don't work with #[no_std] often so apologies if anything is inaccurate. jemalloc has been optional in nightly ever since I started using the language in 2015. It switched to the system allocator in the 1.28 release, Aug 2018, it also stabilized the ability to define a custom Global Allocator[1].

> Rust make it quite easy to "accidentally" add bloat indirectly through their > standard libraries

This isn't accurate, the #![no_std] feature disables stdlib in your library/binary. It requires you to implement a few things, but it will not compile if you use things in std [2]. You may be interested in reading the embedded book[3] which discusses this area in a lot more detail.

> give up on many of the high-level language features

I also would disagree. You still have a powerful type system, match statements, RAII, hygienic macros, proc_macros, all of the core library[4], optionally have access to the alloc crate[5], cargo, simple unit-test integration, and a growing set of #[no_std] libraries with easy access through crates.io or git dependencies. There's a lot more of course. Point being, there are still a lot of higher-level language features available even in a #[no_std] context, and it's very easy to ensure that your binaries won't compile if this is a requirement and someone tries to pull something in that relies on std.

[1]: [https://blog.rust-lang.org/2018/08/02/Rust-1.28.html](https://blog.rust- lang.org/2018/08/02/Rust-1.28.html)

[2]: [https://doc.rust-lang.org/nomicon/beneath-std.html](https://doc.rust- lang.org/nomicon/beneath-std.html)

[3]: [https://rust-embedded.github.io/book/intro/no-std.html](https://rust- embedded.github.io/book/intro/no-std.html)

[4]: [https://doc.rust-lang.org/core/](https://doc.rust-lang.org/core/)

[5]: [https://doc.rust-lang.org/alloc/](https://doc.rust-lang.org/alloc/)

</comment></comment></comment></comment></comment><comment><USER5> Didn't know the Zig Programming language before, but its website [https://ziglang.org](https://ziglang.org) is really an outstanding example how a programming language should be presented: Many examples, comparisons with other language, and even more examples. Code code code.

<comment><USER6> IIRC this is because it gets posted here every month and there is always someone complaining about those kinds of things and they addressed those points.

It also gets brought up a bit with the Pharo Smalltalk website(lack of code snippets), but Smalltalk is such a radically different language than what we're mostly familiar with (C, Java, Python, JS) that showing a code snippet is mostly pointless. People try to bring this up, but to no avail.

Sometimes the syntax just isn't very important. I think in Zig's case though, that it is fair to ask.

</comment></comment><comment><USER6> It looks like Zig has some decent documentation (something I treasure), but it looks like file I/O is missing. I'm sure it assumes the user is at least intermediate with C (I can only get by with lots of googling). I'll give Zig a try if someone can put up an example of reading a .CSV file (something I do a lot and wish I had faster tools to do) and if it is less of a hassle than C/C++.

[https://ziglang.org/documentation/master/](https://ziglang.org/documentation/master/)

The install seems to also be a lot more straightforward than many of the other low level languages that I have tried.

<comment><USER7> They have several examples of reading a file etc, e.g.:

      var file = os.File.openRead(arg) catch |err| {
                      warn("Unable to open file: {}\n", @errorName(err));
                      return err;
                  };
                  defer file.close();

The rest should be basically string operations...

<comment><USER6> I'm not sure how I missed this, but thank you for bringing it to my attention. It seems straightforward enough. I should be able to figure out the string operations.

<comment><USER8> It's also very straightforward to just link to libc and use fopen()/fread()/fwrite()/fclose()/fflush(). That's how I do it with my own (much less mature) language.

</comment></comment></comment></comment><comment><USER9> The web page bobs around when pressing the buttons, when the game area is smaller than the window. Is there any way to make that stop aside from making the area smaller, so that it fits the window?

<comment><USER10> You could run something like this in the console:

        window.addEventListener("keydown", function(e) {
            // space and arrow keys
            if([32, 37, 38, 39, 40].indexOf(e.keyCode) > -1) {
                e.preventDefault();
            }
        }, false);

That will prevent the scrolling when pressing the arrow keys. It's of course not a perfect solution, and something more robust would be to check if a game is currently running and so on, but it works as a quick hack.

</comment></comment><comment><USER11> What is surprising to me is that adding the shadow of an element (ie. where exactly it will land) made the game more difficult to me because I constantly felt like running out of time.

<comment><USER12> After playing tons of hours on jstris I can't live without it

</comment></comment><comment><USER13> Hmm... [Error] TypeError: null is not an object (evaluating 'gl.viewport') (env.js:17) [Error] Unhandled Promise Rejection: TypeError: import env:consoleLog must be an object promiseReactionJob

Looks like not working in Safari 12.1 in macOS High Sierra :-(

<comment><USER3> The project uses WebGL2, which isn't supported on Safari. I guess it's just an oversight, supporting WebGL1 is probably trivial.

<comment><USER14> The title should mention this, then. WebGL and WebGL2 aren't the same thing.

<comment><USER3> ...well the difference only matters on Safari, and it is indeed surprising that Apple isn't able to provide a WebGL2 implementation after such a long time of having a (pretty much stalled) WebGL2 WIP version in their browsers.

IMHO it's understandable that the author assumed that WebGL2 is available everywhere.

<comment><USER14> It matters on more browsers than Safari. Firefox doesn't support WebGL2 on my system for example. I think it's because it uses an older version of Angle.

</comment></comment></comment></comment></comment><comment><USER15> would you consider implementing a tetromino bag like the one described here[1], I think is common among the most popular tetris implementations, it affects a lot the game strategy, I think would make it more enjoyable.

[1][https://tetris.fandom.com/wiki/Random_Generator](https://tetris.fandom.com/wiki/Random_Generator)

<comment><USER16> This WASM version is based on my native code implementation which implements something like this.

I believe I independently discovered this concept of a tetromino bag. I've been calling it "Gambler's Accurate Model of Reality" in a homage to Gambler's Fallacy.

[https://github.com/raulgrell/tetris/commit/4305cd1ac1bcc9443...](https://github.com/raulgrell/tetris/commit/4305cd1ac1bcc9443320710da8f9c5915418ed1b)

That commit is from Feb 7, 2016, and you can see all the TODO comments for the zig features that didn't exist yet :-)

</comment></comment><comment><USER17>
       Uncaught TypeError: Cannot read property 'viewport' of null
        at env.js:17

(anonymous) @ env.js:17

       Uncaught (in promise) TypeError: WebAssembly.instantiate(): Import #0 module="env" error: module is not an object or function

       Chromium Version 74.0.3729.108 (Official Build) Arch Linux (64-bit)

<comment><USER18> Safari doesn't support webgl2 (you can enable it as an experimental feature in the develop menu), so retrieving a webgl2 context returns null.

<comment><USER19> >Chromium Version 74.0.3729.108 (Official Build) Arch Linux (64-bit)

Safari?

</comment></comment></comment><comment><USER20> Great work, I wanted to know a way to play with WebAssembly and Zig. This is perfect.

Do you know how easy/difficult would it be to make a desktop version of it ?

One of my long term goal is to make it cross platform.

<comment><AUTHOR> This is actually a port of the demo made by Andrew Kelley, which was originally written for the desktop using GLFW.

My plan is to integrate my changes into the original project so that it can export to desktop and web.

<comment><USER20> Wow, that's great!

I'm following you on Github then.

</comment></comment></comment><comment><USER21> Do random rows get pushed from the bottom on purpose? It looks like a bug.

It's still fun though. :)

Edit: It's definitely on purpose.

<comment><USER10> I thought it looked like a bug, but it's a feature based on which level you are on and how many lines you've filled(?). Here's the part that decides if it should fill or not: [https://github.com/raulgrell/tetris/blob/master/src/main.zig...](https://github.com/raulgrell/tetris/blob/master/src/main.zig#L450-L460)

</comment></comment><comment><USER22> Bug report: The game mostly work, but sometimes it builds bogus rows on the bottom. Makes it more difficult to get high points. Debian Linux with Chrome...

<comment><USER23> I can't tell if you're joking or not, but that's not a bug, that's just what happens in some versions of Tetris.

<comment><USER22> OK. Not a bug, a feature. :)

</comment></comment></comment><comment><USER24> 55.4kb gziped main.wasm including graphics! Impressive!

Works smoothly.

</comment><comment><USER25> Is there a LICENSE file or license header somewhere?

<comment><AUTHOR> I forked a project, didn't even realize it didn't have a license. I'll ask the original creator to decide.

</comment></comment><comment><USER26> Really great.

Do you know of any good resources for 2d game programming in WebAssembly?

<comment><USER27> GGEZ looks good. [https://ggez.rs/](https://ggez.rs/)

<comment><USER28> Maybe in the future. wasm is still not supported target, see [https://github.com/ggez/ggez/issues/71](https://github.com/ggez/ggez/issues/71)

</comment></comment></comment><comment><USER29> Nice in Firefox, but my Chrome (Version 73.0.3683.103 (Official Build) (64-bit)) on MacOS does not show the game "frame".

</comment><comment><USER30> Works on mobile except for the keyboard input :)

</comment><comment><USER8> How is the compilation to WASM/WebGL realized here? Asking out of curiosity, but don't have a lot of time to research.

<comment><USER3> As far as I can see:

Compilation to WebAssembly bytecode is done via the new WASM backend in LLVM (the Zig compiler sits on top of LLVM).

The whole interfacing with WebGL and WebAudio is actually quite interesting. It's not done through a runtime provided by the compiler SDK (as it is usually done with emscripten), but instead the Zig-to-JS binding is all done "manually" in the project itself.

There are 2 small "shim files" for WebGL/WebAudio and DOM access written in JS here:

[https://github.com/raulgrell/tetris/blob/master/env.js](https://github.com/raulgrell/tetris/blob/master/env.js)

and here:

[https://github.com/raulgrell/tetris/blob/master/dom.js](https://github.com/raulgrell/tetris/blob/master/dom.js)

...and associated Zig interop files here:

[https://github.com/raulgrell/tetris/blob/master/src/webgl.zi...](https://github.com/raulgrell/tetris/blob/master/src/webgl.zig)

and here:

[https://github.com/raulgrell/tetris/blob/master/src/dom.zig](https://github.com/raulgrell/tetris/blob/master/src/dom.zig)

It's really surprisingly little (and clean) code for doing that sort of thing IMHO.

</comment></comment><comment><USER31> I noticed a bug where you cannot rotate an item next to a wall if you have not previously rotated it.

</comment><comment><USER32> Not working on Firefox?

<comment><USER33> Works for me.

</comment></comment><comment><USER34> How do I run this?

</comment><comment><USER35> Nice work.

</comment><comment><USER36> 666

<comment><USER37> Is that some kind of satanic incantation or just an HTML color code?</comment></comment>


Deep learning-based photo enhancer - <AUTHOR> http://phancer.com <comment><USER2> If it meets the guidelines, this might make a good 'Show HN'. Show HN guidelines: [https://news.ycombinator.com/showhn.html](https://news.ycombinator.com/showhn.html)

</comment><comment><USER3> Cool!</comment>


Using Node.js packages in the browser with import maps - <AUTHOR> https://diegosanchezp.github.io/blog/import-maps/ <comment><AUTHOR> Import maps is a browser proposal that allow web pages to control the behavior of JavaScript imports,this article will covers the usage of this feature with nodejs packages, the related problems, and posible solutions.</comment>


Eliezer Yudkowsky on Trump's "maybe we shouldn't defend NATO" remark - <AUTHOR> https://www.facebook.com/yudkowsky/posts/10154650743819228 <comment><USER2> So people are up in arms that Trump said things because, instead of taking them at face value (the US is overspending for other nations' security), they're reading into it too much.

Meanwhile Hillary and Obama (and the rest of the neo-cons opposing Trump) have been marching us strait towards WWIII with their antagonization of Russia.

<comment><USER3> And to protect ISIS! ISIS! Europe is going to be nuked while protecting ISIS. I Wonder how will we read about this in a few decades. Maybe the term "european" will be synomym of idiots.

<comment><USER4> ...it already does.

</comment></comment></comment><comment><USER5> I agree that being ambiguous is very, very dangerous, but I think that Putin is smart enough to know that there is a limit that he can push and crossing the NATO line is not a good idea. What we really have to worry about is Putin's replacement. Is he going to be as smart.

</comment><comment><USER6> 'The people in the national security bureaucracy--hell, even _me_ , even though I'm not a national security bureaucrat and have only read a handful of military history books--heard that and thought: "HOLY SHIT."'

I'm not sure how he's supposed to have his finger on the pulse of the national security bureaucracy when he admits that he's a rank amateur.

Categorizing Trump's remarks from the interview as 'maybe we shouldn't defend NATO' is bollocks. The question from the NYT was this: "If Russia came over the border into Estonia or Latvia, Lithuania, places that Americans don't think about all that often, would you come to their immediate military aid?"

The answer is here: [http://www.theatlantic.com/news/archive/2016/07/trump- nato/4...](http://www.theatlantic.com/news/archive/2016/07/trump-nato/492341/)

Underlying this rambling nonsense is the assumption that Russia is some sort of world aggressor.

<comment><USER7> > Underlying this rambling nonsense is the assumption that Russia is some sort > of world aggressor.

Are you saying that this assumption would be wrong? Is Russia in no way feeling expansionist at present?

<comment><USER8> It is feeling threatened both by the US's clandestine involvement in the former Soviet states and its attempt to hamstring it's natural gas industry via the proxy war in Syria.

It has reason to speak and behave belligerantly.

</comment></comment></comment><comment><USER9> A question for the moderators: Is flagging an automatic operation, or is mod discretion required for its enactment, as well as its undoing?

<comment><AUTHOR> [not a mod] I guess it's just a certain amount of user flags. This submission was flagged/unflagged a few times already (big karma users can vouch for an unflagging of a submission).

<comment><USER9> Thank you, I do recall now the relatively recent "vouch" unflag feature launch.

</comment></comment></comment><comment><USER10> What's interesting is that in the UK, Corbyn was just elected (again) the president of the second major party (not currently in power) on a platform of stopping UK's nuclearly-armed submarines (essentially the UK's only nuclear deterrent). Which is similar, yet a bit different (the US can protect itself even without NATO, the UK can't without nuclear submarines), to what Trump's saying, yet (many) people still wanted it!

<comment><USER11> Most geopolitical analysts agree that the US can't protect itself long term without NATO. The short version is who controls Western Europe controls Europe. Who controls Europe controls Eurasia. Who controls Eurasia controls all of the world besides the Americas. The endgame of an united Eurasia is a failure from the USA national security POV.

</comment></comment><comment><USER12> "To see more from Eliezer Yudkowsky on Facebook, log in or create an account."

No thanks!

<comment><USER13> Considering the throw-away account you did already knew that your comment is trash. Why did you waste those bytes anyway?

<comment><USER14> I find it refreshing that they are unsupportive of the Facebook paywall.</comment></comment></comment>