The unlikely life and sudden death of The Exile, Russia's angriest newspaper. - <AUTHOR> http://www.vanityfair.com/culture/features/2010/02/exile-201002

<comment><USER2> The Exile is freaking brilliant. I can proudly say that I read them since around the beginning, the year 2000. They were brutally honest and never cared about who they might offend or the bridges they may burn or how this might look on their resume. In short, exactly what you want in a journalist.

You can still find them at:www.exiledonline.com but unfortunately they do not write articles as often and are a mere shadow of their former selves.

I think that the one and only truth that they were never able to admit is how much the drugs they were taking non stop would affect their brains, and I feel I see some of the effects in their rather reduced output nowadays.

<comment><USER3> I think the reason for the reduced output is that they were never able to truly monetize the internet version of the paper, aside from publishing a few books. Ames does freelance journalism now, and Taibbi writes for Rolling Stone, so it seems like they decided to just make a living rather than try and revive what they did in the past.

<comment><USER2> Yes I am sure that is one of the reasons too. But I do not see that much of Ames's freelance stuff either.

But then again he could have taken an office job to pay the rent.

</comment></comment></comment><comment><USER4> I, too, was an avid reader of the Exile while it lasted. I caught the tail end of it when I and my wife came to Russia in 2006. I thought it was still ruthless and unapologetic at the time. Thankfully there is always plenty of stuff to be ruthless and unapologetic about in Russia, be it the 90s or the 00s.

My thoughts reading the paper were always "how could they not shoot this down?" The pressure on journalists has grown tremendously under Putin, and the authorities were clamping down on anything remotely resembling subversion. Even if the authorities did not exert direct pressure, most publications would self-censor in the fear that the security services would go after them next.

How the Exile was allowed to continue is beyond me? But judging from my wife's magazine's intrepid reporting (published in Russia under the auspices of Ria Novosti - the State news beast), the English language publications generally pass under radar. She's never felt any pressure direct or otherwise to pull or amend critical stories.

It's important to keep in mind that English language publications are a drop in a bucket in Russia where I would say less 5% of the population can read and understand English. It simply has zero impact on the public opinion domestically, but it does wonders "exposing" the truth to the west, while showing how unfettered the press is in Russia. It's just not the mainstream press we are talking about here.

<comment><USER5> From the article: "The irony is that _The Exile_ was always far harder on America than Russia and, by the end, was probably more widely read by Russians than Americans."

Perhaps that's part of the reason _The Exile_ was allowed to continue for so long.

</comment></comment><comment><USER6> That is sad, as they did post some interesting columns (the war nerd was always worth reading).

Take this as a warning: do not do business in Russia.

<comment><USER7> > Take this as a warning: do not go to Russia

Fixed

But seriously, does Russia have ANY redeeming features right now besides possible tourist spots and pretty countryside?

<comment><USER8> Well, for one, some of the most brilliant coders I've ever spoken to have been in Russia.

A lot of incredible web technology we in the startup scene don't hear about comes from Russia. Unfortunately, most of it is used for spam/fraud.

<comment><USER9> I think this is the case in Russia because the odds of the government shaking you down, taking all your stuff and then throwing you in some awful prison are about the same whether what you're doing is perfectly legitimate or totally illegal.

</comment></comment></comment></comment><comment><USER3> Amazing (and awesome) to see that several HNers are Exile fans. I always viewed their paper as a kind of startup, except the goal being to piss off the establishment rather than make money.

</comment><comment><USER10> c'mon, nobody has been impaled or had his head axed (and having an American passport does help immensely in that regard in Russia). In general there is an unbelievably great progress on impalement made during the mere recent five centuries in Russia (<http://www.imdb.com/title/tt0037824/>). Just wait a couple thousands years more and the freedom of speech and other human rights may start gradually coming to Russia (my beloved - the farther i'm from it, the more beloved - Fatherland)

<comment><USER11> Um, yeah, right. I know you're kidding, but it's in really bad taste.

Having an American passport didn't help this guy from getting axed in 2004: <http://en.wikipedia.org/wiki/Paul_Klebnikov>

Having an American passport didn't help this guy get threatened repeated times through the 90s and 2000s: <http://en.wikipedia.org/wiki/Bill_Browder>

<comment><USER10> Re: Klebnikov - even American passport can't stop bullet of TT.

Re: Browder - compare with the Browder's Russian lawyer fate - <http://en.wikipedia.org/wiki/Sergei_Magnitsky> \- the 37 years old guy dies after 11 month in pre-trial detention vs. "Bill Browder was expelled from Russia as a national threat"

</comment></comment></comment><comment><USER12> We need more people like him, just to remind us of the absurdities we pretend or choose not to see every day.

Is The Exile online somewhere, at least partially?

<comment><USER12> To answer my own question: <http://exiledonline.com/the-exile-archive-page/>

</comment></comment><comment><USER9> My favorite eXile article of all time has to be "Embrace the Pain" : [http://exile.ru/articles/detail.php?ARTICLE_ID=7347&IBLO...](http://exile.ru/articles/detail.php?ARTICLE_ID=7347&IBLOCK_ID=35)

</comment><comment><USER13> the exile owned so hard. i wonder what the whole story is on the exchange at the end of the article? i can't really imagine matt taibbi throwing coffee in someone's face.

</comment><comment><USER14> What a brilliant article. I never heard of The Exile and hardly knew of Taibbi's drug-infused past.

</comment><comment><USER15> I read war nerd mostly. The rest of the paper didn't interest me so much. The unique thing a out war nerd was that even though he was too much to take for me, and sometimes I believed he was wrong, he presented such a different, enlightening and refreshing perspective.

It is rare to find in America any one who is truly politically incorrect. And the repetition ofvthe party talking points is so dreary.

But war nerd was genuinely politically incorrect.

How can you know what you think might be right if you don't test it against some one who thinks differently, and war nerd was so very challenging for me. Ill always thank the exile for that column.

</comment><comment><USER16> Big fan of the Exile here too. They had really great writing in a way, one moment they're talking about some business scheme in some remote part of the world, then it's about a point a classic Russian writer once made, then it's onto some other topic. It was a glorious, anarchic splatterball of writing and it was great!

And the the way they built themselves and their motivations to keep it going are so far out as to be mythical. I still wonder if maybe they weren't a classified spook project, because no way could any normal business get away with writing about what they did from inside Russia! Someone had to have pulled some strings on their behalf.</comment>


How to Run a More Secure Browser - <AUTHOR> https://www.dragonflybsd.org/docs/docs/handbook/RunSecureBrowser/ <comment><USER3> Hmm... I don't think this is actually a secure approach, as by default X is not secure. Any client with access can do things like sniff and inject keystrokes (even forwarded over SSH, depending on the value of ForwardX11Trusted in ssh_config):

[http://theinvisiblethings.blogspot.de/2011/04/linux- security...](http://theinvisiblethings.blogspot.de/2011/04/linux-security- circus-on-gui-isolation.html)

I could be wrong. Apparently X11 has the SECURITY and XACE extensions which are theoretically capable of preventing this, but nobody uses them (except SSH, see above). It's possible that DragonFlyBSD has these integrated somehow and makes the directions secure, but I don't think so.

<comment><USER4> This is written in a DragonFlyBSD context, and I don't think there's Wayland for *BSD (I could be wrong).

Also, how does this setup compare with Subgraph OS which uses Xpra?

There are better alternatives:

Containers. Run your browser in a container. There are some excellent videos explaining how this works on YouTube.

VMs. Like Qubes OS. You run your browser in a separate VM as your other applications. This picture explains it rather well: [https://en.wikipedia.org/wiki/Qubes_OS#/media/File:Qubes_sec...](https://en.wikipedia.org/wiki/Qubes_OS#/media/File:Qubes_security_domains.png)

<comment><USER5> > I don't think there's Wayland for *BSD

Wayland works on FreeBSD, and I've seen some reports of it working on DragonFlyBSD as well.

</comment></comment></comment><comment><USER6> Firejail ([https://firejail.wordpress.com/](https://firejail.wordpress.com/)) seems a good first step before jumping through those hoops. (Though, to be fair to the post, you can't use firejail on a *BSD, since it needs seccomp-bpf and other Linux specific things.)

</comment><comment><USER7> This is a pretty good illustration of the challenge of sandboxing: stipulate for a second that you could contain a browser exploit to a specific Unix UID (that's a very ambitious claim!) --- you're still left with a pretty big problem in this security model: the attacker might still be left with control of all your browser sessions.

For a big chunk of users --- perhaps the majority of all users --- this is all attackers actually want.

<comment><USER8> I have been waiting for years for attacks that operate entirely within the sandbox and steal cookies from memory, for example. What is more valuable that your Google cookies in a modern browser session? Who cares about machine access?

<comment><USER9> I think we've seen it once so far, for a Flash exploit that didn't have a sandbox escape in Chrome.

<comment><USER10> PPAPI plugins are sandboxed. That's their major difference from NPAPI plugins. The API itself is otherwise extremely similar.

<comment><USER9> I think you may be confused about who you're replying to and what subject you're replying on.

<comment><USER10> Upon re-reading the thread, I think you're right. Sorry!

<comment><USER9> No worries. :)

</comment></comment></comment></comment></comment></comment></comment><comment> joatmon-snoo Aren't jails one of the things that BSD is known for? (Now that Docker is a thing.) And the primary goal of jails in the first place was security, so what does this offer over running your browser in a jail?

There are a ton of rebuttals I can imagine but I don't know nearly enough about any of the stuff involved here to determine whether any of them are true.

<comment><USER11> Yes this is just basic UNIX isolation 101. It's a good article for that purpose. And I would use a jail as well if I were solving this problem because why not.

[Edit] not sure about video acceleration in the jail though

<comment><USER12> You just expose the /dev/video device to the jail. Completely reasonable.

</comment></comment></comment><comment><USER13> As others have already pointed out, this approach mostly protects the contents of your home directory from a cracked browser. It doesn't entirely isolate things at the X level.

A more secure (and perhaps simpler approach) is to have each user run their own X server on a separate virtual console. The size of an X server isn't really significant these days. So each X server will be entirely isolated from the other using the regular X security stuff. You wouldn't need much of a desktop environment for the extra sessions. You might not even need a window manager, depending. You could have one extra session for your banking stuff and/or another for your sketchy streaming sites.

</comment><comment><USER14> why is the suggested example ssh + command instead of sudo -u user command ?

<comment><USER15> probably to make switching from local account to a jail/other machine, easier in the future.

</comment></comment><comment><USER16> Wouldn't dropping privileges like this prevent Chrome's own sandbox from working correctly?

</comment><comment><USER17> Or, have a user who runs as a Vnc server then you get a whole user desktop account different to yours and no X11 exploits.

</comment><comment><USER18> How does this compare with the Qubes OS approach?

<comment><USER11> Qubes uses Xen for isolation as I understand it -- essentially putting different programs in their own specialized, locked down domU. So it's probably much more robust against attack than this approach.

[edit] but I'm not arguing its a better solution for you. Depends on your needs and hardware, etc..

<comment><USER19> This is really interesting. If you look at what Microsoft is doing with Windows 10 with virtualization based security you can see that the Qubes approach is going to go mainstream within the next year. in addition to moving secrets that are normally stored in the kernel into a separate statically linked trusted OS running in it's own VM (that's currently available in credential guard) they will be running edge in a separate VM as well.

Qubes is ahead of its time and far more versatile than most other solutions at this time.

</comment></comment></comment><comment><USER8> lol this is totally wrong. One browser exploit coupled with one kernel exploit, as per standard, still takes over the whole machine. Does this make the kernel step any harder?

What attacks are they even mitigating?

<comment><USER20> > _lol this is totally wrong. One browser exploit coupled with one kernel > exploit_ [...]

You seem to contradict yourself there.

> _What attacks are they even mitigating?_

The page is based on this email to email@example.com

        Date: Tue, 11 Aug 2015 10:32:58 -0700 (PDT)
        From: Matthew Dillon <email@example.com>
        To: email@example.com
        Subject: Running firefox a bit more safely - <USER2>

        As people may know a firefox hack was found in the wild that allows
        any accessible file to be read.  This hack was due to a bug in
        firefox's internal PDF viewer.  The exploit that was found in the wild
        was trying to snarf developer-related files such as .ssh configuration
        files and keys.

        [...]</comment></comment>


You Don't Really Need an Anti-Virus App Anymore - <AUTHOR> http://fieldguide.gizmodo.com/you-dont-really-need-an-anti-virus-app-anymore-1793366446 <comment><USER2> Saying you don't need an _additional, paid_ antivirus/antimalware app is not the same as saying you don't need one altogether. The article ignores that Windows Defender, in fact, _is_ an antivirus app, since it is optional and easily disabled or deleted.

<comment><USER3> > you have more built-in security than ever before, including a full antivirus > package that kicks in if you don't install your own (Windows Defender)

They did mention it.</comment></comment>


Ask HN: What happened to my flag option? - <AUTHOR>

Notice this a week or two ago, but my flag link on posts is gone. Has this been removed globally, or have I hit some karma/avg ratio that removed it?
Here's my current numbers:
karma:	6396 avg:	5.44 <comment><USER2> It gets removed permanently if you use it too often, where 'too often' hasn't scaled to the amount of spam and tasteless pandering HN has today.

<comment><USER3> I did not know that. Seems like a bad practice.

</comment></comment><comment><USER4> I still have mine. _shrug_</comment>


The new car-sharing scheme that could put Paris streets ahead. - <AUTHOR> http://www.guardian.co.uk/world/2011/oct/02/le-bluecar-car-share-scheme-paris?newsfeed=true

<comment><USER2> I hope the cars aren't silent, blind people won't know they are there.</comment>


Ask HN: Is there a way to set up an "escrow" online in case of fraud/damage? - <AUTHOR>

I'd like to set up a rental service for expensive, easily stolen goods.  In order to prevent fraud, I'd like to set up some sort of escrow service to cover the cost of the goods in case someone just declines to return them or damages the goods.<p>Is there a clean, unable to be "charged back" method to do this?  It doesn't necessarily have to be credit cards, but that was the first thought for ease of use. <comment><USER2> An easy method would be a deposit...we did this at one f my jobs in the 80's...people would rent VCR (yeah I know how old this makes me)...we had a $125 charge that was released back to visa or MasterCard through the merchant account...check with your banks merchant division. If they're worth their salt they can easily help you with this...remember merchant accounts are not afforde the same protections as personal accounts.

</comment><comment><USER3> Take a look at [http://balanced.com](http://balanced.com). They offer an escrow service. Another option would be to initially charge the customer the full price and refund when the product is returned. Or you could authorize the credit card for the full amount for say a period of 7 days.

<comment><AUTHOR> Thanks!

I thought about holds, but people may want to hold these goods for longer than a week.

Are there any options that doesn't require them to lay out the whole amount of money up front?</comment></comment>


How to Get Vaccinated Without Parental Consent - sahin-boydas https://www.wikihow.com/Get-Vaccinated-Without-Parental-Consent <comment><AUTHOR> > Schedule the date for a Friday...

I always try to schedule my (and family and pets') operations or procedures on the first business days of the week: if something goes wrong I want the availability of every specialist around, and not having to wait until Monday in some hospital bed because the needed doctor/laboratory/operator doesn't work on weekends (at least in Italy, if you are not in life-threatening conditions, they make you wait).

</comment><comment><USER2> I can't believe this is even a thing. How did we get here? Is it lack of compassionate care? Lack of statistical and biology education?

<comment><USER3> I will just link to my previous comment: [https://news.ycombinator.com/item?id=21799204](https://news.ycombinator.com/item?id=21799204)

The barrier of entry to biology is artificially high due to all sorts of reasons, mostly regulatory. Biohacking is often frowned upon on the federal level and the equipment is expensive. Even with stuff like OpenTrons, we are talking about several magnitudes higher costs than e.g. Arduino and a breadboard kit. What exists of open biology is often tied up with drug culture, both the legal and illegal variety. The latter needs no explanation and the former is stuff like Four Thieves Vinegar that tries to break the FDA- endorsed establishment. It is an embarrassment to the field that what exists of amateur biology mostly stands in the shadow of illegitimacy.

The pioneer of Crispr application in humans has just been thrown into jail and vilified in the press. Most of the scientific community, while not publicly praising, are silently in agreement with the decision. The few condemnations comes from bioengineers, your classic biologists are more than happy to play the "wait and see" game. Nobody is willing to actually engage with society at large with regards to the issue. There is no Space X, there is no Google in biology. Your established pharmaceutical companies are more than happy to play gatekeeper and rent-seek instead of shattering regulatory capture. They are not interested in pushing back the state, they would rather play the revolving door game. How many "prominent" biologists have you heard of whom built a single company that achieved unicorn status? Look at the biology "entrepreneurs". Classic academia-private partnerships. There is no fresh blood, no vision, no Tesla. More public relations effort is being put into "immortality tech" companies like Ambrosia and Calico than existing state of the art technologies. Apparently it is more "publicly acceptable" to inject young people's blood into your veins to live longer than to perform an experimental procedure on infants to potentially cure HIV.

Your average university graduate with a degree in the sciences can finish their biology component through memorization. This is the way the current system is structured and it is not likely to change soon. The talent in biology that does not go to medical school is being lost to software engineering. It is easier to make money in ad-tech than trying to cure cancer. Why bother working in the field when "shipping" can take decades because of red tape and experiments on non-human mamallian animals are tightly-regulated till almost the point of uselessness? Agriculture gets more leeway with animals on an unimaginably large scale and magnitude than your average university lab. Lab-on-chips and organoids are great for press releases and glossy magazine covers, but they are far from production-quality. Even lab- grown meat is not production-quality yet. The mush you get isn't even worth putting into meatballs, forget lab-grown filet mignons. The current tech is essentially the same old rehash on plant protein, bean curd/tofu has been used to make vegetarian meat substitutes in places like Asia for centuries. Impossible food made it "hip". To translate it into HN-speak: Impossible Foods to vegetarian meat is what Docker is to BSD jails. The tech community is able to reason through the costs and benefits of backdoors in encryption, but when it comes to animal rights there is nothing but emotional-fueled hysteria about perceived abuse and mistreatment. The next time a family member suffers in hospital from an incurable disease, just remember the donation you made to the local animal rights campaign helped hinder biological research and development by decades. Let's hope the animals' "thoughts and prayers" are with you. After all, they certainly are conscious enough to benefit from legal protections and funding.

You lament about the state of public biological understanding? Talk to the powers that be. How many people believe in free energy and try to put it into practice? Perpetual motion machines are easily debunked. You don't see rampant exploitation of the ignorant and vulnerable by free energy believers on the same scale as the anti-vaccination movement. The same can't be said for biology. How many craft beer brewers actually understand what goes on inside? The next time you go to your local bar, ask around. That will give a pretty clear idea of what is the current level of biology education.

Edit: why the downvotes? If biology makes you uncomfortable, then take time to learn it. After all, isn't this the infamous HN response to a lot of problems? "Learn to code"?

<comment><USER4> The "pioneer of Crispr" got 3 years for endangering human lives, which is pretty much a slap on the wrist. I would've done more, and I'm one of those "bioengineers" you talk about. Unsanctioned human experimentation isn't something we should applaud.

As for animal experiments, they are not nearly as difficult to get going as people think, SOPs for mice take a month on average to get approved in my experience. The vast majority of my dislike towards animal testing lies in the realm of cosmetics, not animals, and I'm sure most people would agree. Even so, the trend in research now is to move away from traditional animal models to organ-on-chips, simulations, and other human substitute models.

Finally, Biology is SLOW. You haven't seen a "unicorn" because an MVP for a biotech company in therapeutics is 10 years away from when it starts needing funding, in a lot of cases. There are very few options for series A-B funds to fill the gap between seed and revenue stages for biotech startups, which is why licensing and partnerships between researchers and industry are the predominant options seen today, alongside the traditional NIH/DARPA/NSF funds.

Maybe I'm biased because of my location (huge Biotech hub) and affiliations, but anytime I read complaints about biotech and medicine from software devs it reads like ignorance from people who are used to "moving fast and breaking things".

<comment><USER3> And there it is. The first assumption is that my background is in CS and not biology, that I do not understand the nature of your deeply mysterious arts. You yourself hang out on HN, I hope the irony isn't lost. This whole attitude is exactly why there is no decent seed funding for biology. Too conservative, too risk-adverse. The ivory tower knows best. The obsession with "better to die from cancer than from an untested treatment". It took decades for Right to Try to become reality and still there is tremendous opposition. Let's leave the orphan drug rent-seeking to private equity funds. Individual researchers should "know their place" and thrive only in the generosity and largesse of pharmaceutical giants. It is no wonder people are losing faith in the biological sciences. When computing is bringing breakthrough after breakthroughs, what has biology given us? Some new materials? Marginally improved treatments? How many magnitude level improvements have you seen? Where is my iPhone? Where are my VR goggles? Most if not all improvements are slow incremental gains built on the blood, sweat, and tears of poorly-paid phds who will be lucky to get paid 6 figures after graduation. It is easy to "look back on the decade" and pat yourself on the back, celebrating the oh-so- vast gains. The gains in biology hardly holds a candle to how much computing has advanced. The field of electronics has gotten cheaper than ever. Yet in biology, just how many people do you think have access to say, cryogenic electron microscopy? This isn't on Stanford light source level of difficulty, but there has been no effort at all to democratise the technology. Your ML researchers have access to ASICs for computing mere months after they get designed, both actual hardware and in the cloud. Tons of funding and development being put into improving developer user experience. Can you say the same for biology? The amount of "data processing" for a cryo microscope is trivial by modern cloud standards. Where are the Raspberry Pis, the Arduinos, of biology? Where are the cheap microscopy equipment clones? Because there is no market. There is no demand for biology.

<comment><USER4> Looking at computing vs biology as two fields is disingenuous, given that computing hasn't been around long enough to stagnate, although looking at ML research it is slowing down significantly. Computing is slowing down advancement as well, with silicon-based systems reaching their limit.

What has biotech given us? Cheap portable HIV testing for developing countries, non-invasive targeted treatment of various cancers, (Magnitude level). If you don't see gains in the bioengineering space you aren't looking hard enough, and you also aren't taking into account the FDA scrutinizing new technologies and treatments before they are released into the wild.

The assumption is you don't have a bio background because you have no idea why progress is slow. I'm wondering what kind of bio background you do have where time isn't an issue. Sure I can spin up a bunch of GPUs on demand to train my image classifier, but what I'm training it on is months of experiments run non-stop, and that's with a relatively quick animal model.

</comment></comment></comment></comment></comment><comment><USER5> "You're allowed to tell lies to protect your health and safety" is a surprisingly dogmatic moral statement in what is otherwise fairly cautious advice for general consumption.

As a Christian I don't think that's always true, and as an atheist I would have rejected it too. Do the majority of people actually think it's always true?

<comment><USER6> > You're allowed to tell lies to protect your health and safety

That's like a basic survival instinct. It transcends morality. I'd tell people that Jesus really was the son of a god if it meant living to see another day. I'd tell people other lies in order to guarantee I receive life saving drugs.

<comment><USER7> If you say that survival instincts transcend morality you're also saying that self-sacrifice is never a moral requirement, which at the very least is a controversial statement, not a given.

<comment><USER8> The suggestion that self-sacrifice is ever a moral requirement is a pretty controversial statement. Self-sacrifice for a moral reason is almost always seen as laudable, but necessary?

I feel like the weighting of your statement is off (wrt being controversial); not sacrificing yourself is the norm, and not immoral, while taking the option to sacrifice yourself is noble. As opposed to "Yeah, that guy ran back into the building to try to save the last kid from the fire. It's a shame he died, but he was just doing what was morally required so doesn't deserve any adulation".

</comment></comment></comment></comment><comment><USER9> In England (and probably the rest of the UK) you do not need a parent's consent to get vaccinated.

If you are 16 years old or older you can consent to get[1] medical treatment, and your parents are not involved.

You visit your GP. If you are 15 years old or younger your GP will test your capacity to make this decision. This is called "Gillick Competency". If you are competent to make the decision you will get the vaccinations you need. Your GP will want to involve your parent, but will not tell them without your permission. There are some safe-guarding duties, so your GP may, in rare situations, have to make a referral for your safety.

[https://www.nhs.uk/conditions/consent-to- treatment/children/](https://www.nhs.uk/conditions/consent-to- treatment/children/)

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

[1] It's a bit confusing for people who are 17 years old or younger. They can consent to get treatment, but cannot decline to get life-saving treatment. That decision will be made for them, by the courts if needed. Their views will be taken into account.

<comment><USER10> Bear in mind that in the UK, the NHS implicitly creates the expectation that easily available medical options will be restricted to the realm of the vaguely sane and actually beneficial to health.

Menawhile we still don't let kids decide to e.g. have tattoos.

</comment></comment><comment><USER11> Know what to say if they do find out somehow: "I'm autistic. I can't be turned autistic twice. But I could die of polio, and I'd really rather not."

I wonder if that would really work.</comment>


Show HN: Clean, simple and distraction-free writing environment - <AUTHOR> https://write.techulus.com/ <comment><USER2> I like the dark mode and the undo stack / feature--works well. I'm less familiar with markdown than others so a built in collapsing component reference to that might be cool, but I could see how you might argue against it for minimalism.</comment>


A Million-Dollar Cancer Treatment: Who Will Pay? - <AUTHOR> https://www.wsj.com/articles/the-million-dollar-cancer-treatment-no-one-knows-how-to-pay-for-1524740401 <comment><USER2> [http://archive.is/bOjVZ](http://archive.is/bOjVZ)

</comment><comment><USER3> An issue with how health care is funded in the US, is there is not often a rational consideration of cost. People are balking at the cost of a cancer treatment that costs 1 million dollars. However, if it cures a person and the person lives a good quality life for 20 years, then the cost per quality adjusted life year is around $50,000.

On the other hand, the median cost for traumatic brain injury is around $160,000 ([http://n.neurology.org/content/82/10_Supplement/P5.337](http://n.neurology.org/content/82/10_Supplement/P5.337)) with many of the patients dying or having poor quality of life. If you looked at cost per quality adjusted life years, it would probably be a lot higher.

In terms of what cost per quality adjusted life year to target, it seems that the UK NHS targets 30,000 GBP ([http://www.bbc.com/news/health-28983924](http://www.bbc.com/news/health-28983924)) and there are calls to increase it to 70,000 GBP([https://www.bmj.com/content/338/bmj.b181](https://www.bmj.com/content/338/bmj.b181))

We need to get away from looking at the sticker price for health care, but look in terms of cost per quality adjusted life year before we can have meaningful discussion as to what and how to pay for health care.

<comment><USER4> When government pays for your healthcare some civil servants who look at you as merely statistics make that call to keep you alive or to let you die. In that sense the money spent is actually controlled.

In USA there is this weird concept that "all lives matter more than anything else" and hence doctors spend millions.

<comment><USER5> Well it's a concept, but it's applied very hypocritically. It seems mostly about social status. "All lives matter more than anything else but some lives don't matter very much at all" would be more accurate. Some people get millions of dollars in treatment (they're wealthy or have employment with a company with good insurance) while others die slowly for lack of a few bucks for a prescription (they already lost their jobs due to previous illness, mental illness or addiction, or just got unlucky with timing).

Politicians in certain states and in the federal government are doing their best to make sure people without jobs can't get help with affording treatment as well. Frankly to claim that we in the US care more about lives than those in other developed nations with rational disbursement of healthcare funding is just wrong.

Sorry if you weren't implying that, but I think you were.

<comment><USER4> The person who has lost job or does not have a good job is not likely going to have much of a life either even if he is cured. If he has hope of having a good life he might as well borrow some reasonable money.

This might sound evil but what is really evil here is the US government and FDA that has put regulations which essentially say you will either get best possible treatment or none.

It is not clear to me why the prescription system is so ridiculously regulated. Not clear to me why people having opioids is such a big deal and why we can't have more of health workers giving minor treatment instead of just doctors.

In country like India there will be lot of quacks who are not real doctors and yet serve in villages where no real doctor would work.

</comment></comment></comment></comment><comment><USER6> Simple (yet complex) Solution: don't make health a for-profit business.

<comment><USER7> Then what's the incentive to spend millions to develop new treatments?

<comment><USER8> To serve humanity.

Why do people teach? Become soldiers? Priests?

Money isn't the only motivator.

<comment><USER9> Those people have to live, eat, and see my family do well. Those people can decide to go do something else, most people are not financially independent.

The money has to come from somewhere, always.

<comment><USER8> All of these things are true. None of these things require a $1M dose of a drug.</comment></comment></comment></comment></comment>


Take Your Design To The Next Level With CSS3 - <AUTHOR> http://www.smashingmagazine.com/2009/06/15/take-your-design-to-the-next-level-with-css3/

<comment><USER2> Here is a helpful chart for browser CSS3 support: <http://www.quirksmode.org/css/contents.html>

</comment><comment><USER3> "So why is it that, when it comes to CSS, we're stuck in the past and so afraid of experimenting?"

Because we like our websites to work in more than just the latest version of Firefox?

<comment><USER4> From the article I can clearly conclude that webkit based browsers support more than even the latest version of FF.

It's not 2003 anymore.

<comment><USER3> It was a generalisation to save my having to type a string of browsers, not a suggestion that Safari/etc don't support those things. The point being that until Internet Explorer supports anywhere near as much as [the rest], or somehow loses a huge chunk of its market share, there is little point in dicking about with CSS3.</comment></comment></comment>


Everything Wrong with Peter Thiel's Doomsday Survival Plan - <AUTHOR> https://www.outsideonline.com/2152476/everything-thats-wrong-billionaires-doomsday-survival-plan <comment><USER2> I suspect people like Thiel are more worried about becoming media scapegoats or fleeing after the nationalisation of their assets. Compared to the zombie apocalypse, an obnoxious media or a revolutionary government hunting down rich people has a lot of historical precedent.

</comment><comment><USER3> > "What's the percentage chance that Trump is actually a fascist

> dictator?" asks technology investor Justin Kan in the New Yorker

> story. "Maybe it's low, but the expected value of having an escape

> hatch is pretty high."

Classic Peter.

I have just remembered a book: _Emergency: This Book Will Save Your Life_ , by Nail Strauss</comment>


Hey Uber, I Like Your Ride… But Not Sure It's Worth The $143 You Charged Me - <AUTHOR> http://nickhughesblog.wordpress.com/2012/01/02/hey-uber-i-like-your-ride-but-not-sure-its-worth-the-143-you-charged-me/

<comment><USER2> I'm a bit confused. Uber said:

 _and you will ALWAYS know if there is a price increase before you request an Uber._

But I infer from the post that the potential cost was _not_ known to the author prior to accepting the ride? Obviously, getting hit with a large bill after the event is pretty uncool but if the rate is clear in advance, you can either take it or pick up a regular cab.

<comment><USER3> I suspect the author of the post is glossing over the fact that _technically_ he _was_ informed, he just clicked through the "Surge Pricing / are you sure you want to pay 5x" screen without reading it closely, figuring the email had already prepared him for a slightly higher fare.

I infer this from the fact that the post focuses on the email and Uber's pricing decision in the first place, rather than the notification or lack thereof, and then at the end slips in: "transparency is not just a vague email or a short notification".

</comment></comment><comment><USER4> How long did you wait for your ride? How long would you have had to wait for an alternative ride? What's your time and comfort worth?

I'll assume you knew what the base price was, and where willing to pay that. Where was your maximum price that would cause you to find an alternative ride?

<comment><USER5> I think that is beside the point. If I'm understanding the author clearly, the only thing he knew before the ride completed was that there /was/ a surcharge, not the amount he would have to pay. It's difficult to do a cost-benefit analysis without knowing the cost up front. I agree, if I saw that I'd have to pay 20 dollars more than normal because it is a holiday, I'd choose to pay it, but there's a certain threshold that I wouldn't cross and uber seems to be (again, if I understand the author correctly) intentionally hiding the surcharge from its users to avoid the possibility of users deciding that the surcharge would put the price above that threshold.

</comment></comment><comment><USER6> Uber approached this like a bunch of math/econ geeks when they should have approached this like designers. Economics assumes that people who are rational, operating under perfect information will make optimal choices.

The problem was that the interface did not give people the information necessary which meant that sub-optimal choices were made and this is clouding the debate around surge pricing. If Uber had presented an interface that said "this ride will cost $143, do you want to proceed?" it's likely a lot more people would have hit no, the demand would not have shot up as high and it would have been a much more reasonable 2x - 3x surge.

</comment><comment><USER7> Dynamic pricing is dumb because it is disruptive to a consistent user experience. I know an Uber ride from points A to B usually costs $X. Once I've got that into my brain, why stick it to me when I'm not really expecting it? Trying to catch a cab in San Francisco in NYE is hard enough. Making it easy to find a limo but charging me a lot more when I'm already pissed off is a bad move.

FYI, I have used Uber 10+ times.

</comment><comment><USER8> They have a blog post:

[http://blog.uber.com/2012/01/01/take-a-walk-through-surge- pr...](http://blog.uber.com/2012/01/01/take-a-walk-through-surge-pricing/)

Apparently the poster got a deal at 5x pricing, since their screenshot shows 6.25x pricing.

While the screenshot appears to meet minimum standards for informing customers, it's not really good enough. Let's see, 6.25 x 3.90 per mile x hmmm, let's see, how many miles, what if he takes the tunnel instead of the bridge, hmmm... This is, pardon my French, crap.

First there's a moral problem. Most people view jacking up rates on captive customers when the cost of service hasn't increased as immoral. (See for example _Thinking, Fast and Slow_ by Kahneman.) The average person views this as price-gouging.

But even if you decide that yes, your business is going to operate that way and screw your image, making someone solve a math problem with a half-dozen variables in their head to have some idea of the cost of their ride is not acceptable. Uber's lawyers should look up cases where someone tried to bury a ("and then the cost increases by 900%") clause in a contract and those contracts get rejected by the courts. There's no actual meeting of the minds on the price of the service, and thus the contract is invalid.

Uber would do a lot better to add a surcharge: "Currently there is a $50 surcharge for New Year's Eve in addition to the regular fees. Continue [Y/N]?"

That's more clear, more legally sound, and probably slightly less likely to be perceived as price-gouging.</comment>


Which Video Call Apps Can You Trust? - <AUTHOR> https://foundation.mozilla.org/de/blog/which-video-call-apps-can-you-trust/ <comment><USER2> I feel like this article goes in a bunch of different directions.

First everyone meets some sort of minimum standards except "Houseparty, Discord, and Doxy.me."

And then after that there is this vague "these are business apps" and "more fun" sort of feature discussion that is very non specific.

In the meantime there's nothing really addressing what those individual companies actually collect / may collect.... and when I think of an "apps can you trust" I think of what those apps themselves might do on their own.</comment>


Collaboration just got a lot easier, see how... - <AUTHOR> http://taskforce.posterous.com/collaboration-just-got-a-lot-easier-see-how

<comment><USER3> We use Google Apps (Premier) for our work. It still boggles my mind that Google hasn't even bothered applying a thin layer of enterprise social to the Tasks list. It would be a killer feature (up there with group calendaring).

EDIT: Hmm. I see this integrates with Google Apps. Would be interested in an invite code for our domain if you're giving them out.

<comment><USER4> It's a browser extension, so will work on any Google Apps account - <USER2> colleagues will just need to download the app. Email me at: nic@taskforceapp - and we'll get one over.

<comment><USER5> It may be a bit late for this, but maybe you should implement a separate invite code for HN readers. Just so that you can measure who is coming directly from HN and who is coming from Twitter activity. A thought, take it or leave it.

</comment></comment></comment><comment><USER6> Just on first blush, the title of this post does not make me want to visit the site.

</comment><comment><USER7> Without an invite code, this is indistinguishable from vaporware.

<comment><USER4> tweet us @taskforce and we'll get one over. Thanks!

<comment><USER7> Thank you. My intent was not actually to beg for a code so much as snarkily (sorry!) point out my annoyance at the need for one -- but I appreciate the gesture and will check it out.

<comment><USER8> People who complain about a product that they have no intention of becoming a customer of are really annoying, especially in a startup focused community. Invite method is needed to ensure smooth rollout and scaling. Bugs can be fixed as reports come in, without getting the same bug report from 1000 people.

<comment><USER6> Why are they annoying? Don't you want to be able to acquire customers who originally had no intention of joining/buying/etc.? To do this, you'd be well- advised to _at least_ take non-customers' opinions at face value without rejecting them out of hand. Reasons why people won't give you business can be just as useful as reasons why they will. Perhaps more.</comment></comment></comment></comment></comment>


Ask YC: Email Invite System Etiquette - <AUTHOR>

With online email service invite systems that many web apps use these days, do you send the invites through the user's account within that service or is it more proper to harvest the contact addresses and send from the new (your) web apps email domain?<p>If the latter how do you avoid spam filters? <comment><USER2> Translation: Should an invite from your service (for ex, Evite) be sent from @evite.com or @gmail.com if your friend firstname.lastname@example.com is sending someone an Evite.

</comment><comment><USER3> I would suggest sending the emails from your own app/domain. Make sure your reverse dns is setup correctly.

Check out www.isipp.com for email whitelisting services.

Try lyris or ecelerity software for sending out emails. It costs about $1,000 for a license but it is worth the money for the bounce handling, error reporting, setting different time-between sending messages to particular hosts, etc.

</comment><comment><USER4> I recently struggled with this and ultimately I went with using address from our own domain. There were a variety of reasons but it came down to:

1 - Trust for the sender and recipient (we weren't masquerading as someone else, like NikePlus does)

2 - Trust for mail servers (so they're not receiving Gmail branded email from a non-Gmail server)

3 - Allowed integration with companies such as Exact Target who offer "deliverability" as a product (<http://email.exacttarget.com/Services/Deliverability.html>). This requires it to come from our domain

Facebook's approach seems like good etiquette; I've certainly never heard anyone complain about it...so I'm using a similar approach.

</comment><comment><USER5> Does any service actually let you send emails through a user's account via some sort of API? If you're just using their username and password to log into the service and send the email as them, that strikes me as considerably sketchy. Don't do it. Send the invite from your domain.

I don't know how to avoid spam filters other than what Googling for it gives me. It'd be interesting to hear what has worked from people who have actually had to do it.

<comment><USER6> The API you're talking about is authenticated SMTP. I think he's just talking about setting the From: header.

I've seen both approaches - but it seems clear you'll get a better response using the individual's email.

<comment><USER5> Does anything other than GMail provide SMTP?

If he's just talking about setting the From: header, wouldn't that make it even more likely to be marked as spam?

<comment><USER7> No mail provider is going to be stupid enough to let a client application relay mail without the user inputing a username/password combo, and I would hope that most users these days are not dumb enough to blindly hand their mail authentication credentials to some random website. This leaves two options, forging the From: header or sending from your own domain. The former will get marked as spam by anything honoring/using SPF, so that is not really a smart move. The best option is to send it from your own site but include the inviters name at the start of the subject line (e.g. Subject: firstname.lastname@example.com invites you to try foo.com)

<comment><USER6> I used two pretty big sites (kayak.com and nytimes.com) in the last couple of days that put my email in the From: header. Admittedly as a result of my specific action, but that's a user contract issue rather than getting through spam filters - which they didn't seem to have a problem with.

</comment></comment></comment></comment></comment><comment><USER8> What?</comment>


How to Periodize History: 2020 and the Decade Dilemma - <AUTHOR> https://typesandtimes.net/2020/01/decade-dilemma <comment><USER2> A decade is a time interval, so by that definition a new decade is being started and ended at every single instant of time.

The important question is not when a decade has started, but rather to know what time period people are talking about when they refer to "the 20s". I think most people would consider 2020 (or 1920) to be a member of that set, but 2030 (and 1930) are not.

Open question: When people refer to "the 1900s", does that include the year 2000?

</comment><comment><USER3> It reminds the index of the first element in an array in different programming languages. Some use one-based indexing, others use zero. Which causes problems (bugs) when porting the program to a language with different indexing.

</comment><comment><USER4> Your first birthday is also the day you were born, so your 21st birthday is really the day you turn 20.

<comment><USER5> If you're born at 11pm then it is your birthnight :)

(In French we don't say birthday but "anniversaire" so the day you are born cannot be counted in. You have only one birth day.)</comment></comment>


Self-sustaining solar reactor creates clean hydrogen fuel - <AUTHOR> http://www.geek.com/articles/geek-pick/self-sustaining-solar-reactor-creates-clean-hydrogen-fuel-2012044/ <comment><USER2> [http://www.udel.edu/udaily/2012/apr/solar- reactor-040312.htm...](http://www.udel.edu/udaily/2012/apr/solar- reactor-040312.html)

 _"The reactor, which resembles a large cylinder, is comprised of layers of advanced, ultra-high temperature insulation and ceramic materials. It measures roughly 2 feet by 3 feet and weighs a hefty 1,750 pounds.

The conical geometry of the reactor' design uses gravity to feed zinc oxide powder (the reactant) into the system through 15 hoppers.."_

(From TFA) "...where it converts to a zinc vapor. At that point the vapor is reacted with water separately, which in turn produces hydrogen."

(Linked article) _"During testing, light concentrated to simulate the energy of 10,000 suns will be focused down into the reactor, sending the temperature within soaring to over 3,000 degrees Fahrenheit, nearly one-third the temperature of the sun's surface."

...

One interesting feature of the reactor is that, in theory, the zinc oxide byproduct created during the reaction will be re-usable, making the project self-sustaining."_

<comment><USER3> Don't worry about the '10000 suns' requirement...

The High-Flux Solar Furnace "can nominally provide flux at 2,000 suns but, when required, can use specialized secondary optics to generate concentrations greater than 20,000 suns."

\-- <http://www.nrel.gov/docs/legosti/fy97/23377.pdf>

</comment></comment><comment><USER4> This article is completely lacking any info which would allow the reader to judge how news-worthy this story is. Is this supposed to be a primary energy source (e.g., sunlight goes in, hydrogen for fueling cars comes out)? If so, what advantages does it have over existing technology? Does it have hope of being economically competitive?

<comment><AUTHOR> Sunlight, zinc oxide, and water goes in, hydrogen comes out. This is a prototype about to undergo 6 weeks of testing to answer the very question you pose about it being economically competitive. The main advantage this has? No emissions such as carbon dioxide.

<comment><USER4> Do any solar-powered generators of hydrogen produce carbon dioxide? Is the idea here that this would be a primary source of hydrogen for cars? Or is it only competitive in certain restricted applications?

</comment></comment></comment><comment><USER5> The part that is missing is the energy costs of reprocessing the zinc. I didn't pay attention in chemistry 30 years ago, but I assume the zinc is reacting with the water and isn't just a catalyst. Hmm, a little googling shows:

Zn + 2 H2O → Zn(OH)2 + H2

<comment><USER6> It's supposed to be zinc oxide going in, so it probably looks more like this:

ZnO + energy → Zn + O Zn + 2 H2O → Zn(OH)2 + H2

(I know that's not balanced, but yours isn't either)

Maybe you can then get the zinc hydroxide back into oxide without too much trouble. It disassociates in water, leaving you with hydroxide and zinc ions.

<comment><USER6> Correction, there needs to be a newline there.

ZnO + energy → Zn + O

Zn + 2 H2O → Zn(OH)2 + H2

</comment></comment></comment><comment><USER7> That is really cool! How long before people start hacking these in their garage?

<comment><USER2> This is a ceramic furnace as large as a washing machine, as heavy as a Honda Civic, that needs to be 6 times hotter inside than their home stove/oven/range, and the fuel (ZnO) is safe to eat in small quantities (breakfast cereal) but is toxic(?) to breathe.

I'm having trouble seeing why it would take long for a startup to start baking the clay for one of these in every home.

<comment><USER8> Zinc boils at just over 900 degrees centigrade. I guess that might make this a bit risky as a device. If, as you say, Zinc in gas form is toxic, that might be a problem.

Two by three feet and 10000 suns translates to "on a perfectly sunny day, needs a 200 by 300 feet solar collector" to produce the required heat. Actual numbers for a machine operating throughout the year will be quite a bit higher.

<comment><USER2> While the goal of the project was to create a 100% renewable energy source based on sunlight, another energy source could probably be used.

<comment><USER6> This is a heat engine. Your options for renewable heat are mostly geothermal or solar.

<comment><USER7> The question is... if we connected the hydrogen to a fuel cell, is it more efficient than a steam generator?

<comment><USER6> I am skeptical. Large steam generators are very, very good.

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> "Don't look into concentrated sunbeam with remaning eye."

SCNR</comment>


Indian ecommerce giant Flipkart raises $1 billion in fresh fund - <AUTHOR> http://economictimes.indiatimes.com/tech/internet/indias-biggest-online-retailer-flipkart-sets-a-new-benchmark-raises-1-billion-in-fresh-funds/articleshow/38883524.cms

<comment><USER2> This is great news. Should draw interest for startups in India, a lot more problems with scale to be solved here.

</comment><comment><AUTHOR> Who would have imagined this just a few years back!</comment>


Ask HN: Would you wait a day for less biased, more reliable curated news? - <AUTHOR> A couple friends and I were thinking of curating news together. Each one of us will tackle on a few topics each day, reading through most of the news of the selected topics, and with a bit of research, select one or more news articles that best describes the event, maybe with a little bit of "the curators context".
The goal is to help each other reach a less biased and more reliable source for news. The challenge is obviously the effect of individual biases, and the time spent curating news may affect the quality as well. One of the biggest trade off is that since we're going through news of the day, the curated news would be delayed, maybe as much as a day.
Instead of just posting them on a facebook group, we're thinking of throwing our curated news as blog posts, so that other people may benefit if they choose to use it.
What does HN think? Would you read curated news for less biased and more reliable information with delayed consumption on the event as a tradeoff? Any idea and feedback is great, as we want to further mature the concept (e.g. setting up some rules and baselines, as well as deciding on how to delegate each topic, etc.) before starting out.
Cheers and have a happy new year! <comment><USER2> Impossible. Your own biases consciously or sub-consciously would ultimately skew the curation. Facebook ran into this issue a little while ago with trending topics. If they did it manually, it was skewed. If they did in algorithmically, it was skewed based on whoever wrote the algorithm. The only possible way that I could see this working is if you had 3 columns: Left-wing, right-wing, and relatively unbiased (all news articles are biased simply because editors and news agencies are biased). Within those three columns, you place news articles in the left-wing or right-wing columns, and allow for voting (left, right, unbiased). However, this would also require you to have a large group from both sides voting in order to function properly. Good luck!

<comment><AUTHOR> That was what we had in mind! I guess instead of saying we're trying to be "less biased", we should be focusing on "what both left and right-wing leaning news are saying", as long as the information is correct.

<comment><USER3> Curious what would be considered left leaning and right leaning and whether or not an "equal time" approach might reflect a bias.

<comment><USER2> Correct...The only way around this that I see would be to allow voting in which the crowd would decide if the article would be in the correct column or not.

</comment></comment></comment></comment><comment><USER4> I think we need a single news source in the US that both liberals and conservatives could read. The two sides are living in different worlds, not because one side is reading fake news but because the two sides of the news are given from increasingly different perspectives. Fixing this problem is critical for the well being of our country. I have been waiting for someone to address this.

With that said, I am not sure if the solution you propose fixes that. The small group of curators would just providing a new perspective, probably not one that liberals and conservatives would both like. This is after all what many existing news sources already do. The key is in the group of curators. Maybe a well known group of liberals and conservatives could work on the stories so it fairly addresses the perspectives of both sides?

</comment><comment><USER5> I do. It's called Democracy Now. All their news breaks slower than MSM. [https://www.democracynow.org](https://www.democracynow.org)

</comment><comment><USER6> I usually wait a week for less biased, more reliable curated news ([http://theweek.com/](http://theweek.com/))

<comment><USER7> I usually wait a year or more until somebody writes a book about the subject. And I realise that the "random burning issue in the middle east" or the "life story of the next celebrity killed by drog abuse" is not just boring like hell but also totally irrelevant for my life and I do not want to waste my time reading books about this nonsense.

[http://www.aaronsw.com/weblog/hatethenews](http://www.aaronsw.com/weblog/hatethenews)

</comment></comment><comment><USER8> In the modern media environment of shock, outrage, and anything for eyeballs, people seem to enjoy indulging in bias and have little interest in "more reliable" because they prefer to confirm existing bias and dismiss any facts that are contrarian to their own existing opinions.

It's going to be tough to overcome that.

</comment><comment><USER9> I wouldn't:

\- If it is something really relevant it will appear on HN front page with a very short delay. Then, by reading the comments and looking for different points of view, I can form an opinion as unbiased as it is possible to get.

\- In addition, for weekly digested news, I can read the Economist.

</comment><comment><USER10> tldr; I'm pessimistic about this

This is a hard problem I think. Sometimes news that is interesting and popular is also controversial or just click-bait BS, so you have an ethical vs. interesting news dichotomy. Day-old-news will probably not be interesting to people who already read and discussed the topic the day before. Also consider that if only a few people are curating it there will be other discrediting flaws that might not be caught until more readers see it.

Also, keep in mind that if users get sick of the same kind of articles being posted (which could likely happen given biases of the curators) instead of blaming the users for upvoting (like on HN) they will blame the service instead and will likely stop using the service altogether.

Edit: I could see this working with a small group of individuals that are like-minded to the biases/opinions of the curators.

<comment><AUTHOR> Out idea was close to your edit, we're mainly focusing on curating new for our own group, but thinking of putting it on a blog style. If someone may be interested reading it along, we'd be more than welcome to share it.

</comment></comment><comment><USER11> I think this is a great idea. Instead of burdening yourselves with the task, why not establish a set of rules and let curation become democratized. I'd argue that the majority of people would follow the rules. Obviously you'll still get the Reddit style trolls who will try to throw it off.

</comment><comment><USER12> What you're describing is a blog. I wouldn't wait a day for it, since the blogs I follow provide links and commentary within hours. The challenge is to find one that isn't a one-trick pony, i.e. isn't just about one topic like politics.

If you want to launch a new one and be successful, you'll have to find a way to stand out from the crowd. That's probably going to be a "bias" of some kind, or at least a particular philosophy you intend to bring to bear through your commentary.

For example, I would be interested in reading a blog that reports on the news through the lens of black swans and antifragility (see Nassim Taleb's books). It's something I haven't really seen done well.

</comment><comment><USER13> Why would I trust you/your friends as researchers? Establishment journalism has problems, but you're basically suggesting that you do the same journalistic tasks, except one source removed from the truth and without any backing.

</comment><comment><USER14> I'd be willing to wait, but you probably wouldn't be able to write unbiased news with one day and two people.

Bias is not something you do on purpose, it's something you have to work very hard to avoid.

<comment><AUTHOR> We're not thinking of writing a new piece of article for each given topic, but more going towards giving a list of maybe 2 or 3 link to articles that can fully describe the happening of an event.

And as I mentioned in another comment[0], our goal to be "less biased" is to feed readers(other people in the loop) other sides of the story as well, as long as the facts are correct.

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

<comment><USER14> I think that might be the way to do it. At least, it is what I do; I don't even try anymore to find unbiased news, I just get many news sources of which I know how they're biased.

</comment></comment></comment><comment><USER15> It would be a fine idea but I wouldn't exclusively use your service because then I am only seeing the world through your lens. I would synthesize it with the other news sources I use. If your service has an obvious political or social position, then I would ask you to state that upfront as either part of the identity of the site or as part of a disclaimer.

</comment><comment><USER16> I think your idea is pretty cool

I just had another an idea about something tangentially similar just a few minutes ago. It'd be algorithmically curated news with no human intervention: [https://news.ycombinator.com/item?id=13284875](https://news.ycombinator.com/item?id=13284875) . Do you think this would be somewhat related to what you're talking about?

</comment><comment><USER17> This is what newspapers are for.

</comment><comment><USER18> No, I prefer more sites with useful content like HN. MSM is not useful at all.</comment>


Show HN: A Lightweight Android Client for ElasticSearch - <AUTHOR> https://github.com/appbaseio/appbase-droid/ <comment><AUTHOR> Sharing more context about why we built it here: [https://medium.appbase.io/appbase-droid-a-lightweight- androi...](https://medium.appbase.io/appbase-droid-a-lightweight-android- client-for-elasticsearch-2d784d38e53a)</comment>


Woz urges engineers to follow their hearts  - <AUTHOR> http://news.cnet.com/8301-1001_3-10022021-92.html <comment><USER2> Best part: "He was a prankster, but because he didn't boast, he only got caught once in high school. While spending the night in a juvenile detention facility as a result, he taught the prisoners how to take the electrical leads from the ceiling fan, wire them to the jail cell, and shock the guards."

<comment><USER3> Contrast this to Richard Feynman, who once avoided getting caught by boasting.

[http://starsending.spaces.live.com/blog/cns!420D430F8E7933EB...](http://starsending.spaces.live.com/blog/cns!420D430F8E7933EB!148.entry)

</comment></comment><comment><USER4> Woz sure is definitely my greatest inspiration, simply because he is a engineer to the bone, a lot easier and sensible to connect with him than Jobs or Gates or any of the other tech giants. I went to the talk by him when he came to visit Cisco a few weeks back, and it was really awesome. A true hacker.

<comment><USER5> I was at that talk too. Pretty full house.

</comment></comment><comment><USER6> _As the Apple computer's designer, Wozniak got employee No. 1. "Sometimes I go into an Apple store and say 'I'm an employee, I get a discount.' They say, 'What's your number?'"_

Woz was the one who created Apple, machine was way more important than ideas to sell it. Apple II pretty much started the "Computers for Normal People" revolution.

</comment><comment><USER7> Was anyone else at IDF?

<comment><USER8> How did your talk go?</comment></comment>


Coursera launches 10 specializations including Data Science - <AUTHOR> https://www.coursera.org/specializations

<comment><USER2> I'm very curious as to how the data science specialization compares with Udacity's data science courses. Any input from those with experience in the field would be most appreciated.

Edit: Wow, the last section of the Cybersecurity course, hardware security, sounds fun!</comment>


How Namecheap marketing capitalizes on Obama's tears is disgusting - q-_-p https://twitter.com/Namecheap/status/684754577090973696 <comment><AUTHOR> They're tweeting about it, that's hardly "capitalizing on" them.

<comment><USER2> Agreed, now if they were tweeting about sandyhookmassacre.com being sold that would be a different matter..

</comment></comment><comment><USER3> thats hilarious.</comment>


Here is the biggest mistake you will make on Amazon EC2…  - <AUTHOR> http://www.edukatr.com/here-is-the-biggest-mistake-you-will-make-on-amazon-ec2/

<comment><USER2> Correct me if I'm wrong, but I thought the point of ec2 style clouds was to create an ami with everything configured just how you need it ahead of time, and boot lots of small machines off that. The data should be fed from s3 or from rds or from an ec2 instance with a database which stores it's data on an ebs.

The main idea is that it's an easy platform to scale horizontally from.

It never really struck me as intended to be a service which you run something like wordpress from...

What this guy probably wanted was something like rackspace and linode offer, which is a vm with a persistant disk, more in line with vmware on the desktop or esx, or xen, than amazons offering.

<comment><USER3> I agree, I think your development process on EC2 needs a strategy on how to regularly build new AMI images. Probably a mix of updating some things in- place while running, and sometimes creating a new baseline AMI image of your whole OS and app, which is then used on the next reboot.

Also I would store all dynamic data on RDS (database) and S3 (uploaded files), probably no need for EBS in most web apps.

</comment></comment><comment><USER4> Is it "picking an instance too small to handle the traffic HN sends"?

<comment><USER5> I always picture the submit-and-boom scenario as skeet shooting, which keeps me amused enough until someone pastes a cache link into a comment.

Pull! _Pow_

</comment></comment><comment><USER6> Be careful who you take advice from. I can't believe somebody who is providing information on setting up EC2 for startups was not using elastic block storage for their critical data.

There is really no excuse for this. Don't make the same mistake.

<comment><USER7> Yeah -- if I'm understanding that article correctly, he really had no business offering up advice on how to configure EC2 instances.

On the upside, the title is decidedly not link-bait. That really is the biggest mistake you can make on AWS.

</comment></comment><comment><USER8> My cache got it: [http://viewtext.org/article?url=http://www.edukatr.com/here-...](http://viewtext.org/article?url=http://www.edukatr.com/here- is-the-biggest-mistake-you-will-make-on-amazon-ec2/)

</comment><comment><USER9> You might consider multiple backup strategies, different types of backups done in completely different ways, none with any level of dependence on each other. Test them to see if you are able to restore from them.

<comment><USER10> Amazon pretty much provides that service for you. You just gotta turn it on.

<comment><USER11> If your only backups are on AWS, you better hope that your credit card doesn't start bouncing while you're on a week long vacation.

</comment></comment></comment><comment><USER7> I'm not entirely sure I see what he did wrong -- he says he was using 'block storage', but his remedy was to get an EBS volume?

Was he really running the contents of two websites on the EC2 instance?

I mean, I've done that. Once. When I was first playing with EC2, and well before I'd actually deployed a live and (apparently) valuable site to it.

If I'm understanding the problem correctly, then my sympathies. I don't know if it's a curse or a blessing that it went all this time without having rebooted and destroying everything before now. I suppose that's the sort of thing you'd prefer to learn earlier than later.

<comment><USER12> > Was he really running the contents of two websites on the EC2 instance?

Apparently so, despite the fact that all of the EC2 documentation labels the local disk as "ephemeral."

</comment></comment><comment><USER13> Site is down. Is it hosted on EC2?

<comment><USER14> Site's IP points EC2... While the site is down, google cache to the rescue: <http://tinyurl.com/4o2psun>

<comment><AUTHOR> Thanks guys for pointing this</comment></comment></comment>


Lucky's Market closing all but one Florida store - <AUTHOR> https://www.sun-sentinel.com/business/fl-bz-luckys-closing-florida-20200121-jc5uva7oirg3nb2gp4oasgxusm-story.html <comment><USER2> This is a different entity from Lucky supermarkets in California, which are now part of Save Mart / S-Mart Foods.</comment>


Ask HN: Where to find a partner/developer for a micro project - <AUTHOR>

I am looking for someone to help be program a micro project over the weekend to be launched as an iphone app. Need someone who can scrape data from a PDF, basic mysql input and iphone package delivery. Are there any forums that I can hit up to find an interested party? <comment><USER2> You should just do it yourself. This doesn't sound like a "micro-project," and you aren't going to be able to find a programmer who wants to do this for a "micro-payment." If it is a "micro-project" for a programmer, then that programmer is elite, and you can expect him to have a macro-hourly wage requirement.

Why don't you go ahead and list what you expect to pay for this project, and then the readers of this forum can let you know if you're off base, and by how much. If it's a very good and fair payment, I'm sure someone will offer to do it.

In fact, I know an excellent iPhone programmer who would be interested.

<comment><AUTHOR> Basically, I am willing to give a significant % of the revenue of the app.

If not, maybe spend about 1000 $. Like I said, micro project.

I think this app could be built in one weekend.

<comment><USER2> $1000 will get you about 13 hours of time from a competent iPhone developer, and maybe 10 from a great one.

And every great programmer who wants a chance to make revenue from a product has a great idea already, but not the time to do it. No one is waiting for someone else's great idea to get working.

<comment><AUTHOR> point # 1 - true.

point # 2 - perhaps, perhaps not. also trying to build a relationship with an iphone developer as I have other ideas and places to get money from. Just want to do this one quick and dirty.

<comment><USER3> Point #2 is definitely true. Even if a developer has no ideas themselves, there's no shortage of business people like you who are giving their ideas away for free in the hopes of getting a programmer to work on them.

Perhaps you should be more clear about what you are bringing to the table yourself. E.g. marketing skills, access to an existing user base. $1000 is not enough unless you are aiming for an unskilled programmer.

</comment></comment></comment></comment></comment><comment><USER4> You made it, this is it. This is the place.

</comment><comment><AUTHOR> To be very precise, the following is what I want to do. Please don't steal my idea. I am not a programmer, but I do run the site www.nimonik.ca and can do the design/marketing/admin.

1\. Automate a scraper to pull data from the PDF files found here: [http://ville.montreal.qc.ca/portal/page?_pageid=65,2151455&#...
2. Have that data in a basic mysql db that can interact with the UI found here: http://www.pnika.com/hockey
3. Package into an iphone app and submit to app store.

<comment><USER5> More seriously:

1\. What about copyright / bandwidth / permission to scrape from that site?

2\. Where is the mysql db? Do you have servers and hosting or do they need to be conjoured from somewhere, configured, installed, etc?

You're talking of iPhone programming, which is currently popular and therefore costly, and also database skills and some kind of communication between the two, and scraping and unmentioned extras (particularly backend scalability if you want a lot of iPhone purchases, user accounts? database reports? some kind of admin controls)?

A weekend sounds optimistic for a robust solution to me.

<comment><AUTHOR> I have a mysql db running on a bunch of sites we can use. As for copyright, i don't know for sure, but it is municipal government data so that is not a big worry.

No user accounts. No admin. Weekend might be a tad optimistic, but I think it can be done with someone who has a some experience scraping data from pdfs and already has tools he can use.

</comment></comment></comment><comment><USER6> Maybe tell us more?

</comment><comment><USER7> www.rentacoder.com, whatever you do though, do NOT go with the lowest bidder.

</comment><comment><USER8> Paid app? Splitting the revenue?</comment>


SV Angel Partner Brian Pokorny Now CEO of DailyBooth (YC S09) - <AUTHOR> http://techcrunch.com/2010/03/09/sv-angel-partner-brian-pokorny-now-ceo-of-dailybooth/

<comment><USER2> Congrats Brian! and congrats to DailyBooth!

</comment><comment><USER3> Now @ryanamos can get more than 2 hours of sleep every night. Congrats guys, you're a great team.</comment>


Some obscure C features - <AUTHOR> https://mort.coffee/home/obscure-c-features/ <comment><USER2> The author tried using __COUNTER__ and a static array of function pointers, and narrowly missed a workable idea—a static linked list! Forward declarations pun definitions, and can be used roughly as follows:

      struct Element {
        int value;
        struct Element *next;
      }

      #define ELEMENT(value) _ELEMENT(value, __COUNTER__)
      #define _ELEMENT(value, n) \
        struct Element CAT(e, SUCC(n)); \
        struct Element CAT(e, n) = { (value), &CAT(e, SUCC(n)) }

You can then walk from e0 through the linked list, but because of how the initialization works, you're done when the current element has `next == 0`.

      int main(void)
      {
        struct Element *e = &e0;
        while (e->next) {
          printf("%d\n", e->value);
          e = e->next;
        }
      }

Here's a repl.it: [https://repl.it/repls/DetailedYoungAsianconstablebutterfly](https://repl.it/repls/DetailedYoungAsianconstablebutterfly)

<comment><USER3> The Linux Kernel also used another trick - placing data in a special named "section."

The linker's job is to combine all the separate pieces in a "section" (special linker term) and write out one section.

Using a special named section lets you create an array using macros, though using it for function pointers is probably safe and using it for other data types might be pretty fragile. [http://www.compsoc.man.ac.uk/~moz/kernelnewbies/documents/in...](http://www.compsoc.man.ac.uk/~moz/kernelnewbies/documents/initcall/kernel.html)

<comment><USER4> I was impressed when I discovered our codebase was using this trick to implement new CLI commands. Each C file would implement the functions and helptext etc for implementing a command, but I couldn't find where each command was being registered in the central parser. Because they _had_ to be registered in some central list, right?...

Turned out the macros I overlooked at the end of each file placed the struct defining the command in a special linker section, and the parser init would go and load all the commands from that section.

Interesting to know that this trick already existed in the Linux kernel.

I'm (perhaps perversely) disappointed we aren't using more of the linker's power in many C codebases.

<comment><USER5> Yeah, the linker offers a lot of magic waiting to be discovered.

A primary problem with linker magic is that it is usually very non-portable. Hacks you do with macros may be ugly but at least they work everywhere, unless you used a non-standard behavior.

Linker tricks tend to be platform specific, and even more so that other tricks (eg POSIX platforms share a lot of common behavior, but still tend to have quite different linkers).

<comment><USER6> I had a minor epiphany a few months ago where I realized the linker can be seen as sort of doing dependency injection for a bunch of object files. In theory, you could have a program that depends on some set of symbols, two object files that each include the symbols, and a linker script that at load time checks some configuration parameter before determining which subsystem to link with. You could even get really fancy and dynamically generate another object file with those symbols that acts as a proxy. And from there you could basically implement Spring for C, which obviously is what everyone wants to do ;)

<comment><USER7> In theory? LD_PRELOAD is specifically designed for it. For examples, see [https://rafalcieslak.wordpress.com/2013/04/02/dynamic- linker...](https://rafalcieslak.wordpress.com/2013/04/02/dynamic-linker- tricks-using-ld_preload-to-cheat-inject-features-and-investigate-programs/)

</comment></comment></comment></comment></comment></comment><comment><USER8> My not-so-humble-opinion is that if you find yourself doing metaprogramming with the C preprocessor, it's time to upgrade to a more powerful language.

<comment><USER9> Sometimes you just don't have other options than C.

Like kernel drivers, embedded (microcontroller) development.

Or perhaps you just need to develop a small loadable library without _any_ runtime (no malloc, etc.). Or perhaps writing Python, Lua etc. C-module for better performance.

You just need to treat C with proper respect, not be too arrogant about your skills.

I hope over time we can move more and more to Rust or some other language which gives as many errors at compile time as possible and helps with not shooting at our feet.

Shouldn't have too many C-macros, of course. Some macro messes I've seen can be nearly impossible to debug...

<comment><USER10> > You just need to treat C with proper respect, not be too arrogant about your > skills.

We've been hearing "C isn't the problem, bad programmers are the problem" for 40 years. This has continued to perpetuate the problems with the language.

I mean, I certainly agree that there are no alternatives to C _now_ for certain domains, but there are real problems with it that aren't solved by just "treating it with proper respect".

<comment><USER9> Having programmed C for soon 30 years, I absolutely agree with you that C _is_ the problem.

But often you just need to get the job done, and have limited options available.

Perhaps in 50-100 years, people looking back at software from this era won't be able to understand how we managed to make it work at all.

I haven't met or know anyone mastering C/C++ ( _especially_ C++), and doubt I'll ever hear about one.

<comment><USER11> > I haven't met or know anyone mastering C/C++ (especially C++), and doubt > I'll ever hear about one.

C can definitively be mastered. C at it's core is pragmatic minimalism. The basic ideas are very simple. If you want to be a language lawyer and know the standard completely (including all historical accidents), it can get complex, but still manageable. But anyways, you shouldn't be a language lawyer. That's not C. Make maintainable programs instead, stay in the middle of the road.

C gets out of the programmer's way. It's not about mastering _C_ , but about mastering _programming_. And while I agree there's much bad C software out there: I haven't seen one maintainable non-bloated Java project. Here is one master of C that I'm sure you know: Linus Torvalds. Of course there are many, many more. Just remember it's not about C, but programming machines in general.

<comment><USER9> > C can definitively be mastered.

If that's true, how come there are almost no widely used network facing C programs that didn't have plenty of security vulnerabilities?

(Anything written by Daniel J. Bernstein doesn't count, because there's no way he's a mere mortal. :))

<comment><USER12> OpenBSD has done a great job, especially if you look at what they achieved, how fast they got there, and what resources were at their disposal.

</comment></comment></comment></comment></comment></comment></comment><comment><USER13> Only the first two of these are available in C. Computed gotos and local labels are gcc extensions; and the dynamic linker is POSIX but not C.

(Incidentally, the dynamic linker hack is precisely how both FreeBSD and Linux perform all their kernel initialization: Individual modules define symbols with a particular naming pattern, and then the kernel linker enumerates those symbols.)

<comment><USER14> I think you're missing the point of the article. The author isn't limited to standard C, and neither is anyone with a unix and GCC.

Are you just nitpicking the author's description of extensions as "C?"

<comment><USER15> It was a clarifying comment, didn't denigrate anyone, and added a useful and interesting tidbit of information. I see nothing wrong with this.

Perhaps the comment author should receive some benefit of a doubt as to his intentions?

<comment><USER14> Sorry, you're just incorrect about both the content of Colin's comment and authorial intent. Colin clarifies he is expressing an objection, not a clarification, and that it is in fact the nitpick I guessed it was: [https://news.ycombinator.com/item?id=16236015](https://news.ycombinator.com/item?id=16236015)

Yes, it doesn't denigrate anyone, but that's a really low bar.

I do give authors the benefit of the doubt when something isn't clear. That's why I couched my message in "I think" and asked a question instead of just asserting facts.

<comment><USER15> > Sorry, you're just incorrect about both the content of Colin's comment

You seem to have misinterpreted me. I wasn't saying Colin was attempting to clarify (I didn't know his intent), I was saying that is his comment was _factually clarifying_. I didn't have any evidence as to his intent at the time, but I didn't see a reason to assume anything other than he was being helpful.

> Yes, it doesn't denigrate anyone, but that's a really low bar.

That's not even half of the criteria I listed, so it's not really the bar I set at all, is it?

The comment contributed by clarifying the submission name for those that had not yet read the article. It _additionally_ contributed by adding some factual information about some of the referenced features and how they are used in the kernel.

I don't think anything he said takes away from the article, so I don't think he's necessarily missing the point.

> I do give authors the benefit of the doubt when something isn't clear. > That's why I couched my message in "I think" and asked a question instead of > just asserting facts.

I think you also misunderstood what I was trying to accomplish, how much of my statement was meant to be a condemnation and correction, and how much was leveled at you instead of the general readership. The only existing reply to you at the time I posted was referencing people on HN that like to nitpick. It was meant as a "this isn't necessarily negative, so let's just take it for what it provides, and it provides some usefulness" and not as "shame on you for assuming the worst".

Edit: Blah, there was some weird wording in that last paragraph

</comment></comment></comment></comment></comment><comment><USER16> I also encountered the last problem, it can be handled pretty easily with __attribute__((constructor)):

      void (*_test_functions[NTEST_FUNCTIONS])(void);
      int _test_function_idx;

      #define TEST_FUNCTION(fname) \
        void fname(void); \
        __attribute__((constructor)) static void _init_ ## fname (void) { \
          _test_functions[_test_functions_idx++] = fname; \
        } \
        void fname()

      TEST_FUNCTION(test_foo_bar) {
        assert(foo_bar == 0);
      }

<comment><USER17> A quite fun, related feature of the AIX linker, is that it will automatically make any function name prefixed with "__sinit_" statically invoked the same as this attribute does. So you name the function a certain way to take care of AIX/xlc, add pragmas to take care of other UNIX vendor compilers add the attribute for any GCC-based (or compatible) compiler, and they are actually pretty cross-platform! Not... that... I would use these all the time or anything like that :)

<comment><USER18> The fun was even better in the old days, where each UNIX had a different concept of what a shared object should be.

AIX used to implement shared objects just like on Windows, using an export definitions file and import libraries, for example.

<comment><USER17> Still does to this day. And it has a machine-wide cache of libraries, so simply updating the library and restarting the processes isn't enough to get the new version -- you have to be aware it could be in the cache and might need to be manually flushed by someone with elevated access. _shudder_

<comment><USER18> Thanks for the clarification.

Last time I used it was about 2003.

</comment></comment></comment></comment></comment><comment><USER19> I love taking the address of labels. Back in highschool I wrote a couple of articles on using them to create JIT compilers:

[http://maplant.com/jit_bf.html](http://maplant.com/jit_bf.html)

[http://dginasa.blogspot.com/2012/05/jit-compilation- without-...](http://dginasa.blogspot.com/2012/05/jit-compilation-without-much- assembler.html?m=1)

<comment><USER20> This is similar to the technique used to implement gforth. The interpreter is all contained in one function, and the instructions are accessed using local labels and goto.

<comment><USER14> I believe CPython does something similar.

</comment></comment></comment><comment><USER21> Instead of the tricks with __COUNTER__ it is better to define the macro such that it also defines initializer function which registers whatever you want to register dynamically on program startup. The way of doing that is somewhat non-portable but essentially every interesting compiler-platform combination has straightforward way to do that as it is needed for both C++ (to call constructors of global variables) and ObjectiveC (as part of the code that @implementation expands into) implementations.

Edit: also, syntax-wise it seems to me that it is better do define the macro such that it can be used as

        define_foo(blabla...){ ... code ...}

In this case this would involve code like

        #define define_foo(name, ...) \
        static foo_ ## name(); \
        ... initializer function ...
        static foo_ ## name()

which also solves the first problem mentioned in the article.

<comment><AUTHOR> I agree with your point about syntax; it would have been nice if the syntax was `define(blah) { ... }` and `it("whatever") { ... }`. However, I don't think that's possible, because I need to include code after the end of the block.

That might not be obvious from the simplified macros I used in my example, but it's pretty clear by looking at the actual definitions. The describe and subdesc-macros ([https://github.com/mortie/snow/blob/a9ad850df456f78bcf96e1aa...](https://github.com/mortie/snow/blob/a9ad850df456f78bcf96e1aaeb5f42081f243f63/snow/snow.h#L377)) need to increment counters and print their status after the block, and the `it` macro ([https://github.com/mortie/snow/blob/a9ad850df456f78bcf96e1aa...](https://github.com/mortie/snow/blob/a9ad850df456f78bcf96e1aaeb5f42081f243f63/snow/snow.h#L336)) needs to run deferred expressions.

I think it would be possible to implement the `describe` macro such that it can be used as `describe(blah) { ... }`, because that defines a function and we can both give the function argument and expect return values from it, but I can't think of any way to do it with the other macros which just create regular `do { ... } while(0)` blocks.

If I'm wrong, please show me how; the `foo(blah) { ... }` syntax would make the __LINE__ macro work, it would play better with auto indenters and syntax highlighters, and it would give prettier error messages if you have a syntax error in a test case. I just can't see any way it would be possible.

<comment><USER22>
        #include <stdio.h>

        #define before_after(before, after)					\
        	for(int before_after_##__LINE__ = 0;				\
        	    before_after_##__LINE__ < 3;				\
        	    before_after_##__LINE__++)					\
        		if(before_after_##__LINE__ == 0) {			\
        			printf("%s\n", before);				\
        		} else if(before_after_##__LINE__ == 2) {		\
        			printf("%s\n", after);				\
        		} else

        int
        main(void) {
        	before_after("hello", "world") {
        		printf("to all the\n");
        	}
        	return(0);
        }

<comment><USER23> You should combine "__COUNTER___" with "before_after_##__LINE__" to make a unique identifier more robust.

Your snippet won't work with this inline example:

      before_after("hello", "world") { before_after("hello", "world") { }}

</comment></comment></comment></comment><comment><USER14> @mort96, for the latter example, the BSDs provide this in the sys/linker_set.h header, with macros like SET_BEGIN, SET_FOREACH, etc. Unfortunately I don't see the same functionality in Linux headers, but there's no reason the same technique cannot be used there.

</comment><comment><USER24> Enormously powerful, and powerfully unreadable for mere mortals. you can take the assembler out of the loop but you can't take the failure to comprehend out of the programmer.

I don't do C for a living any more (barely did) but the number of times I asked smarter people "why did you use this idiom with this terrificly confusing side-effect" and they said "thats not a side effect" comes to mind...

</comment><comment><USER25> More examples (C89/90 preprocessor compatible):

Function building using templates:

         https://github.com/faragon/libsrt/blob/master/src/saux/ssort.c

Passing macros to macros (meta-templates):

         https://github.com/faragon/libsrt/blob/master/src/saux/ssearch.c

</comment><comment><USER26> My favorite (somewhat) obscure C feature:

        puts("Line one\nLine two\nLine three");

and

        puts("Line one\n"
             "Line two\n"
             "Line three\n");

mean the exact same thing. This can be a godsend for making complex debug/log output more presentable in the source.

</comment><comment><USER27> Or, "Things you can do with macros in C, but probably shouldn't."

<comment><USER28> Why not? I'm serious. Please don't say "don't use C". We all agree on _that_. I'm asking why one should not use clever macro tricks -- I know many codebases that do, and I'd not shy away from it when I have to use C anyways.

<comment><USER29> > Please don't say "don't use C". We all agree on _that_.

I wouldn't be so sure John Nagle agrees with such a blanket statement.

</comment></comment></comment><comment><USER30> > I don't know how that works, but the important part is that it does.

Coding in C is already super risky, as proven by the huge number of projects that have exploitable memory errors in there. Adding complexity using features one doesn't really understand is at best going to complicate debugging and make thing work magically and in the worse case, lead to the risk that someone is actually going to understand how your code works and exploit it.

Not worth it.

<comment><AUTHOR> I might not have expressed myself clearly enough. It's not risky, it's not a feature I don't understand how it works, and I'm using it exactly as it's described in GNU's documentation on labels as values and computed gotos: [https://gcc.gnu.org/onlinedocs/gcc/Labels-as- Values.html](https://gcc.gnu.org/onlinedocs/gcc/Labels-as-Values.html)

The "I don't know how that works, but the important part is that it does." sentence was meant to highlight the apparent absurdity of dereferencing a void*, not to say that I don't understand exactly how to use the feature.

</comment></comment><comment><USER31> Google Cache: [https://webcache.googleusercontent.com/search?q=cache:XqXHF0...](https://webcache.googleusercontent.com/search?q=cache:XqXHF0raAVEJ:https://mort.coffee/home/obscure- c-features/+&cd=1&hl=en&ct=clnk&gl=us)

</comment><comment><USER11> Sending blocks as arguments to macros: Just wrap them in another set of parentheses. For parentheses-balanced input (such as valid C blocks) this should always work (I think).

        $ echo '#define x(a,b,c) a b
        x(1, (2, 3), 5)' | cpp

<comment><AUTHOR> That isn't really a viable solution, because C doesn't allow parentheses around blocks.

Calling `describe(foo, ({ int a, b; }))` would make the preprocessor happy, but it would also produce invalid syntax:

        void test_foo() ({ int a, b; })

<comment><USER28> Tsk tsk, if you're going to know about label values and other GCC C extensions, you might as well know about statement expressions (another GCC C extension). `({ <statements> })` is an _expression_.

Naturally, Clang also supports statement expressions...

EDIT: I highly recommend spending some time reading about all the various GCC C extensions, and what compilers support them (typically Clang, but also Sun Studio, if that's still around..., and maybe others). There are quite a few very useful ones.

</comment></comment></comment><comment><USER32> Interesting as highlights of what C preprocessor and compiler extensions can do. But I'd hate seeing it in actual production code.

<comment><USER8> I used to be enamored with what I could do with the preprocessor back in the 80's. I've since reverted all of that (in C code I still use) back to mundane uses of the preprocessor.

Eventually one tires of no support in the symbolic debugger, program analysis tools, compiler error messages that are based on the post-expansion code, nobody else understands the code, hygiene problems, etc.

<comment><USER32> Exactly my sentiment, especially the collaboration part. If you take it too far, you effectively invent a new language. Forcing it upon others is more about hubris than skills.

<comment><USER33> > you effectively invent a new language

Perfect. Can't tell if that's deliberate.

</comment></comment></comment></comment><comment><USER34> in college my buddy made a defer function in C that is a little simpler (but only works with clang)

[https://github.com/asubiotto/cdefer/blob/master/defer.h](https://github.com/asubiotto/cdefer/blob/master/defer.h)

<comment><USER28> It's not just that it only works with Clang, but that it only works with _Blocks_ (Apple's extension to C which basically adds closures of indefinite extent, which is pretty cool).

</comment></comment><comment><USER35> Really interesting read. However, I fear that if other C library maintainers will start to use this kind of techniques, creating bindings for other languages will become increasingly difficult.</comment>


OpenBSD IPSEC backdoors: Why are open source developers selling out to FBI? - <AUTHOR>

Theo's email says a lot without actually saying it out. Does any one have any additional details on this? <comment><AUTHOR> Here's the link for those who didn't read Theo's email: [http://marc.info/?l=openbsd-tech&m=129236621626462&#...</a>

</comment><comment><USER2> Most likely because they like the $ and consider it a feather in their cap to work for a government agency? Maybe some misguided patriotism too.

This is eye-opening for sure!</comment>