Ask HN: Should Alex Jones or James Gunn be suppressed, free speech? - <AUTHOR> <comment><USER2> Private censorship by semi-monopolies is a sticky situation. Even so, it's better than the way things were.

Pre-internet, it was network television, local newspaper, or bust. Those platforms make facebook and youtube look like free speech fantasy-lands.

As for the actual question, at least Alex Jones still has his own website... until cloudflare decides to block him. That's what really sucks about the whole thing; since we refuse to police the internet with civil law, we have unelected and unaccountable private entities policing it instead. With a judge and a jury, the wheels may have turned slowly, but at least there was a chance to put the case forward. Now all of the rights are firmly on the side of the service provider, and all the rest of us can do is squeal loudly enough to where--hopefully--one of the wizards behind the algorithm is forced to take action.

</comment><comment><USER3> The platforms decide and the question is if that is good. If the platforms have a monopoly, and silence parties at will, it is bad for democracy.

I like to see a new law that regulates platforms with major influence. I have seen that Youtube took away the channel of Mika Adams, aka the Health Ranger, taken down. Youtube not responding to any attempt of conversation. Youtube putting the channel 3 weeks later back but with 50% of the followers "removed". We can only guess what Youtube was thinking but there should be a law against abusing the platform rules to ban somebody, even if that person did not break any platform rule. Removing a channel from Youtube has such a deep impact that one must be able, within reason, to be able to resolve issues. I am not a big fan of Alex Jones and think that most of the times he talks BS and some of the times he is probably right. I see no good reason to ban him.

<comment><USER4> > _" I like to see a new law that regulates platforms with major influence."_

Giving the government the power to regulate speech on privately owned media is very dangerous, and is precisely what the First Amendment's guarantees of freedom of speech and freedom of the press were designed to prevent.

If the government can regulate who YouTube or Facebook or Twitter must allow to post on their sites, what's to stop them from telling the New York Times what they have to print on their front page? (The Times also fits your description of a platform with major influence. Should they be required to publish an article that I wrote? Or that the President wrote?)

I'm much more scared of the government exercising control over speech than corporations, since the government has much more power (they can put people in prison, etc.).

</comment></comment><comment><AUTHOR> Does it worry anyone that more and more people are okay with having an institution suppress an opposing view?

Governments wanting to suppress opposing views is normal. Citizens asking for others to be silenced is now becoming the new norm.

Who gets to decide?

<comment><USER5> Citizens asking for others to be silenced certainly isn't new. The demand for blasphemy laws is generally bottom-up, not top-down. (Though there is a top- down equivalent, sedition or lèse-majesté laws.)</comment></comment>


Build Windows - Livestream - <AUTHOR> http://www.buildwindows.com/?stream

<comment><USER2> Looking at the demo, I could not help but think Microsoft is really doing a phenomenal job here - even to the extent that their competitors have something to worry about Microsoft after a long time.

a) Cross platform - A sizable number of modern apps for Windows are going to be Metro based and thus totally cross platform - ARM/x86_64. Now Android does this already but purely from Windows standpoint - this is a great way to start addressing real cross platform apps. The killer deal here is that people needing legacy x86 Windows apps are not going to miss out on the fun.

b) Backwards compatibility - no explanation required. They continue to do great in that department.

c) Very close hardware/software integration - Across vendors, SOCs and what not - they are really taking steps toward making hardware irrelevant from a user standpoint. If one wanted legacy apps and multiple monitors, they can still buy the Samsung Core i5 tablet with the USB and HDMI port without looking funny - it looks and works as sleek as your ARM tablet.

d) Real usability improvements - Like for example Refresh and Reset your PC, Windows Update made very subtle, Task bar can just span across monitors or can be two or more independent task bars showing only the apps on its own monitor.

The only unconvincing part of the demo was Windows Live - I wasn't sure how much traction that would gain.

Great stuff.

<comment><USER3> The cool part of the Windows Live integration, to me, happens when you share computers or tablets. When you hand off that tablet to your wife or your guest, and they log on with their Live ID, they have _their_ e-mail, contacts, calendar, bookmarks, app settings in front of them as if they were using their own dedicated device. Yet when they hand it back and you log on with your own profile, it's all your stuff again.

This is a big pain with current tablets and phones to me. When someone wants to borrow my devices, I'm handing out my personal e-mail and photos and files, and they're not easily able to access their things. A friend of mine wanted to check out my Android phone and I lost all my app icons and widgets because she wanted to try a different theme. And when I borrow my dad's tablet, I have no easy way to access my e-mail, since I don't use gmail or something else with a convenient webmail site.

<comment><USER2> Excellent point - I somehow missed that part (probably my extreme prejudice against Hotmail set in :). That to me again falls under usability improvements and certainly if people exercise the sharing part often (arguable as these are personalized devices more than a PC ever was but on the other hand given the PC roots it is possible people will like it) Windows Live might see more traction.

</comment></comment></comment><comment><USER4> I really like I see so far (in the tools demo currently).

\- The Metro tile UI is fundamentally different from any other tablet UI out there. The lock screen password gestures to unlock, the live tiles, etc are all pretty new and different.

\- I really like the 'docking' and running multiple apps on the same screen at the same time

\- Really like every app being able to act as a data source through a standard API, act as a search provider, as a share provider (through those 'charms'), etc.

\- Watching the tools demo, like the common Windows API across JS, XAML+.NET, etc. Haven't seen anyone else do this.

This is the first conference from MSFT I'm watching from the outside for a long time - and I really like what I see.

</comment><comment><USER5> If you don't have Silverlight, this stream should work: <http://mfile.akamai.com/125013/live/reflector:52976.asx>

<comment><USER6> Didn't work for me (Ubuntu).

<comment><USER5> Probably requires WMV codecs?

Edit:

      sudo apt-get install gstreamer0.10-plugins-ugly gstreamer0.10-plugins-bad gstreamer0.10-ffmpeg

Don't let the names scare you, they refer to the licenses not the quality of the code. Normally these would be detected and installed automatically, but there's a bug that prevents mms:// content from being autodetected.

edit2: fixed codecs, sorry

</comment></comment></comment><comment><USER7> I'm not really interested in live streams of events like these (I'll just read the summaries, thanks) but the scant details I'm seeing about Windows 8 really do look pretty good.

I've played around with Windows Phone, and I intend my next phone to be running it- if you haven't, you owe it to yourself to try out the UI, it's really something else. Integration with the Zune Pass is a killer feature for me, too.

The unanswered question is fitting Windows 8 into tablet form and keeping it running at a good speed. That remains to be seen.

<comment><USER8> Unfortunately it's browser is unusable, in my opinion. Until someone ports webkit or gecko to WP7, I'm staying away. And then only if it allows you to change the browser default.

<comment><USER7> IE10 really isn't a bad browser at all.

But as a web dev, I agree that there's something deep set within me that makes me uncomfortable about using IE for day to day browsing. I'm not even sure what MS can do about that.

<comment><USER8> I was referring to the mobile version, which as I understand it is based on IE8, which is archaic compared to every other mobile browser on the market.

<comment><USER9> Win Phone 7 Mango (should be released later this month, can get it now if you know where to look) has an IE9 based browser that supports html 5 etc

</comment></comment></comment></comment></comment><comment><USER10> > please install Microsoft Silverlight

Nah, I'll pass...

<comment><USER6> In fact it seems that it's impossible to install by clicking on the link

"One moment, please, while the current Silverlight installation status is determined... Microsoft Silverlight may not be supported on your computer's hardware or operating system."

</comment></comment><comment><USER11> Anyone else experiencing deJobs vu here? The demo world has been forever changed by that man. Impressive looking stuff, though.

<comment><USER12> They have the same first name. Steven Sinofsky/Steve Jobs.

</comment></comment><comment><USER13> "Your Silverlight plug-in has crashed."

gg

</comment><comment><USER14> I closed the page as soon as i saw the "Sliverlight required" screen. I am on Linux with Firefox 6.0.2. Microsoft really needs to get rid of silverlight to cover more audience (at least people like me)

</comment><comment><USER15> Why the hell in every Microsoft's website, video is always automatically loaded and played without the user intent to watch!!it's such a stupid thing

<comment><USER16> It's a live feed, not a Youtube video.

<comment><USER15> This is the post "Delivering fast boot times in Windows 8" in windows blog [http://blogs.msdn.com/b/b8/archive/2011/09/08/delivering- fas...](http://blogs.msdn.com/b/b8/archive/2011/09/08/delivering-fast-boot- times-in-windows-8.aspx) You can see that the video(in Silverlight) at bottom loads without you having to click on it. It eats up bandwidth.This is the latest Microsoft webpage that I remember in which the video gets loaded automatically.

<comment><USER3> It's a plain HTML5 <video> tag with nothing saying to autostart. It'll work however your browser is configured to handle video tags. It doesn't autostart in any of mine.</comment></comment></comment></comment>


As a one man team, I'd be interested in your feedback for my startup - <AUTHOR> http://www.diabeticalerts.com

<comment><USER2> As a T1, I was excited when I saw the URL... and then disappointed when I clicked through to the site. As far as I can see, this has nothing to do with diabetes; it applies equally well to any number of conditions which could randomly incapacitate someone.

Which isn't to say that this isn't a useful service; but if I was going to pay for this, it would be for my elderly prone-to-falls grandmother, not for myself.

My advice is to go either broader or deeper -- either aim for a wider user base than just diabetics, or add something specific to diabetes (e.g., blood glucose tracking -- bonus points if you say "gee, your blood glucose levels have been wacky lately, we should check up on you more often").

<comment><AUTHOR> That's actually what I'm working on right now. Initally, the software was built for me and my wife (she's a type 1 diabetic) -- it wasn't until recently I decided to try and turn it into a service. Eventually, I hope to be branching out into alert services so people can check in on grandparents, automated medicine reminders, etc.

</comment></comment><comment><USER3> Just a thought: how about text message check-ups?

<comment><AUTHOR> My telephony system supports it (I'm using Twilio), and it's one of the features I'll be adding in the next version--depending on customer response.</comment></comment>


WeWork chases new financing as cash crunch looms - <AUTHOR> https://www.ft.com/content/f29ecc58-eba9-11e9-a240-3b065ef5fc55 <comment><USER2> This could be the best situation for Softbank. WeWork is obviously in desparate need of cash, no one is going to touch it with a ten foot pole. Softbank is too invested for it to fail. They can buy up 50% of the equity remaining for any sort of investment since they will have a gun to their head the company will have to accept or go bankrupt. Adam Neumann's shares will become worthless in the process and new shares will be issued for the new co- CEOs.

So with $11B in capital committed to WeWork at the end of the whole mess Softbank can end up with 90% ownership. Get the company on track financially and see if they can bring it to an IPO in the next 2-3 years when they have solved their financial issues. And hopefully realize some sort of return, or at the very least not leave a $9B hole in their vision fund.

<comment><USER3> He already ferreted away $700m. He'll be fine.

<comment><USER4> And then borrowed $300-some million secured against his WeWork shares

<comment><USER5> I just did some work to get together info for an investor due diligence questionnaire and I LOLed when I came to a long series of questions at the end that I swear were an itemized list of all the shenanigans that went on at WeWork. Loans of that sort were one of the items.

</comment></comment></comment></comment><comment><USER6> I don't understand how this company employed 1500+ programmers, PMs and data science people. What did they do? I guess not much, as 500 of them got laid off recently.

<comment><USER7> >What did they do?

My guess would be 'very little', though I have no facts to back that up. It's just a staggering number given what the company does.

I've worked at a place like this. The job was as easy as it was cushy. Two week sprint plans could be completed in literally 3-4 days... but they just kept on hiring. I often heard the word "growth", but I have no idea as to why their interpretation of the word was desirable.

In contrast, I have also worked at two sucessful biotech companies. At the first we developed automated microscopy systems used by pathologists, as well as image viewing/analysis applications and your typical data management type interfaces. I worked on the scanner/image processing team. We were a team of six, three of which were software devs. The other software team (the data management / viewing stuff) had about eleven people. We were the most successful company in our domain, and our competition was the likes of Zeiss and Hamamatsu (one of which later purchased us.)

At my next company we successfully released a prognostic test for late stage colon cancer using CTC's found in the blood stream. In the course of doing so we had to write all sorts of integrations on top of an image viewing application, reporting systems, and the core bits (scanning + image analysis + local data management + R&D tooling.) We had a team of ~4 devs over a three year period.

When I read about stuff like this I'm just mystified.

<comment><USER8> People like easy money. Anyone with ambition, opportunity, talent and foresight would likely have left We after a month and never looked back.

<comment><USER9> Or they used their cushy job, high salary, and low expected work output as a nice way to fund and work their side projects. If you leave work energized from not doing much, you have plenty of energy to burn off building something.

I know plenty of ambitious and talented developers who work at menial jobs to cash a paycheck and pay for their side projects.

<comment><USER8> Huh? What do your acquaintances do then for 8 hours, sleep?

<comment><USER9> Get to work at 9-10am. Work slowly doing trivial things. Eat long lunches. Go to the gym. Leave by 5pm. Get home by 6pm, and have the energy to get back on the computer.

Where as I have absolutely no desire to look at a computer when I GET to work, let alone after work.

<comment><USER8> Sounds like a FAANG.

</comment></comment></comment></comment></comment></comment></comment><comment><USER10> Interesting that Goldman Sachs pumped up their valuation to $60-90 billion at one point, but now won't give them a lifeline:

" Goldman Sachs, one of WeWork's investors, advisers and customers, had been among a consortium of banks willing to lend $6bn had the IPO succeeded but has so far sat out the new financing discussions out of concern about the level of uncertainty surrounding the company, one person said."

<comment><USER11> My first thought was related to this: hhow is it possible that one moment the company is ready for an IPO, with all the due diligence that comes with it and backing of financial giants, and then next month be desperate for cash? Isn't there some sort of fraud going on in this situation?

<comment><USER12> The company believed it was ready for an IPO, but all the potential IPO investors disagreed after reading the S-1 and doing some diligence. In a sense the system worked well in that regard.

The big issue was with the private investors letting the CEO do whatever he wanted and pushing the valuation up very high.

</comment></comment></comment><comment><USER13> Perhaps someone in the property business can illuminate something for me.

I read somewhere that WeWork runs each site as a separate business. Can this really be true? It would seem to allow them to let each entity go bankrupt, which doesn't seem to be a sensible thing for the landlord to want to expose himself to. Sure he gets the building back, but you'd think there's then no advantage to renting it out to WeWork, since despite being a large entity they can just default on you anyway?

<comment><USER14> I did some consulting once for a company that managed rooftop space for building operators to lease to telcos and what not and it was totally normal one company to "own" multiple buildings but for each building to be its own LLC.

<comment><USER15> This seems to be a common practice. My parents live in a highrise that has construction defects and it took years to extract money to repair the building because the LLC that sold the building to the condo association had no cash or assets anymore.

<comment><USER16> My accountant advised our business to setup a separate business to own the building we wanted to buy. It silos the liabilities of each. Also, you have some flexibility in how much you charge yourself for rent. Depending on which company might owe more taxes, you may want to adjust that rate up and down. In our case, the property business outlived the primary business turned out to be another benefit of decoupling them.

<comment><USER17> Liabilities makes sense. I used to be at a remote sensing company that was leasing a plane and when we were close to buying instead the CFO said, we need to start a new company for the liabilities.

<comment><USER18> To be fair (not blaming you here), but this seems incredibly dodgy.

This is essentially the monopolisation of the market on multiple fronts without any of the consequences to you as a business.

For example, you are taking away business from renters who could be making money on rent but also spending that money keeping the buildings safe.

Not as sure this should be legal, let's say.

</comment></comment></comment></comment></comment></comment><comment><USER19> Does anyone here on HN use WeWork spaces and enjoy them? I'm not suggesting they are bad, I honestly don't know.

Ignoring the business model, the CEO, the failed IPO, do YOU or do you not enjoy that actual offering of WeWork?

<comment><USER20> Turns out most of us enjoy any exchange in which we receive goods whose value far exceeds what we pay for them.

Same reason I love cheap ride share trips[1] and NYC ferry rides[2]. I'd probably really enjoy winning the mega millions jackpot with a $5 ticket too (though perhaps not? [3]).

[1] [https://www.vice.com/en_us/article/zmjew8/were-all- killing-u...](https://www.vice.com/en_us/article/zmjew8/were-all-killing-uber- just-by-using-it)

[2] [https://ny.curbed.com/2019/3/28/18285731/nyc-ferry- swimming-...](https://ny.curbed.com/2019/3/28/18285731/nyc-ferry-swimming-in- subsidies-mayor-de-blasio)

[3] [https://time.com/4176128/powerball-jackpot-lottery- winners/](https://time.com/4176128/powerball-jackpot-lottery-winners/)

<comment><USER21> WeWork is the most expensive option in our city for managed offices, by a large margin. It's not cheap.

<comment><USER22> Have you tried to negotiate? If they have any competitors, they'll beat those prices just by asking in my experience.

<comment><USER21> Yes we negotiated, received discounts, and have a dedicated person working our account since we're growing into new countries and adding lots of offices.

It's still much more expensive than the competition (and absolutely worth the increased expense).

</comment></comment></comment></comment></comment><comment><USER23> Such a shame ... time to pony up some more of that "vision" Softbank.

</comment><comment><USER24> In the other news..

WeWork India looks to raise $200 million

[https://www.livemint.com/companies/news/wework-india-to- rais...](https://www.livemint.com/companies/news/wework-india-to- raise-200-million-to-fuel-growth-11570706101176.html)

 _Unlike other Asian markets such as China and Japan, We Co. operates on a revenue and profit-sharing model with its Indian partner...3 years ago it entered the country through a brand franchise agreement._

</comment><comment><USER25> non-paywalled link: [http://archive.is/g1g6E](http://archive.is/g1g6E)

</comment><comment><USER26> Just as a datapoint - Wework's largest competitor IWG has 4x as many locations, makes 3 billion $ revenue and $150 million profit. Not really where a tech company would want to be. Its market cap is at around 4 billion. What is different for Wework that would warrant a higher valuation other than the clout of its founder and, arguably, much nicer offices?

</comment><comment><USER27> I don't understand the WeWork business model. Landlords are all around you. Companies sometimes prefer to own a property rather than lease because over the time, you only lose money renting. Explain pls, how is WeWork different than all the other commercial landlords?

</comment><comment><USER28> [http://archive.is/g1g6E](http://archive.is/g1g6E)

<comment><USER29> thank you

</comment></comment><comment><USER30> No! Not the most magical unicorn!

</comment><comment><USER31> well i mean they let an umbrella shut down an office for 2 days instead of just breaking the window which would have cost less than days of being shutdown, so are we surprised?

</comment><comment><USER32> Whats going to happen with their meetup.com subsidiary?

</comment><comment><USER33> WeBankrupt

<comment><USER34> WeOuttaWork

</comment></comment><comment><USER35> Can't wait to see WeWork crumble. If they had done an IPO I was hoping to open up a short position.

If WeWork does run out of cash, I'll be pulling money out from my tech stocks and holding cash for a while.

<comment><USER36> Don't understand your linkage to tech stocks…

WeWork are a property company

<comment><USER37> I think their comment is a little apocalyptic but I can say that wework going under could possibly trigger a large number of mid-small-size startups losing their spaces and possibly ending up out of business.

<comment><USER38> Startups aren't going out of business because they don't have a place to work from. They'll go out of business when funding dries up because valuations are in question now.</comment></comment></comment></comment>


Researcher: Children's Cancer Linked to Fukushima Radiation - <AUTHOR> https://www.yahoo.com/health/researcher-childrens-cancer-linked-to-fukushima-113206820.html <comment><AUTHOR> coincidentally, today they announced the Nobel Prize in literature to Svetlana Aleksievich for her works about USSR, including the Chernobyl stories which paints different picture of the catastrophe's consequences from the official one (and which also more close to what i know - among other by having some relatives in that area of Belarus at the time)</comment>


Google patents full body teleportation - <AUTHOR> https://www.google.com/patents/US20060071122

<comment><USER2> 1) It was only an application

2) It was abandoned in 2006 (extremely unlikely to be re-opened)

3) Nothing to do with Google.

Check for yourself on: [http://portal.uspto.gov/pair/PublicPair](http://portal.uspto.gov/pair/PublicPair)

Application Number: 10/953212</comment>


Ask HN: Is there a SICP of biology? - <AUTHOR> More specifically: Is there a book on biology that requires little or no prior knowledge, emphasizes principles at the expense of real-world practicality, and requires considerable intellectual effort in exchange for a genuine, satisfying foray into the field? <comment><USER2> When I started out in a systems biology lab with a physics and CS background but no biology, they gave me this book:

Molecular Biology of the Cell [http://www.amazon.com/Molecular-Biology-Cell- Alberts-Al/dp/0...](http://www.amazon.com/Molecular-Biology-Cell-Alberts- Al/dp/0815316194)

The description of the DNA --> RNA --> protein pipeline was really satisfying to someone with my background, full of codes, error-correction algorithms, and rate-limiting steps. I think of it as the Numerical Recipes of biology.

<comment><USER3> Alberts is very often held as the "standard text" (much like Grey's in Anatomy, Atkins in Physical Chemistry, or SICP). I would also recommend "Molecular Genetics of Bacteria" by Snyder and Champness ([http://www.amazon.com/Molecular-Genetics-Bacteria- Snyder/dp/...](http://www.amazon.com/Molecular-Genetics-Bacteria- Snyder/dp/1555813992/ref=sr_1_1?ie=UTF8&s=books&qid=1244980889&sr=8-1)). As you'd expect, it's very focused on Bacteria, but it's current and goes all the way from the basic to the very in-depth.

Edit: Oh! And how could I forget Lodish ([http://www.amazon.com/Molecular- Cell-Biology-Harvey-Lodish/d...](http://www.amazon.com/Molecular-Cell-Biology- Harvey-Lodish/dp/0716776014/ref=pd_sim_b_4))? Also very good...

<comment><USER4> Heh. "standard text"

So anyway, the journal asks why I'm citing Alberts so much and I write back, "Alberts is the standard text, editor."

</comment></comment></comment><comment><USER5> Can there be a SICP of biology, considering the vastness of the field !!

<comment><USER6> well - Computer science is pretty damn vast too...

<comment><USER7> But as vast as life itself?

It's pretty much required, as far as I know, for the SICP professor to thoroughly know the whole book, yet it is nearly impossible for any professor to do the same with Campbell and Reece, one of the more common intro to bio books.

</comment></comment></comment><comment><USER8> Same question: SICP of neuroscience?

<comment><USER9> If not yet exists, it could be due anytime now, considering the explosive advancement of the field.

I found On Intelligence by Jeff Hawkins very enlightening.

<comment><USER10> The ideas in On Intelligence are very interesting, but the writing style is sometimes repetitive and slightly condescending (I'll explain in more detail if requested). It seems to be aimed at smart teenagers, to inspire them to pursue work in neuroscience and AI.

</comment></comment></comment><comment><USER11> I would recommend 'Life: the Science of Biology' by Sadava Heller Orians Purves and Hillis. Absolutely massive book, starts with basic chemistry, goes on to biochemistry, then cell biology, and gradually works its way up in scale through ecology. <http://bcs.whfreeman.com/thelifewire8e/default.asp> has notes from all the chapters, interactive diagrams, and some interactive quizzes.

</comment><comment><USER4> This may not be a helpful answer, but the most SICP-like experience in my biology education was probably a paper-reading class.

</comment><comment><USER12> I would take one for Physics too (specially optics) as I have exam coming up on Friday... :P

<comment><USER13> for general physics i'd suggest the feynman lectures:

[http://www.amazon.com/Feynman-Lectures-Physics- Set/dp/020102...](http://www.amazon.com/Feynman-Lectures-Physics- Set/dp/0201021153/ref=sr_1_3?ie=UTF8&s=books&qid=1244993263&sr=8-3)

he pretty much covers every topic in that wonderful feynman way. For optics i'd also suggest hecht's book.

Also for a more theoretical coverage of physics, reading the first few books from the landau lifschitz series is highly recommended.

</comment></comment><comment><USER14> what about electronics?

<comment><USER15> horowitz and hill?</comment></comment>


My own brain's refusal to integrate the seriousness of climate change - <AUTHOR> https://medium.com/@samwisehawkins/why-im-a-climate-change-denier-5d9ecae0cb7 <comment><USER2> Every person aware of the extent of the coming (and current) climate crisis is a denier in this way I think.

Burying the knowledge at the back of my mind and holding it in the abstract is just about the only way to keep from dissolving into a puddle of pure anxiety and despair for the future and the children alive today who never even had a chance.

I'm not convinced the people with actual power to reverse what's happening will band together in time, and I'm not convinced that technology will be invented to significantly manage the run-away effects. Too many people are still bargaining to keep their current comforts and business as usual to accept the monumental change in our way of life needed to truly have a chance at solving this crisis.

But, there's always a glimmer of hope. There has to be, or I'd go insane.

<comment><USER3> I'm very worried too. I have kids. In the next ten or fifteen years I'll probably have grandkids. I'm building up food storage, anticipating periods of high food insecurity. I've done a lot of thinking about what I really need to live a good life, and more specifically what I don't, anticipating that there may well come a time in my lifetime where a lot of the things I now think of as necessities are simply not available.

But: there's a saying that engineers tend to over-estimate what can be accomplished in the short term, and under-estimate what can be accomplished in the long term. So I have hope. Renewable energy is getting cheaper than fossil fuels. Electric cars are on the market already, and they're getting better. Economic forces, once tipping points are reached, can cause change to happen very, very quickly. I can imagine a future where nearly all cars on the road are electric within ten to twenty years, and where nearly all electrical generation is renewable/nuclear, and where this happens not primarily due to government action but simply market forces and consumer sentiment.

And in the meantime, there are some ugly but eminently doable geoengineering solutions that will keep most of us alive.

I can imagine it. So I have hope.

</comment></comment><comment><USER4> Reminds me of the Smoke Filled Room study. [https://www.dowellwebtools.com/tools/lp/Bo/psyched/16/Smoke-...](https://www.dowellwebtools.com/tools/lp/Bo/psyched/16/Smoke- Filled-Room)

Basically, a person won't panic if other people aren't panicking.

We are frogs in a slowly warming pot and the people who make money selling the fuel have convinced us that everything will be just fine.

<comment><USER5> So what you're saying is, visibly panicking is a public good?

</comment></comment><comment><USER6> Actually thoughtful and worth reading.

The problem with climate change warnings is that they depend on a prediction about the long-term (30+ years) future. And even people who understand the analysis find it hard to believe, deep down, any predictions about the world that far from now. From Malthus to Huxley and Philip K. Dick, to Millenarianism, almost all dramatic long term predictions turned out wrong.

<comment><USER7> Some long term predictions are extremely accurate. For example, there will be a total solar eclipse visible from Madagascar and parts of Africa on September 4, 2100. That's pretty certain.

Climate science isn't anywhere near that level of reliability, of course. But it's a hell of a lot better than novelists handwaving about the future.

<comment><USER6> When predictions of what was then called the greenhouse effect first came to the public consciousness in the 1970s, they were pretty handwavy. So most people over 60 today would have dismissed those early predictions as yet another science fiction doomsday scenario when they first heard about it. That wasn't an unreasonable conclusion based on how reliable the science was in the 70s. They should, of course, update their beliefs based on 2018 science, but a lot of people stop doing that as they get older.

</comment></comment></comment><comment><USER8> >If that happens, there seems very little chance that society could survive

This statement here, while it seems correct I don't think is backed up by the article. Does anyone know of any good work examining the impact climate change will have on human society? I know there are going to be some serious problems but would like see an expert break it down.

<comment><USER9> I'm not sure this is what you're looking for, but "6 Degrees: Our Future on a Hotter Planet" by Mark Lynas[1] is his attempt to summarize what the climate- change research says will happen. It's organized into sections corresponding to degrees centigrade of warming. It's from 2007 though, and there's a lot that's changed since then.

There's also [2], a website which attempts to do the same as "6 Degrees" in an abbreviated format.

[1] [https://en.wikipedia.org/wiki/Six_Degrees:_Our_Future_on_a_H...](https://en.wikipedia.org/wiki/Six_Degrees:_Our_Future_on_a_Hotter_Planet)

[2] [http://globalwarming.berrens.nl/globalwarming.htm](http://globalwarming.berrens.nl/globalwarming.htm)

<comment><USER8> Thanks this is exactly what I was looking for.

</comment></comment></comment><comment><USER10> This makes me think of an older HN post (Unpopular Opinions in SF(?)), where the author said something like: "The people who think about the effects of climate change the most, more often than not, choose to live in places that would be first underwater (SF, NYC, etc)."

The point was about humans being bad at considering long term future changes, which affects everyone.

<comment><USER11> The estimated cost for a seawall to protect NYC from flooding is in the tens of billions. NYC isn't going to get flooded.

Bangladesh OTOH...

</comment></comment><comment><USER12> Let's get crackin'!

Get involved in your own food and fuel production. Small-scale alcohol fuel production integrated with a Permaculture (the word is a portmanteau: PERMAnent agriCULTURE, it's a school of applied ecology) farm can provide ecologically harmonious (carbon-neutral) fuel. [http://alcoholcanbeagas.com/node/277](http://alcoholcanbeagas.com/node/277)

On a larger scale, check out CO2 sequestration through accelerated weathering of olivine: "Olivine can reverse climate change and ocean acidification" [https://climitigation.org/olivine-can-reverse-climate- change...](https://climitigation.org/olivine-can-reverse-climate-change-and- ocean-acidificaiton/)

Test project is in progress, I think.

</comment><comment><USER13> I wish I could compartmentalize it or cope better, but my health has notably worsened since the latest IPCC report was released. I've lost sleep, been anxious, and no amount of work I've done to reduce my own carbon footprint has made me feel any better. It was like a switch was flipped after which I was no longer to engage in the minimization or projection discussed in the article and have just fallen into a pattern of panic and self hatred.

I'm hoping that engaging with Extinction Rebellion and actively trying to pursue a career in energy and carbon sequestration can help me reduce the guilt and become more productive.

</comment><comment><USER14> Who is the author Sam Hawkins?

<comment><AUTHOR> Sam is a good friend of mine, so I'll answer. He will likely correct me on this but I think roughly speaking, since his PhD he has spent 10 years using weather forecast models and data science to help his employer sell the right amount of wind generated electricity at the right price in short term energy futures markets.

</comment></comment><comment><USER15> Conclusion: "We each have a duty to make the moral effort not to be climate deniers in our own way."

</comment><comment><USER16> Is this a perfect example for "clickbait"?

<comment><USER17> We've updated the title to a more representative phrase from the article.

<comment><AUTHOR> Good work, I wonder why it got flagged though?

</comment></comment></comment><comment><USER18> Notice how they try to get you to say "climate change" instead of "global warming" nowadays. This is big business.

<comment><USER19> The article links to a website rebutting climate science myths [1]. It addresses this point as well [2]: both terms are still used, and both terms are still valid.

[1] [https://skepticalscience.com/argument.php](https://skepticalscience.com/argument.php)

[2] [https://skepticalscience.com/climate-change-global- warming.h...](https://skepticalscience.com/climate-change-global-warming.htm)

<comment><USER18> These read like talking point cards a politician would use. E.g. "Follow the money" is rebutted with "I could make more money working in the oil industry". That type of political style posturing does the global warming supporters no good at all.

<comment><USER20> Your thought process reads like: "Anyone motivated to solve x issue is only trying to make a buck by selling a solution."

What venture capitalists are funding these guys? [https://climate.nasa.gov/](https://climate.nasa.gov/)

</comment></comment></comment></comment><comment><USER21> The missing piece of any climate model is how the earth will respond.

Do I think we are pumping co2 into the sky causing a raise in tempature? Yes. What happens after is still unclear.

<comment><USER22> The planet itself will be absolutely fine. It's been through a heck of a lot worse. Humans (and other animals) are the ones who are going to have to adapt, hard.

As a small example, a rise in sea levels would make unlivable countless coastal cities and destroy an immense amount of infrastructure. Humans will -survive- it, but say good bye to our cushy 21st century lifestyle.

<comment><USER20> The difference here is the accleration of climate change, estimated to be 10-50x faster than previous transitions from cooler periods[1]. One study finds that this accelerated warming could lead the extiction of 1 in 6 species[2].

[1] [https://www.theguardian.com/environment/climate- consensus-97...](https://www.theguardian.com/environment/climate- consensus-97-per-cent/2016/feb/24/earth-is-warming-is-50x-faster-than-when-it- comes-out-of-an-ice-age) [2] [http://science.sciencemag.org/content/348/6234/571](http://science.sciencemag.org/content/348/6234/571)

<comment><USER22> Yeah, but I think the parent posters' concern is that the outcome is "unclear", and I was just pointing out that no matter what happens, the planet will be fine, humans will survive, and our infrastructure is what'll be impacted (and consequently, our lifestyle).

None of that is "unclear", I think. It all follows from "temperatures rise" (which the parent concedes as a given). Ice melts. Waters rise. Life changes.</comment></comment></comment></comment>


Aspect-Oriented Programming and ARAnalytics - <AUTHOR> http://artsy.github.io/blog/2014/08/04/aspect-oriented-programming-and-aranalytics/

<comment><USER2> As the author of ARAnalytics it's been really cool to see this DSL approach to analytics. It means that the code associated with doing all analytics is kept separate from all the application code. This keeps code well compartmentalized and simple.

Good work Ash.</comment>


Synthetic Voice Actors Now Rival Human Voice Actors Says CEO of Replica Studios - <AUTHOR> https://lionbridge.ai/articles/how-synthetic-voice-actors-rival-human-actors-an-interview-with-replica-studios/ <comment><USER2> I haven't yet heard any voice synthesis that isn't buried deep in the uncanny valley. It's exceedingly creepy. A huge number of Amazon Prime educational/documentary videos use synthetic voices that are good enough that I have to listen for a couple minutes to be sure they're fake, but the whole time it's unnerving. I have no doubt that they'll nail it soon (and maybe Replica already has).

Despite any misgivings, I really hope David Attenborough gives permission to replicate his voice in perpetuity. I want to hear him narrating Planet Earth forever.</comment>


Practical Emacs Lisp - <AUTHOR> http://ergoemacs.org/emacs/elisp.html <comment><USER2> Inexperienced Emacs Lisp programmers coming to this site for the first time should be aware that Xah Lee's code is generally not very idiomatic. He discusses it himself here: [http://ergoemacs.org/misc/emacs_lisp_coding_style_language_i...](http://ergoemacs.org/misc/emacs_lisp_coding_style_language_idioms_controversy.html)

<comment><USER3> I'm an experienced Lisp programmer and most of it looks fine to me from a random sampling, as far as formatting goes.

Sometimes a closing parenthesis is on a line by itself:

       (defun foo ()
          ...
       )

       (let ((x y)
             (z w)
            )
          ...)

Historically, it's not been unheard of that Lisp experts (even implementors) do this sort of thing. Exhibit A, randomly picked source file inside CLISP:

[http://sourceforge.net/p/clisp/clisp/ci/default/tree/src/clo...](http://sourceforge.net/p/clisp/clisp/ci/default/tree/src/clos- class0.lisp)

Some of Xah's indentation is inconsistent:

       (function
        (one space)
        indent like data)

       (function
         (two space indent)
         like code))

Not too much stands out otherwise; the code is readable.

I'd have to read deeper to see whether things that are usually done one way are done differently for no good reason. What I would consider "unidiomatic" would be, for instance:

      (if (not (null list)) ...)

rather than

      (if list ...)

(Any Lisp dialect _requiring_ code such the former is labelled differently, namely "idiotic".)

<comment><USER4> I perused a couple of links. This code [0] is pretty much unidiomatic. Closing parens one per line and using setq all over the place.

[0]: [http://ergoemacs.org/emacs/elisp_grep_string_inside_tag.html](http://ergoemacs.org/emacs/elisp_grep_string_inside_tag.html)

<comment><USER5> hi PuercoPop, that code is meant to be run as a script (emacs --script filename), so i used setq is possibly more proper. But, this is just post-fact defense, as lots my pages began as quick blogs. As you know, CL has controversial status in gnu emacs dev community. e.g. [http://ergoemacs.org/emacs/elisp_common_lisp_in_emacs.html](http://ergoemacs.org/emacs/elisp_common_lisp_in_emacs.html) I myself avoid it, because i don't like CL. I'm going to tuck in the hanging parens in a few days. Thank you for the criticism. (thanks to many others here too)

<comment><USER3> But stuff like

       (let (var1 (var2 0))
         (when condition
           (setq var1 (var1-initializer-form))
            ...)))

is just silly. Only the inner scope of the when uses var1, or any of the vars; it could just be:

       (when condition
         (let ((var1 (var1-initializer-form))
               (var2 0))
            ...))

Never do two-step initialization of a variable without an excellent reason; it's just sloppy otherwise.

</comment></comment></comment></comment></comment><comment><USER6> I much prefer "An Introduction to Programming in Emacs Lisp", which is available both from inside emacs in M-x info, and on the web at [https://www.gnu.org/software/emacs/manual/eintr.html](https://www.gnu.org/software/emacs/manual/eintr.html)

</comment><comment><USER7> OP's link covers more topics but I prefer Steve Yegge's emergency elisp for quick and dirty things.

[http://steve-yegge.blogspot.com/2008/01/emergency-elisp.html](http://steve- yegge.blogspot.com/2008/01/emergency-elisp.html)

</comment><comment><USER8> "Each page is self contained." Allright, I guess it's an Emacs site then.

<comment><AUTHOR> T'wer we speaking of Python not Emacs, the "one true way" idiom would be deemed virtuous.

</comment></comment><comment><USER9> Xah Lee can't program a line of Lisp on his own. Most of that code is collected from elsewhere.

There are much better resources to learn Emacs Lisp from.

<comment><USER5> what a malicious lie. I have written some 10 packages, at least hundred thousand lines of emacs lisp since 2005, all public in github or on my website. [http://ergoemacs.org/emacs/xah_emacs_modes.html](http://ergoemacs.org/emacs/xah_emacs_modes.html)

the only borrowed code i can think of now, now named xah-extend-selection in xah-fly-keys, by Nikolaj Schumacher, fully credited in the inline doc still. (and that function is also in ergoemacs-mode, fully credited still, now lead by Matt F.)

Any code, that possibly may be considered borrowed, i'm painstaking to give credit, often taking sometimes a hour to find the person's REAL NAME correctly (as opposed to nicknames) (if public), personal site url or blog url or social network url if any, to link to, painstakingly ask the which url he prefers, and often ask permission too when it is clearly not necessary. One can find lots of "i learned this from xyz" in my website.

I learned emacs lisp, starting in 2005, the first 5 years with much help from comp.emacs or gnu.emacs.help newsgroup, and freenode's irc emacs channel, and emacs wiki. This is also fully credited. Xah's Emacs Tutorial: Acknowledgment [http://ergoemacs.org/emacs/thanks.html](http://ergoemacs.org/emacs/thanks.html) linked at the bottom of my emacs tutorial.

I know lisp before. Read entire Scheme r4rs and 75% of SICP in 1998, 1999. These can be verified in newsgroup. I coded Wolfram Language for 6 years before 1999, and worked at Wolfram Research for half a year. I have several eassys documentinging these facts. For example: Xah Lee's Computing Experience (Impression Of Lisp from Mathematica) [http://xahlee.org/PageTwo_dir/Personal_dir/xah_comp_exp.html](http://xahlee.org/PageTwo_dir/Personal_dir/xah_comp_exp.html)

personally, i generally don't borrow code, because i'm rather one of those weird or aloof guy with meticulous control of things, down to every character placement. In my elisp life since 2005 to today, i must have stolen ideas, concepts. I can't recall explicitly which at the moment, but i can say in good faith that any non-trivial concepts i've used in my project i've given acknowledgement.

Note: i've been considered a troll in comp.lang.lisp and other newsgroups from about 2000 to 2010. There were many heated arguments, and there are some who will say negative things about me wherever my name is mentioned. I do not think of myself as a troll, and have written many essays on this. Netiquette Anthropology: a Tale of Tech Geekers [http://xahlee.info/Netiquette_dir/troll.html](http://xahlee.info/Netiquette_dir/troll.html)

PS unrelated but instead of a separate post: I want to thank many people who have helped a year ago. That was a big help. Thank you. I do dish-washing part-time, and am ok.

<comment><AUTHOR> I am truly glad to hear that things have improved in the past year. Your site clearly demonstrates your integrity and good will. My deep thanks for your many contributions that make the internet better.</comment></comment></comment>


The Secret of Why Elephants Get Cancer So Rarely Might Lead to a Cure - <AUTHOR> https://advocator.ca/news/the-secret-of-why-elephants-get-cancer-so-rarely-might-lead-to-a-cure/4582 <comment><USER2> It is interesting that they have more copies of the gene.

I do not see a theory in the article suggesting how this could help humans. Is it inferred that we would attempt to modify our DNA to have more copies of that gene as well and has this been attempted?</comment>


Statistical Data Mining Tutorials - <AUTHOR> http://www.autonlab.org/tutorials/

<comment><USER2> Great find, Mahmud. I have gone through all the tutorials and they are simply awesome! Well written, not too mathematical, the slides explain concepts in very intuitive fashion. The tutorials on regression and Bayesian concepts are especially recommended.

<comment><AUTHOR> Paras, If you get stuck on the mathematics just shoot me an email :-) There aren't much foundational text for "our purposes", so you need to skim stuff from other disciplines and try to make sense of it all.

If you want more approrpiate materials, search for "web mining", the WEBKDD conference published a lot of interesting papers, and if you skim the TOC of their preceedings, you can find the papers online :-)

Live long and prosper!</comment></comment>


The Ultimate Code Kata - <AUTHOR> http://www.codinghorror.com/blog/archives/001138.html

<comment><USER2> _...replying to mail isn't practicing your typing. You have to set aside some time once in a while and do focused practice in order to get better at something._

An odd example, since I'm pretty sure we've all got a lot better at typing without really trying.

I just did a test to find out, and it turns out that in the last fifteen years that I've spent _not_ learning to type, I've gone from about 35 wpm to 81. Fifteen years ago, 81 wpm would have been a pretty impressive typing speed, but nowadays I guess it's pretty normal, since the whole world has got better at typing. It doesn't seem so long ago that people were still putting their typing speed on their resumes, but nowadays high-speed typing is taken for granted -- it's gone from being a skill to being a reflex, for most people.

I'm not sure about programming, though. I'm sure it's possible to get better without really trying, but really trying will get you there faster. I guess the real difference is that typing is an "easy" skill where you can reach the maximum reasonable level of competence quite easily (who really needs more than 60 wpm?), whereas programming is a "hard" skill where there's far more to learn than you can possibly fit into one lifetime.

<comment><USER3> I guess the articles author is not talking about strokes per minute but rather how well you're able to put your thoughts into words.

That's a skill that's more on the same level as programming.

<comment><USER2> In that example I would have thought "typing" just means, well, typing.

</comment></comment></comment><comment><USER4> FWIW, my "code kata" is to try exercises from SICP in whatever language I happen to be playing with, which is really just an excuse to re-read portions of SICP. Always a pleasure...

<comment><USER5> That's one of mine also; I'm using How to Design Programs as a way to learn Scheme, and also doing some small Rails project work on the side to de-rust my Rails skills...

And getting started on a web site for myself. But that one will be considerably more visually oriented than most of the stuff I work on, so it's going to be a bit longer in coming. :)

</comment></comment><comment><USER6> Very interesting post.

Reminded me of an argument between 2 great billiards players, Willie Mosconi and Minnesota Fats. Willie was the best player in the world at the time, winner of many championships. Fats was a hustler who never won anything except money. Each vowed to kick the other's butt in a match. Of course, Willie kicked Fats's butt, to which Fats responded, "So what. If there was money on the table I would have won."

This article made me realize I am more like Fats than Willie. I have interviewed and worked with many great programmers, but hardly consider myself in their class. They may know 27 ways to sort data, but being like Fats, I only need to know one to get the job done (and take the money).

If there was a competition, they would kick my butt. But if a client had to get something done, I could hold my own against any of them.

The advice in each person's list was excellent. To become a better practitioner of the art and science of "programming". Which is not quite the same thing as "getting the job done".

A typical scenario I have seen over and over: Competitor A is doing B, so we have to do C. This means that we'll have to modify our app to get data x from source y and present it to certain people so they have what we need to compete. We're losing $10,000 per day by not doing this, so we need it ASAP. My solution is rarely optimal, sometimes clever, sometimes not, and often a hack. But it gets done quickly, it works, and it "does the job".

That makes me more like Fats. But since I still aspire to be more like Willie, I'll start doing a few more things on these lists.

<comment><USER7> _My solution is rarely optimal, sometimes clever, sometimes not, and often a hack. But it gets done quickly, it works, and it "does the job"._

Quite frankly, I hate "solutions" like that. I have spent way too much time supporting code written by people who "get the job done," but do so inefficiently, and cause the system to keel over two months later. Or do so poorly, and so the system mysteriously breaks when the "hacks" don't quite work.

Penny-wise, dollar-foolish. Sure, you save some time up-front coming up with the hack, and "get the business up and running." In my experience, it never takes long for "the business" to come back and say "I thought you fixed this."

<comment><USER8> The real world is often messy, and solutions that work in it are often messy. The best you can hope for is that someone uses a lookup table/config file instead of a tangled nest of hard-coded "if" statements. But seeking elegant algorithms to address real world problems is often a wild goose chase.

<comment><USER5> No one's looking for elegant algorithms for real world problems here.

The reality is that most real-world problems are not particularly complicated, yet most have exceedingly complicated solutions, and as a result, disproportionately large maintenance overhead -- and that maintenance is largely code archeology (wow, what idiot came up with this bit dumbass approach? Why does this framework require 6 new classes in order to add a simple pair of pages to the site?), not productive time.

</comment></comment></comment></comment><comment><USER9> The point about learning more languages that are different from one another seemed interesting. I know that knowing more languages makes you better, so i wish to learn more. I know python and started to learn scheme, can any one suggest me a 3-rd language?

<comment><USER10> C. Or some form of assembly. Both of them get you closer to the hardware than any high-level language would, and it's important to know what scheme and python and any other language are really doing for you automatically.

<comment><USER2> Definitely. I hate to sound like an old curmudgeon (especially since I'm only 28) but it's scary the number of people nowadays who call themselves programmers but have never even had to worry about allocating memory.

<comment><USER11> Yes, all those 60 year old Lispers.

</comment></comment></comment></comment><comment><USER12> I have been doing pet projects (some of my dumbest ideas) and some freelance work to "practice". This has been going for at least 3 years now ^_^ so far so good...

</comment><comment><USER13> Does reading Hacker News count as training?

<comment><USER11> Too easy.</comment></comment>


R.E.M. open-sources its music videos: The future of content?  - <AUTHOR> http://www.news.com/8301-10784_3-9872234-7.html?part=rss&subj=news&tag=2547-1_3-0-20 <comment><USER2> How is this "open source"? Are they also releasing the complete original raw footage and audio tracks for remixing?

Seems a misuse of the term.

What might a better way to express what's actually happening here? "Open source" is catchy (or at least pity), and conveys a sense of user freedom, but there's no more or less "source" than would otherwise be available.

It would be nice to have an equally catchy, but accurate, phrase.

Open licensing?

<comment><USER3> Yes, not open source, more like free, um, free publicity for REM.</comment></comment>


Sen. Feinstein: 'Real' Journalists Draw Salaries - <AUTHOR> http://www.techdirt.com/articles/20130807/13153224102/sen-feinstein-during-shield-law-debate-real-journalists-draw-salaries.shtml <comment> jack-r-abbit > The bill's definition of "journalist" seems straightforward enough.... _" > primary intent to investigate events and procure material"_

well.. shoot... that whole _investigate_ part sort of makes a lot of those so called "real" _paid_ journalists not journalists after all. The fact that some people specifically use the term _investigative journalism_ leads me to believe many don't do this. So they won't get protection now, right? :)

</comment><comment><USER2> Too many snide jokes to be made about "Real" Senators. Must resist...

</comment><comment><USER3> Thankfully, it's not up to her to decide. She's pretty much never had a real job, working in government since the 60s.

<comment><USER4> The US government has been making a huge issue of who is a "real" journalist as to ensure journalist protection does not happen spread to very articulate, well informed, level headed bloggers.

This is serious.

<comment><USER5> Making it about salary is doubly interesting because it essentially means that the government can exercise its control over the journalist establishment via economic means.

Don't like the way the news is covering a certain topic, just threaten the economics of a newspaper or radio station with legislation. That would quickly trickle down from the top management responsible to shareholders to the editor in the form of silencing journalists on a topic that Washington disagrees with.

</comment></comment></comment><comment><USER6> I wish senators had karma. Sometimes one of them "posts" something that makes me really just want to reach for the down arrow.

 _Feinstein suggested that the definition comprise only journalists who make salaries, saying it should be applied just to "real reporters."_

In a debate about journalists, that was clueless, offtopic, and unhelpful.

<comment><USER7> "I wish senators had karma"

They kind of do:

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

<comment><USER6> Its the difference between saying "you make dumb comments" and " _that_ was a dumb comment".

</comment></comment></comment><comment><USER8> Real senators keep and serve the society's justice.

<comment><USER9> Real senators are not afraid of the transparency that's being championed by journalists who don't have salaries. (Fake senators prefer legislation that's written by lobbyists, contains thousands of pages filled with gifts to campaign donors, and isn't even read by any real senators before being voted into law.)

<comment><USER3> I'm not sure history supports that perspective. Traditionally, senators are the legislative body of the upper class, which has never been particularly charitable toward the rabble.

</comment></comment></comment><comment><USER5> Excellent criteria. This should be a trivial one to game. Just created an LLC that pays a token salary to everyone that practices journalist in more novel forms like blogging.

If Steve Jobs can draw a $1 per year salary, so can journalists.

</comment><comment><USER10> Hey, everyone in California, I have an idea: let's vote Feinstein out.

<comment><USER11> In all seriousness, it will depend on who runs against her, either in a Democratic primary or in the general election.

She often seems stodgy and clueless, but I can imagine _much_ worse...

<comment><USER10> I think this is actually not true. Anyone voted in to replace her would not have the seniority she has, and wouldn't be in charge of important subcommittees. In addition, if the person was a Republican, and the Senate still controlled by Democrats, they wouldn't be very effective.

<comment><USER12> > Anyone voted in to replace her would not have the seniority she has, and > wouldn't be in charge of important subcommittees.

That is actually a fairly good reason to vote her out. She can do some real damage.

</comment></comment></comment></comment><comment><USER13> And many of them not for much longer, given the general state of the industry. And are out of work journalists not allowed to work on stuff to try and get more work?

</comment><comment><USER14> Sen. Feinstein makes douchey, inflammatory remark. News at 11.</comment>


Ask HN: How 'little' sleep should I get? - <AUTHOR>

I've decided to sleep late today because I had to finish up some work. But I need to wake up early at unearthly hours (6AM :) ) and I'm debating how little sleep I could get and still feel fresh tomorrow morning.
I'm not sure if this is a phenomenon with just me, but I've noticed that if I sleep -
8-9 hours: everything seems perfect, I think clear, and I'm fresh throughout the day.
7 hours: strangely, I feel drowsy the whole day.
5-6 hours: waking up is a pain, but during the day I seem to be active as I would have been, had I slept for 8 hours (or is it an illusion? :) )
No sleep at all: strangely I don't feel sleepy for atleast another 6 hours during the next day. But if I close my eyes for even a minute, I'll be out cold!
1-4 hours: I haven't arrived at a general theory yet for this!
So I'm debating whether I should sleep for 1 or 2 or 3 or 4 hours so that I can be fresh from 6.30AM - 10AM tomorrow. Any one with experiences to share? <comment><USER2> To feel fresh in the morning, I don't think it's the amount of hours you sleep, but the part of your sleep cycle when you get up. If you get up in the middle of a "deep sleep" cycle, you'll feel tired, but if you get up in a "light sleep", you'll feel ok. That is an over-simplification, of course, but it is related to REM (Rapid Eye Movement) and other phases of sleep. It would help you too, to take a short nap during thee next day.

<comment><AUTHOR> So would I go into the deep-sleep cycle in 2-3 hours? Then I can sleep lesser than that.

<comment><USER2> Here you have a better explanation of sleep cycles

<http://en.wikipedia.org/wiki/Sleep#Sleep_stages>

You can also try polyphasic sleep. The easiest form of polyphasic sleep is biphasic sleep (with a nap), but there are other sleep regimes which can take you a month or two to get used to, but people who have tried them say gives them lots of time to do everything. The most difficult to adhere is Uberman, and most people who have tried it say that Everyman is quite easier to get used to.

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

There is much information regarding this subject on the internet, so just google for more information if you are interested on this.

</comment></comment></comment><comment><USER3> I had read some research paper showing the optimal number of sleep hour is between 6h 30 and 7h 30.

One thing to note is sleep deprivation is really problematic. Don't do this.

But you could sleep far less if you sleep in 3 our 4 times instead of only one time. But one thing to experience is the nap.

Try sleep only 4 to 5 hours. Then take nap at 12:00 for about 30min to 1h. And for me it worked well for some months.

<comment><USER4> i've tried this method.. the problem is if you go a day and miss that nap, your whole cycle gets thrown off. Then later in the day you will probably overcompensate take a long nap because you're exhausted and just sucks. It worked well during the week then the weekend just screwed it up. I've gone to a solid 6 to 7 hours of sleep consistently with hour naps in the evening , every other day. Seems to work. Anyways .. since you are not trying to get on a cycle of little sleep, I would say 4 hours as to get rem sleep

</comment></comment><comment><USER5> From a rational perspective: If maximum sustainable productivity is the goal, first take a big enough sample on what you are able to accomplish under various conditions.

But I wouldn't mess around too much as there are numerous physiological, psychological consequences and practical hazards.</comment>


Triplebyte for front-end and mobile engineers - <AUTHOR> http://blog.triplebyte.com/triplebyte-for-front-end-and-mobile-engineers <comment><USER2> An interesting point is that about half the companies we work with want their front-end developers to show full-stack understanding and strong CS (the argument is usually that they want to hold the entire team to the same standard so that people can move around freely on the between teams). The other half of the companies don't care about anything other than productive, practical front-end coding (often focusing on speed). We find that front-end interviews value speed a lot.

<comment><USER3> Full-stack engineering is like having a veterinarian operating human beings rather than a surgeon or viceversa. Domain knowledge specialization exists for a reason.

</comment></comment><comment><USER4> Any plans to expand to remote jobs?

</comment><comment><USER5> Congratulations on the new launch!</comment>


CefSharp – Embedded Chromium for .NET - <AUTHOR> https://github.com/cefsharp/CefSharp <comment><USER2> Awesomium is also an excellent product I've used before to embed the chromium engine in WinForms and WPF apps...

[http://www.awesomium.com/](http://www.awesomium.com/)

<comment><USER3> I can only recommend _against_ Awesomium. Their library has a lot of bugs which I can see past, but the way they support their product is repulsive. On average it took them 3-5 days to get back to us on a email ticket with a half- baked response that then took another 3-5 days to clarify. The founder didn't seem phased that this was a problem and had zero empathy that we had deadlines to meet and software to ship.

We ended up ripping out Awesomium from our product and replaced it with CefSharp. Now we don't get held up by Awesomiums crappy support because we can just fix our problems ourselves. We couldn't be happier. That said, it would be nice if there was commercial support for CefSharp. We have a team of full time native developers who have to deal with CEF issues that would be nice to put on somebody else's plate. Anybody know if there is such a thing?

<comment><USER4> They make no promises about support even with their Pro edition [0]:

 _We currently do not offer premium, priority support plans for our commercial licensees. We will announce such plans if they become available in the future._

So _Caveat emptor_.

[0]: [http://wiki.awesomium.com/licensing/licensing- overview.html](http://wiki.awesomium.com/licensing/licensing-overview.html)

<comment><USER5> I'm bradgessler's cofounder. We were promised support in an email. That statement about lack of support for paid customers was added after we paid them and experienced the 3-5 day turnaround times. As I recall, the tickets were mostly us reporting defects.

<comment><USER4> Ah, ok...not so good.

</comment></comment></comment></comment></comment><comment><USER6> > C++/CLI

Pity that: means it won't even compile on other platforms. It's always better to make a pure extern "C" wrapper around the C++ library that you are using and P/Invoke that from the CLR.

Furthermore, I work on a roughly 1MLOC C++/CLI codebase daily. Their one is "small" and, trust me, they had better hope it stays that way. C++ is a great language, CLI is great runtime, mix the two and you're going to have something that approaches damn near zero maintainability.

</comment><comment><USER7> I've done a fair amount of work with CEF (the native version, not CefSharp), Awesomium, Coherent UI, and the native WinForms WebBrowser control.

If you are targeting Windows and don't need features that are specific to Chromium, I recommend the WebBrowser control above the others, because it will save you quite a bit of file size in your application, along with less memory usage.

Unfortunately, the WebBrowser control defaults to an IE7 compatibility mode, which is where it's gotten much of its bad reputation. However, you _can_ force it into IE11 mode, assuming that the user's machine does have IE11 installed. (And if you are producing a Windows app, customers who have refused to update their systems to IE11 are probably customers not worth supporting.)

Oddly enough, there is no API to do this. You have to write a value to the registry listing your .exe filename and the IE version you want to use. But this value is in HKEY_CURRENT_USER, so you don't need administrator privileges or a UAC prompt to do this.

WebBrowser also sends an IE7 UserAgent string by default, but you can easily override that.

I posted the code for both of these tweaks in the MarkdownPad forum, where I was encouraging the author to use the WebBrowser control instead of Awesomium which the product currently uses:

[http://forums.apricitysoftware.com/t/why-is-markdownpad- spaw...](http://forums.apricitysoftware.com/t/why-is-markdownpad- spawning-3-instances-of-awesomiumprocess-exe/172)

(Friends at Awesomium, don't take offense! I just think WebBrowser is a better match for MarkdownPad, since it doesn't need Chromium features and IE11 compatibility would be plenty good for their needs. They actually used the WebBrowser originally but switched to Awesomium because the author didn't know how to force WebBrowser into IE11 mode!)

The problem I have with both Awesomium and Coherent UI, besides the large file size, is that they are both stuck on old versions of Chromium: IIRC Coherent is somewhere around Chromium 31 and Awesomium is in the upper 20's. (Sounds like there is a new version coming out though.) CEF keeps much more up to date on the Chromium versions; not sure about CefSharp.

Coherent has nice integrations for Unity and Unreal Engine, including hardware acceleration, which was a real problem when I tried to integrate CEF into Unity a year ago. (This has no doubt been resolved by now, but at the time Chromium was going through a restructuring of the hardware rendering pipeline and CEF just bailed out on it for a while.)

I did a fun little project with Awesomium (originally for the late great OnLive) that composited multiple WebViews transparently on top of each other so each one ran in its own thread. Kind of like stacking transparent iframes but without the single-thread limitation:

[https://github.com/geary/awestack](https://github.com/geary/awestack)

<comment><USER8> We're releasing a major upgrade to Coherent UI that is already in Beta and that version is based on chromium 40+. All the new features are available - [http://coherent-labs.com/news/a-major-update-of-coherent- ui-...](http://coherent-labs.com/news/a-major-update-of-coherent-ui-is-now-in- open-beta-featuring-newer-version-of-chromium/). We try roll new versions every 2 weeks and update the chromium core when there are new significant features that we feel will benefit our users.

</comment></comment><comment><USER9> Alternative, which works pretty well: [http://xilium.bitbucket.org/cefglue/](http://xilium.bitbucket.org/cefglue/)

</comment><comment><USER8> Hi, Stoyan from Coherent Labs here. My impressions of CEF are very good. They manage to keep it very close to the chromium HEAD, which is great. The only technical downside of CEF is the imperfect GPU acceleration. In many cases however the architecture of chromium itself is a hindrance. Their processes hog memory like crazy and introduce perceivable lag. We had to write a complete new product to solve the issue for games.

</comment><comment><USER10> I've been using this for about a year on the Windows version of my social Spotify client, Soundbounce (www.soundbounce.org). I've been nothing but impressed with how easy it was to integrate and how well it runs (once you get over Chrome's memory use), so kudos to the dev team here.

<comment><USER11> Funnily enough, the actual Spotify client uses CEF too. As does Battle.net and tons of other companies (including my own).

</comment></comment><comment><USER12> Also worth considering for some folks, [http://www.openfin.co](http://www.openfin.co) ; although it is commercial and target at applications in the financial space (trading platforms, charting apps, risk management, etc) and priced accordingly.

<comment><USER13> OpenFin doesn't quite solve the same use case but it can if your only UI is via browser components and the back end is C#. We use OpenFin in that way and it's a decent product.

<comment><USER12> I'd be interested to hear more about your experience with OpenFin.

</comment></comment></comment><comment><USER14> Thanks, this is very useful and a great alternative to embedding IE.

<comment><USER15> It is quite nice. I did this demo 6 years ago using chromium and wpf: [http://blogs.msdn.com/b/sean_mcdirmid/archive/2009/07/27/a-w...](http://blogs.msdn.com/b/sean_mcdirmid/archive/2009/07/27/a-web- browser-suitable-for-harry-potter-in-wpf.aspx)

It wasn't possible to do with IE.</comment></comment>


After 'The Biggest Loser,' Their Bodies Fought Visiously  to Regain Weight - <AUTHOR> http://mobile.nytimes.com/2016/05/02/health/biggest-loser-weight-loss.html?_r=0&referer= <comment><USER2> "Visiously"?</comment>


Ffwd: Delegation is much faster than you think - <AUTHOR> https://blog.acolyer.org/2017/12/04/ffwd-delegation-is-much-faster-than-you-think/ <comment><USER2> This felt like enough of a "devil is in the details" case that I needed to read the original rather than a summary. Clicked through to the paper, to be greeted by an ACM paywall. Blech. But wait, what's this... "article made available by the morning paper", with a tooltip "special arrangement betwen ACM and blog.acolyer.com". So that's cool, I guess :)

One odd bit about the design seemed to be that the responses were allocated on a per-socket rather than per-core basis. The paper implies (but doesn't seem to state outright) that this is done to pack as much data as possible to each store buffer. Does that sound right?

<comment><USER3> > This felt like enough of a "devil is in the details" case that I needed to > read the original rather than a summary.

Seriously, I was very surprised that delegation+combining i slower than ffwd's delegation alone. I definitely want to see those details.

<comment><USER4> Combining is a type of delegation, where threads alternate taking on the role of the "server" in a conventional client-server delegation scheme.

<comment><USER3> Right, but my point was that combining appears to be slower than delegation alone. Perhaps it's due to cache effects, since new servers are unlikely to have the right data in cache, where a dedicated thread will almost certainly have the most commonly accessed addresses in cache.

</comment></comment></comment></comment><comment><USER5> ffwd: fast, fly-weight delegation

One should define such unknown acronyms on first use not in the middle of the article after the acronym is used a dozen times..

</comment><comment><USER6> I could just move a hashmap into it's own thread, but then I have to deal with the problem of communicating with that thread - this will inevitably involve some kind of a lock-free queue or plain old array with a lock. Otherwise, what is the point? Or am I missing something fundamental about this?

<comment><USER2> There are two points.

One is that having just one thread access the data structure gives optimal cache locality.

The other is that locking causes full serialization: if 8 threads want to access a data structure protected by a lock at the same time, you need 8 full cache coherency round-trips. Locking also causes lots of ping-pong on the cache line that contains the lock. This scheme does away with the serialization by allowing batching of operations. If 8 threads need to access a data structure at the same time, their requests can be handled in a single round-trip. It does away with the ping-pong by making every single cache-line have just one writer. (I think it doesn't need locks or atomic ops, just TSO.)

Which isn't to say it's a free lunch. Two probable downsides:

You need to care about whether you have the right mix of threads doing real work and threads that are just thin shims on some data structure.

I bet that the data structure threads have to be polling for requests in a busy-loop for this scheme to have good performance. This would be a major problem for most applications.

<comment><USER4> You are right, the "data structure threads", which we call servers, poll on requests in a busy loop. If your data structures aren't very busy, dedicating a thread to serving the data structures may not be a good trade-off, in which case you don't want to use delegation.

Note, however, that a single server can host any number of data structures, core counts are growing rapidly, and hyperthreading doubles the number of available hardware threads, making the trade-off easier to swallow.

</comment></comment></comment><comment><USER7> honestly, this paper seems to err on the side of too much (scary) numa details, and not enough on the simplicity of the idea itself i.e. 'only 1 thread for the data-structure'. having used it in fast-forwarding dataplane applications, the only thing that comes to mind is the high amount of discipline required for these kind of things. and humans seem to be quite bad at it.

immutable functional programming nerds may now gloat wisely ;)</comment>


Functional Programming in a Dysfunctional World - <AUTHOR> https://underthehood.myob.com/functional-programming-in-a-dysfunctional-world/ <comment><USER2> The idea that "memory doesn't matter" and "we're mostly waiting on the network anyway" seems like red herring.

It's not a "micro-optimization" to think of your data first. A program is a sequence of transformations on a stream of data. Figure out what your data is and how you want to transform it and your program will become evident.

FP is a fine tool for programmers to have but you still have to think about the data regardless. If you don't realize how the allocator works in your VM you might end up fragmenting your pools and over-allocating virtual memory for a simple process. For some applications that might matter.

<comment><USER3> Memory didn't matter in the past. At some point caches weren't important, CPU were not running as fast compared to main memory. Then CPUs were getting much faster and caches started to become very important.

Then at some point networking was very slow and it didn't matter if you wrote your code in a scripting language, if all you did was wait for network packets. That was around Pentium 4 days or so. CPU speed was doubling quickly and 1Gpbs cards and switches were still kind of fancy and expensive.

But then it all kind of changed. Caches are important now. You thrash your cache around and you can take a serious performance hit. Even kernel code can't keep up with network wire speed at 10G range.

Long story short, a lot of performance heuristics and folk knowledge about it has be re-evaluated periodically.

<comment><USER4> At what point in the past did memory not matter?

<comment><USER3> Memory speed didn't matter back during early 486-586 days. You just didn't think about cache misses as much because the speed disparity wasn't that great.

<comment><USER4> I question whether memory was literally not a concern, though. Were you as likely to outrun memory by the CPU, no? Did you still try and minimize the amount of data that went through memory for overall speed? I would think so.

And this is ignoring the fact that hard drives were still ridiculously slow. So, really, the concern has always been that there are large chunks of memory that are not fast. Over time, "not fast" has changed in definition. But practical considerations have remained that keeping a small data set will be faster than a larger one.

</comment></comment></comment></comment></comment><comment><USER3> > Did you ever attempt to get to the bottom of an intermittent error that was > driving you insane, only to discover much later that a private variable > wasn't synchronized properly? Have you ever spent hours stepping through the > lifecycle of an object, going through many different components spread out > across the codebase and wished that you had spent all that time solving new > problems instead?

I see 3 issues here.

1) Most people haven't dealt with those issues enough. There are complex programs but there are also many simple program as well. And unless one deals with hard to debug concurrency / pointer / mutable state errors they will not appreciate immutability. They might pay lip service to it, because it is cool, but they will not appreciate it enough to start rewriting their codebase in it. That is a bit like fault tolerance, unless they have been woken up at 3am because their main larger server process segfaulted and had to debug, they will not think about isolated units of failure, about supervision, durable peristent snapshots/checkpoints, monitoring etc. They of course will say that "fault tollerance is good" but it is good in an abstract, general way.

2) Those that dealt with these issue might accept the state (pun indended) of affairs and never realize there is another way of doing things. I mean they just accept that you have to have locks and mutable state and mutexes and dangling pointers and then spend months debugging hard to track concurrency errors at 3am. That is just how software development works and it is as good as it gets.

3) People realize there is something better, they know about, read about, played with it. But they don't have enough energy, political power, or time do fix it.

<comment><USER4> I see another issue. Have I ever gotten to the bottom of an intermittent error only to determine it is a synchronization error? Yes.

The problem is I have also gotten down to the bottom of a problem and found it was a stale data problem. In a system that was performing gymnastics to keep things immutable. To the point that fixing it was not a simple matter of just updating the variable.

Worst were the Multiversion concurrency control (MCC) systems I have seen rolled to "help keep all facts of the system immutable." Suddenly, we had to have database implementation experts just to run basic software...

<comment><USER5> I have similar experiences too.

Trying to keep data immutable introduces scenarios involving stale data, and a new problem to solve. I have seen interesting problems with cache coherence that were quite subtle in their manifestations.

Understanding the system-wide implications of immutable-only data is a non- trivial design task.

<comment><USER6> the issue I have with this statement is that stale data exists when going full-imperative as well.

The solutions might be harder to implement in an immutable environment if your setup isn't right, but not an order of magnitude harder. And you get all the advantages of immutability.

People complain about stale data issues in immutable programming styles not because they're more prevalent, but because they can rule out so many other classes of bugs immediately.

<comment><USER5> > People complain about stale data issues in immutable programming styles not > because they're more prevalent, but because they can rule out so many other > classes of bugs immediately.

This generalisation is too broad (as with almost any generalisation).

In any case, I want to mention one interesting experience -- a very large financial portfolio management system that I worked on, over a decade-and-a- half ago.

The system had multiple in-coming tickers, feeding huge amounts of data. The central data structures of the computational pipeline system were immutable. Initially, there was a very haphazard system for determining when a particular piece of data was to be deemed stale. In time, formal definitions were established. However, the software was not amenable to those definitions, since shared data was not `seen' updating instantaneously.

The core was too big to be changed in any non-trivial manner, without risking the entire business.

We ended up introducing an explicit notion of time into _every_ pipeline processor to ameliorate (not entirely solve) the situation.

Every major design decision has its own trade-offs that are specific to the problem on hand. But, those built into the foundations of the system should be made pragmatically, not by adhering to a philosophy!

<comment><USER6> I agree that things need to be pragmatic. But there are classes of bugs ruled out absolutely by things like immutable structures and referential transparency.

Now, the thing is that there's always a way to model state, but at least I can rule out things like the term "x" to mean different things depending on how many times f was called beforehand for the most part.

<comment><USER4> The problem I have with this line, is it ignores the dealing with mutable state you already do on a daily basis.

Are you confused that the listing on hackernews changes depending on time of day? Why would you be confused that a call to "incrementCounter" changes the value of the counter? Or that a call to "printf" adds to the output?

I agree that having a large function where the value of something changes at the top and at the bottom can be confusing. But so can a function where you have two variables of type String because you had to sanitize the input and assign it to a new variable.

Are there ways to avoid that particular error. Certainly. Yet I have encountered that about as many times lately as I have encountered "mutable" based errors.

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> The Virtus issue is simply an example of bad design. When you add magic that can't be guaranteed by the language, you're eventually going to run into problems. Just look at Hibernate.

As far as performance goes, once you commit to a language with no mutable types, you have no recourse once you discover a bottleneck due to immutability. That's a big worry.

And advanced type systems are not unique to functional languages.

I'm also not clear on why the example testing code is better. It doesn't look much different from what I'd write in any language (excepting boilerplate).

So yeah, correctness and testability. It's available in most languages.

Also, what's up with all the single-letter variable names?

<comment><USER8> > Also, what's up with all the single-letter variable names?

Words are not useful if your variables don't really have semantically meaningful names. Also, if your code is a simple one-liner, it does not really add too much benefit to name everything, if it is obvious from the (very local) context.

For example, when I look at something like:

        ordered (x:y:xs) = x <= y && ordered (y:xs)

I could do something like:

        ordered (first:second:remainingList) = first <= second && ordered (second:remainingList)

... but if anything, that will make it harder to read.

<comment><USER9> Then why did you call your variables x and y, and not y and x? Surprise: because there IS a semantic meaning to the order.

The haskell variable naming convention is bad. What is worse is that when someone points it out, there is ALWAYS this one or two variable example being put forward, when the problem exists in the 90% of functions that have 5 or more variables in scope.

I see a lot of haskell code that looks like FORTRAN. Haskell code is yet not written in large companies where there is a readability requirement. I just hope more programmers with a better taste for readability joins the Haskell ranks. The readability story needs to improve (and I see it improving a bit..)

<comment><USER8> It is a lot less of a problem then you make out: most of the time, the single letter naming conventions are actually very useful. Its not like all the haskellers just forgot the usefulness of names from the other languages they frequently use; it is an educated and measured choice.

That said, it certainly can be taken too far and turn into a clusterfuck.

        permutations            :: [a] -> [[a]]
        permutations xs0        =  xs0 : perms xs0 []
          where
            perms []     _  = []
            perms (t:ts) is = foldr interleave (perms ts (t:is)) (permutations is)
              where interleave    xs     r = let (_,zs) = interleave' id xs r in zs
                    interleave' _ []     r = (ts, r)
                    interleave' f (y:ys) r = let (us,zs) = interleave' (f . (y:)) ys r
                                             in  (y:us, f (t:y:us) : zs)

<comment><USER10>
        addart a = array ((-1,0),(n,m+n)) $ z ++ xsi ++ b ++ art ++ x
          where z = ((-1,0), a!(0,0)) : [ ((-1,j),0) | j <- [1..n] ] ++ [ ((-1,j+n),a!(0,j)) | j <- [1..m] ]
                xsi = ((0,0), -colsum a 0) : [ ((0,j),0) | j <- [1..n] ] ++ [ ((0,j+n), -colsum a j) | j <- [1..m] ]
                b = [ ((i,0), a!(i,0)) | i <- [1..n] ]
                art = [ ((i,j), if i == j then 1 else 0) | i <- [1..n], j <- [1..n] ]
                x = [ ((i,j+n), a!(i,j)) | i <- [1..n], j <- [1..m] ]
                ((_,_),(n,m)) = bounds a

From Matrix.Simplex [https://hackage.haskell.org/package/dsp-0.2.1/docs/src/Matri...](https://hackage.haskell.org/package/dsp-0.2.1/docs/src/Matrix- Simplex.html)

<comment><USER11> To be fair it _looks_ to be a relatively complex operation. Do you know how any other languages implement this?

<comment><USER12> This is not about the complexity of the code, but about variables with or without meaningful names.

<comment><USER11> I feel like xsi and art mean something domain specific that might be obvious to a domain expert.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER13> "A nice side effect (hmm) of immutability is you end up with pure functions."

No, immutability doesn't magically give you purity. E.g. Rust gives you immutability by default, yet you don't need anything to be mutable to get IO.

<comment><USER14> IO is by-definition mutation.

</comment></comment><comment> vezzy-fnord Virtually all of the concepts that the author listed are completely orthogonal to functional programming, and moreover FP is equivocated with statically typed FP.

<comment><USER15> What's the best resources you would recommend for someone to really wrap their head around functional programming, foundations and practical use?

<comment><USER13> Learn You a Haskell For Great Good is a great introduction, if you're willing to just pretend you know nothing of programming for a little while.

<comment><USER15> I was uncertain at first if I was reading a book title lol. Haskell is usually a tough learning experience. I'll keep the link and check it out. Might need to learn it anyway given the seL4 and lots of Galois's work (eg Ivory language) is using Haskell. Figure it's better to start with it than Ocaml given that Haskell doesn't give an imperative programmer many outs. Gotta learn the concepts or leave haha.

"if you're willing to just pretend you know nothing of programming for a little while."

Always good advice for learning a new paradigm. I learned this when smart people taught me how to learn a foreign language. They said learn the concepts fresh, do no mental translations, and immerse yourself where you're forced to solve problems in that language. It's how we learn the native one's so why not new ones.

<comment><USER11> > Haskell doesn't give an imperative programmer many outs.

What do you mean?

Check these out:

[http://www.haskellforall.com/2012/01/haskell-for-c- programme...](http://www.haskellforall.com/2012/01/haskell-for-c-programmers- for-loops.html)

[http://www.haskellforall.com/2013/05/program-imperatively- us...](http://www.haskellforall.com/2013/05/program-imperatively-using- haskell.html)

<comment><USER15> Closer, but not quite. One commenter there pointed out that you still need foundational stuff to really get it. Otherwise, you're just seeing templates without really understanding what they mean. That's kind of what I meant.

Nothing wrong with it, necessarily. I'm just saying people learning it say there's not many shortcuts around learning it.

<comment><USER13> That's a good thing in my book. It takes you longer to get productive, of course, but, when you DO get there, you're on much more solid footing

</comment></comment></comment></comment></comment></comment></comment><comment><USER16> If your program has state, it doesn't matter if it's mutable or immutable state, you will still run into the same problems when working with concurrency. You either have to use locks, make sure functions are executed in the right order, or the preferred way: designate/central state.

So functions vs object orientated is mostly a matter of preference.

One advantage with functional programming though, is that it will be much easier so serialize the state.

<comment><USER11> > If your program has state, it doesn't matter if it's mutable or immutable > state, you will still run into the same problems when working with > concurrency. You either have to use locks, make sure functions are executed > in the right order, or the preferred way: designate/central state.

What about using STM:

[https://www.fpcomplete.com/school/advanced- haskell/beautiful...](https://www.fpcomplete.com/school/advanced- haskell/beautiful-concurrency/1-introduction)

</comment></comment><comment><USER17> > you have to be wary of using Java and .NET types which are still prone to > NPEs

Java8 optionals are a maybe monad

[http://stackoverflow.com/a/19932439/4658666](http://stackoverflow.com/a/19932439/4658666)

<comment><USER18> I think your post only takes non-null values into account, which is what OP seems to talk about. What would this code do?

        Optional<Int> foo = null;
        foo.flatMap(x -> Optional.of(x));

Obeying the Monad laws would mean getting null as a result, via `m.flatMap(x -> Optional.of(x)) = m` for all m (or `m >>= pure = m` if you prefer Haskell syntax).</comment></comment>


Facebook adds new security tools - <AUTHOR> http://news.smh.com.au/breaking-news-world/facebook-adds-new-security-tools-20100514-v3lw.html

<comment><AUTHOR> I heard this on my local TV news touting it as a new privacy measure...and then I found details via the link.

What exactly does this have to do with privacy? It deals with someone who tries to hack your facebook account but has nothing to do with their use of your information...or am I missing the boat on this?</comment>


Ask HN:  Take the job? Or Pursue the startup? - <AUTHOR>

I run a smallish analytics web service, we're doing okay. Actually grew 190% last month.   Before you say damn 190% keep doing it, that's a revenue increase from $1,700 to $4,300 - with a profit of $205.  Now, that's not enough to buy diapers for either of my kids.  I have 2 other businesses I do consulting for that are willing to pay me 2.5K and 1.5K and in return I would be obligated to do about a week a month of work between the 2 of them.  I also have a few other web consulting gigs that come in at around 3-5 every so often like every other month.
My question for hacker news is.. I also have a great job offer to make about 10K after taxes and work in an environment where I get to work with my peers.   Also remember it's just me running this business and there's a lot of shit that I'd need to do right to grow my profit from $200 a month to $10K.
Do I take the job?  Or do I slug it out putting my kids futures on the line? <comment><USER2> Do you have savings that you are prepared to burn while your own service grows? How stable are these other consulting gigs? Those are important ?'s to answer, because they can frame your situation drastically differently ($7k monthly from consulting is FAR different from $200 monthly from your service).

Assuming the worst, though, I can't see a world where leaving $9800 a month on the table is a responsible decision. If, as you put it, your kids futures are "on the line," this is a no-brainer. Kids are not cheap, and they're not really something you can put off. I'd take the job and try to do consulting as well to save up a runway for your service down the road.

<comment><AUTHOR> thanks for the feedback - I am thinking the same way - to take the job.</comment></comment>


Grsecurity: Teardown of a Failed Linux LTS Spectre Fix - <AUTHOR> https://lwn.net/Articles/798256/rss <comment><USER2> It's worth noting that I find Linus's version clearer than the original (correct) fix that produced a warning.

<comment><USER3> Linus version is the correct one. The original was incorrect and was mistakenly backported to the LTS tree instead of the Linus one.

<comment><USER4> Both were correct! The original was correct, but produced a warning. Linus fixed the warning correctly. LTS folks "fixed" it incorrectly: "As a further failure, instead of looking at Linus' correct fix (observable by checking out the master tree at the time), the approach employed in the LTS kernels seems to have been to naively silence the warning by simply swapping the order of the two lines".</comment></comment></comment>


Birmingham Entrepreneurs back Bird scooters - <AUTHOR> https://homewoodstreets.org/birmingham-homewood-dont-give-our-city-s-entrepreneurs-the-bird-96c1027d15dc <comment><AUTHOR> In a city like B'ham, with little ability to provide public transit due to low density and high per-capita costs, something like Bird fills a gap.</comment>


The Spear Phishing Email Believed Responsible for Podesta's Email Hack - <AUTHOR> https://wikileaks.org/podesta-emails/emailid/34899 <comment><AUTHOR> Just a few notes about this email and why this is believed to be the email that led to the hack:

* The whole email is fake. There's a bit.ly link in the email to "reset the password". It leads to myaccount [dot] google [dot] com-securitysettingpage [dot] tk [1]

* No emails from shortly after this time have been leaked.

* You can see that the staff believed this to be real and warned to take immediate action:

"This is a legitimate email. John needs to change his password immediately, and ensure that two-factor authentication is turned on his account."

[1] See also: [http://www.trueurl.net/service/whataretrueurls.html?q=https%...](http://www.trueurl.net/service/whataretrueurls.html?q=https%3A%2F%2Fbit.ly%2F1PibSU0&Uncloak=Find+True+URL)</comment>