Microsoft Has Hired People To Make Positive Comments About Xbox One On Reddit? - <AUTHOR> http://www.businessinsider.com/microsoft-positive-reddit-comments-2013-6

<comment><USER2> [http://en.wikipedia.org/wiki/Betteridge%27s_law_of_headlines](http://en.wikipedia.org/wiki/Betteridge%27s_law_of_headlines)

<comment><USER3> It strikes me as intellectual laziness to dismiss a story out of hand because someone you don't know (Betteridge) has pontificated about headlines at some point.

Look at microsoft's massive track record for doing this, Google the keywords "evangelism is war" and form your own opinion.

<comment><USER4> Ok what if we dismiss this story because its on business insider?

</comment></comment></comment><comment><USER5> This is retarded. An 'RM' campaign as they call it, the way they are doing it, would be worthless on Reddit. It's a website made up of millions of users. /r/gaming has 3,244,936 subscribers as of writing this. A few guys sitting in a room down voting stuff, like the anonymous source claims to have seen, would be like a few guys standing in a river trying to form a damn.

And the people at Microsoft aren't utterly stupid. Why would they hire such an amateur PR firm that was so flippant with campaigns to manipulate other websites.

This entire article is laughably ridiculous.

<comment><USER6> Worked for Obama.

<comment><USER5> I'm not saying an RM campaign is ridiculous, I'm quite sure they, like most big companies are doing one. I'm just also quite sure that the guy this article is using as a source is completely full of shit.

</comment></comment></comment><comment><USER7> Microsoft remains pathetic, and evil. On a positive note, it looks like they're heading down.

</comment><comment><USER8> Lol... so some random contractor was on campus and saw someone browsing reddit upvoting/downvoting. I'm sure Linux guys are doing the same thing Pro-Linux and Anti-Windows but the difference is nobody is lurking in their backyard spying saying 'Some neckbeard is being open-sourced to make positive comments about Linux on reddit!'.

It's just some random guy on reddit at work who happens to drink the Microsoft koolaid.

</comment><comment><USER9> The idea that these people work inside the Microsoft campus is hilarious.

</comment><comment><USER3> Given microsoft's track record, I wouldn't put it past them. To microsoft, evangelism is war waged aggressively. If microsoft's scroogled campaign makes no sense to you, it's understandable why you would be puzzled by this.</comment>


Ask HN: Coolest iPhone App UI/UX's? Post Your Favorite - <AUTHOR>

My favorite (and their website for that matter):
http://awesome.taskrabbit.com/017e0
Twitter, Robotcat Apps (Outside Weather App), TeaApp, and despite their situation, AirBnB, all come to mind. Any others? <comment><USER2> Summify [http://itunes.apple.com/us/app/summify/id446082229?mt=8&...](http://itunes.apple.com/us/app/summify/id446082229?mt=8&ls=1)

</comment><comment><AUTHOR> clickable <http://awesome.taskrabbit.com/017e0>

(email is just for new macbook air contest, you can download the app w/o it, just don't enter your email if you don't want to try to win)</comment>


Japan Is Running Out of Whisky - <AUTHOR> https://kotaku.com/japan-is-running-out-of-whisky-1826032552 <comment><USER2> I was expecting an article about climate change...

Turns out Japan is running out of Whisky because it is popular and people drank it all.

Whisky takes time to mature, so there is a long lag time before production can ramp up to meet the new demand.

<comment><USER3> Whisky is an interesting business. The whiskey shortage is actually impacting everyone (entire shelves have "disappeared" and the rare bottles are even more rare today than a decade ago), but Japan has been ahead of that demand curve and/or a major factor in its current global popularity/shortage.

Japan imports a lot of whisky, loves Bourbon, and Japanese companies have made big plays in the Kentucky Bourbon space. (Kirin rebuilt the Four Roses distillery a while back, and Suntory merged with Beam Brands to form Beam Suntory.)

Bourbon is "lucky" here in that the average lag time is ~3-5 years (3 years of aging to qualify for a "Kentucky Straight Bourbon" label, 5 years being most drinkers' preference). The Scotch distilleries and their ~10-15 year lag time to meet demand is a bigger problem in the global whisky shortage. One of the biggest ways the Scotch distillers have been coping is removing Age Statements from their labels, which runs the risk of ruining the reputations of some of their brands if they are chancing things with immature/too young product and avoiding lying to drinkers about it by simply not admitting the Age of the product.

(I live in Louisville, KY and several of my neighbors are distilleries, so I find this all fascinating local interest.)

<comment><USER4> The problem is even after some of them / range / SKUs have removed the age label. They were still flying off the shelves because people recognised there is going to be less of it.

My friend does lots of Macallan whisky trading.

<comment><USER3> Certainly. It's a risk/reward judgment call by the distillery. They risk their brand getting labeled a poor or bottom-shelf brand, though, if they aren't careful and they misjudge demand.

That's not a hypothetical, similar whisky culture cycles in history have shown once good/strong/trusted brands in the heat of a shortage/high-demand period make short term gains and long term folly.

Four Roses is a fun immediate example I already mentioned. Before Kirin bought Four Roses it was a struggling "bottom shelf" bourbon that had made some poor choices (by former Canadian alcohol conglomerate Seagram) in the whisky boom of the 50s/60s and subsequent whisky bust in the 70s/80s that busted many brands. [1] Kirin spent a lot of marketing money bringing Four Roses back up the shelves.

The obvious counterpoints are products like Pappy van Winkle that are keeping the age statements, keeping to those age commitments, and riding the shortage to seem more exclusive/exotic.

[1] One article mentioning it: [http://fortune.com/2014/02/06/the-billion- dollar-bourbon-boo...](http://fortune.com/2014/02/06/the-billion-dollar- bourbon-boom/)

</comment></comment></comment></comment><comment><USER5> Luckily, Shochu is still plentiful.</comment>


Announcing OSS-Fuzz: Continuous Fuzzing for Open Source Software - <AUTHOR> https://security.googleblog.com/2016/12/announcing-oss-fuzz-continuous-fuzzing.html <comment><USER2> Previous discussion: [https://news.ycombinator.com/item?id=13081116](https://news.ycombinator.com/item?id=13081116)</comment>


High HDD Prices Result in Record Sales at Seagate - <AUTHOR> http://www.tomshardware.com/news/seagate-hdd,16221.html

<comment><USER2> Sad thing is that since the floods in tailand they have for all extent manipulated the prices. Even sadder is we all know this and we have had no choice but to pay for it.

Saddest of all is down the line they will get fined a large sum for price manipulation and we the consumers will see none of that money back and it will go to the goverment who already knows this is happening and yet will wait a bit until they can justify a realy large fine.

Sad cycle of events, but happens again and again. Consumer abused, goverment sits back and counts the money and then later on collects giving nothing back the the consumers who were raped.

Who is to blame.

<comment><AUTHOR> We ourselves for doing nothing.

<comment><USER2> I did something by doing nothing as in not purchasing a new HD since september. Apart from that what can we do?</comment></comment></comment>


The Moral of the Kurzweil v. Myers Spat - <AUTHOR> http://ewjordan.blogspot.com/2010/09/complexity-of-intelligence-kurzweil-v.html

<comment><USER2> I don't agree with Kurzweil on much, but the more I read the back and forth, the more it seemed to me that Myers was totally out of his depth. He completely misquoted what Kurzweil said, and then when that came to light he followed it up with fairly thorough misinterpretations of what Kurzweil was saying. I don't think he was doing that intentionally: he just didn't understand what he was saying. On my reading, Kurzweil wasn't really delving into genomics (this was entirely a red herring): he was staying on firm ground in information theory, cognitive science, and computer science, and in these areas it was Myers who showed a fair lack of acknowledgment for his own ignorance in the field.

</comment><comment><USER3> 50 million bits is enough to specify a human-level intelligence, but only if one has the appropriate machine. In terms of constructing an AI, the human genome is doing little more than taking clever advantage of ways to cause things in the physical world to self-organize (as per the book, Notes on the Synthesis of Form). Physical reality itself is the execution machine, is responsible for much of the end product, and has _way_ more than 50 million bits of complexity.

If we are thinking of running our first AI on something resembling current computer hardware, then we are going to run it in a extremely impoverished environment, as compared with actual physical reality. This means that the AI- specifying algorithm will have less environmental complexity to work with than the human-intelligence algorithm does, and this in turn means that the AI- specification will need to be longer and more complex.

So from a practical standpoint, while one could _in theory_ specify an AI in 50 million bits, in practice the first AI will need a much larger specification, and/or will need to run on some very powerful computer hardware.

Just how powerful can probably be estimated, but it has little to do with the fact that the human genome contains 50 million bits of information. In terms of determining when AI will happen, the 50 million bit argument is a red herring.</comment>


Anandtech's Detailed WP7 Review - <AUTHOR> http://www.anandtech.com/show/3982/windows-phone-7-review/

<comment><USER2> Wow, I've never read such a thorough review of a phone OS. So far the reviews have been surprisingly positive. I think it's not at iPhone 4 with this release, but I think they came out very much in the hunt.

Here's what MS needs to do quickly:

1\. They really need to hurry and get on Verizon and Sprint.

2\. Add multitasking. They are going to get a lot more grief for not having it than the grief they'd get from some users who experience poorer battery life due to rogue background apps.

This one is really not that hard for them to do technically. If anything its probably just removing code paths where they fire events and shutdown processes.

3\. Improve the Silverlight perf. 3rd party apps need to hum like 1st party apps.

4\. Get IE9 out the door and the IE9 engine in the phone.

If they can deliver this early in 2011, then I think we'll see some sparks begin to fly.

<comment><USER3> In addition to your points above, Microsoft needs to:

1\. Make it easier for developers to port apps from iOS and Android to WP7.

2\. Allow OEMs to customize WP7 and the hardware to some extent so they can effectively compete with differentiated and innovative products; else WP7 smartphones will become commoditized, just like Wintel PCs.

3\. Consider a different revenue model. Charging $15 a copy to OEMs is a tall order, particularly when the competition is free (Android). Some have argued that the total costs of deploying and maintaining Android are higher than deploying WP7, but how can this be, given that almost all the costs with deploying Android are fixed in nature, while WP7 costs are primarily variable (on a per copy basis).

4\. Improve its brand image in the smartphone market and across the board. Microsoft has a weak brand in the hacker community, given the preference for open source. Hackers are driving much of the innovation in the application markets.

<comment><USER4> >> 3\. Consider a different revenue model. Charging $15 a copy to OEMs is a tall order, particularly when the competition is free (Android).

Android licence is around $10 per phone: <http://www.digitimes.com/news/a20101014PD213.html>

<comment><USER5> I think that would be for the "full Google experience" with Google-branded apps. If you choose to go plain Android with your own apps instead of the Google ones, you should be free.

<comment><USER4> Without license one also loses the name 'Android', the good deal on Google Ads and access to the store. All telecoms and big phone companies do pay the fee.

<comment><USER5> True. Android is Google's trademark, much like you can't fork Red Hat and call it Red Hat or have little red fedoras in its icons.

</comment></comment></comment></comment></comment></comment><comment><USER6> Beautiful review, though I think Anand should consider using videos to describe some things.

This is telling of how strict Microsoft is being with the hardware:

"At the top left of any Windows Phone there must be a volume rocker. The top right has to have a power/lock button. The lower right has to have a physical camera button capable of waking the phone up from sleep and putting it directly into the camera app. Microsoft views the smartphone as the replacement for the point and shoot camera and thus Windows Phone needs to be able to function just as quickly as a P&S. Finally, all Windows Phones must have a 3.5" stereo audio out jack and support for headsets with three button integration."

<comment><USER7> I'm all in favor of the physical camera button. I was actually brainstorming today about ways to be able to select which app you want to run without actually turning on the screen (be it iphone/droid/wp7/whatever). I want to be able to take out my phone and just start doing what I want to use it for immediately, without fiddling with lock screens and menus. I want it to be a voice recorder on demand, camera on demand, camcorder on demand, mp3 player on demand, etc.

<comment><USER8> The reason you have lock screens is exactly because you have the phone in your pocket. If it worked the way you suggest you would have photos of the inside of your pocket, recordings, _phone calls_ , etc.

<comment><USER7> I think you misunderstood. I'm not saying there shouldn't be a lock screen, I'm trying to figure out a way to keep the lock screen (so that it doesn't do stuff in your pocket) but be able to go from phone-in-pocket to doing-what-i- want-it-to-do, without going through the usual process of: take out phone, power on, bypass lock screen, search for app icon, etc. I don't know how to accomplish that, but it would be a huge feature for me if it was possible.

<comment><USER9> Well, if you don't have PIN to lock, you could have different gestures to unlock that would jump to an app. Like swipe up for camera, right for phone, diagonal for messaging, etc. Perhaps even show those icons so unlocking is swiping the app icon you want to use across the screen. As long as it's limited to a few apps, it might work.

<comment><USER7> Actually that's exactly what I came up with later last night after posting the comment. Lock screens on android are replaceable right? Maybe I've found my first dev project...

</comment></comment></comment></comment></comment></comment><comment><USER10> The phone looks pretty good. The UI isn't to my taste, but that's actually irrelevant.

However, I am in the middle of development of android client for our streaming server. There are three major obstacles for me to start developing similar client on WP7:

1\. lack of multi-threading support

2\. no access to network sockets (yes, microsoft omitted sockets support, at least for first version of their api, I couldn't believe it also)

3\. development tools for linux

Hopefully, they will clear these obstacles pretty soon. At least first two, I can be flexible for the third.

EDIT: I have to correct myself, just found out, that there actually is support for multi-threaded apps. Cool, only one major hurdle left to fix.

</comment><comment><USER11> Was it just me or did the photographs frustratingly not correspond to the text of the article?

They're describing amazing visual features like swipe-previews and "tappable text", then showing photos of some phone in a random state in WP7.

</comment><comment><USER12> I also read on TC: "WP7′s networking APIs currently lacks direct sockets support. If developers want to network their apps, they've gotta go through the HTTP protocol."

So, with the voice of the dude from WP7's commercial:

"Really?"

</comment><comment><USER13> The network effects can't be underestimated. When I consider a new phone just having the best operating system isn't going to cut it. If I can't interact with others because of a different set of apps or be a second class citizen, getting apps for popular services well after there release on the iphone (as nokia basically is, if they ever get the app at all) no amount of new innovation is going to get me to use it.

I think there needs to be an easy way to port apps, then later sure try and differentiate yourself. The same way the Xbox works where the majority of games I can get on the PS3 also.

<comment><USER14> Games are usually good candidates for portability because the GUI capabilities & conventions of the host OS need not affect what you do in your custom full screen rectangle.

<comment><USER15> This is usually true; your backend can be straight C and you can have a thin layer at the front end to glue your game to the target OS. This makes for easy porting between iOS and Android and Web OS.

But it won't currently work for WP7, as they don't allow anything but Managed C#. You have to do a top-to-bottom, from-scratch rewrite to target WP7.

</comment></comment></comment><comment><USER16> The impression I have of WP7 is that it's targeting the average user, where the average user is, for example:-

\- Someone who listens to mostly major label music

\- Someone who's friends store their mobile number in their facebook profile

\- Is an avid consumer of social networks in general

Perhaps this is sensible on Microsoft's part but I definitely prefer a device that is less targeted in it's approach. Same applies to the Pre.

</comment><comment><USER17> I'd suggest getting in early with apps called Aardvark if they're really only giving people an alphabetical list of apps to scroll through rather than any way to spatially group them.

Works out well for AT&T though:

[http://images.anandtech.com/doci/3982/HTCSurround-9483_575px...](http://images.anandtech.com/doci/3982/HTCSurround-9483_575px.jpg)

</comment><comment><USER7> Kind of a fascinating read. The UI approach seems interesting, but hearing about all the random things that don't quite work right (or at all) is disconcerting.

 _The Zune Pass streaming works like an expensive Pandora, except you get to pick and choose the songs you want to listen to._

That's funny, the whole reason I use Pandora is so that I _don't_ have to pick out which songs to play.

<comment><USER18> _...but hearing about all the random things that don't quite work right (or at all) is disconcerting._

Is that actually surprising though? I think I'd have been more surprised if they got everything right on first release, and in any case it certainly looks like they've made a good start.

<comment><USER7> I agree it's a good start, makes me want to go check out a store and play with one. I can't really get one though since they're not on Verizon.

But things like not having copy/paste are pretty questionable - it's like they're several years back when iPhone came out without copy/paste.

</comment></comment></comment><comment><USER19> FTA, it looks like WP7 is trying to walk the fine line between Apple (little- no customization) and Google (full on open source) in its user experience.

If they're able to continue staying on this line for an extended period of time (say, for two or three generations of the OS) they can be successful. However if they start falling on to one side (which they have in the past), they will be seen as a me too in the space and their brand will suffer.

</comment><comment><USER20> _It isn't quite as bad as how iOS will completely dump a page and completely load then render it again (effectively double loading pages occasionally - which is admittely nice way to increase apparent browser market share), but it is there._

WTF? I hate when otherwise great reviews are ruined by biased, ignorant, or conspiratory crap.

</comment><comment><USER21> Why is it so hard for developers to add copy/paste? What am I missing?

<comment><USER22> I believe there's some sand boxing issues on one hand. But usually the problem is how to make the UI for c-p non clunky and non interfering. Well, that's the same spiel that companies always give us.

Anyhow, c-p support is coming with the first OS revision of WP7. As anand stated, it already works on test versions of the revision.</comment></comment>


Uber ignores security bug that makes its two-factor authentication useless - <AUTHOR> http://www.zdnet.com/google-amp/article/uber-security-flaw-two-factor-login-bypass/ <comment><USER2> Linkbait. To save you a click, the article, after spending more than half talking about past stuff, then states:

> We also independently reproduced and verified the bug, albeit with mixed > results. In some cases the bug would work, and in others the bug would fail, > with nothing obvious to determine why.

The state of the attention economy is truly depressing.

<comment><USER3> "Uber only uses two-factor "when certain requests are deemed suspicious," and it is "not an account-wide setting used on every device," Fletcher told Saini in the bug report.

Ensign said the company uses "machine learning to enforce risk-based authentication by default for all rider and driver accounts." The company uses hundreds of signals -- first revealed by Gizmodo in 2016 -- to detect potentially suspicious behavior, like unauthorized logins and fraudulent rides."

<comment><USER4> Looks like machine learning is being used to find the optimal balance between security and usability. I've read that they also use machine learning to optimize and automate customer service and automate solutions. Between looking at the login fraud score, nature of trip taken by the user (or other actions taken in the app) and any subsequent contacts with customer service can all be used as signals to automate a solution that is satisfactory to the user.

If true, this makes sense because a legitimate login that is hampered by 2fa turned on every time for basic actions that generate revenue costs the company money. So long as customers' happiness and usage frequency keeps going up and to the right quickly, this is a non-story of a company trying to engineer an optimal solution to authentication.

I'm pretty sure similar machine learning solutions are used at Google, Facebook and Amazon, since I can only intermittently trigger 2fa with all these other companies as well. Only certain actions like managing security settings always require 2fa.</comment></comment></comment>


Multi-core scaling: it's not multi-threaded - <AUTHOR> http://erratasec.blogspot.com/2013/02/multi-core-scaling-its-not-multi.html <comment><USER2> He suggests an interesting approach.

1) Tell the kernel it only has a limited set of cores to work with.

 _The way to fix Snort's jitter issues is to change the Linux boot parameters. For example, set "maxcpus=2". This will cause Linux to use only the first two CPUs of the system. Sure, it knows other CPU cores exist, it just will never by default schedule a thread to run on them._

2) Manually schedule your high priority process onto a reserved core.

 _Then what you do in your code is call the "pthread_setaffinity_np()" function call to put your thread on one of the inactive CPUs (there is Snort configuration option to do this per process). As long as you manually put only one thread per CPU, it will NEVER be interrupted by the Linux kernel._

3) Turn off interrupts to keep things as real time as possible.

 _You can still get hardware interrupts, though. Interrupt handlers are really short, so probably won't exceed your jitter budget, but if they do, you can tweak that as well. Go into "/proc/irq/smp_affinity" and turn of the interrupts in your Snort processing threads._

4) Profit?

 _At this point, I'm a little hazy at what precisely happens. What I think will happen is that your thread won't be interrupted, not even for a clock cycle._

Can anyone remove the haziness? I'm more interested in this for benchmarking than performance, and wonder how it compares to other ways of increasing priority like "chrt". Is booting with a low "maxcpus" necessary, or can the same be done at runtime?

<comment><USER3> I think he has some iffy premises. I'm not certain, but I guess pthread mutexes probably use userspace mutexes under the covers. If they don't you could select a library that does. Grabbing uncontended mutexes should be basically free. It is definitely not a good idea to write all your own abstractions, as he suggests, unless you have a really great understanding of the issues involved. You'd probably still get it wrong sometimes even with that.

Affinity is definitely valuable, but I don't think you should need to disable interrupts for most applications. I'm not even sure if it is generally possible, since interrupts are sometimes used to swap pages or notify the kernel that a page isn't mapped or that a blocked resource is now available. The reason affinity is valuable is not because of kernel interactions. It's because of NUMA and cpu cache swapping. Affinity can prevent thread migration, which is expensive mainly because data also has to be migrated or else accessed in a less efficient manner. Likewise, make sure that if you dispatch an asynchronous call, the handler runs on the same core you sent the call from.

Finally, it's a common fallacy in these kinds of posts to act as if threads can't be used to do shared-little or shared-nothing-style multi-programming. They often aren't, but there's nothing that prevents it.

<comment><USER4> _I'm not certain, but I guess pthread mutexes probably use userspace mutexes under the covers._

Correct. man 7 pthreads states:

 _In NPTL, thread synchronization primitives (mutexes, thread joining, and so on) are implemented using the Linux futex(2) system call._

A futex is a mutex that only does a system call if there is contention; you can google it.

<comment><USER5> My blog post was quite clear that I'm talking about futexes, and then when it fails to get a lock that it goes into the kernel. Seriously, that's how everyone did it from Solaris to Windows before Linux "invented" the concept AND it's been in Linux for a decade. When somebody says "mutex", you have to assume they already mean "futex".

<comment><USER4> If you fail to get the lock, then you have to wait on the lock, so you might as well go into the kernel anyway. That's the reason futexes do that, instead of just letting the thread spin.

True, there are scenarios when you might prefer to spin, but they're pretty specialized.

 _My blog post was quite clear that I'm talking about futexes_

No, you never mention the word "futex."

 _When somebody says "mutex", you have to assume they already mean "futex"._

I don't think that's a valid generalization at all.

<comment><USER5> The entire point of the post was talk about "lock-free" algorithms where two cores can make forward progress without either having to wait or spin.

What systems have mutexes that aren't built like futexes?

<comment><USER4> Kernels, and probably any kind of parallel user-level runtime like Erlang.

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> Hypothesis: we will never solve multi-core for general purpose computing (there's also <http://en.wikipedia.org/wiki/Amdahl%27s_law>). But we can do multi-core for the embarrassing parallelizable - such as graphics (top GPUs have over 1000 cores), so instead of solving this problem, our focus will shift to those tasks for which multi-core _does_ work - because it's only these that keep improving at Moore's Law-like rates.

Arguably, this is already happening.

<comment><USER7> I am not sure what would theoretically prevent each web page and each application from running on a separate core (or two). Considering the number of people who love multiple tabs, I can't see how that wouldn't seem like a win for even thirty or more cores.

<comment><USER8> The problem is that most web pages and programs don't actually do very much when they're in the background, and many (most?) of the software that _does_ grind away for long periods of time without user interaction (compilers, ray tracers, video encoding etc.) are already able to make good use of many cores. But users who fit that profile are a niche market.

What the vast majority of users need in terms of speed is _acute_ performance. A dedicated core for every webpage is not very useful because users don't load up a bunch of tabs at the same time and then flip between them many times per second, interacting with each one. Instead CPU usage tends to happen in short bursts directly following user interaction, so even if every tab has its own core, you won't usually see very much contention for CPU between different tabs. The same goes for most native programs. Users just don't multitask fast enough to make separate cores relevant for most programs.

<comment><USER7> I think the problem is that hardcore parallel programmers can't understand the needs of adhd web browsers.

Some fractions of web pages are all sort of ridiculous Javascript and seriously slow down my machine.

And I, personally, do flip pages at a significant rate.

<comment><USER8> >Some fractions of web pages are all sort of ridiculous Javascript and seriously slow down my machine.

Yes there are exceptions, but not enough to plausibly make use of more than eight cores. The returns are usually diminishing at even four cores.

>And I, personally, do flip pages at a significant rate.

More than two or three times per second? Because that's what it would take.

</comment></comment></comment></comment></comment><comment><USER9> I wonder if we will ever figure a way to resume improving clock cycles instead of adding more parallelism.

Parallelism has two major issues:

First, not all applications need it, in many cases you want to do just a series of operations in a single starting number, and you don't need anything else, like if you are for example calculating a factorial, if you need only one factorial, it is useless to make it more parallel.

Second, it is absurdly hard to code stuff for heavily parallelised hardware, most coders will make crap code that don't work, no matter how good we become in making helper libraries, it is totally another way of thinking.

Yes, for some things, like servers, where you can throw a user into each core, it is nice... But for many other uses, even simple single-core parallelism, like SIMD, is not much useful.

<comment><USER10> > First, not all applications need it, in many cases you want to do just a > series of operations in a single starting number, and you don't need > anything else, like if you are for example calculating a factorial, if you > need only one factorial, it is useless to make it more parallel.

Sorry for nitpicking, but calculating factorial can certainly be parallelized. Easiest way to do this is multiply every n-th number on each core and then multiply n results together.

<comment><USER9> I doubt that you can have a much increase in performance as cores increase unless you are calculating numbers with huge amount of bits.

<comment><USER11> Considering that factorial of 1e6 has about 18e6 bits (and factorial of 1e3 has 8.5e3 bits)? Yes, any factorial that doesn't have a huge amount of bits will be fast enough to calculate that there's not much point to parallelizing it.

</comment></comment></comment></comment><comment><USER12> _…from 33-MHz to 3-GHz, a thousand-fold increase…_

There had to be a better way to write that. I suppose more work per clock cycle and increased number of cores contributes the other x10 of raw performance. But then the author goes on to say they are stuck, which isn't true of performance, only clock rate. In any event, putting an "up is down" in your sentence should generally be avoided.

Edit: _The >>>proscribed<<< method for resolving this is a "lock", where…_ Sigh.

The article covers a lot of ground lightly. It talks about the new Haswell transactional memory instructions, the way Linux shards network counters, and a way to make Linux not use a core so you can schedule a process on it that will never be preempted.

<comment><USER13> I think he just screwed up the math.

</comment></comment><comment><USER14> Tangentially related, Snort was doing research to move to a multi-threaded architecture, but decided against it due to cache synchronization problems [1]. Though, their thoughts about splitting up processing was quite different than what the OP blog post suggests.

It looks like Snort gave up on one way of doing multi-threading, but they could still go the way suggested in the OPs post.

[1] [http://securitysauce.blogspot.com/2009/04/snort-30-beta-3-re...](http://securitysauce.blogspot.com/2009/04/snort-30-beta-3-released.html)

<comment><USER5> Yea, some engineers created a ground-up rewrite of Snort called "Suricata" that was multi-threaded, and therefore faster than Snort, which is only single-threaded. Suricata then failed to show any benchmark where they exceeded Snort's speed, and they fail to mention that Snort works fine on multi-core.

It's one of those things "everyone knows multi-threaded is better than single- threaded", but everyone's wrong.

</comment></comment><comment><USER4> So, this post has a number of errors, and is fundamentally wrong.

(a) pthread_mutex_t and friends use futexes, which only call into the kernel when there actually is contention.

(b) it would be better to use chrt (change to real-time priority) than the maxcpus trick, because the former accomplishes the same thing, but allows the core to still be used if the high-priority thread suspends (e.g. to do disk or network I/o).

(c) Contrary to his claim about Snort, there is no reason to prefer a multiprocess design over a multithreaded design for a particular application. There is no savings in overhead or synchronization or anything like that by going with processes. In fact, using processes and then using memory mapping to share when you could use threads, is just making things harder for yourself for no reason.

(d) _What I'm trying to show you here is that "multi-core" doesn't automatically mean "multi-threaded"._ Well, in computer science terminology, a thread is a schedulable entity, and a process is a schedulable entity with memory protection. So, he's wrong. Lots of developers talk about threads and processes as orthogonal things, though, so I can see why he made that claim.

(e) _The overall theme of my talk was to impress upon the audience that in order to create scalable application, you need to move your code out of the operating system kernel. You need to code everything yourself instead of letting the kernel do the heavy lifting for you._ That is horrible advice that is just going to lead to lots of bugs and wasted effort. It's premature optimization. Even most people using the Linux realtime preemption patch (PREEMPT_RT) do not have such strict requirements that they need to take this advice.

(f) _Your basic design should be one thread per core and lock-free synchronization that never causes a thread to stop and wait._ Might apply to certain very specific real-time (as in, embedded systems or HFT) scenarios, but in general, no, you're just wasting the core when that one thread doesn't need to use it. Prefer real-time priorities if you really need it.

(g) _Specifically, I've tried to drill into you the idea that what people call "multi-threaded" coding is not the same as "multi-core". Multi-threaded techniques, like mutexes, don't scale on multi-core._ Again, you can only use multiple cores in parallel if there are multiple threads. And multi-threaded techniques _do_ scale. You definitely may want to use lock-free synchronization instead of mutexes in some specialized scenarios, though.

EDIT: OK, here is one other thing I forgot in the list above.

(h) _There are multiple types of locks, like spinlocks, mutexes, critical sections, semaphores, and so on. Even among these classes there are many variations._ Technically, mutexes and semaphores both are ways of protecting critical sections, and a spinlock is a way of implementing a lock (including, possibly, a mutex or semaphore lock). Again, this is to some degree the difference between developers with a shared lingo and computer scientists. But if you go by that kind of lingo, you're missing part of the picture.

<comment><USER5> (a) What part of "In the Linux pthread_mutex_t, when code stops and waits, it does a system call to return back to the kernel" do you not understand? That's how "futex" works: when it fails to get a lock, it must stop and wait, and therefore does a system call. When it doesn't have to wait because there is no contention, then it doesn't make a system call.

(b) The entire point is that for really scalable network applications, you don't want the high-priority thread to suspend for things like disk IO. Really, you read all that and expected the thread to use blocking IO instead of asynchronous IO???

(c) The point wasn't that Snort's multi-process design is better, only that it's acceptable. It's a single-threaded design written in the 1990s that has lots of quirks that make it hard to convert to multi-threaded operation. The point is that you can still get it to multi-core without having to make it multi-threaded.

(d) How is "multi-core doesn't mean multi-threaded"??? Snort is a multi-core app today and isn't multi-threaded.

(e) I keep repeating the claim because my code written in user mode scales better than the code of people who disagree. My code scales to 20-million connections, 20-gbps, 20-million packets/second. What does your code scale to?

(f) "Real-time" is different than the "network" apps I'm talking about. The entire idea is "control plane" vs. "data plane" separation. Control operations that need real-time guarantees are very different than high-throughput data operations.

(g) Multi-threaded techniques that try to interleave multiple threads on a single core suck for high network throughput. Just ask Apache

<comment><USER4> A lot of what you're saying hinges on being specific to what you call "really scalable network applications," but you never said anything about that in your post.

 _(d) How is "multi-core doesn't mean multi-threaded"??? Snort is a multi-core app today and isn't multi-threaded._

This is, again, between whether you want to be "computer science correct," or use developer lingo that is not even necessarily consistent among all developer and OS subcultures. I think saying it the way you are saying it, instead of "You could use multiple processes to get parallelism, instead of multiple threads," is misleading.

 _What does your code scale to?_

Well, I'm a real-time guy, so my thread scales down to microsecond overheads.

Did you change the text in your post that explains pthread_mutex_t? If not, I probably made a mistake to pick on that, because what you have there is pretty clear.

</comment></comment></comment><comment><USER15> "Multi-tasking was the problem of making a single core run multiple tasks. The core would switch quickly from one task to the next to make it appear they were all running at the same time, even though during any particular microsecond only one task was running at a time. We now call this "multi- threading", where "threads" are lighter weight tasks."

I must have missed something.

Multi-tasking is multiple processes, which mostly have nothing to do with each other, switched in and out of the processor(s) by the OS, which do not share in-process memory or context. The programmer does nothing to make this happen, and normally has little to no say in it.

Multi-threading is a single process, where the threads _carefully_ share context and memory, and they're all working roughly on the same thing; the programmer makes this happen explicitly, and usually fucks it up.

<https://en.wikipedia.org/wiki/Multitasking>

<https://en.wikipedia.org/wiki/Multitasking#Multithreading>

</comment><comment><USER16> "Multi-threaded software goes up to about four cores, but past that point, it fails to get any benefit from additional cores."

Is there any basis for this affirmation or just the fact that his system has only 4 cores?

<comment><USER17> This article speaks in broad generalities that seemed to be based on the authors particular interests.

There is no reason why multi-threaded software can't scale near linearly for the right problems.

<comment><USER5> My point was to talk about the wrong problems.

Networking is actually a "right" problem, and should be nearly embarrassingly parallel since two cores and process two unrelated packets at the same time. But, if you look at network stacks on open-source projects, you see a lot of fail. That's the point of my post, as a reference to point to why that spinlock in your networking code is a bad idea, and why it's probably better to replace it with an atomic operation or a lock-free alternative.

</comment></comment></comment><comment><USER4> _There are two fundamental ways of doing this: pipelining and worker-threads. In the pipeline model, each thread does a different task, then hands off the task to the next thread in the pipeline._

Why not just implement the pipeline entirely in one thread, and then replicate them (just like worker threads)?

What will happen is that the first worker thread will be executing stage 2, while the second worker thread is executing stage 1. The OS will automatically schedule them on different cores.

Am I missing something?

<comment><USER5> When there is high-contention for a resource, it's better that one thread do it and access it contention-free, rather than make multiple threads content for it.

Even so-called "lock-free" synchronization has locks, they are just very short (30 clock cycles). Therefore, you still want to avoid contention if you can figure out a way to do it.

I didn't really go into enough detail in my example, but pulling packets off the network is a good example. You can have one thread do it, and therefore need no contention. Then you can setup multiple single-producer/single- consumer ring-buffers to forward those packets to worker threads to complete the processing of the packet. Thus, you essentially get rid of all the atomic/lock-free contention you would otherwise have.

<comment><USER4> * When there is high-contention for a resource, it's better that one thread do it and access it contention-free, rather than make multiple threads content for it.*

Right, and that's what I'm suggesting. So, if you have a pipelined architecture, keep the pipeline inside worker threads, instead of across them, except when you need to distribute work to the workers (i.e., the first stage, where you do something like take packets from the network). I think we agree on all that. I was just curious if there was ever a reason to do it the other way, i.e., having a separate thread for each stage of the entire pipeline. It seemed like you were suggesting that was useful in some cases, but perhaps I'm reading into things too much.

</comment></comment></comment><comment><USER18> I recall similar results on nearly all applications since my late MSc study: Mutexes are bad, pipes and sockets give better scaling. Thread sync primitives just sometimes scale up to 8-12 cores, but indeed multiprocess applications usually get much faster. In the age of GCed VMs one needs to also consider sync cost of GC.

</comment><comment><USER19> Maybe I'm missing something, but I'm not getting the point. It seems to me there's no fundamental difference between multiprocess with shared-memory regions for anything that needs to be shared and multithreaded with mostly thread-local storage plus some shared data. The kernel is going to multiplex your single-threaded processes among the available cores just the same as it will multiplex your multiple threads among the available cores.

 _Multi-threaded techniques, like mutexes, don't scale on multi-core. Conversely, as Snort demonstrates, you can split a problem across multiple processes instead of threads, and still have multi-core code._

Synchronization is synchronization. There are inter-process synchronization primitives, including mutexes. And you can use lock-free synchronization in a single-process multi-threaded scenario.</comment>


The richest 10% of households now represent 70% of all U.S. wealth - <AUTHOR> https://www.marketwatch.com/story/the-richest-10-of-households-now-represent-70-of-all-us-wealth-2019-05-24?link=sfmw_tw <comment><USER2> How do you take into account negative wealth? If 20% of americans have zero or negative wealth, and you need the positive wealth from the 20th-40th percentiles to make up for the negative, do you say the bottom 40% account for zero percent of U.S. wealth? Or do you just call negative wealth zero for these purposes? How's the calculation work?

I'm asking because I'm wondering whether it's "the rich are too rich" vs "debt is getting crazy" or somewhere in between.

<comment><USER3> Money is debt.

Imagine an island with two residents. Alice and Bob. There is no difference between these two scenarios:

1: Alice has 1 seashell. Bob has 0 seashells.

2: Alice has 0 seashells. Bob has 0 seashells. Bob owes Alice a seashell.

Either way, Alice can go to bob and exchange her wealth for an apple. In scenario 1, she gives him a seashell. In scenario 2, she pays by voiding his debt.

Either way, Alice owns 100% of all wealth.

<comment><USER2> Isn't scenario 1 equivalent to

3: Alice has 0 seashells. Bob has 1 seashell. Bob owes Alice a seashell.

Once all the accounts are settled by Bob paying Alice the seashell he owes her, it becomes scenario 1, so this seems a better match for scenario 1 than scenario 2 does.

<comment><USER3> Maybe.

What I wanted to emphasize is that a dollar "In the bank" means nothing else then "The bank owes you a dollar".

And banks do not lend money they don't have. And where do they have it from? From other customers.

Ergo: Your $1 in wealth is someone elses $1 in debt.

<comment><USER2> I agree with that, but it doesn't answer the question of how to account for negative wealth in a X% of americans own Y% of wealth calculation. In scenario 2, Bob has negative net wealth. In scenario 3, Bob has zero net wealth (which is why 1 and 3 are equivalent, not 2).

Supposing we had a scenario where once all accounts are settled, Alice has 2 seashells, and Bob had -1 seashells, does alice have 100% of all wealth? 200%? (Equivalently, Alice has 1, Bob has 0, and Bob owes Alice 1)

(edit for everyone else: this thread is confusing because I changed my comment to respond to founderling's edit, but founderling responded to my original comment before I changed it... ¯\\_(ツ)_/¯)

<comment><USER3>
        Alice has 2 seashells, and Bob had -1 seashells
        does alice have 100% of all wealth

Yes. Bob has no buying power at all.

</comment></comment></comment></comment></comment></comment><comment><USER4> In other terms, top 1% owns 32%, leaving 38% for the 9% below that.

</comment><comment><USER5> > The national homeownership rate for the first quarter of 2019 was 64.2%, > according to the U.S. Census Bureau. That is below the historic average of > 65.2%, which dates back to the 1960s.

Ugh I really wish we stopped caring so much about homeownership. Misguided pro-homeownership policies got rates unusually high in the mid 2000s, reaching almost 70% by 2005. It had no impact on wealth equality and almost certainly made the Great Recession worse, if not causing it entirely.

<comment><USER6> The people who care about home ownership are either trying to justify/maintain the value of the home they own, or they're trying to sell you a home.

Since there's such a large number of renters, what happens if we just convince them to ignore the non-renters?

</comment></comment><comment><USER7> So we know that this distribution is bad for the economy, and these trends generally precede a recession or depression.

We also know that the policies that fix this, namely a wealth tax and or extremely high taxes on the wealthy generally don't produce the results you want (the ultra-rich tend to find ways to avoid said taxes so only the minor- rich end up paying).

So what do we do?

<comment><USER8> Why do you think such distributions generally precede a recession or depression? I don't see the causality here as clearly as say a yield curve inversion. And follow-up, why is that bad instead of just expected?

People have more purchasing power and access to goods/services than ever before. Perhaps the relative ubiquity of smartphones is the most emblematic sign of this. Put another way, things are better than they've ever been and even in the last ten years, quality of life has improved in many ways. So is there really a problem?

<comment><USER9> This argument is laughable. We all have smartphones so serious wealth inequality is OK? These days having a phone is a near requirement.

<comment><USER10> I don't have a comment on inequality generally, but what's your point specifically about a phone being a requirement?

Toilets are also a "near requirement" in any meaningful sense that phones are a near requirement. But toilets (and sewage more generally) are obviously quality of life improvements over what humans had in previous epochs of history.

Stated more succinctly: hasn't it always been common for major improvements in quality of life to eventually become the default, rather than the exception? Or am I misunderstanding your point?

</comment></comment></comment></comment><comment><USER11> What is pretty much missing from almost all articles about the top N% having M% of some resource where N < M is a discussion of what percent the top N% _should_ have.

Note that unless everyone should have exactly the same amount of whatever resource is under discussion, then the answer to that question is not N should equal M, because that is mathematically impossible.

<comment><USER12> > What is pretty much missing from almost all articles about the top N% having > M% of some resource where N < M is a discussion of what percent the top N% > should have.

This involves a value judgement that goes beyond reporting the facts that the article does. You'd have to go to the op-ed section for that.

Piketty has some ideas in his book:

* [https://en.wikipedia.org/wiki/Capital_in_the_Twenty-First_Ce...](https://en.wikipedia.org/wiki/Capital_in_the_Twenty-First_Century)

And even given the topic, and the book's length, I found it quite readable. Highly recommended.

</comment></comment><comment><USER13> Is this really a surprise? The 2008 bailouts were specifically targeted in a way that benefited the richest 10% of households disproportionately. Monies in the tax cuts and bailouts of companies were used for buying back stock [1], creating gains for those who owned stock but not for the other households that don't own sizable stock portfolios.

[https://www.cnbc.com/2019/05/25/the-stock-market-would-be- mu...](https://www.cnbc.com/2019/05/25/the-stock-market-would-be-much-lower- if-it-werent-for-companies-buying-back-their-own-shares.html?yptr=yahoo)

</comment><comment><USER14> Honestly thought it would be worse than that?

<comment><USER15> According to this, the top 1% control 32% of the wealth (and the bottom 90% about 33%, a bit hard to see on the graph).

According to the previously discussed Bloomberg piece (about Zucman and Saez), the top 0.1% of taxpayers own 20% of US wealth, the top 1% control 39% (and the bottom 90% have 26%).

So, it might be worse.

EDIT to add: Bloomberg piece discussed here: [https://news.ycombinator.com/item?id=19991496](https://news.ycombinator.com/item?id=19991496)

</comment></comment><comment><USER16> It's wild that neither this article nor the research paper it's based off of seems to define the absolute dollar value of those quantile cutpoints.

[https://www.federalreserve.gov/econres/feds/files/2019017pap...](https://www.federalreserve.gov/econres/feds/files/2019017pap.pdf)

</comment><comment><USER17> Well if 10 percent of the population contributed to 70 percent of the world's wealth then this is fair. Without the 10 percents leadership the world would not be what is is today.

Think about it, you're just an engineer. Anybody can build something trivial like a rocket ship, a super computer or a large hadron collider. However, not everyone has the leadership skills to actually inspire you build that rocket ship. That's why CEOs are so rare. If we weren't giving the majority of Americas wealth to these CEOs there wouldn't be any technology in the world today because nobody is around inspiring the engineers build this stuff. So this wealth inbalance makes perfect sense. The amount of skill involved with inspiring people vs building a light speed drive is incomparable, only the CEO can inspire engineers to build such a thing. If you hire 10 CEOs instead of 10 engineers and pay them 90 percent of Americas wealth you'd be accumulating so much leadership skills and potential into a single company that you won't even need the engineers anymore... The technology will just materialize from excess inspiration.

</comment><comment><USER18> The Pareto principle strikes again!

</comment><comment><USER19> Pareto's Distribution

</comment><comment><USER20> Is the Pareto distribution the way it is because on every time step the tail ends have exponentially more ability to pull away? Is there some sort of statistics concept that models time variation of distributions (first derivative?) or their acceleration (second derivative ?)

<comment><USER21> No. There is quite a bit of income mobility in the US, and these types of reports never really explore it. Instead, they leave you with the idea that the top 10% today are the same people that were there 10 years ago. Which is false.

<comment><USER15> Social mobility in the US is, by now, smaller than in many other developed countries, IIRC.

EDIT to add some sources:

> The key observation, based on a growing body of research, is that when it > comes to upward social mobility, the U.S. is truly exceptional — that is, it > performs exceptionally badly.

[https://www.nytimes.com/2019/02/28/opinion/ivanka-trump- soci...](https://www.nytimes.com/2019/02/28/opinion/ivanka-trump-social- mobility.html)

> Although the discovery of America's low mobility, compared to similar > countries, is relatively new, it turns out that mobility's been low for some > time.

[http://www.msnbc.com/msnbc/us-social-mobility- problem](http://www.msnbc.com/msnbc/us-social-mobility-problem)

> A new study indicates that from the 1980s to the 2000s, it became less > likely that a worker could move up the income ladder.

[https://www.theatlantic.com/business/archive/2016/07/social-...](https://www.theatlantic.com/business/archive/2016/07/social- mobility-america/491240/)

<comment><USER22> It's hard to compare, you have perfect mobility when everyone is dirt poor. In the USA it's possible for people to get really rich, so measuring how many from the very bottom make it to the very top is not a good metric; especially when composing to other countries whose top is in the middle. So if you compare mobility between income ranges you will find the US to be more mobile.

<comment><USER23> Every country has a rich upper class.

<comment><USER22> You need 10 million to be in the top 1% in the US and 700k to be in the top 1% in the UK. There's a big difference between going from 0 net worth to 700k than to 10 million.

</comment></comment></comment></comment></comment></comment><comment><USER24> A little bit of googling seems to indicate that the total household wealth in the US was $86 trillion as of 2015, and there are 127 million households in the US, so the average household has $700k net worth. If you have more than that (and many people in tech do), then you are a beneficiary of inequality, not a victim of it, and you don't have the right to whine about the billionaires hoarding all the wealth at your expense.

A surprising number of upper middle class yuppies love to act like they are downtrodden proles just because they have less money than Jeff Bezos.

<comment><USER25> Now do it with the median.

<comment><USER24> The point of using the average is to evaluate the hypothetical where all the wealth in the country were distributed evenly (and many of the people who claim to be victims of inequality would actually be worse off in a truly equal society).

<comment><USER2> The average wealth is the 84th percentile wealth. If everyone became worth $677k, 84% of people would be better off (inflation aside).

<comment><USER24> That is true, but people in the 90th, and 95th and sometimes the 99th percentiles still complain about how oppressed they are because billionaires exist.</comment></comment></comment></comment></comment>


We are slaves of electricity - <AUTHOR> http://www.extremetech.com/extreme/130024-electroslave

<comment><USER2> "Just for a moment, suspend your scientific beliefs and imagine that electricity suddenly ceased to exist. Waking up, your alarm wouldn't work. Unless you have a gas grill, you can say goodbye to your morning toast."

Uh, I'm not a scientist, but I imagine you would just die instantly.

<comment> mkr-hn Does this pedantry add anything worthwhile? This isn't like someone saying "my food has no chemicals in it," which reflects a problematic and easily manipulated misunderstanding.

No one's trying to sell electricity-free food.

<comment><USER2> Fair criticism. Maybe not, but I find the "what if foo was missing" arguments emotionally manipulative and so worth making fun of. It's like going up to someone in 1935 and saying, "What if _there wasn't any metal_? Your life would totally suck!"

Well, duh. If your point is "the industrial age depends on metal" or "the information age depends on electronics" go ahead and say it, but don't pretend like it's a novel idea.

(Though as pavel_lishin pointed out I totally missed the "suspend your scientific beliefs" part of the quote, I, uh, quoted. Oops. At least his deadpan response is funny.)

</comment></comment></comment><comment><USER3> It's not electricity. It's energy. Electricity is just a medium for transferring energy from source to destination. The amount of usable energy at our disposal is proportional to the level of technological advancement. See: <http://en.wikipedia.org/wiki/Kardashev_scale>

<comment><USER4> My sentiment exactly! We are dependent on energy itself. Numerous projects have proven themselves feasible for generating energy in a cheap & clean fashion. However, with all companies out to "make a buck", such innovations often get swept under the carpet. Example? Think back to the decision of the motor vehicle industry's choice to offer hydrogen-powered vehicles instead of water-powered ones.

<comment><USER5> Water-powered vehicles? WTF?

<comment><USER6> _Boiled_ water, rather

<comment><USER7> Ah, okay, steam powered cars I've seen before. Of course, they're not so much water powered as they are wood powered. The steam car is no more water powered than my car is axle powered.

Still, now I'm wondering about the fuel efficiency of a steam powered station wagon. How much wood would a wood-Woody burn if a wood-Woody would burn wood?

<comment><USER5> Steam engines generally have terrible efficiency, at least at small scale. At large scale they do well (lots of power plants are basically steam engines), but smaller scale means higher output temperature, less equipment to capture energy, etc. Wikipedia says that an engine that exhausts the used steam to the atmosphere will be 1-10% efficient, as compared with ~25% for a normal gasoline engine and 40-50% for electrical generation engines.

</comment></comment></comment></comment></comment></comment><comment><USER8> > Waking up, your alarm wouldn't work. Unless you have a gas grill, you can > say goodbye to your morning toast. Your car wouldn't start (or brake, or > steer, or do anything really). Trains, without signaling, would be dead > weight. Automatic doors at the entrance to your office, school, or favorite > coffee shop would remain resolutely shut. Your PC, your DVD player, your > wireless router, your digital camera, your smartphone — all computers > everywhere would be dead.

I feel that he's trying to overstate the role of modern electrical activity in our lives. Using myself as a counterexample:

* I, along with many other people, wake up without an alarm clock of any sort. And Mechanical alarm clocks exist, and are completely suitable.

* I do actually have a gas grill, along with most self-respecting cooks, it's a superior heating element. (I also cannot eat toast) and other than the starter, that continues to work without power.

* I do not take a car to work, an average car, while technically uses "electricity" it is never connected to the electrical grid, and afaik, the only reason it needs a battery is for the starter, which there are other ways around. Additionally, very few of the fundamental properties of a car are dependent on electricity. In fact many cars on the road today will continue to function (however poorly without power steering and the like) without electricity.

* The fact that signaling for trains is electrical, is a symptom of convenience, not a fundamental requirement.

* None of the doors I encounter frequently are automatic, not at my home, my office, or any of the coffee shops, or stores I frequent. Other than large department stores, automatic doors seem to be the exception.

* Yes, all my electrical devices would be dead, but seriously mentioning "DVD Player" as if it's important.

Then he goes on to completely skip the most noticeable life-changer when electricity goes out, Lighting. Modern electrical lighting has to be the most significant way that electricity affects our lives, and completely transforms the night.

That's not to say removal of electricity won't cause problems, specifically the "Instant" removal of electricity, but our fundamental dependence on it seems exaggerated.

</comment><comment><USER9> I really hate this link-baity title. We are not slaves to electricity. It is a useful tool, and like all tools, it shapes the way we live our lives.

I really wish people wouldn't upvote this stuff. It's about 70% flowery, overwrought generalities about electricity, and 30% hand-wavey press-releases about battery technology. Admittedly, the battery technology bit could be interesting, but I'd really rather read something substantial about it.

</comment><comment><USER10> The article goes on to focus on the need for advancement in battery technologies. Although the specific examples in view were mobile devices, I think that is one of the most interesting aspects of the work Tesla(TSLA) is doing. They are extremely motivated to make breakthroughs. Their business depends up on it.

</comment><comment><USER11> And another Carrington event could fry all electronics, and possibly all electrical equipment depending on how powerful it is, at any time.

<http://en.wikipedia.org/wiki/Carrington_event></comment>


How a Urine Test After Back Surgery Triggered a $17,800 Bill - happy-go-lucky https://www.npr.org/sections/health-shots/2018/02/16/584296663/how-a-urine-test-after-back-surgery-triggered-a-17-800-bill <comment><AUTHOR> Nationalized single-payer health care. Now.</comment>


Facial Recognition With KLIK: Point Your Phone At Friends, It Knows Who They Are - <AUTHOR> http://singularityhub.com/2012/02/18/free-facial-recognition-klik-point-your-phone-at-a-friend-and-it-will-tell-you-who-they-are/

<comment><USER2> The app has a link that lets you opt out of being identified by Face.com, the way I understand it.

It looked like it required either a Twitter or Facebook account to log in, although the page was a little confusing.</comment>


Tech stock collapse sure looks like bubble popping - <AUTHOR> http://finance.yahoo.com/news/we-wuz-wrong---tech-stock-collapse-sure-looks-like-bubble-popping-151711386.html <comment><USER2> I don't think there was much debate if we were in a _valuation_ bubble. I'm more curious how this will affect employment within the industry.

Back in 2001 we saw massive layoffs as companies which had no right to exist went out of business. While I'm sure there's a bit of fat like that around the edges (those "Uber, but for dogs" companies which existed purely out of VC funding), many of today's technology companies are profitable. Those companies are unlikely to need to go through large rounds of layoffs.

If that proves to be the case - we see valuations drop without extensive industry-wide layoffs - I believe that fits more into the "correction" definition rather than a bubble. At least in my mind.

<comment><USER3> I guess first there will be a stage of denial.. already starting in VC circles... then there will be acceptance and cost controls and finally bankruptcies.. This can play out in a year or could take two..

</comment></comment><comment><USER4> Is anybody tracking how Sam Altman's bet on the bubble is doing these days?

Ie, what's the latest valuation of his three propositions? Though it's still way too early to make any conclusions, as there's still four more years of potential growth.

[http://blog.samaltman.com/bubble-talk](http://blog.samaltman.com/bubble-talk)</comment>


Bitcoin Climbs as Futures Debut Fails to Incite Attack by Shorts - <AUTHOR> https://www.bloomberg.com/news/articles/2017-12-18/bitcoin-climbs-as-futures-debut-fails-to-ignite-attack-by-shorts <comment><USER2> You've been able to short bitcoin on okcoin, bitfinex, bitmex either via margin or through futures products for years.

Secondly, newly launched futures products will have very thin liquidity due to the lack of market makers. There is no way a short/long position on CME will move the market in a meaningful way for a while.

I wish Bloomberg et al will stop repeating this "you can't short" meme because it you can and you could for years.

<comment><USER3> Theoretically. In reality - real traders couldn't even trade this thing as there was no infrastructure and too much system risk. If I fund my speculative 100-500k trading account who guarantees I'll be able to close out and cash out when I want? Noone could so far. Futures market will add much needed liquidity and confidence that one could actually trade this thing actively and with apropreate position sizes.

So far all BTC trading was done mostly by hobbyists who have no clue how markets function.

<comment><USER4> 100% correct. It's painful to see how little otherwise intelligent tech people know about investing...

</comment></comment></comment><comment><USER5> So what do you guys think of this?

I believe all BTC trading spikes are driven by some of the existing owners swapping coins and cash every now and then to keep the trading volume high. It is in their best interest to get the prices bounce back higher whenever it goes down.

Once the price is manipulated higher, they can sell and keep the cash when someone who thought BTC is the next "I-Dont-Know-What-It-Is-But-Its-Going- Higher-Everyday" buys it. Since there are no regulators to protect against market manipulation, it's a fairly easy thing to do 'legally'.

As per GDAX you only need 10s of millions of dollars worth of coins to manipulate and mint money on this. Ordinary folks can't do it, but those who have been holding a few thousand or tens of thousands of coins can easily do this. The bitcoin billionaire brothers for example can do this. Buy every low priced limit order until it hits the price they want and then sell it off based on the frenzy buying on the back of the "always-bouncing-back-safe- harbor-currency".

Rinse and repeat every time price takes a dip.

I hope at some point someone will step into regulate things around bitcoin so that the real market demand will determine its prices. I read an article that people are mortgaging their homes to buy BTC.

If nothing changes, we might be looking at a sequel of the movie "The Big Short"

<comment><USER6> Cryptocoin exchange rates are largely defined by pump and dump whale gangs spreading rumors and luring in novice investors.

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

</comment></comment><comment><USER7> You would have to be nuts to short when there's an exchange printing billions of dollars of unbacked tokens they can use to drive up the price at will.

If you want to short cryptocurrency, short tethers.

<comment><USER8> I'm consistently confused as to who is buying all the tethers in such crazy amounts. It's not like they are appreciating in value. They are sort-of pegged to the dollar, but why not just hold the real dollars?

<comment><USER9> No one is buying those tethers. Bitfinex is printing them and using them on their own exchange's margin trading market. They use it to wash trade the price up or down as desired. There is some evidence they have been wash trading down to trigger stop loss sell orders and buying the cheap coins. Then they wash trade up and sell.

<comment><USER8> That answer doesn't make any sense. Bitfinex is buying bitcoins from itself?

Could you please explain in more detail?

<comment><USER10> People get upset when you print USD, so Bitfinex instead creates USDT out of thin air and then uses it to buy BTC on its exchange. This would be OK if the Tether was actually backed by USD reserves dollar for dollar, but there is zero evidence that this is the case.

<comment><USER8> I understand that, but my question is why would anyone buy USDTs in such quantities? The total is now close to a billion dollars, as far as I understand.

<comment><USER10> Exchanges make it cheaper/easier because they're all light on USD and banking/tax rules make all sorts of sketchy characters want to avoid USD. There are also probably a lot of people who don't know any better and think that it's as safe as USD.

</comment></comment></comment></comment></comment></comment></comment><comment><USER11> Could someone with some forex knowledge explain how cash-settled futures do and don't affect spot markets?

<comment><USER12> I and some others explained this in another thread [0] about a week ago. The basic explanation is that because of a simple arbitrage relationship between futures and spot, prices in these markets are tightly linked regardless of how the futures contracts are settled.

0\. Read the replies to this comment: [https://news.ycombinator.com/item?id=15895477](https://news.ycombinator.com/item?id=15895477)

</comment></comment><comment><USER13> I dont think there are any experienced shorters sane enough to short something with this much upward momentum. Once we get a decent downtrend though watch out.

<comment><USER4> That's not how it works... If you believe that "upward momentum" or "downtrend" mean something, why don't you go long now and sell at the first signs of weakness? Easy money, right? In reality, there are no simple and exploitable rules like this.

</comment></comment><comment><USER14> Literally drops after the article is published. From ~19,338 to now ~18,469

<comment><USER15> Authors probably shorted bitcoin before publishing the article.

</comment></comment><comment><USER16> I have to admit that I'm quite surprised by this, I had expected that the debut of futures would have caused an almost-instant disruption of supply and demand.

Still, any time now...

</comment><comment><USER17> The problem is that all of the Bitcoin futures are cash settled contracts.

This means that they are not resolved with delivery of the commodity and have no direct influence on the underlying markets.

<comment><USER18> Today BTC futures are gambling.

In China based on Bet365 data the most popular wager is direction of the market going i.e. up/down.

</comment></comment><comment><USER19> Short term betting (for or against) Bitcoin is unlikely to result in much profit.

<comment><USER20> It is not so much a directional play as it is a force for arbitrage opportunities.

<comment><USER19> True, but those arbitrage opportunities will stabilize the price and make other similar opportunities less profitable. I suspect that the real reason these haven't all been ironed out (exploited already) is because Bitcoin exchanges lack the infrastructure guarantee that transactions close when they are expected to, and thus the fee levels wash out much of the arbitrage (for now). But arbitrageurs operating outside the exchanges can use this to their advantage and probably harvest a bit of profit on the chaos for the time being.

<comment><USER20> Yeah - exactly.

</comment></comment></comment></comment><comment><USER3> What goes up must come down. What goes up fast and hard usually falls faster and harder. Market 101.

<comment><USER21> That's not how it works.

<comment><USER22> What do you disagree with?

<comment><USER23> When was the last time gold was traded for < $10? Not everything that goes up is surely to go down. At least not in a lifetime. Nobody really knows what's going to happen, that's market 101.

<comment><USER22> Everything goes to 0 eventually. The statement is true. Gold is obviously much less likely to go to 0 unless the human race is either on the brink of extinction or extinct, but when you're talking about stocks or currencies a huge percentage will go to zero in less than human lifespan.

</comment></comment></comment></comment></comment><comment><USER24> Did not read the article, looks like someone is writing to boost the rise. As of this writing BTC is about $18.6k. It was hovering around $19.5k this past weekend.

<comment><USER25> This seems to be the case with most of the articles about Bitcoin. I suspect there are a number of large holders and exchanges paying PR firms to get stories like this published/upvoted/etc and keep the train going.

<comment><AUTHOR> I don't view Bloomberg as a paid-to-write-articles-to-sell type of place [edit: other than advertising space]. Otherwise no one would be taking them seriously, least of all financial professionals sitting in front of their expensive terminals.

Call me skeptical about the alleged claims about Bloomberg's motives.

Also the article doesn't contain mind-blowing information, it's just pointing out that shorting isn't happening yet.

<comment><USER25> I'm not suggesting Bloomberg is accepting money, but individual writers would be a much softer target.

It's also possible that the writers are invested in Bitcoin themselves.

<comment><AUTHOR> Anything is possible, but an accusation of bad faith requires more than the off chance that the accuser is correct. Some argumentative support for the accusation, for example.</comment></comment></comment></comment></comment>


Do not vibrate phone if on a table - <AUTHOR> http://firespotting.com/item?id=281

<comment><USER2> Not discussed, but what about a variable vibrate strength? Slowly ramp it up, use the mic to monitor the noise (but maybe background noise would mess this up?).

</comment><comment><USER3> I actually like that it makes a noise for alarms, and somewhat rely on that fact when I want to make sure I don't miss the alarm.</comment>


A Quiet Approach to Bringing Down Malaria - <AUTHOR> http://www.nytimes.com/2014/10/21/science/a-quiet-approach-to-bringing-down-malaria.html

<comment><USER2> I clicked through to a linked article on drug combinations being used to combat chloroquine-resistant malaria [1]. Nothing seemed amiss until I reached the bottom and saw a missing image for a _" Map showing the distribution of drug-resistant malaria in 1987"_.

I checked the byline, and low-and-behold, that article was published in 1987!

Amazing, though not surprising, that the digitised legacy of the paper is being put to good use by the writers and editors of today.

[1] [http://www.nytimes.com/1987/12/08/science/drug- combinations-...](http://www.nytimes.com/1987/12/08/science/drug-combinations- offer-new-hope-in-fighting-malaria.html)

</comment><comment><USER3> Pretty good as a short biopic. I'd be interested to know more about the folks he works with and how he actually runs his organization aside from just that he goes through a lot of shoe-rubber.

</comment><comment><USER4> What a wonderful story. I was struck by the anecdote about the the medal given to the village chief.</comment>


Looking for help improving performance of GNU Make - <AUTHOR> http://lists.gnu.org/archive/html/help-make/2014-10/msg00000.html <comment><USER2> I've had luck using [https://github.com/dmoulding/boilermake](https://github.com/dmoulding/boilermake)

It's a GNU Make framework which allows you to create non-recursive Makefiles. I've re-worked it a bit, and used it in my pet project: [https://github.com/freeradius/freeradius- server/](https://github.com/freeradius/freeradius-server/)

100K+ LoC, ~400 source files, multiple subdirectories, building libraries, executables, etc.

Most of the slowness of Make is due to people creating recursive Makefiles. Running endless shell programs is very slow. Make by itself is surprisingly fast.

The other benefit of non-recursive Make is that the builds can now go in parallel. What used to be a ~90s build is now ~7s on a multi-core machine.

I also replace libtool (shudder) with jlibtool. That was taken from Apache, and modified to fix bugs work better, etc. That sped up the build a lot, too.

Maybe I'm crazy, but these tools have worked across all Unix-y platforms I've tried. And I needed a migration path from recursive Make / libtool to something better. Dropping the build system on the floor and hoping for something better wasn't an option. This tool suite works much like the old one, but it's simpler, faster, and doesn't require additional packages (python, etc.) to do the build. Everything outside of Make is self-contained, and is included in the FreeRADIUS distribution.

My projects:

[https://github.com/alandekok/boilermake](https://github.com/alandekok/boilermake)

[https://github.com/alandekok/jlibtool](https://github.com/alandekok/jlibtool)

[https://github.com/alandekok/boilermake](https://github.com/alandekok/boilermake)

<comment><USER3> If anyone wants to do non-recursive make for big projects, I would take a look at what the Android platform does. They have this elaborate Android.mk makefile fragment system.

At the beginning of the build you go and find all the fragments, then process/concatenate them into one huge makefile, and do a single make invocation. It results in a very parallelizable build.

It seems kinda crazy and hacky but it definitely works better than recursive make.

For some reason the best docs seem to be on this Korean site:

[http://www.kandroid.org/ndk/docs/ANDROID- MK.html](http://www.kandroid.org/ndk/docs/ANDROID-MK.html)

<comment><USER4> Except parsing all the Android.mk and computing the dependencies is slow as hell.

Try running make at the top of an AOSP tree, it takes about 60 seconds, and that part cannot be parallelized.

If you are looking for alternatives, have a look at [http://martine.github.io/ninja/](http://martine.github.io/ninja/)

<comment><USER3> Yeah definitely if you were starting from scratch, I would consider other build systems.

But if you already have a huge mess of recursive make, it might be easier to port it to a non-recursive Android-like system then completely rewrite it with gyp/gn/cmake + ninja.

It would speed up your full build times; not sure what it would do to incremental build times. It is true that the Android.mk thing has a large startup cost. Then again, you're building a whole OS with one make invocation, which is kinda cool.

</comment></comment></comment></comment><comment><USER5> I really hope someone takes the job offer, fixes the problem however possible, and then publicises the process.

This is what free software is supposed to be about: you can hire anyone to fix it. Let's put theory to practice now and actually hire someone to do it.

Edit: You know what, I'm now determined to now headhunt this person. It's the principle of the thing. Once I get the original poster's permission, I am reposting this ad on freedomsponsors.org, bountysource.com, and on the GNU job list: [http://www.fsf.org/resources/jobs](http://www.fsf.org/resources/jobs)

</comment><comment><USER6> Summary:

> _What we see is that if we have more than 30 or so clients connected to the > build Make is often unable to generate tasks fast enough to keep them busy._

[…]

> _Our management doesn 't want us taking time to learn the internals of make > and see if we can improve it ourselves, but they are willing to throw money > at the problem, either by offering some sort of donation/bounty for > performance improvements or directly hiring an expert on a contract basis; > any improvements achieved would of course be submitted back to the community > as patches._

</comment><comment><USER7> Last month at EuroBSDCon, Marc Espie gave a neat talk describing some of the performance improvements he's made to OpenBSD's Make (and some positive words about Ninja as well) – [http://www.openbsd.org/papers/eurobsdcon2014-parallel- make.p...](http://www.openbsd.org/papers/eurobsdcon2014-parallel-make.pdf)

</comment><comment><USER8> Make has so much legacy cruft handling, people just moved to other systems that are simpler.

Most developers don't even know most of the features make, and people don't really want to learn such an old program through and through.

<comment><USER9> Mmh, which build system do you think are simpler than Make?

Make has a lot of quirks, but at its core it is a simple system.

<comment><USER10> Cmake/ninja is becoming the standard for new C++ projects.

<comment><USER11> Cmake is a fucking nightmare to work with. Autotools are light years better and more robust than cmake.

<comment><USER12> I have a love/hate relationship with cmake.

Writing non-trivial functionality in cmake's language is possible but you're fighting the language the entire way. It would have been so much better if they'd just started with something like Lua and extended it instead of building their own barely-adequate scripting language. Some of the grossest code I've ever written is in cmake macros.

On the other hand, the results you get from cmake are fantastic. Want to use ninja instead of make? Just pass a compile flag. Need Visual Studio project files? No problem. Xcode? Kdevelop? You're covered.

Honestly I couldn't imagine ever going back to autotools at this point.

</comment></comment></comment></comment></comment><comment><USER13> If they're building C/C++ with it then this is a good option: [https://github.com/Zomojo/Cake](https://github.com/Zomojo/Cake) \- which is really just a front end to make, but produces really fast makefiles.

It was initially developed to allow interactive speed iteration of compiling large C/C++ projects for data analysis.

It does require that your source code comply with a few basic rules (just that c/cpp files and headers have the same name). But beyond that it runs automatically and quickly.

</comment><comment><USER14> Unfixable. Use ninja instead.

<comment><USER15> You might actually be right. Even though I didn't use ninja, given their description a specialized build system for fast build that circumvents the problems they mention that make their build slow might be the solution.

But are they not giving way not enough information to seriously assess their situation? That - combined with the shortness of your comment and that people could think it's a joke - would explain your downvotes.

<comment><USER14> At least they've explained that dependency resolution seems to be the bottleneck, and Ninja solves this particular source of congestion most nicely.</comment></comment></comment>


Deciphering Xcode's Index - <AUTHOR> http://spaceisdisorienting.com/deciphering-xcodes-index <comment><USER2> Unfortunately, the real question is why it's so hard to accomplish any work in this IDE.

I used to like making small, quick changes in Xcode. Despite Xcode's many quirks, prior to Xcode 8.x it was at least _possible_ to be productive when using Xcode to edit text. Not anymore — now, if you don't have an external editor then you will have a serious problem. Xcode lags in ways that I cannot seem to fix no matter how many settings I turn off. _Something_ has started dragging the cursor in Xcode 8.x so much that it lags painfully far behind my typing, even for really small files. It......feels......like......this...... when......trying......to......change......just...... a......few......letters...... even......on......one......line. And I really wish that was an exaggeration. Worse, this even happens when you _delete_ a character so you have to lag your way _back_ to fix mistakes that you made.

I knew from the moment Interface Builder was "integrated" that Xcode would slowly grow into an unusable monolith, and I think it's there. I simply cannot imagine a good justification for stuffing _that much_ into one tool. It is possible and preferable to have a series of separate tools that still support some form of cross-communication.</comment>


Wikileaks Put Women in Turkey in Danger, for No Reason - <AUTHOR> http://www.huffingtonpost.com/zeynep-tufekci/wikileaks-erdogan-emails_b_11158792.html <comment><USER2> I think someone gave wikileaks the white pages.

"this "leak" actually contains[...], sensitive information of what appears to be every female voter in 79 out of 81 provinces in Turkey, including their home addresses and other private information, sometimes including their cellphone numbers"

</comment><comment><USER3> So they deliberately only put details about women on the internet? Or was it not deliberate and the data set just happens to be only women? Or are men included and we don't care about them?</comment>


Thanks to OpenID and OAuth, the Open Social Web is Beginning to Emerge - <AUTHOR> http://blog.wired.com/monkeybites/2007/12/thanks-to-openi.html <comment><USER2> I'm quite hesitant about giving any third party access to my personal data, although Facebook clearly has a very accurate profile of me. However, OAuth seems quite cool if I ever were to do so on a more extensive level (for instance, I've never given facebook access to my gmail account for it to obtain my address book).

I'm not keen on OpenID though. At the moment if someone grabbed my facebook password I'd be understandably annoyed. But if someone grabbed my OpenID password, and I used that for lots of sites, I'd be devastated.

<comment><USER3> So use a good password, and don't use an untrustworthy OpenID provider.

Most sites will send auth details by email if you forget your password; having your email password taken is just as much a risk as having your OpenID password taken.</comment></comment>


Show HN: Build your apps up to 10x faster with no-code app templates - <AUTHOR> https://www.producthunt.com/posts/zeroqode <comment><USER2> Hey everyone, I'm Levon - Founder of Zeroqode. We are excited to launch today and I'll be around to answer any of your questions. Thanks!</comment>


Do I have to develop for a niche market? - <AUTHOR>

I've used a few web analytics packages over the years, and they've all been a pain to work with. I want to develop a system that's dead-simple to use/install. The issue, though, is that the more I read about forming a startup, the more I hear people say that I must develop for a niche market if I want to succeed.<p>Would you say that "really simple web analytics" has a much higher chance of failure than say something like "really simple web analytics for physical therapists"? Is it always the case that "X for everyone" will always have a much harder chance of becoming profitable as opposed to "X for Y profession"? <comment><USER2> It's impossible to say how specialized your product should be, that's something you have to figure out very early in the startup phase. It could turn out that the niche market is far too small to be viable, or you could end up in a situation where niching is the most suitable course of action because the market is over-crowded.

Are you using professions as an example or actual market segmentation? Because I don't see how usage of a web analytics package could differ from one profession to another unless your product is very tightly integrated with the IT systems - web site, booking, planning, etc - that a profession sues.

Furthermore, are you sure that web analytics packages are difficult to work with? From my perspective, as an end-user, Google Web Analytics is incredibly easy to set up: just verify domain ownership and insert the tracking code. The problem that I have with Analytics is that I'm not sure how I can utilize all the data to 100%. So what if 30% of my visitors unexpectedly come from Spain? I would love a solution that was more problem-goal or business development oriented.

<comment><AUTHOR> I was just using professions as an example. I don't know much about therapists or what they would use web analytics for. :)

What do you mean by a solution that's more business development oriented? Are we talking something like a tool-tip that pops up and says "hey, 30% of your customers are from Spain, so here are some links to Spanish SEO tips"? Would the application need to suggest what you should do to improve your site, or should it just present data in a way that makes it easier for you to make important decisions?

</comment></comment><comment><USER3> The more closely coupled your product and market are, the more you paint yourself into a corner. (You can sell a dead-simple product to a physical therapist, but you can't sell a physical therapy product to anyone else, no matter how simple it is.)

Or, if you prefer a pun: "If you're having URL problems I feel bad for your son - I got 99 problems but a niche ain't one."</comment>


CDC: Flu has reached epidemic levels, 15 child deaths so far - <AUTHOR> http://www.usatoday.com/story/news/nation-now/2014/12/31/cdc-child-deaths-flu-influenza/21104671/

<comment><AUTHOR> Vaccine is almost useless this year, I wonder if they need better analysis to guess what to use.</comment>


Ask HN: Great Book for learning PHP? - <AUTHOR>

I use the pragmatic guys for learning new languages. They don't have a title on PHP though. Can anyone suggest a great PHP book or tutorial? <comment><USER2> I read a lot of books, and many of the PHP books are so-so. "PHP in Action" is the best one I've personally read. [http://www.amazon.com/PHP-Action-Objects- Design-Agility/dp/1...](http://www.amazon.com/PHP-Action-Objects-Design- Agility/dp/1932394753)

Avoid the "Teach Yourself in X Minutes" books. That's where I learned from too, but feel there are much stronger entry points.

</comment><comment><USER3> I learned PHP from this book:

Sams Teach Yourself PHP in 10 Minutes ([http://www.amazon.com/Sams-Teach- Yourself-PHP-Minutes/dp/067...](http://www.amazon.com/Sams-Teach-Yourself-PHP- Minutes/dp/0672327627/ref=sr_1_1?ie=UTF8&s=books&qid=1287979666&sr=8-1))

</comment><comment><USER4> The docs at the PHP site are actually really great with examples, comments and a tutorial style intro for everything PHP. I would just go through those docs and try out the examples. Otherwise, just get to work coding, you will learn faster that way.

</comment><comment><USER5> I really like the CORE series of books, i.e. Core PHP

I also build stuff and learn at the same time, which means a forum comes in handy. Check out PHPBuilder, I am on there if you need help.</comment>