Liu Cixin's War of the Worlds - <AUTHOR> https://www.newyorker.com/magazine/2019/06/24/liu-cixins-war-of-the-worlds <comment><USER2> > The trilogy's success has been credited with establishing sci-fi, once > marginalized in China, as a mainstream taste.

I wish it were mainstream in the US. Back when people here believed in technical progress, science fiction was popular, if not always main stream.

Nowadays there is a category "science fiction" in every video app but the movies are always war movies or westerns, just set in space.

<comment><USER3> If you're implying that most science fiction hasn't almost _always_ been "war movies or westerns just set in space," I have bad news for you. Science fiction is about the science in the same way westerns are about the horses, which is to say, it isn't.

Also, I don't see signs that people in the US no longer believe in technical progress. There may be forms of technical progress which are not given the priority in American culture that you might prefer, but it seems obvious that progress is advancing in a vast number of fields, and both science fiction _and science_ are more mainstream (albeit, perhaps, in a watered down pop- culture sense) than they ever have been.

</comment></comment><comment><USER4> "When a reporter recently challenged Liu to answer the middle-school questions about the "meaning" and the "central themes" of his story, he didn't get a single one right. "I'm a writer," he told me, with a shrug. "I don't begin with some conceit in mind. I'm just trying to tell a good story.""

Does anybody have a link or know more about this ?

<comment> King-Aaron My mother is a semi-professional artist, and I've overheard a similar thing at one of her exhibitions once. Some journalists (or some such) were standing in front of one of her pieces, discussing the deeper meaning behind the work and what the artist must have been trying to express at the time. My Mum just laughed and said "the only thing behind this piece was three bottles of wine"

<comment><USER5> The author is dead. But what is written may reflect something the original author may not consciously aware or want to.

The red chamber is a good chinese example.

</comment></comment></comment><comment><USER6> It's a truly fascinating piece, but wow, I didn't expect going in that I'd come out not liking him. On the other hand, I didn't really know anything about Liu Cixin or his work before now, so maybe this is all well-trodden ground for everyone else.

<comment><USER7> I think you have to look very hard to find anything positive written about China or Chinese people in western establishment media.

Especially anything that gets posted on HN.

<comment><USER8> The reverse, to a lesser extent (only about Western politics), is also true in Chinese media.

</comment></comment></comment><comment><USER9> What a timely article on HN for me as I am reading through the Remembrance of Earth's Past Trilogy right now... certainly not the best sci-fi works I've ever read but some of the ideas are intriguing.

<comment><USER10> Imo, the second book was exceptional and as a standalone, one of the best sci- fi books of the past decade.

<comment><USER11> Not bad. The series reminded me of 1940's-50's sci-fi from the US, for a couple of reasons: A large confidence in the industrial and scientific capacity of their country. Relatively uncritical acceptance that their country is the good guys. No consequential female characters.

<comment><USER12> > No consequential female characters.

ehhh, Ye Wenjie is fairly central in the first book (I'm halfway past the second one)

<comment><USER13> And the two lead characters in the third one are also women

</comment></comment></comment></comment></comment><comment><USER14> To me this journalist is disgusting and plainly unprofessional. Yes, Jiayang Fan, I am looking at you.

It's ok to argue with an interviewee, but, gosh, who does it like that?

While "brainwashed" Liu Cixin is "deaf to the argument", the journalist ignores opponent's arguments because of her (commendable, of course) "inflexible sense of morality" and "principles to be upheld regardless of outcomes".

In case the reader is not susceptible to the journalist's line of thought, let's plug a couple of bits like "as if I were minding a small child" and "he sounds almost like a child" in seemingly innocent contexts. Of course, it has nothing to do with how Liu Cixin's words should be perceived in the other contexts.

But what if the reader is still not sure who's won the argument?

The journalist tells what she had read in Liu Cixin's mind: "he sighed, as if exhausted by a debate going on in his head." Of course, he sighs because he doubts what he says, what else that could possibly be?

"I looked at him, studying his face. He blinked" \- oh, Jiayang Fan, you are magnificent.

<comment><USER8> Hey, cool down a bit. I don't think posting here on HN has any effect on the piece or journalist's style.

Westerners think any opinions Chinese people have, if not conforming to Western values, are due to either "brainwashed" or "fear repercussions".

I have resigned from expressing my opinions long ago in real life because I don't think people around me care much about what I think other than claiming superior or vindicating their own position. So my normal response has been "fly there and ask people what they want, see for yourself".

It has been fascinating to see so many Chinese people who go oversea but end up supporting the current government even more (mind you, not everything the government does, before someone brings this up).

<comment><USER14> But I feel so much better now :) Yes, what irked me is not so much her arguments as her smug attitude and the underhanded way of retelling the conversation with a person who trusted her enough to talk with her at length.

If you ask me, lifting almost a billion of people out of poverty is amazing. Still, some developments in China make me feel unease.

What do people in China think about the social credit system?

Also while rounding up a million of Muslims in a reeducation camps is better than fucking up two countries in the wake of 9/11, it still doesn't sit well with me.

<comment><USER8> My impression for the social credit system is that people seem to like it (mind you, I'm not in China), because it is a powerful tool against bad behaviors and law breakers. I'm not sure if people are aware of or care the invasion of privacy in the implementation of the system. I'm not a big fan of this system in its current form, but someone will need to propose better alternative.

As for the reeducation camps, I haven't been following that closely, haven't had first hand account or direct experience. To form my opinion I will need to travel to Xinjiang to see for myself -- yep, I live up to my own suggestion.

</comment></comment></comment></comment><comment><USER15> Along with Barack Obama and probably another half billion people, I am a huge fan of sci-fi author Liu Cixin. As a fan of Liu's, it is interesting to get to know him a bit better.

A fun read!

His old sci-fi story The Wondering Earth is available on Netflix, which is pretty good but I prefer reading his books.

</comment><comment><USER16> "When I brought up the mass internment of Muslim Uighurs—around a million are now in reëducation camps in the northwestern province of Xinjiang—he trotted out the familiar arguments of government-controlled media: "Would you rather that they be hacking away at bodies at train stations and schools in terrorist attacks? If anything, the government is helping their economy and trying to lift them out of poverty." The answer duplicated government propaganda so exactly that I couldn't help asking Liu if he ever thought he might have been brainwashed. "I know what you are thinking," he told me with weary clarity. "What about individual liberty and freedom of governance?" He sighed, as if exhausted by a debate going on in his head. "But that's not what Chinese people care about. For ordinary folks, it's the cost of health care, real- estate prices, their children's education. Not democracy.""

<comment> ur-whale Devil's advocate here, but to be fair, there's a pretty decent likelihood that we in the west have indeed been "brainwashed" into believing that freedom is actually more important than these other things he's listing (health care, housing, education, etc...).

If you set aside freedom as a goal in itself for a second, then it's actually worth asking: is freedom actually the most important factor leading to those other creature comforts everyone wants?

I traveled once to Singapore, where a number of people I met made the exact same argument Liu makes. They phrased it this way: sure, we don't have a free press, and we have a benevolent tyrant running the place, but:

       - I drive a nice car

       - I can travel anywhere in the world

       - I live in a spacious appartment

       - My kids go to great schools

       - My country is a very safe place

       - Healthcare in S'pore is great

       - I have a million bucks in the bank

I know how repulsive such a line of reasoning might sound to a western- educated mind, but try to step out of the cocoon of your culture for a second (the actual "brainwashing" that every culture basically make us undergo) and see if you can actually counter the argument with logical arguments.

<comment><USER17> The problem with this sort of reasoning is that it relies on the benevolence of a dictatorship (and I don't use the term dictatorship pejoratively). It's all fine and good to have a system where people's needs are provided for and in general the populace is taken care of (for example, the housing situation in Singapore is very good and much better than places where people have to pay through the nose for shacks, like for example Hong Kong and SF).

But the real problem is that this system is by its nature fragile. On the one hand, this means that you never know when leadership will no longer be so enlightened and shit will hit the fan with nothing you can do about it.

From another perspective, because of this fragility, it's not capable letting its crazy people reach their potential. Can you imagine what the system would have done to creative hippies or even Steve Jobs if he didn't toe the line? If you don't give free enough reign to these people, your society will hit a ceiling where you don't produce the most innovative culture or people.

<comment><USER18> An important factor that often gets left out when discussing different types of government is the level of development of a country. A centrally powerful government has some perks that makes rapid industrialization possible. Where as a democracy might be good if a country is wealthy and its citizens educated. South Korea and Singapore are the only countries that went from impoverished to developed, and both were under authoritarian government when the rapid industrialization happened. You can also look at China and India, both started at comparable levels of development in the 70s but now one economy is 5 times the other

<comment><USER19> Germany? Japan? Taiwan?

<comment><USER18> Germany was already developed. And Japan and Taiwan also fit my example

</comment></comment></comment></comment></comment></comment><comment><USER20> Science.

The only culture that ever begot science was the tradition of greek philosophy and democracy that you could discuss everything, and that everyone was on the same playing ground.

Materially, China could have come up with scientific progress for a thousand years, but they didn't, because they lacked the culture for open debate and expression of ideas.

No freedom of press, no cars.

That's the historical perspective.

Now, let's look into the future.

Do we want to stop the progress of science? If then, sure, there is no strong technocratic argument for freedom.

<comment><USER21> > The only culture that ever begot science was the tradition of greek > philosophy and democracy that you could discuss everything, and that > everyone was on the same playing ground.

I'm sorry but this statement is extremely Eurocentric. Are you seriously suggesting that ancient India and China didn't have a tradition of science?

<comment><USER20> I'm saying that China did not have a culture that promoted science.

Not all of europe did either. Science rose mostly in the protestant north that had learned that differing arguments are not a threat to the status quo.

I'm not saying Chinese were more stupid, or that North-Europeans are smarter than South-Europeans.

I'm saying the culture of open discussion, critical thinking and being challenged for ones claims (i.e. testability) are the cornerstones that are necessary to be in place, and that curtailing freedom of speech curtails the progress of science, as much as focusing on eminence instead of evidence does.

Technological progress and scientific progress are two different things!

China was technologically the most advanced country hands down for a very long time before natural sciences rose. Yet they did not produce a Newton or a Galileo, or, at least the cultural environment was such that their work was forgotten.

</comment></comment></comment><comment><USER22> Phew, I didnt have much money when I was reading the three body problem. The first I picked up second hand, the second and third I pirated, with the hope of buying the set one day, looks like I wont be buying it now</comment>


Mozilla Co-Founder Brendan Eich Resigns as CEO, Leaves Foundation Board - <AUTHOR> http://recode.net/2014/04/03/mozilla-co-founder-brendan-eich-resigns-as-ceo-and-also-from-foundation-board/

<comment><USER2> Before you run to flag this as a dupe, note that it has lots more behind the scenes info than the comparatively dry first-party announcement.

</comment><comment><USER3> _Eich — who created the JavaScript programming language_

Who would want to use a language that was born in the same mind as that of bigoted and hateful thoughts? An industry boycott of the use of JavaScript is the only appropriate response.

<comment><USER4> The value of the tool or an idea should not be tied to the opinion's of its creator. The tool/idea should stand or fall on it own merits. Darwin is alleged to have been a racist.</comment></comment>


Ask HN: Anyone Making Money on Windows Phone 8 Apps? - <AUTHOR> I'm getting annoyed with the changes in the iOS App Store so I just finished porting several apps to Android and now I'm working on Windows 8. Just wondering if anyone has any experience good or bad with the new Windows platform. <comment><USER2> I have a couple of applications exclusively marketed for WP7 and Windows 8. The biggest benefit I have seen is that the lack of apps in both markets makes a it prime ground for building a brand. It is still sparse enough to where you don't even need an original idea, just fill in an obvious gap. At the same time it is a gamble whether or not it will pick up, but I think both platforms have much promise. It is also good to note that Pubcenter (Microsoft's ad platform) beats most everything else out there, as in >.60 eCPM averages. A buddy of mine did a Pandora client for WP7 is reporting ad revenue of > $100 a day. I'm personally hitting somewhere around $30 a day. It's definitely harder to hit numbers like that in competing marketplaces. I imagine that if they pick up my buddy and I will be in a nice position which is what developing for an upcoming platform is really all about.

<comment><AUTHOR> What's the name of that pandora client / link? That's one of 3 apps I was sad wasn't on wp8 so far.

<comment><USER2> MetroRadio

[http://www.windowsphone.com/en- us/store/app/metroradio/0caac...](http://www.windowsphone.com/en- us/store/app/metroradio/0caac4aa-962f-483b-9c26-76a3d8a1fd10)

<comment><AUTHOR> sweet thanks. now i'm down to 2 :-) (cnbc and glassboard fwiw)

<comment><USER2> May I plug my app (Similar to Pandora but with music videos) [http://www.windowsphone.com/en-us/store/app/searchler- music-...](http://www.windowsphone.com/en-us/store/app/searchler-music-video- search/aa7b0980-cfd7-4533-8b9c-6c54d542c5cf)

</comment></comment></comment></comment></comment><comment><USER3> I have a few free Windows Phone 7 apps in the marketplace. Since Windows Phone 8 shipped I've seen my download rate increase ~50%, and it seems like around 30% of my active users are running WP8. I'm not making any money with these (just fun projects for me), but its a datapoint FWIW

<comment><USER4> Thanks -- can you mention any actual numbers (vs just the percentage increase)?

</comment></comment><comment><USER5> The whole Windows ecosystem is a huge mess for developers right now.

Visual Studio 2012 often crashes, the API documentation is often incomplete and not helpful, there are quite a number of incompatibilities between W8 and WP8, XAML has mediocre performance on ARM and can't be accessed from C++ on WP8, the list goes on and on.

If anything, Microsoft managed to make most Windows developers I know want to work on linux/Android or OSX/iOS instead - the rest are blissfully unaware of what UNIX is in the first place.

Sure these things may improve over time, but right now developers are nothing more than beta testers. For us, the possible profits are not worth the efforts to deal with the mediocre development experience.

<comment><USER6> Vs2012 crashes less than vs2010 though. Hand over your cash now for the new feature!

We've bailed and moving to java on the server and web and android apps for mobile.

<comment><USER5> I used to write Java on the server-side and hated it. It felt like mindlessly writing boilerplate code for a living with a language assuming I'm an idiot who can't be trusted with more than one paradigm at a time.

The last backend application I wrote was entirely written in CoffeeScript running on node.js. While it doesn't get the performance of the JVM, the development experience has been some of the most fun I've had in years.

For future backend projects, especially if they're big in scale, I'm looking at either Haskell or the D programming language.

<comment><USER6> Java on the server is fine if you know how not to poke your eyes out with context reloading and avoid jsp and jsf like the plague :)

I find coffeescript/node.js to be a bit too trendy to trust and Haskell to be perl for computer scientists.

If I had my way, I'd write everything in RPL

<comment><USER7> "a bit too trendy to trust"

I imagine java was trendy also when everything was written in C++

<comment><USER5> Back then, Sun had to spend a fortune to push Java down the throats of developers. Mostly by selling it to their clueless managers instead.

Java was born out of a trend and still lives as one to this day, good thing only the corporate world really bought into it!

<comment><USER6> The reason its so popular with corporates is that most of the expensive problems are already solved so building software is sticking a few well proven components together with some glue. It's also good at managing memory for you, which is not something that can be said for most languages.

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> The Windows Phone sales of our app have been extremely lackluster. Our app is a paid app priced at $4.99 and targeted for Windows Phone 7.

On iOS we regularly get into the Top 10 iPhone and iPad Sports apps (both top paid and top grossing), and on Android into the Top 20 Sports apps on Google Play.

Our WP7 version has generated approximately 0.5% of what our iOS app has made, or approximately 2% of our Android app.

We also have had a Mac version of our app available since July which has almost passed the total sales of the WP version which has been on the market for over a year (our app is primarily targeted at mobile device users while they're at a sporting event, so lower computer sales are expected).

The jury is still out on how our Windows 8/RT app will sell in relation to the others since it was released just prior to the launch of Win8 but after the majority of our sport's season had completed for the year.

Our app does spread pretty virally at the events. In our completely unscientific polling of users, most of them found out about the app from other users, and I would guess that those WP users probably just assume that it's not available to them (we do give it equal promotion with the rest of the versions on our website).

As far as the release of WP8 goes, we haven't seen any noticeable uptick in sales as a result.

<comment><USER9> I wonder if your app goes well on tablets as well as phones and so Windows 8 will be big for you.

<comment><USER8> We're certainly hoping that the Win8 version will go well and we made sure that it would work well on tablets.

Both our iOS and Android versions have tablet optimized interfaces and we see a significant amount of tablet use for both.

A somewhat interesting side note, our iPad top chart rankings lag behind iPhone by a few hours. Presumably people get the app on their phone while at the event and then go home and install it on their iPad as well.

</comment></comment></comment><comment><USER10> I'm really interested to see if there's any traction here, or if its all smoke and mirrors like with Windows Phone 7...

<comment><AUTHOR> Yeah same here. Numbers from Microsoft keep saying it's better, but only with relative numbers. Sure app sales have doubled in a month, but if it's from 10-20 I'm not that excited.

That's why I started this thread though. See if any indies have something out yet and are making actual money comparable to either iPhone or Android.

</comment></comment><comment><USER11> As a dev, I don't access to a reasonably priced WP8 device being sold in my country, and after getting the Lumia 800 a yaer back, if I have to get another phone, the more pertinent question would be how much money I am spending to develop these apps.

BTW, the emulator is horrible.

<comment><USER12> Really? my experience with the emulators (both for windows phone, and windows 8) have been fantastic. Can you elaborate what was horrible about them?

<comment><USER11> Main reason - I am making a typing oriented app, and it so TOUGH to type on the emulator as it doesnt take keyboard input. And I felt the options were limited compared to the Android emulator.

<comment><USER13> Just press 'page up' and the Windows Phone emulator will let you type with your keyboard. It does get annoying when you have to do this every time, but I think the Windows Phone emulator beats Android's significantly in terms of speed and stability.

<comment><USER14> > speed and stability

Speed yes, but stability? I've never had the Android emulator crash, and haven't heard of (m)any cases of it either.

Also, is the WP8 a simulator or an emulator?

</comment></comment></comment></comment></comment><comment><USER15> I make ~$200 from a browser app I wrote a couple of years ago. [http://www.engadget.com/2010/11/17/windows-phone-7-will- work...](http://www.engadget.com/2010/11/17/windows-phone-7-will-work-with- third-party-browsers-so-long-as/)

<comment><USER4> ...per month? On x downloads per month? Thanks, it's helpful to get some numbers.

<comment><USER15> Per month. It's a $1.99 app.

</comment></comment></comment><comment><USER16> My experience with WP development. I have a Twitter client (I know, it's not an original app, it started just as a playground) since February, and I can tell some things:

\- A lot of people answering questions (even if WP itself doesn't have a big developer community, lots of questions are common to Silverlight, C# and .NET platform ones so you have plenty of resources). The documentation is really good, at least comparing with what I've seen on Android and iOS (Android was far worse when I looked into it).

\- VS2012 is also pretty good. Of course, you don't get as deep as you would with a plain C compiler, but that's another point. I've heard that it really becomes great when you use all MS tools like TFS for version control and collaboration. With git... well, there are plugins but I think it's better to use the console. Same with unit tests. There is a library for unit testing on Windows Phone and it's good enough, but I expected something more from MS.

\- The store is a 5/10. It's good enough, but it can improve a lot. Luckily, they're very open to new ideas and are improving each month.

\- Making money: My app is free, made 3000 downloads last month. Not a bad number taking into account that it's difficult to compete with well established apps like Mehdoh, Rowi, Gleek and Peregrine and I don't get so much exposure. But I'm pretty sure that this number could be far higher: on average, I got ~50 downloads per day, but the app was highlighted three days in the spanish Store, about 1200 downloads more.

So, with a bigger user base and more exposure in the store (localization helps _a lot_ , for me it almost tripled downloads of the app) you can make money. Of couse, if nobody downloads your app, you won't make any... But there's less competing apps here, so it's easier to get to the top of the market. You won't get as many benefits as if you were on Android / iOS, but probably there you wouldn't be on the top.

</comment><comment><USER17> As a Windows Phone user, one thing I can comment on is that some Windows Phone apps that I have seen in my personal experience are more expensive than Android or iOS apps. I'm assuming this is because developing for WP has a lower potential for return, but it really turns me off on the app. Some I've been willing to purchase on my Android tablet, I have not purchased on my Windows Phone because the price difference was 99c vs 2.99.

Price is something you have to take into account; price it too high and people won't buy it, which in turn gives you a lower ROI. Then you have developers complaining that their WP app didn't turn a profit and the market is dead when in reality the price was just out of sync with other platforms. Consumer's aren't blind, and regardless of the platform they don't care the reason why your prices are high. All they care about is iOS gets it for 99c and they're saddled with a price significantly higher than that.

<comment><AUTHOR> While I can understand what you are saying in theory, 1.99 or 2.99 is not in fact significantly higher. it's a dollar. 1/4 a cup of coffee. I know we've had these discussions before and it's not coffee blah blah blah. But come on, "significantly higher." It's just not.

The thing is, apps are priced as they are because of risk. In general, apps are worth either 0 or significantly higher than a dollar. If it turns out you don't like it and you don't use it, then it's worth absolutely nothing. On the other hand, if you like it and end up using it all the time, it's worth far far more than $1.

If you already know you like an app because you've used it on another platform, or tried a trial or demo version, spending 1.99 or 2.99 really shouldn't be much of a hurdle.

Also, I suspect those devs started out at the same price point, and when they sold 1-5% of what they do on iOS or Android they decided to raise the price.

<comment><USER17> $3 vs $1 is a 300% price increase. No matter how small the actual amount is, that's how it shows. We're paying a 300% markup. I mentioned that this is likely due to risk, then went on to say that this risk mitigation sometimes ends up causing more damage than it helps. Raising the price doesn't always make more money, sometimes it just decreases sales.

I didn't set the standard price for apps. The market did. Is software worth more than 99c? Sure. But that's the standard price for a standard app. $3 is seen as a major hurdle. Some big-name publishers are putting out Pac Man and Galaga etc at $7 on Windows Phone. The reviews section is full of "this is way too expensive, I'm just playing the demo over again". I have paid $15 for an app, but not many people will. If you want to sell, you need to price it at an appetizing rate. $3 is fine if you can justify it to the market and it's a fair price. Telling users "your platform is more expensive to develop for" will get the developer nowhere.

It's basic economics. Valve even did an analysis that is posted occasionally here on HN showing that their profits went up when they reduced prices. I've heard some developers say that their ad revenue on free apps is more than their sales revenue on paid apps, regardless of the platform. Whatever the reason, if you think that dollar or two difference is insignificant, read the reviews of some WP apps with a price differential between marketplaces.

</comment></comment></comment><comment><USER9> I know someone that quit his job because he was making enough money on advertising alone on just Windows Phone 8 apps. He's got even more apps in the store now, so I don't know how much he's making but I think he's doing very well. Then there's Windows 8 which promises to be much bigger!

</comment><comment><USER18> ... so has anyone actually made any money on Windows Phone 8?

</comment><comment><USER19> As far as I know you shouldn't even be making WP8 apps, because they are not compatible with any WP7 device. So developers are stuck with building WP7 apps that also work on WP8 devices, because most WP devices are WP7.

And I don't think a Windows 8 app can be the same as a WP8 app either. At the very least you'll need a whole new UI and design, and most likely quite different code, too. It's not as easy as Microsoft says: "write once, publish to all our platforms with Windows in their name".

<comment><USER20> As a Windows 8 developer, the most frustrating part of WP8 is the lack of compatibility for native HTML5/WinJS apps. For me, this was the best thing about Windows 8. It made building apps easy and fun. The most ridiculous thing about the whole thing is that the HTML5/WinJS apps are completely responsive, and you pretty much have to build a mobile version of your app to support "snap" mode. So, they could easily have a write once, run anywhere model if they just supported native HTML5 apps in WP8. Sorry, /rant.

<comment><USER21> I did not know this about WP8, and I'm glad you said something. It's stuff like this that will make devs steer clear of writing for them. If I can write a PhoneGap app for Android/iPhone (Which I am), but I have to make major changes to write for WP8 then I am not going to do so.

<comment><USER22> There's a Windows Phone 8 implementation of PhoneGap: <https://github.com/apache/incubator-cordova-wp8>

</comment></comment></comment></comment><comment><USER23> My boss makes $1k/mo from an alarm click app.

</comment><comment><USER24> The local university here in Finland has in interesting partnership with Microsoft. They offer you some money if you develop your app exclusively for Windows Phone for the first 6 months or so. Seems quite harmful for the startups...

</comment><comment><USER25> I won't even think of building for Windows phone until I see them in the wild. I did see one at the cable car turn around in San Francisco - so I asked the guy using it... Yup, he worked for MSFT

</comment><comment><USER26> It has turned into a very useful discussion. I am planning porting a few things over from iOS next year.

There are a few things I still need to figure out before going over there tho.

Where to get a free/cheap device? I keep hearing people saying they got free testing devices

What lang I need to write in for it to work on win7phone, win8phone and win8rt/win8

<comment><USER2> Find out who your local Microsoft Phone Champ is (Attend a .NET user group and ask or use the less social way described her: [http://channel9.msdn.com/coding4fun/blog/Need-to-find- your-l...](http://channel9.msdn.com/coding4fun/blog/Need-to-find-your-local- Windows-Phone-Champion-Heres-an-OData-service-Phone-app-and-source-that- will)). Windows Phone technically supports any .NET language but most articles will be in C# then a big drop off to VB and there are some nuances see: [http://stackoverflow.com/questions/4539876/is-it-possible- to...](http://stackoverflow.com/questions/4539876/is-it-possible-to-program- for-windows-phone-7-in-standard-c-only).

<comment><USER26> Thanks!

</comment></comment></comment><comment><USER27> I have an iOS/Android app side project that I'm interested in porting to Windows Phone 8/7. I have never worked in the microsoft eco system. I have 2 questions.

What would be a good test device? No contract, not too expensive but also a viable device.

Anywhere or anyone recommended to do the development?

<comment><USER6> You can get a lumia 710 for not much. Doesn't do windows phone 8 but all the 7/8 portable apps will work on it.

Never test on a flagship device!

<comment><USER28> What do you mean by "flagship device"?

<comment><USER6> Lumia 820/920

</comment></comment></comment></comment><comment><USER29> I released 1 app that took me 2 weeks to build. I've made a spanking $40 within the last 3 weeks. I get about 300 downloads a day.</comment>


Lifetime psychedelic use predicts liberal political views; cocaine does not - <AUTHOR> https://www.ncbi.nlm.nih.gov/pubmed/28443703?dopt=Abstract <comment><USER2> To me the only thing a lifetime of cocaine use predicts is more cocaine use. To place squarely outside any one political view seems disasterly infinantal motive of self confirming ones own view. How many people can you name that do psychedelic verses how many can you name that use cocaine only reaffirms what you are exposed to in the population, not what is fact.</comment>


Snapchat launches self-serve ad manager - <AUTHOR> https://techcrunch.com/2017/05/04/snapchat-ad-manager/ <comment><AUTHOR> Snapchat is getting itself into tricky waters. As Facebook increases competition (feature cloning), Snapchat can try to focus on monetization and advertisement more aggressively, alienating their own customer base.</comment>


Show HN: Hacker News For Money - <AUTHOR> http://www.boredbanker.com/

<comment><USER2> Absolutely awesome. I see myself spending a lot of time on this.</comment>


The email template used to get 60k users in 60 hours - <AUTHOR> http://www.growhack.com/2012/10/17/how-brandyourself-unexpectedly-got-60k-users-in-60-hours/

<comment><USER2> Annoyingly misleading link bait title.

The mail was sent to "journalists", not users.

It is nothing new, just the usual social engineering basics that have been covered a gazillion times like sugar coating the recipient's ego, mentioning pseudo-personal things about yourself, etc.

Annoyance warning about visiting that site, it loads and loads and loads some images to no end. Every second or so the mouse pointer changes to loading.

<comment><USER3> I wrote that headline and actually didn't realize people might think it was an email template for emails to users specifically. Maybe accidental linkbait, but not intended.

Also which images are being loaded to no end? I've never experienced that but it sounds like something I should definitely fix..

<comment><USER2> I guess it is the slideshare stuff, not sure.

</comment></comment></comment><comment><USER4> How does the killer feature actually work? I know you can lookup the internet service provider's hostname from the user's IP address, but then how do you reliably go from that to a clean "Ogilvy & Mather" string?

<comment><USER5> Using data from ARIN.

</comment></comment><comment><USER6> I was at this talk. Patrick's talk was very insightful, especially this section. It is such a simple hack, but very well executed and though through. No wonder he did so well !

</comment><comment><USER7> Proof read before you send something like that out:

"Particularly because I think a two articles you wrote a few years ago did an amazing job summarizing the industry"

<comment><USER3> good call, fixed.

</comment></comment><comment><USER8> I think instead of bluffing him,if he send email something like this , it will bring more user .

Dear xyz, I really like you tweets ( _or whatever_ ) and genuinely wanted to offer recent feature "who googled you" ( _here mention your powerful feature_ ) . We think it is only for you.

</comment><comment><USER9> Your sidebar is going crazy on me. I see like ten php warnings and one fatal error, all with php paths and a stack trace. You shouldn't have those settings on in a production server. On the other hand, I really enjoyed the post and the slides.

</comment><comment><USER10> Hey, my comment got used in his slides when he shows an example on hacker news.

Awesome!

</comment><comment><USER11> at that rate, (1000 users per hour) it would take 114 years to get to one billion users.

<comment><USER12> That's a lot faster than 'never'

</comment></comment><comment><USER13> I thought this was very interesting. I found the point on pitching one feature at a time to be particularly worthwhile.

Thanks for posting.</comment>


Ask HN: Why am I having a hard time finding a new job? - <AUTHOR> For the past few months I have been trying to find a new job and I can't seem to find the right position one way or another. I have gotten pretty far in the hiring process with some large well known companies, the trend seems to be "we really really like you, we just don't think your ready" type of deal.
Currently, I work for a healthcare company doing a little of everything in IT/IS. I administer systems, do analytics on large sets of claim, member and provider data, ETL work, SQL development, new system implementation, and now long term IT strategy. I even do a ton of python scripting/dev for analytics and large projects.
On top of working 40+ hours I started to teach myself some new things. I picked up Python/Flask/PostgreSQL about 8 months ago and built out a Geocoding service using Census data. After interviewing for some Java engineer positions and not making the cut, I started to rewrite the geocoding REST service in Java/Spring/Hibernate.  I even started to pick up Angular so I could make a decent UI in order to show off my work.
I really would love to become a software engineer – I love solving problems, creating, designing, etc. Trying to switch from what I do now to that type of  role has been extremely frustrating. Recruiters seem to think it's impossible for me to switch and I haven't gotten much hits for anything close to what I want to be doing.
I'm hoping someone could offer some advice on what to do! I've attached a link to my resume and github – maybe I am not marketing myself properly?
https://github.com/taurenk https://dl.dropboxusercontent.com/u/77316816/resume.doc <comment><USER2> First off - don't listen to recruiters. Second, tailor your resume more towards programming/software engineering vs. IT/sys admin. If you want to get out of healthcare domain then consider dropping some of the references to that tech (Pick, SAP) and focus on more general stuff (python/java, SQL server).

Edit: your resume looks great given that you've been working for 3 years. There are some really solid projects listed. My guess is that for some reason you are not making it past resume screen for the "right" companies or you are applying for jobs way beyond your years of experience.

<comment><USER3> In addition to that, OP should provide a URL for his geocoding project. It's more convincing if there's an actual demo to look at.

</comment></comment><comment><USER4> They say that half the applicants can't even do FizzBuzz, but then we have people like you who can't find jobs. What is the true story?

<comment><USER5> The companies might be terribly picky about who they pick from the half that can FizzBuzz.

<comment><USER6> More likely they just can't interview correctly.

<comment><USER5> Being selective doesn't really imply that the selection uses proper filters.

<comment><USER6> It's not about being selective. It's about knowing how to conduct interviews. Those asking about Big-O or FizzBuzz just don't know what else to ask. It's a shame since 99.9% of interviews are like that.

</comment></comment></comment></comment></comment><comment><USER7> You're in the US, so don't call this type of work IT. In US, IT means support / help desk staff, very low-level :)

</comment><comment><USER8> If you don't have a degree, then you will have to prove yourself through your work. Which you already have understood, which is smart.

I've looked through your projects specifically [https://github.com/taurenk/PinPointGeocoder](https://github.com/taurenk/PinPointGeocoder) and it is decent code but not good enough, if these are the only projects you can show. The code has many newbie smells such as bare except clauses, faux modularization (the RegexLib class) and methods that are to long and to complicated. I think you need much more practice. In a few months, you can revisit the old projects you wrote and see how much better you can code them then.

What you've written in only 8 months is impressive (I wasn't very good after 8 months), but it's not there yet. If you go at it at 8 more months then I think you would make an excellent hire.

<comment><AUTHOR> Thanks for advice! I'll admit I definitely need to refine my engineering skills. Using proper exceptions and writing _better_ methods are something I have been trying to improve.

</comment></comment><comment><USER9> First off, I would love to hire you because of your strong self-initiative! And I love that you have experience with geocoding. I only wish that I have funding to hire you right this moment. Your technical skills are rock solid but it's the initiative that really draws my attention.

With regards to finding a new job, it sounds like you have no problem meeting the criteria. Your resume and Github profile seem to be fine since you've been landing interviews. The problem would then be at the interview process. Without having interviewed you, take my advice with a grain of salt. Many times, it comes down to communication - how you present yourself and whether or not the person likes you. Especially when it comes down to the final interview.

We all love to believe that hiring should be objective and made based on technical ability to do the job. But there's more to it as well. You might be the superstar but if you can convince the other person that you are, then you may not got hired. I was convinced myself that I had great technical ability but I was never able to land jobs. I just couldn't sell myself well when it came to talking. You can either find an organization who does like you and gets you OR you can improve your ability to sell better. Or you could do both. I took it upon myself to improve how I communicate my skills - it's a great learning experience especially when you're trying to sell ideas once you go further up the chain or if you start a company.

</comment><comment><USER10> Find some local developer meetups and start connecting with folks there. You'll get a lot more actionable advice that is pertinent to your local market, and maybe one of them is willing to take a chance on hiring you to do Python development work with them.

Networking with recruiters will definitely lead you nowhere. They are only looking to place people that are a "sure bet" on paper, and aren't accustomed to sifting through for hidden gems like yourself.

Good luck!

<comment><AUTHOR> I found some local tech meetups near me to check out. Thanks for advice!

</comment></comment><comment><USER11> I see some common ground between us. I, too, got roped into being a generalist early. After 15 years it's an advantage (you can call yourself a consultant), but can be trying before that.

I suggest you pick the stack you enjoy the most, pick a project that gets you excited, and stop learning new things until you've mastered one (well, one set).

If you're not sure which that is yet, pick a newer technology that no one can claim deep experience in. I've seen people get involved in projects early on, start blogging and talking about it, and next thing they're being flown around the world to present at conferences with a good stream of consulting income. Pretty sweet gig. Does require excellent communication skills, but they can be learned and pay off forever.

When I read that you are using analytics to make improvements, I see an opportunity missed: quantify your impact in dollars. Engineers are usually bad at this, but managers are good (assuming a top down push for metrics, which is common), so talk to yours and find out how you're earning your keep. Then put that on the resume and see how it helps things.

<comment><AUTHOR> I have found myself jumping from technology to technology, which is something I'm trying to do less of, for example; I started a project in Python then when it was pretty much finished started to re-write in Java for numerous reasons (learning java being the key driver).

What you said makes sense and definitely has me thinking about things a bit differently. Thanks!

</comment></comment><comment><USER12> If you have sysadmin experience you can apply to (some) DevOps positions as well (you may want to play and get skills with things like AWS, orchestration tools like puppet/chef/ansible/salt, docker etc).

Also for a "generalist" is probably easier to find jobs in smaller companies than in large companies.

</comment><comment><USER13> Your Github account says you're in New York, but I know quite a few startups out in San Francisco that would love your geocoding experience. I work on a product that involves a massive amount of geocoding in several different ways, and I would love someone who thinks that's a cool thing on my team. Unfortunately, we're not hiring at the moment, but I'll keep your name on file and ping you if we ever do open up a position for it.

As for actual advice, I'd talk to people you know. Word of mouth is the best way to get a new job. I despise recruiters and avoid them like the plague, and I tend to recommend that you do the same. Find companies you want to work for and ping their hiring managers directly, if you can. Get your resume directly into the hands of the decision maker -- not HR.

Good luck.

<comment><AUTHOR> Do you think it's intrusive to find hiring managers on let's say LinkedIn and send them my resume/letter that way?

<comment><USER13> I don't think so at all, but you should investigate the company to make sure they're actually hiring first. If you sent me your resume now, I'd say "Huh. Cool." but then send you an email saying we're not hiring, check back in 6 months...

</comment></comment></comment><comment><USER14> small comment:

Sometimes I like to see activity (on Github) for more than the last two months. It makes me wonder if someone is really passionate about building things, or is just looking for easy employment.

You did a good job of addressing that in your HN post, but I would bet that a few companies are holding that (good activity, but only fairly recently) against you.

Good news, that problem will fix itself with another two months or so of activity.

<comment><AUTHOR> Thanks. It's funny, I actually started all of this NOT using Git. I wasn't until I was about 3 months into the Python Geocoder I mentioned about did i start to use Git!

<comment><USER14> Yeah man, many people do that. It's just hard because maybe 50 resumes come through and you breeze through twenty githubs before writing down who to call back.

Sometimes -- that's all you get ( a twenty second look), so make sure to explain your story in the cover letter.

<comment><USER15> What about if everything is in private repositories?

<comment><USER14> I assume this was for an entry level position. Look at the OP github above and you would assume that as well.

They usually would LOVE to have the problem of all "private" repositories.

Of course github isn't everything, but quite important for your first gig.

</comment></comment></comment></comment></comment><comment><USER6> It's because the engineering school is destroyed in America (and elsewhere too).

</comment><comment><USER16> bagaimana cara mengirim ke walletnya ?</comment>


CKEditor 5: New approach to rich text editing on the web - <AUTHOR> https://ckeditor.com/blog/CKEditor-5-A-new-era-for-rich-text-editing/ <comment><USER3> It's got to be tough spending a career working on ContentEditable. I don't know how these guys handle it.

Not only do you get to spend all day every day wading through the impossible pile of bugs, contradictions, mutually exclusive implementations and downright wackiness in the thing itself (did it _seriously_ just allow the selection to include the opening DIV tag of the contenteditable itself???), but you get to have the same conversation every day with developers who haven't ever used ContentEditable and therefore consider it to be trivial.

"Why are you implementing the caret in javascript? Haven't you heard of ContentEditable?"

"Why is your simple WYSIWYG editor component _seven megabytes of javascript_? Wouldn't it be better to just use ContentEditable and be done with it?"

I only had to work with the technology for a few months. Years ago. And I'm still scarred today. Props to these guys for sticking it out!

<comment><USER4> Former member of the CKE team here.

Three words: it was hell.

The CKE people are some of the most hard working devs I've ever encountered in my life. I still find it funny how making little details like backspace/delete key behavior work is such a gargantuan task. And almost nobody gets it right.

<comment><USER5> I actually applied to CKE as my first job as, having made my own WYSIWYG editor [0] as a side project while I was at school, it seemed like something I had experience of. Never heard back from them: sounds like I dodged a bullet then!

[0] [https://github.com/nicoburns/ghostedit](https://github.com/nicoburns/ghostedit)

<comment><USER6> Once again I'm sorry for the lack of reply. Back in I.2013 our team was much smaller and we were overloaded with post release stuff shortly after launching CKEditor 4.0.0. So lots of emails were left unattended :( Tade0 (buongiorno!) was right that at that time we were not looking for junior developers, but ofc the lack of reply was a mistake on my side.

<comment><USER7> Oh, are you currently employed there? I found a minor-ish XSS vector allowed by CKEditor 4 if there is a place I should submit an issue...

<comment><USER6> Yep, I'm working there ;) Please send us the details via contact form [https://ckeditor.com/contact/](https://ckeditor.com/contact/) or feel free to PM me directly at ["w.walc", ["cksource", "com"].join(".")].join("@")

<comment><USER8> I'm curious, have you ever used TeXmacs? It is, in my non-expert oppinion, by far the best WYSIWYG editing experience (barring some minor implementation bugs). The visual bounding box cues, in particular, make formatting much easier.

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> Interesting.

That's always the way I thought it should be done, with a separation of display and structure.

I used to work with a developer who maintained and actually made a decent chunk of change licensing out a very popular rich text editor developed _before_ ContentEditable was even a twinkle in the browsers eyes. We used it pretty heavily within the company as well.

Knowing first hand the horrible feats of iframe content string manipulation that had to be done to make an RTE work in _Netscape_ and IE5.5, ContentEditable seemed like a DREAM.

Ends up there's still a demo up for it, and it almost entirely still works!

[https://kevinroth.com/rte/demo.htm](https://kevinroth.com/rte/demo.htm)

<comment><USER10> Man, sites like this make me nostalgic =) [https://kevinroth.com/projects/](https://kevinroth.com/projects/) gonna have to check out that ASP 3 stuff..

</comment></comment><comment><USER11> Rather than using an all-inclusive editor like CKEditor, Froala or Redacted, I've been thinking a lot about a "block" based content creation like one that is available on

[https://www.notion.so](https://www.notion.so)

[http://madebymany.github.io/sir-trevor- js/example.html](http://madebymany.github.io/sir-trevor-js/example.html)

[https://www.froala.com/pages](https://www.froala.com/pages)

(Looks like Froala also gives a block-based design in addition to their rick text editor)

As we continue to insert and embed a variety of content types into these editors, I feel like this approach is more suitable. Any thoughts?

<comment><USER12> It's really all the same, HTML is already a component-based system but the parsing and tooling for it is poor when used through javascript. Maybe WebAssembly will change that but using a content-block approach is definitely a way to get around some of the complexity. Medium's editor uses a similar approach, probably the most common and there's Mobiledoc which is a standardized JSON format and editor framework: [https://bustle.github.io/mobiledoc- kit/demo/](https://bustle.github.io/mobiledoc-kit/demo/)

Side note, list of various editors: [https://gist.github.com/manigandham/65543a0bc2bf7006a487](https://gist.github.com/manigandham/65543a0bc2bf7006a487)

<comment><USER13> I do a ton of work with CMS's, building sites for non-technical clients who manage their site without much knowledge of HTML, CSS, or any coding/encoding (even markdown would be a bit much for some of my users).

The big win that you get with a block-based system (as opposed to 1 big chunk of HTML) is that it allows us to build out the content editing interface in a way that is very "guided" for the user... like, if there is a photo gallyer, we have a repeating list of slides and they have fields for a photo and a caption. Then on the front-end we can build our HTML+CSS markup around those specific fields. You can't do that easily with 1 big chunk of HTML.

<comment><USER12> Right, that's what I mean about HTML tooling. It's a fine data format but DOM manipulation isn't very good compared to a JSON data structure with native integration into javascript and more universal parsing ability. The mobiledoc format is a good start at standardization.

</comment></comment></comment></comment><comment><USER14> It still uses contenteditable, though, like Quill and ProseMirror, which also use a custom data model and ops. It sounds like CKEditor has caught up to have this kind of architecture too. Not to trivialize this accomplishment. All three are impressive feats of engineering and design.

<comment><USER15> Can you point to where contenteditable is used? I was not able to see the attribute when inspecting the demo source.

<comment><USER16> [https://ckeditor5.github.io/](https://ckeditor5.github.io/), inspect the content editing div itself, it's there.

One thing I've realized playing with a ton of different editors is that contenteditable gives you one very important feature that you can't fake yourself: access to the browser's spell check and corrections. It's possible that CKEditor ignores everything else about contenteditable, but turns it on just for red squigglies.

<comment><USER17> Spellcheck and corrections can be faked, I think, if you decide to compile your own hunspell (or whatever). IME (i.e. entering text for languages that do not have a one-to-one mapping of key press to character), though, is a lot harder; you have no idea what languages the user has configured, and showing _everything_ in a list is impractical.

<comment><USER18> Few people seem to know about Composition Events: [https://w3c.github.io/uievents/#events- compositionevents](https://w3c.github.io/uievents/#events-compositionevents)

Using those, implementing IME should be relatively easy. The events tell you which partial characters to show, and which completed characters to insert.

<comment><USER19> Unfortunately, it's not that easy. Composition events are typically controlled by the IME software, which is not part of the browser proper, and tends to be a lot less serious about conforming to standards. The result is that the data in those events often simply doesn't correspond to the actual DOM changes that they caused. On Android, you can't even rely on the fact that compositionstart fires when a composition is started—with some virtual keyboards (which act as IME providers) you routinely get compositionupdate or compositionend before a start event.

Listening to these events and using DOM diffing can get you a more or less accurate idea of what happened. But 'relatively easy' does not apply.

</comment></comment></comment></comment></comment></comment><comment><USER20> Looking great for a first release! The demo is smooth, well done.

Seems like there's a good framework in place to catch up to the competition. I'd switch away from TinyMCE or Summernote if there was a component/widget system that worked well. Writing custom behavior for any HTML editor is painful, and none of them have a big use case in mind: custom layouts.

SiteOrigin's Page Builder for WordPress is cool: [https://wordpress.org/plugins/siteorigin- panels/](https://wordpress.org/plugins/siteorigin-panels/)

I wanted something (Free or paid) like what's shown in the above video, that's independent of WordPress. Couldn't find a darn single one, if you can believe it. I'm stuck with Summernote + workarounds to get something similar for a Laravel project of mine.

<comment><USER21> > I wanted something (Free or paid) like what's shown in the above video, > that's independent of WordPress. Couldn't find a darn single one, if you can > believe it.

I can, because I've been looking for one. I believe there's a market for well done components like this:

        * Drag and drop page component builder (think Leadpages, Unbounce, SiteOrigin Panels)
        * Drag and Drop email builder (a la MailChimp et al)

There's no need for every SaaS and startup to build their own - better to have a component (or even a dedicated service to integrate) to provide these JS- heavy timesinks than waste time while validating the idea creating them.

<comment><USER22> > Drag and Drop email builder (a la MailChimp et al)

Have you seen this? [https://github.com/unroll-io/react-email- editor](https://github.com/unroll-io/react-email-editor) was released recently.

<comment><USER23> Very cool! But you might want to make it clear that it's not fully open sourced - the github repo is just a wrapper your hosted js library.

<comment><USER22> Ouch, I did not realise that until now. Thanks for pointing it out.

</comment></comment></comment></comment></comment><comment><USER24> Is the output just a giant blob of HTML? If so, I don't see what this does to solve what I see as the main problem of WYSIWYG editors... a terrible end- format for stored content.

I got my hopes up when reading the intro that we would see a more structured output (not just the underlying in-browser data model). I would love to see a WYSIWYG output a JSON structure with markdown content.

Not to minimize what appears to be a massive and successful effort! I just feel like HTML is a completely inflexible and rigid way to save content.

<comment><USER25> > ... the main problem of WYSIWYG editors... a terrible end-format for stored > content.

In many cases having the editor store HTML internally is the best solution, especially if the output will eventually be HTML anyway. Think of a Wordpress post submission page, or a website comment page.

</comment></comment><comment><USER26> ContentEditable was _supposed_ to bring us a world where things like CKEditor no longer needed to exist.

What on Earth happened? HTML5 has pushed the web platform so far forward from where it was back then; how did this one little corner of it end up stagnating?

<comment><USER27> ContentEditable never really specified much of a cross-platform standard API. If we wanted to replace CKEditor and its ilk, we should have pushed for a standard spec on textareas with rich structured editing support for a variety of formats (Markdown, reStructuredText, HTML, etc.) But that would then require standardizing structured text formats and/or figuring out how to add extensible functions, what to do with copy and paste especially from third- party apps, how should drag and drop be handled, what about saving, auto- saving, how should you add styles to a drop-down list to let users pick their own fonts, font-sizes, etc. These are complicated things to get right, often site- and implementation-specific, and contenteditable allowed for direct text manipulation and editing (with spell check and native text cursor flickering) within HTML, which is good enough to build your own rich editing interfaces around. So, it would be going too far to say ContentEditable was supposed to put these RTEs out of business. In fact, I would argue that Markdown's popularity has done more to put RTEs out of business recently, and that block- based, template- or widget-integrated text editing is the future, and where these tools' APIs are headed.

</comment></comment><comment><USER19> The "end of contentEditable" spin in this is weird. CKEditor 5 uses contentEditable. And that's a good decision—getting bidirectional text, IME, touch selection, spell-check, and screen reader support right without contentEditable, while possible, would require you to reimplement a _lot_ of browser functionality, which would necessarily lead to a blowup of complexity and download size.

So sure, the new CKEditor does more or less what Quill, Slate, ProseMirror, and most other modern WYSIWYG components do—it separates its data model from the editable DOM. That's good, but not new.

<comment><USER28> I can't find where in the codebase they employ contentEditable. Are you sure they still use it? Here is a GitHub search: [https://github.com/ckeditor/ckeditor5/search?utf8=%E2%9C%93&...](https://github.com/ckeditor/ckeditor5/search?utf8=%E2%9C%93&q=contentEditable&type=)

3 Markdown documents, one JSON doc.

<comment><USER19> Focus a demo editor [1] and inspect `document.activeElement` in the console. You'll get a parent div of the content whose `contentEditable` attribute is true.

[1]: [https://docs.ckeditor.com/ckeditor5/latest/examples/builds/c...](https://docs.ckeditor.com/ckeditor5/latest/examples/builds/classic- editor.html)

</comment></comment></comment><comment><USER29> Nobody's asked this, so: I've been fascinated with operational transformation for some time, but I haven't found anything that breaks it down into understandable steps.

I vaguely recall that last time I poked around I found an extremely high-level algebraic breakdown that made no sense, and only after a _lot_ of digging was I able to turn up an actual example implementation that wasn't 100% useless (because contextless) theory.

I fear that understanding OT is a case of for example spending 6 months reading Etherpad.

<comment><USER30> 6 months is a very optimistic scenario ;) A guy responsible for OT in Google Wave wrote once that he spent 5 years on it and it still does not work well in all cases. After 3 years of struggling to get it right, we know what he meant.

Anyway, I believe that you can find a good entry point to OT here: [http://www.codecommit.com/blog/java/understanding-and- applyi...](http://www.codecommit.com/blog/java/understanding-and-applying- operational-transformation). It gives a nice overview of the problem – in a human-readable language – but it's only the beginning of the journey.

The original OT implementation has been designed for linear documents – texts. It does not fit very well with tree structure – you don't want elements (tags) to intersect after resolving collision. It also does not fit undo where the order matters.

For sure, operational transformation is not a closed subject, which you can just learn. It is an open problem with many cases still unsolved. If you are looking for a good topic for a thesis, I would recommend it :)

<comment><USER29> > _6 months is a very optimistic scenario ;)_

Oh.

> _A guy responsible for OT in Google Wave wrote once that he spent 5 years on > it and it still does not work well in all cases. After 3 years of struggling > to get it right, we know what he meant._

...Wow, I see.

(As an aside, I think it's really sad Wave's "cool" UI was never properly released.)

> _Anyway, I believe that you can find a good entry point to OT > here:[http://www.codecommit.com/blog/java/understanding-and- > applyi...](http://www.codecommit.com/blog/java/understanding-and-applying- > operational-transformation). It gives a nice overview of the problem – in a > human-readable language – but it's only the beginning of the journey._

I actually think this is one of the articles I found a while back. I agree that it's very thorough and in-depth, and, uh, I've managed to get slightly further into it before I started hitting PgDn repeatedly and my eyes glazed over than when I read this a few months ago! :)

> _The original OT implementation has been designed for linear documents – > texts. It does not fit very well with tree structure – you don't want > elements (tags) to intersect after resolving collision. It also does not fit > undo where the order matters._

Ooooooooh yowch.

> _For sure, operational transformation is not a closed subject, which you can > just learn. It is an open problem with many cases still unsolved. If you are > looking for a good topic for a thesis, I would recommend it :)_

Hah!

When I was exploring OT a few months ago I also explored alternatives such as realtime diff/match/patch into a model held in server memory. The simplest way to do this ultimately stores approximately documentSize*clientCount for every single document. That lets me keep an exact copy of every client state on the server, letting me tag updates with the hash of what the document should now look like. For small-scale projects the massive-but-not-concretely-exponential memory requirements of such an approach is somewhat out of control but not completely unmanageable: 1000 documents of 1MB each being edited by 20 clients each requires 20GB of RAM. (But my first guesstimate of sane limits - <USER2> documents and 500 clients - would require 5.2TB though, haha.)

Hmm.

I just realized... some of the buffer architectures commonly used in text editors might be usable to implement server-side deduplication. Or... you could even probably just implement a copy-on-write scheme. Either would probably be an effective design win because (in the contemporary/common case) all clients editing a given document are generally seeing a 99.99%-accurate representation of that document relative to other users; if the network is good, there's only really a few characters' difference between users.

OT feels like architectural overkill at the fundamental level, but I know that's just my overwhelmedness with the mental models required and the sense of "does it really have to be this hard?". I recognize that it really is that tricky, and kudos for keeping at it and then turning around and making the result open source! :D

</comment></comment></comment><comment><USER31> The new release looks really nice, congrats to the devs. Although I haven't looked into it too deeply, the new editing model made me think of Draft.js [1], which might be interesting to some people as well.

[1] [https://draftjs.org/](https://draftjs.org/)

</comment><comment><USER32> I don't see many people talk about Apple's approach to text editing, on iCloud.com Pages. They use svg and it allows them to achieve some pretty fancy effects. Anyone experienced with this method?

<comment><USER33> That is pretty neat. They use an invisible content editable field that moves to where the caret is placed. The content editable only contains the current word or selection.

Text typed into the content editable is rendered into SVG elements. Unfortunately that doesn't allow a browser's spellcheck to work so they had to implement their own.

iCloud Notes works in a similar way but it renders to canvas elements instead of SVG. Also doesn't provide spellcheck.

</comment></comment><comment><USER34> I'm a happy CKEditor 4 user, but let me know when this gets to 5.1.1. With so much rework, I just can't see myself rolling the dice and rolling this out right away!

Congrats, though. Seems like an ambitious three year long project that you actually pulled off!

</comment><comment><USER35> Looking at all these editors makes me feel good about having chosen mobiledoc 18 months ago for my ember app.

I don't know if mobiledoc pioneered this approach of separating the data model but it was the first time I saw it and it felt right.

Glad to see so many editors do this now.

<comment><USER36> I'm the author of Quill and I will attribute my decision to David Greenspan of Etherpad. Not sure if they are the first but it certainly predates all the examples I know of.

<comment><USER24> I just discovered this. Very cool!

</comment></comment></comment><comment><USER37> That's great news for anyone writing editor plugins :-) I've worked a bit on plugins for TinyMCE, CKEditor 4 and Quill before, where the plugin had to change the content. The Quill editor (which has a separate data model similar to what the article describes) was a heck of a lot easier to work with than the others because of the data model[1], and the end result felt a lot more maintainable, even though Quill is newer and has much fewer Stackoverflow answers ;)

[1] [https://quilljs.com/docs/delta/](https://quilljs.com/docs/delta/)

</comment><comment><USER38> Is there any editor which mimics the look and feel of Google Docs or MSWord?

<comment><USER39> might work for you.

[http://jejacks0n.github.io/mercury/](http://jejacks0n.github.io/mercury/)

for complete wysiwyg editor list;

[https://github.com/cheeaun/mooeditable/wiki/Javascript- WYSIW...](https://github.com/cheeaun/mooeditable/wiki/Javascript-WYSIWYG- editors)

<comment><USER23> mercury sounds very good, too bad it seems to be abandoned.

</comment></comment></comment><comment><USER40> Such nostalgia! I remember playing with this over a decade ago when it was still called FCKEditor. Kudos, Fred and team!

(If we're doing show and tell, my old quick and dirty prototype for a structured FAQ editor still mostly-works under Firefox [http://www.googlemappers.com/dev/prototypes/faq/template.htm](http://www.googlemappers.com/dev/prototypes/faq/template.htm))

</comment><comment><USER41> I wish there was an official react build for this. I had tried sometime back, but the integration with react fiber was a little tricky and kind of gave up.

</comment><comment><USER42> I recently heard of CKEditor because of the dev log on tweakers.net ( a popular dutch news website).. They mentioned CKEditor, so they actively use it.

Here's the link: [https://tweakers.net/plan/1385/finetunen-van-de-lay-out- en-h...](https://tweakers.net/plan/1385/finetunen-van-de-lay-out-en-hands-on- development-iteratie-117.html) ( dutch)

</comment><comment><USER43> Can anyone tell whether CKEditor 5 approach differ from draftjs? If so, what are the pros and cons of each?

<comment><USER33> Big con for draftjs is it doesn't support Android.

<comment><USER43> I didn't know that, I thought it did. What do you recommend as an alternative to draft that works well on mobile? Do you know if draftjs will fix this bug?

</comment></comment></comment><comment><AUTHOR> We have selected CKEditor 5 for our SaaS application for the following reasons:

* We need to implement a custom user interface and CKEditor 5 makes this easy. Its modular nature enables us to build a custom "headless" bundle using Webpack. Keystroke handling is currently tied to the CKEditor 5 user interface, though, which is problematic as you don't want to reimplement what the Enter key does when editing, say, lists or block quotes. The team is actively looking into this issue, though, and it is possible to use a custom user interface while still benefiting from CKEditor's keystroke handling using a hack I documented here[1].

* The output format is (very clean) HTML. If we ever change our implementation to use another rich text editor, we don't want to write a server-side migrator moving user content from one editor format to another. Also, HTML is the output format we're looking to consume.

* Unlike most other rich text editors, CKEditor 5 will likely support pasting from Word (and possibly Excel) in the future[2]. Our end users are likely to copy content from Word and Excel (after all, we're creating "Excel for apps"). Handling this well is notoriously difficult -- here's the CKEditor 4 implementation[3]. Where TinyMCE makes this a proprietary add-on[4], CKSource will likely make this part of the open source version of CKEditor 5[5].

* When CKEditor 5 matures, CKSource will offer commercial support.

* We're interested in adding collaborative editing to our SaaS solution in the future, and CKSource's Letters project[6] demonstrates that CKEditor 5's architecture is up to the task.

* What should the HTML output of a rich text editor look like? CKSource's "Editor Recommendations" project (licensed under a Creative Commons license) spells out this in detail[7].

* CKEditor 5 is licensed under permissive open source licenses (MPL and LGPL in addition to GPL).

* CKEditor 5 has a responsive community and an active chat channel where the core developers hang out[8].

The downside to adopting CKEditor 5 at this early stage is that the project isn't fully mature yet. There's no out-of-the-box support for things like colored text and tables (though adding support for colored text through a plug-in is trivial, thanks to how the architecture works).

Also, browser support is spotty. Internet Explorer is not supported in any capacity (Internet Explorer 11 may be supported in the future[9]). While Edge is formally supported[10], we found problems that were serious enough for us to disable the editor when that browser is run. (Our SaaS application falls back to plain text editing when rich text editing is not available on account of the user's browser.) Also, only Safari 11 (released on September 19, 2017) works with the default build of CKEditor 5 due to a WebKit bug[11]. Finally, only recent versions of Firefox can be used that support the "selectionchange" event (which means Firefox 52 and later versions; Firefox 52 was released on March 7, 2017).

All in all, we're happy with our choice, but you may want to wait for the project to mature given the issues cited above.

[1] [https://github.com/ckeditor/ckeditor5/issues/488](https://github.com/ckeditor/ckeditor5/issues/488)

[2] [https://github.com/ckeditor/ckeditor5-design/issues/172](https://github.com/ckeditor/ckeditor5-design/issues/172)

[3] [https://github.com/ckeditor/ckeditor- dev/blob/major/plugins/...](https://github.com/ckeditor/ckeditor- dev/blob/major/plugins/pastefromword/filter/default.js)

[4] [https://go.tinymce.com/powerpaste/](https://go.tinymce.com/powerpaste/)

[5] [https://gitter.im/ckeditor/ckeditor5?at=59af4683c101bc4e3a94...](https://gitter.im/ckeditor/ckeditor5?at=59af4683c101bc4e3a94023c)

[6] [https://ckeditor.com/letters/](https://ckeditor.com/letters/)

[7] [http://ckeditor.github.io/editor- recommendations/](http://ckeditor.github.io/editor-recommendations/)

[8] [https://gitter.im/ckeditor/ckeditor5](https://gitter.im/ckeditor/ckeditor5)

[9] [https://github.com/ckeditor/ckeditor5/issues/330](https://github.com/ckeditor/ckeditor5/issues/330)

[10] [https://github.com/ckeditor/ckeditor5/issues/423](https://github.com/ckeditor/ckeditor5/issues/423)

[11] [https://bugs.webkit.org/show_bug.cgi?id=171041](https://bugs.webkit.org/show_bug.cgi?id=171041)

</comment><comment><USER44> What about Trix?

Froala was already mentioned, I also heard about an editor namend Trix, that also claims not to use ContentEditable.

[http://trix-editor.org/](http://trix-editor.org/)

Any experiences with that?

<comment><USER45> Actually they say: "Trix sidesteps these inconsistencies by treating contenteditable as an I/O device". They use it to capture the input, which they then process and pump it back into the contenteditable. So technically speaking they do use it, just in a weird way.

</comment></comment><comment><USER46> I tried to use the Letters demo on my iPad Pro 10.5 and it wouldn't even let me try. I can't remember hitting another website in months that flat out denied "mobile" access like that.

<comment><USER6> I'm sorry for this, but please note that this was a conscious decision to show products at the current state. We wanted to give the voice to the community to help us prioritise the development as soon as it makes sense. If we showed everything to the public once its fully ready (having all the nice to have features in place, brilliant support for mobiles), you would have no chance to let us know, for example, how you would like those features to behave etc. How exactly do you see the mobile support and so on. We did not want to blindly copy CKEditor 4, adding just the new architecture to it.

</comment></comment><comment><USER47> Froala is still my WYSIWYG editor of choice [https://www.froala.com/wysiwyg- editor](https://www.froala.com/wysiwyg-editor)

<comment><USER39> Both froala and reactor are pretty expensive products imo. They are really good editors and i believe they both worth it, but i would prefer cheaper or opensource alternative.

</comment></comment><comment><USER48> This looks similar-ish to Substance[0]

[0] [http://substance.io/](http://substance.io/)

</comment><comment><USER49> I feel like all of these web "WYSIWYG editors" should be renamed to "WYSI _not_ WYG editor"... :(

<comment><USER30> This is why this type of editors should be called "rich text editor" not WYSIWYG. Note that you will not find "WYSIWYG" in the article.

</comment></comment><comment><USER50> Will this support BBCode or will it have to be some sort of plugin?

</comment><comment><USER51> Font hinting went on a vacation on those pictures

</comment><comment><USER52> "Most of the editors out there are based on ContentEditable, including CKEditor 4 and its previous versions. But ContentEditable is bad and ugly, though. It's implementation among browsers is not standardized and its behavior for end users is often out of control"

Yes, please W3C, Google, Mozilla, MS, Apple do something! Improve ContentEditable or create a new better standard for it!

<comment><USER53> Hey, Piotrek Koszuliński from CKEditor here.

As a matter of fact, we're involved in the W3C's Editing Task Force since the beginning. Me and Fred (the author of the blog post) were on the first meeting in Berlin back in 2014 and I've been in Paris the year after. Unfortunately, since then many meetings were held outside Europe and they were also concerned with more technical parts of the spec(s) to which it's harder for us to contribute. However, we still try to contribute as much as we can... but I have to say it's tough.

The problem is that this topic is vast and extremely complicated. Rich-text editing itself is complicated, but when you start considering all the languages (e.g. RTL mixed with LTR, IME), different types of devices and interaction models (software keyboards, block selection on touch devices), different OSes, clipboard, context menus, accessibility (!!), and what else is there, then you just want to quit.

In 2014 we believed in the contentEditable=minimal approach where contentEditable was just meant to provide an input/output layer. Even most of the browser people (all that I can remember) were positive about the idea. We were meant to get a cancellable `beforeinput` event and more reliable Selection and Range APIs. 3 years later and things moved forward (the event is available in some browsers), but so many topics are still open that it's hard to say what's the ETA for all of this.

For example, recently it turned out that IME is a bigger blocker than we thought. Android implements IME APIs in such a way which makes cancelling `beforeinput` impossible to handle on their side.

Simultaneously, there's a recurring idea to drop contentEditable completely and implement a completely new set of APIs. If you'd analyse how many APIs we're talking about you'd welcome contentEditable with open hands. I'm slowly starting accepting the fact that contentEditable needs to be replaced one day and that contentEditable=minimal approach may not be fully feasible, but I expect that we're talking here about next 10 years or more. There's no middle road here – either all the APIs are implemented __and stable __or contentEditable remains our only weapon.

BTW, I'd like to take this occasion to mention Johannes Wilm from Fidus Writer who's leading the Editing Task Force's work. Without him the whole thing would die sooner or later. We can all give feedback, but someone needs to lead the work and process feedback from all the involved parties.</comment></comment>


Anic - Faster than C, Safer than Java, Simpler than *sh - <AUTHOR> http://code.google.com/p/anic?utm_source=HN <comment><USER2> In CS literature, this programming model is called "stream computing."

I work on System S, which is the research name of IBM's InfoSphere Streams, which is a distributed, realtime (edit: _soft_ realtime; so, high throughput, low latency, but not hard realtime with guaranteed deadlines) streaming system with an associated language. Another project in this area is Storm. See this comment thread for more on that: <http://news.ycombinator.com/item?id=3193115>

But, Anic seems to be more related to the kind of streaming languages that came from the digital signal processing and embedded worlds. See, for example, the StreamIt project: <http://groups.csail.mit.edu/cag/streamit/>

In particular, a StreamIt tutorial: [http://groups.csail.mit.edu/cag/streamit/papers/streamit- coo...](http://groups.csail.mit.edu/cag/streamit/papers/streamit-cookbook.pdf)

Note that Streams, Storm, Anic, StreamIt all have the same underlying _programming model_ , but Streams and Storm target a different area than Anic and StreamIt. Streams and Storm target the emerging area of "big data" where you need to distribute your computation across a cluster. Anic and StreamIt are lower level: applications such as video decoding are streaming in nature, but one typically implements them on a single chip, and often even in hardware.

Standard disclaimer: my views are not official IBM views.

<comment><USER3> ANI greatly resembles the programming language I was thinking of creating. Oh well.

<comment><USER4> Commits to ANI stopped nearly two years ago. Maybe you should still try?

You would learn a lot and that would make you a better programmer.

<comment><USER5> or just contribute to ANI, if you don't want to reinvent the wheel.

<comment><USER3> Reinventing the wheel would teach me more, I think. But ANI is a useful reference for how to do some things.

</comment></comment></comment></comment></comment><comment><USER6> > a=[int\\]<-0; op=[char\\]<-' '; b=[int\\]<-0; r=[int\\]<-0; 0 { clock => > [int ms] { ("\r" + ms/1000.0 + ":" + a + op + b + "=" + r) ->std.out; 1 > std.delay (ms+1) clock} }; inLoop => {\std.in->a \std.in->op \std.in->b > inLoop}; \\\op ?? {'+': (\a+\b) '-': (\a-\b) ' _': (\a_ \b) '/': (\a/\b) : > 0} <->r;

That is not exactly selling the language.

Saw that, closed the page.

<comment><USER7> I'll never understand why people keep going out of their way to make new weird syntaxes. Is it really necessary? Does it really give something over well established C-like syntaxes?

At the very least, people should approach new languages from an ease of typing angle. I look at that and all I can think is "That would be a bitch to type out. Doing it all day? No thank you."

<comment><USER8> I have too seemingly opposing thoughts on this.

One part of me says _"Don't reinvent the wheel"_ , but the other part of me suspects that forcing a new language to follow the syntactical conventions of another language that was designed with different considerations in mind is a bad idea.

The best example of a language that I think suffers from it's association with the syntax of another is C++. The features that it provides are all more or less fine, but cramming it into a syntax that was made for a much simpler language really wasn't a good idea.

(I understand why it was done from a historical perspective, and understand the few benefits it affords, but I think those are particular to that example)

On the other hand again, there really isn't a lack of syntaxes these days that a new language developer can look to for inspiration. Surely _one_ of them should work fine most of the time.

<comment><USER9> This specific one is just bad though. I mean "\" is really difficult to type on almost all non-us keyboards. It's not even really easy on US keyboards (the pinky has to go a long way). See how often it's in there. Even standard C syntax is a pain on some non-us keyboards. I.e. on a German keyboard, the [, [, {, }, are rather difficult to type. That's why I (being German) switched to an English layout around two years ago. Now I have trouble typing umlaut and thus writing good German, but at least my coding speed improved by probably 50% and my Hand hurts far less.

<comment><USER10> Now I'm interested to know which languages exist that don't rely heavily on backslashes. I guess I can't think of a language that doesn't use blackslashes for string escapes. Some other uses off the top of my head:

        * C -- line-continuations (important for macros).
        * Perl -- regex back-references.
        * Haskell -- anonymous functions.
        * Python -- line continuation.
        * Tcl -- line continuation.
        * Icon -- non-null test (unary), generator limitation (binary).
        * Prolog -- \+ for not provable.
        * J -- the prefix adverb and the grade-down verb (\:).
        * TeX -- Yes.

<comment><USER11> Technically, for Perl you can use $ for regex backreferences. I don't remember which one is preferred, but I remember it frowning upon one of them.

<comment><USER12> What you use depends on where you use it. Inside of a match, \1 refers to what was matched by the first parens. After the match $1 refers to what was matched. In a substitution, \1 is special cased to mean $1, but that is frowned on.

Thus: /\b(\w+)\W+\1\b/ means "match repeated word".

And: /\b(\w+)\W+$1\b/ means "match word preceeded by the word matched on your last match.

Moving on: s/Hello (\w+)/Goodbye $!/ means "Replace Hello followed by a word with Goodbye followed by the same word."

And finally: s/Hello (\w+)/Goodbye \1/ is special cased to mean the same thing, but is frowned upon.

</comment></comment></comment></comment></comment></comment></comment><comment><USER13> It would help if fellow HNers read through the content a bit before upvoting something quickly. Here is a project which was last updated more than 2 years ago (no changes in source/tutorial/wiki in 2 years). There's no working implementation to support the claim. Any sane programmer would highly doubt existence of a (faster_than_C && safer_than_java) claim. Why are we as a community are becoming more and more obsessed with sensational link-baits?

<comment><USER14> Agreed: <http://code.google.com/p/anic/source/list> there has been no updates since 2010. I was honestly surprised to see this on HN and actually had to double check that I wasn't seeing an old HN submission for some reason.

I was briefly involved in this project, I wrote some code for instruction selection, was active on the mailing list and had a few lengthy discussions about dataflow programming with Adrian/Ulitmus. Last I heard, in early 2011, he was still working on it, but in private, and he had changed focus somewhat to something even more ambitious. I voiced my concern over raising the bar before the first _simpler_ version was released and feature creep, but I guess his mind was made up. I haven't heard anything since, despite trying to reach him a couple of times :-(

So, from this, I would say that ANI can safely be assumed dead unless a working compiler is surprise-released.

<comment><USER15> Same here, I had some discussion with the creator but it looked rather doomed from the start. He was worrying about parser optimization, logo design, and interactive shells, when there wasn't even any (hand-)compiled program or proof of concept of the semantics...

</comment></comment></comment><comment><USER16> At first I thought this was a joke due to some of the copy, but after reading through the tutorial a bit, it seems pretty interesting. Less hyperbole would be nice though. From the FAQ, ANI (the language, anic is the reference compiler) is faster than C because it is automatically parallel code. Not exactly what I think of when someone says "faster than C".

Nevertheless, for a modern take on a dataflow language, ANI is intriguing. If nothing else, the paradigm is probably different enough from imperative/OOP/functional that it is worthwhile to learn even if ANI doesn't take off.

<comment><USER17> After reading through the tutorial I'm absolutely fascinated. What an interesting paradigm!

</comment></comment><comment><USER18> _Try to imagine, if you will, the amount of time and effort it would take you to write a bug-free, efficiently multithreaded real-time clock + infix calculator hybrid application in a language like C._

Wait, what? Why...?

<comment><USER19> I bet this has been done before and is available as a C library ...

<comment><USER20> How much are you betting? "multithreaded real-time clock + infix calculator hybrid application" sounds useless and stupid in any language. No one who can code would be stupid enough to write such a thing, specially in C, and specially as a freely available library.

<comment><USER8> *especially

Sorry.

Anyway, the components that you would need to build such a thing are certainly all available.

</comment></comment></comment></comment><comment><USER21> Why, oh WHY did they make extensive use of the backslash character? Backslash is almost universally used as an ESCAPE SEQUENCE INITIATOR. Any other use is just going to be confusing. Especially when you end up making constructs like "(\a/\b)", or having to context shift because of string escape sequences like "\n".

<comment><USER22> <http://code.google.com/p/anic/wiki/FAQ>

> Q: Why are backslashes (\\) used as language operators? Isn't that > confusing, given they're used in other languages as escape characters?

> A: This is a valid point, but backslashes were chosen for a purely pragmatic > reason; on virutally all keyboards, backslashes are very easy to type > (requiring only a single keystroke). This is a handy property for > backslashes to have because in ANI, you'll be typing them a lot!

> Incomers from other languages might be thrown off a tiny bit, but a > programmer that's spent some time with ANI will quickly come to realize that > there is actually never any good reason to end a line of ANI code with a > syntactual backslash! If one insists on doing so anyway, they are writing > ill-formatted code that would be confusing regardless of how backslashes are > interpreted by the language. Thus, the backslash conflict is there in theory > but irrelevant in practice.

> The usage of \ in the language syntax is a thought-out practical compromise, > though the issue may be reconsidered in the future depending on programmer > feedback.

To see what the backslash does, see the Pipes section: <http://code.google.com/p/anic/wiki/Tutorial>

Edit: I'm not defending these arguments, simply pointing out that the developers have put forth some reasons.

<comment><USER23> Yeah right, I guess the 100 millions or so French-speaking people don't amount to much. On French keyboards it's ctrl+alt+"<" (which is at the bottom left of the keyboard), or, when available "Alt Gr"+"\".

Going out of your way to produce such small and dubious improvement is always a bad idea imho.

If you really think C syntax is a pain point, the sanest thing to do is to go with textual keywords like in ruby or lua.

<comment><USER22> Sorry, I'm not the developer. I was just saying that the FAQ explains the choice of backslash, regardless of whether it is sane or not.

<comment><USER23> I understand that, my reaction was of course towards the developer explanation and not you.

</comment></comment></comment></comment></comment><comment><USER24> * The language couldn't possibly be simpler... *

followed by

* getChopsticks = [--> ?] { \chopstick, \nextPhil.chopstick --> }; *

is just dripping with irony.

</comment><comment><USER25> I've been on the mailing list for over a year, and unfortunately, the developer seems to have abandoned it. Cool project though.

</comment><comment><USER26> <http://news.ycombinator.com/item?id=1042122>

<http://news.ycombinator.com/item?id=1898573>

_sigh_ I still can't get past the syntax..

</comment><comment><USER27> Original post 3 years ago: <http://news.ycombinator.com/item?id=1042122>

Is there a repository of sample code? I'm curious about how interacting with the filesystem, network, graphics would look like.

</comment><comment><USER28> Oops. Project looks a bit dead. Newest code from 2010.

</comment><comment><USER28> The \\] in the examples look so strange, I thought they are some formatting error.

</comment><comment><USER29> Looks like it's not in active development. The documents and source code are dated 2010.

<http://code.google.com/p/anic/source/list> <http://code.google.com/p/anic/w/list>

</comment><comment><USER30> _anic is the reference implementation compiler for the experimental, high- performance, implicitly parallel, deadlock-free general-purpose dataflow programming language ANI._

One other thing: anic is buzzword-compliant.

</comment><comment><USER31> Latest commit Sep. 2010. Is this project still alive ?

</comment><comment><USER32> not again, it was posted recently and still has no working implementation apparently so we can verify the "faster than C" claim.

</comment><comment><USER33> _In short, ANI seeks to break out of the shackles of imperative programming -- a stale paradigm which for four decades has produced hundreds of clones of the same fundamental feature set, none of which offer intuitive hands-off concurrency, and differing only in what lengths they go to to sugar-coat the embarrassing truth that they're all just increasingly high-level assemblers at heart;_

Haha. The entire point of programming is to tell the hardware what to do. Any programming language that is not 'high-level assembly' has severe leaky- abstraction problems. The reason C and C++ still enjoy so much success despite limited syntax is that they stay true to the hardware and don't force another layer of abstraction on you.

<comment><USER34> Functional programming is a leaky abstraction?

</comment></comment><comment><USER35> The url ends in p/anic

The syntax looks awful and confusing

</comment><comment><USER36> Please, the next person who designs a language (which are often enough US people i guess), CHECK KEYBOARD LAYOUTS IN EUROPE FIRST.

Really. It's a pain to type []{} and \ on a german keyboard especially if it's supposed to be like every second character! Stop it. Please. Especially when there are proven languages that can cope without all this sh*t (yes, i am looking at python here).

Edit:

Although this might be an interesting language there is no way i am going through this syntax just to "check it out". Lost an opportunity to gain a new community member.

</comment><comment><USER37> Is it April 1st already?

</comment><comment><USER38> Front page claims there's a Pascal dining philosopher's implementation on the Wikipedia page. Except there isn't. There's a link to the article about Rosetta Code. After following that link, and then clicking around some more, I still haven't found this Pascal version to compare....

Anyway, the reason I ask is because I wanted to know what this line does:

        =;

<comment><USER39> That line has no counterpart outside of ANI. At first I thought it was some kind of guard or synchronisation point, but according to the Yacc grammar, it just separates "instructors" from "outstructors"[1]. Like the rest of the syntax, it's not terribly clear at first glance.

[1]: [http://code.google.com/p/anic/source/browse/src/parserGramma...](http://code.google.com/p/anic/source/browse/src/parserGrammar.y#401)

<comment><USER38> So much for simpler than sh...

</comment></comment></comment><comment><USER40> Dataflow ideas are cool, but this syntax is kind of crazy. It sounds like a neat concept to redo in a more palatable approach.

</comment><comment><USER41> Suddenly regular expressions felt so readable.

</comment><comment><USER42> Right, because the concerns we have today primarily is high-performance uniprocessor computing. Or maybe not. Does it seem to anyone else that almost all of the people creating new languages lately are generally tackling the wrong problems?

</comment><comment><USER43> This same repo was posted here in November of 2010. I started following it, but the owners quickly got overwhelmed with other projects, or work, and it all lost steam. I deleted my google group membership yesterday. Funny this pops up now.

<comment><USER43> I'm sorry, it was posted at hackurls.

</comment></comment><comment><USER44> If you're going to complain about the syntax, complain that everything is left-to-right (except math inside expressions) except initializing variables which, for some reason, is right-to-left.

</comment><comment><USER45> the syntax looks like a PITA. i stopped reading right after i saw it.

</comment><comment> alok-g See also: <http://en.wikipedia.org/wiki/Dataflow_programming#Languages>

</comment><comment><USER46> Comments from former submission: <http://news.ycombinator.com/item?id=1042122>

</comment><comment><USER47> Interesting ideas, but the compiler produces zero-byte executables and crashes trying to build the two-liners in the tutorial.

</comment><comment><USER48> This looks like Communicating Sequential Processes with an ugly syntax and a standard library. What am I missing here?

</comment><comment><USER49> No one pointed out it says panic in the url?

<http://code.google.com/p/anic/>

</comment><comment><USER50> Looks like they developed it behind closed doors without asking a single person.

</comment><comment><USER51> Better than sliced bread ....

</comment><comment><USER52> This is remarkably similar to HDL in concept (though not in syntax).

</comment><comment><USER53> Did anyone notice this little gem in the URL? _/p/anic_

</comment><comment><USER54> And apparently less readable than Perl.

</comment><comment><USER55> Hm, this logo reminds me of Factor...

</comment><comment><USER56> You are now thinking with pipes.

</comment><comment><USER57> I'm pretty sure anic is fake and the website was built by a troll. My brain cannot find any meaning and any of the code. It's just gibberish

<comment><USER58> Yes, this "language" is clearly a joke. I'm surprised to see so many comments treating it as if it were serious.</comment></comment>