skysight-inc/HackerNews huggingface dataset:
In many languages it's difficult fixing the string type without breaking existing code. In Ruby: String#upcase only handles ASCII (by spec), #length counts codepoints, #reverse reverses codepoints.

You can use UnicodeUtils if you need "full" Unicode support:

>> UnicodeUtils.upcase("baﬄe")
=> "BAFFLE"
>> graphemes = UnicodeUtils.each_grapheme("noe\u0308l").to_a
>> graphemes.reverse.join
=> "lëon"
>> graphemes.size
=> 4
>> graphemes[0, 3]
=> "noë"
>Competing platforms/ecosystems slow down innovation?

Yes. That's what killed the vision for massive adoption of desktop Linux for one thing.

That's what hampered a good Java web story (tons of competing frameworks).

It's why there are several slow scripting languages (Python, Ruby, Perl, etc), whereas Javascript got crazy fast as the only game in town when it comes to the web.

The reverse of that (Rails as the "one true framework" instead of tons of competing stuff) is what helped Ruby make waves.

Especially when the "competing platforms/ecosystems" are needlessly competing. It's a waste of effort, people duplicating features and stuff.

>The Central Bureaucracies such as W3C make change (granted positive or negative) slower.

The central bureaucracies are actually "competing platforms/ecosystems" too, only they are competing for inclusion in the one same standard. MS, Apple, Google, Oracle, IBM etc each wanting their own APIs and changes to the final spec (which is slow).

Most progress has been made by ONE SINGLE company going at it and inventing something new on their own that others adopt more or less wholesale (e.g Apple with Canvas, MS with AJAX, Mozilla with asm, etc).

Constrast that to each of those companies having its own competing technology for the same thing (e.g different canvas drawing APIs) instead of adopting one and being done with it.
You are overthinking it.

If it doesn't come naturally to you (like the author by her own admission), there is likely a good reason that you find it uncomfortable. Like maybe you actually don't have anything interesting to share. Or you don't really care about the people you are meeting. In either case, no point in faking it or pretending, find a social context that you actually enjoy.

Lots of people are shy in general gatherings but completely light up in the company of others who share their (geeky) interests.
Mind was a website to schedule an elective class for my school, it launches in january.
"noe\u0308l".size # => 5

ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-darwin13.0.0]
We are all doomed.
Show HN: Share data between HTML5 browsers
Honestly, I've got no idea what the OP was trying to say... I think they are implying that asm.js is cool, but they're annoyed that it's being built on top of JS rather than from-scratch.
The Unicode standard includes uppercase rules. If you're already representing strings using Unicode codepoints, why not follow the whole Unicode standard?

EDIT: And yes, different languages can have different uppercasing rules. There's still a standard: https://github.com/lang/unicode_utils/blob/master/data/CaseF...
The most cost-effective medical treatments are preventative, followed by early diagnosis.

If you can't deny coverage for a pre-existing condition, or raise premiums when someone develops a new disease, you shift to reducing your cost by doing what's most effective. That's the best part of the ACA.
I find it funny that the comment police seems to think the NSA scandal is over, when it is in fact very much alive and kicking over here in Europe.

Mainstream press is reporting and new things come to light every day. On top of that, the scandal is completely devouring any trust people had in US cloud companies.
Ah, oops. I read the post too quickly, now I see the problem.
great blog entry, moxie et al. it is wonderful to see what i consider to be legitimate improvement in crypto protocols.

NOTE: i still think it's a really poor idea to assume that encrypting stuff on your mobile device / smartphone will actually protect you since every default mobile OS has, at a minimum, an OS-vendor installed backdoor.
The usual goal is to apply a consistent transform though, to smooth out interpretation differences - i.e. when looking for command input I either lowercase or uppercase things to smooth over the fact that "yes" "YES" "Yes" are all completely valid ways of saying the same thing with those characters.

If there's only one way of expressing the thing - i.e. a single chinese character - then it would be valid to do nothing. It's just in english "y" and "Y" might change context, but as far as computer input is generally concerned they are the same thing.
I think the claim made is that the powers that be are actively working against Bitcoin, here by tarnishing its reputation with sensationalist research.
I'm very good at not doing that! In Australia I managed three weeks without speaking to another human being beyond ordering food and checking in to hotels. I'm not really the talks-to-strangers-easily type.
I definitely recommend poking around the console on this site!
Fair enough. Maybe I am not impressed by the "honesty" depicted in the job posting. Being honest won't redeem you from being exploitative towards other people.

I agree that you should attack arguments and not people. Maybe the author of the article got
a bit over excited.
Man, adding a close button sure is a hard thing to do these days. Come on Quora, it's bad for your business, and we all know it.
It depends if they also run some random version of Linux.
Here are the Unicode rules, which do consider localization: ftp://ftp.unicode.org/Public/UCD/latest/ucd/SpecialCasing.txt

It would be interesting to know how often these rules are actually used though...
Seems to work fine on 3.3.3 (Linux)

Python 3.3.3 (default, Nov 23 2013, 09:49:26)
[GCC 4.8.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> a = "noël"
>>> len(a)
4
>>> a[::-1]
'lëon'
Put It Out There
I feel like PNaCl is the technically superior approach - define a stable set of LLVM bytecode and build an interface to run it in the browser. But the uptake is a problem, no other browser maker wants to adopt a big chunk of code controlled by Google, tailored to run optimally in Chrome.

So asm.js took a beeline - leveraging existing Javascript machinery for security/JIT and shoehorning a way to run executable LLVM on top of it. The fact that it's Javascript is just a detail, a legacy of the days when one vendor (Netscape) was able to push through a standard for running code in the browser.

In today's fragmented browser landscape I find it hard to believe a consensus could be reached again. Most of the major browser makers (Google, Microsoft, Apple) have their own platform agenda to push - in that context asm.js's compatibility with existing Javascript engines gives it the best chance of adoption.

But I agree, the hoops that had to be jumped through are a damned shame.
>At the same time, health insurers can’t increase premiums for these potentially expensive customers because of the Genetic Information Nondiscrimination Act (GINA), a law that makes it illegal to do just that.

Wth? Do people not understand the point of insurance?

This also stifles innovation since they would otherwise have an incentive to invest in this technology. And more importantly it would save people's lives if the insurance made them take tests and caught this stuff early.
A proxy or cache doesn't substantively process the data. Here they are processing it if they are constructing anonymised models from it as you suggest may be the case. If they're processing it then they need to retain it long enough to perform those operations.

In the case at hand if they're processing it then they've "retained" it long enough to do that which is contrary to the spirit of the statement that it was 'fine that data was being sent to them as they weren't using it'. They used different words but this is the point of contention.

Either they discarded the data without further processing, amalgamation, statistical analysis, model construction, archiving or anything else or they used the data.

If they used the data in any way then it's a constructive lie even if there is some weaselling way in which their statement can be construed to be true.
Not everyone will buy insurance even with ACA (I don't plan to, now that cat coverage is illegal) and genetic tests can cause people to select Platinum vs Bronze plans (or whatever the exact categories are).
I am unconvinced by the usefulness of those new TLDs. Am I the only one?
It's ignoring history. The author is saying that browser developers should get together and agree on something better than JavaScript. At first this seems quite possible, since browsers come out with new features all the time. But people have been trying to replace js for a long time and it has never ever worked.
True, The C++ Standard Library is a very good book as well
Steps to Getting Users’ Insights while Avoiding a Bruised Ego
I'm doing almost the same job, in Northwestern University for 37k year.

few highlights:
1) - Saturday night deadlines for Sunday evening.
2) - Management decides Monday 1:30am that the new release has to be Monday 9:00 am.
3) - >70h week, and always on call
4) - shitty overstressed environment
5) - might loose my job if the boss get fired, which implies loosing the status, therefore deportation.
6) - planned vacations canceled few days before, because "there's this really important last minute thing".

you people have no idea of what the life of non us citizens can be. I'll probably improve my status working for PA, but they'll never consider going trough the immigration madness.
I hate to be that guy, but you're using IE.

On a serious note, you can't really blame people for not supporting a browser that needs hack for every single version.

Related: http://www.paulirish.com/2011/browser-market-pollution-iex-i...
I hear, for instance, that T-mobile is still using Carrier-IQ, and that's without considering the "other OS" for the phone's radio:

http://www.osnews.com/story/27416/The_second_operating_syste...
The problem with text (that Unicode solves only partially) is that text representation, being a representation of human thought, in inherently ambiguous and imprecise.

Some examples:

(1) A == A but A != Α. The last letter is not uppercase "a", but uppercase "α". Most of the time, the difference is important, but sometimes humans want to ignore it (imagine you can't find an entry in a database since it contains Α that looks just like A). Google gives different autocomplete suggestions for A and Α. Is this outcome expected? is it desired?

(2) The Turkish alphabet is mostly the same as the Latin alphabet, except for the letter "i", which exists in two variants: dotless ı and dotted i (as in Latin). For the sake of consistency, this distinction is kept in the upper case as well: dotless I (as in Latin) and dotted İ. We can see that not even the uppercase <==> lowercase transformation is defined for text independently of language.

These are just two examples of problems with text processing that arise even before all the problems with Unicode (combining characters, ligatures, double-width characters, ...) and without considering all the conventions and exceptions that exist in richer (mostly Asian) alphabets.
One more lesson? It's not spelled "Columbia", that is the name of a city in the US. If you are referring to the South American nation it is "Colombia". With an O.
Just another reason why private health care as default is a broken concept. It is already broken from an human standpoint as it makes people in a very hard moment of life to care about money, and the more it will be possible to predict illness in general, the more broken it will be for the reasons expressed in the article.
This is the test case: https://eval.in/73766

print(len("noe\u0308l"))
What a teacher this guy is! Khan Academy CS also uses Processing.
Mr Narendra Modi
Oh, I wasn't aware that OpenCL also can run on the CPU, I always thought that it is GPU-only, thanks for pointing that out! How fast is that? Is that comparable to uBLAS or ATLAS or so? Can that scale to multiple CPU cores? Does it use SSE or similar technics? Or does that depend on the implementation? What can I expect in common desktop PCs?
I'm not sure I agree with the title, although I do agree with just about all of the content:

* a string type is probably a good idea to bundle the subtleties of unicode, a plain array or list (whether it's of bytes or of codepoints) won't cut it: standard array operations are incorrect/invalid on unicode streams

* the vast majority of string types are broken anyway, as even in the best case they're codepoint arrays (possibly with a smart implementation). The bad cases are just code unit arrays, which break before you even reach fine points of unicode manipulation

And then, you've got the issue that a lot of unicode manipulation is locale-dependent, which most languages either ignore completely or fuck up (or half and half, for extra fun)
Gynecologists may treat men for anal cancer, board says in switch
Birth and death of stars captured by Very Large Telescope
> You could tell me that, worldwide, I'm the 1%. I have a place to sleep (heated), food to eat (cooked), and the safety of a policed city. Boom, that's more than most of the world will ever dream.

Oh for God's sake. I'm fairly sure you're not actually in the worldwide top 1% just for having food, housing, and safety. Those things have actually been reasonably common throughout history.
I think the mistake here is seeing a string as an extension of an array or vector. What I would prefer is a string type that didn't support all the operations of vectors. The length of a string is not inherently a meaningful question (and for the cases where it is, what you want is something like a vector of grapheme clusters - which is a useful type to have, but not so useful that every string in your program should incur the overhead of creating such a thing); likewise reversing and splitting are operations that simply shouldn't be allowed for your "fast path, undecoded string" type.
This HN submission is useless and demoralising, bordering on cyber begging. At the bare minimum he should have provided details about what went wrong.

The only moral to be learned is the obvious one: don't risk everything when you have dependants who will suffer.
Appears to be using cubic bezier CSS3 Transitions. https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Using...
No. In fairness to the operators though, I tend to think of these just like any other startup - they don't need my support for their business plan in order to give it a shot - so long as they can fund it and find customers, who am I to judge whether or not what they are doing is useful.

I say this because for some reason people feel like these strings should be vetted before they go into the root and all sorts of obstacles are thrown in the path of these nascent ideas. Most of ICANN's work in the past few years has been focused on creating and implementing these obstacles in the name of "stability", etc. I'm not advocating for a completely open root, but what we've got is a bit much.

obDisclaimer: I work for a registrar.
Pope Francis's Theory of Economics
They may not be truthful, but I think they're honest in the sense of not deceiving the person you're speaking to.
I would argue that it's a unicode problem. `U+0308` shouldn't exist in the first place as a unicode character. That's why we have `U+00EB` ('LATIN SMALL LETTER E WITH DIAERESIS'), etc.
Customers getting pointless preventative care such as mammograms before age 50 increases costs in two ways. First, the mammograms cost money. Second, the mammograms make the patients less healthy (via stress, unnecessary biopsies, infections caused by the biopsies, etc) which costs even more money.

Luckily Congress is looking out for women and passed a law requiring medically useless tests.

http://www.bloomberg.com/news/2012-07-31/in-mammogram-debate...

http://www.uspreventiveservicestaskforce.org/uspstf/uspsbrca...
1. It's decompose, reorder, compose. So you can see some weird stuff like ḍ̇=ḋ○̣ → NFD=d○̣○̇ → NFD=ḍ○̇

2. It's not compression, it's normalisation. So it's not compose everything you can. I cannot tell you exact the algorithm off the top of my head, but:

the reason for U+1D160 — it's in CompositionExclusions list.
That's because in a truly sane languages there should be a distinction between data type and its implementation.

Then it would be not "string" type, that's broken, but an implementation of "string" type.
>The hype is real.

Time to sell!
I can understand that POV, but I expect you're in the minority. Most people in my experience respond better to "I respect you," than to "I used to think you were a cock, but now I'm reconsidering and starting to respect you."
I wasn't trying to say this simulation isn't rad (it is) but the idea that the contribution here is that it does fluid dynamics on the gpu is absurd
That's incredibly condescending and uncalled for. I would say "this doesn't belong on hn" but in fact, you shouldn't make fun of anyone, ever.
A better way to donate
So did you learn anything? :-)
Second this. I get that they are saying - asm.js is cool, but it's on JS, so eugh.

Personally I'd love for a really low level language (statically typed, little if any magic, no-GC, multi-threaded) to work across all browsers, but I don't think browser vendors can just sit and say - here is the perfect cross browser language that will make all of net easy.

Perhaps the best strategy is to have low level strict language on top of which you build more easier to use constructs - which describes IMO both asm.js and PNaCl.
No - DDG simply redirects your query to Startpage. For me, it's just a convenient way to reach out to Google when DDG doesn't cut it.
I read this story and I couldn't help but think about the actual extent of the pressure that was brought to bear on Aaron Swartz and whether or not there's a lot more to that story than we've been made aware of.
Uber minimal ios7-alike Alfred theme
Hmmmm. why do you teach arrays before containers? And why is so little if any time spent on the std:: containers (ctrl + f deque returns nothing).

The word template is mentioned 3 times, and never once on how to write your own basic templates (no, that's should not be considered advanced).

Finally, why do you keep using the `.open` member function for your streams rather than specifying the file path in the constructor and then testing the validity of the whole stream rather than individual flags.

ie:

std::ofstream ofs { "my_file" };
if(ofs) { ///sucess...

You also don't even begin to touch on the standard algorithms. Take for example the book "Accelerated C++". It's only 300 pages, but it has the reader writing modern code with containers and standard algorithms with in the first few pages. It's a much better approach in my opinion.
I think your first assertion can be strengthened even further. It isn't like this is unique to letters that look the same. That is, sometimes WORD != WORD. Consider a few common words. Time? As in Time of day? As in how long you have? An interesting combination of the two? Day? As in a marker on the calendar? Just the time when the sun is out? Then we get into names. Imagine the joy of having to find someone named "Brad" that isn't famous. From a city named Atlanta, but not the one in GA. (If you really want some fun, consider the joy that is abbreviations. Dr?)
Homoglyphs vary sometimes with text styles, though. So Α doesn't always have to look like A. Or, more to the point, while T and т might look alike, T and т often do not (the latter of which often looks like m). So even as humans we need to keep track of the script at times.
> That's why the eventual value of bit-coin is supposed to be the value of the energy required to maintain it [...]

This is incorrect. The value of the sum total of fees over a certain period, will be equal (or slightly greater) than the cost of the energy required to maintain Bitcoin.

The value of Bitcoin itself is not limited to the amount of energy required to operate it. Confirming a 1M BTC transaction requires the same amount of energy as confirming a 1 BTC transaction, so the cost of the amount of energy expanded is not a limit to the value of Bitcoin.
Democrat Pundit Admits Even Her Doctor Husband Opposes Obamacare (Video)
Its the 21st century compliment to "bread and circuses"...
Ah, I see, the decomposed case indeed doesn't work as well.
You mean mathics? Perhaps. I don't know how important it is to liberate mathematica code. It doesn't seem to have the deployment that Matlab has.
The test case is decomposed.
> When the Drive Crisis started, industry pundits estimated that the hard drive market would take anywhere from 3 months to 1 year to recover. No one guessed two years. Was the delay simply an issue in rebuilding and/or relocating the manufacturing and assembly facilities?

This is a typical response in all markets that are commodities (or approaching commodity status). Once makers have had an excuse to move prices up, they want to hold onto the extra profit for as long as they can, so prices are fast to rise, but slow to fall.

The most direct effect can be witnessed in gasoline prices. Notice how a news report that a camel farted in the desert of Saudi Arabia results in the price of gasoline at your local station rising by 25 cents a gallon (or more) nearly instantly. Even though the gas in the underground tanks was the same gas (at the same cost to the station) that it was 15 minutes ago.

But then, it takes weeks before that 25 cent increase goes away when no more camel farts occur over those same weeks. Same effect here, just with hard drives rather than gasoline.
I'm very impressed by the Epic Citadel demo. But how do you debug a C/C++ program that has been converted to asm.js? Whats the current tooling like?
Do people really need to reverse strings in the real world?

I don't think I've ever written code to do that outside of homework assignments and interviews.
I would love to register

["porn."+ tld for tld in ["guru","plumbing","bike","equipment"]]

also ass.ventures
Not all combination of base and combining characters exist in a precomposed form, since a base character can have an infinite number of combining characters tacked onto it.

If anything should not exist, it's U+00EB, which is a convenience, compatibility and (space) optimisation codepoint.
Faith in humanity... restored, thank you for being this nice.
I suspect that the comment was more a critique on hn ranking algorithm. NSA seems one of the headline trigger words that makes a story decay a lot faster than other stories.
What I miss in all those discussions regarding JS, asm.js and PNaCl is that the web is the best software distribution platform we have by a huge margin, this is really its overwhelming killer-feature. All the user needs is an URL. No "downloading", no installation, no special user permissions, no app shops, no gate keepers, no walled gardens, and everything is automatically multi-OS and multi-CPU-architecture. The web as a runtime platform may not be ideal, but the web as a "software distribution platform" rocks. For this I'm even happy to give up a few CPU cycles. And no platform should be tied to a specific language. The more choices there are, the better.
> It seems that the cost of preventing counterfeiting, and other comparable attacks against the conventional financial system, is much lower than than the cost of the proof-of-work calculations done in bitcoin.

What do you base this assertion on? I have no idea what the US spends annually on preventing counterfeiting. Do you?
Uhm, nope. Definitely not. All the precomposed letters only exist because of compatibility with legacy character sets. There are also some languages that routinely use more than one stacked diacritic on letters and encoding every possible precomposed variant would be at least a little bit silly.
Thanks for the list, I am going to check them out!
I would argue the opposite. Combining characters are a general (and thus preferable) solution to diacritics, so precombined codepoints should not have been included in Unicode.
They Read Minds, Don't They?