New Short From Adult Swim: Samurai High Dodgeball Squad - <AUTHOR> http://video.adultswim.com/robot-chicken/samurai-high-dodgeball-squad-stoopid-buddy-shortz.html

<comment><AUTHOR> Hi! I'm one of the co-creators of this short, and an assistant editor at Robot Chicken. Adult Swim gave me the chance to make a pilot of my own - and if it gets enough views this could be a new series! Please help us out with some views/likes/shares!</comment>


Intentionally Blank Page - <AUTHOR> https://en.wikipedia.org/wiki/Intentionally_blank_page <comment><USER2> Tangentally related: [https://en.wikipedia.org/wiki/Political_Achievements_of_the_...](https://en.wikipedia.org/wiki/Political_Achievements_of_the_Earl_of_Dalkeith)

"The Political Achievements of the Earl of Dalkeith was a political pamphlet that was published and circulated in Edinburgh during the 1880 United Kingdom general election. It was well presented but inside the neatly printed cover there were just thirty-two blank pages, making it an early empty book."

"The 32 blank pages of the pamphlet have been digitised by the LSE Library."

<comment><USER3> That is an excellent attack ad

</comment></comment><comment><USER4> Back in the day, StorageTek, a company started by ex-IBMers, used something along the lines of "This page left intentionally almost blank." Which is, of course, more accurate. :)

</comment><comment><USER5> I always wondered why there is no "is" in this phrase. Why is it not "This page is intentionally left blank". I hoped this article would answer it, but no. It does show the is in [] to mark that's it's kinda missing. Anyone knows why there's no "is"? Does it ring wrong to you without "is"?

<comment><USER6> Because "left" works fine as the verb and doesn't require "is". To me, it flows better in _speech_ with "is", but that's a subjective opinion and probably a culturally-influenced one; British people use that construction less than Americans like me, in my experience.

</comment></comment><comment><USER7> Shoutout to [http://blank.org](http://blank.org)

Used to have this set as my homepage.

<comment><USER8> Checking the source code and following the little trail can provide a little entertainment, too.

It's been a long time since I've seen a page like this: [http://blank.org/memory/oldweb/home.html](http://blank.org/memory/oldweb/home.html)

<comment><USER9> The favicon is KILL M$

</comment></comment></comment><comment><USER10> Reminds me of isitwhite.com

Also, anyone donate to Wikipedia?

<comment><USER6> Yeah. I use it so often I'm an easy mark.</comment></comment>


Ask HN: Most hackable browser? - <AUTHOR> What browser gives the user the most power?
I think it's ridiculous that I need to install a browser extension to do something as simple as block a list of sites. I want more power.
What browser exposes the most power to the user? <comment><USER2> I think Vivaldi is one of the most configurable browsers out there but that doesn't really answer your question. Or maybe I'm not quite understanding the question. Opera used to have everything added-in by default (mail, vpn, etc) but not sure if that's still the case with their move to a Chromium base.

</comment><comment><USER3> I don't know but try qute browser?</comment>


Electronic skin tattoo has medical, gaming, spy uses - <AUTHOR> http://www.breitbart.com/article.php?id=CNG.6e1e2ad90e2d94b12b6258b7e9c5b33d.611&show_article=1

<comment><USER2> It's an interesting sensor, but the article didn't explain any technical details on how the thing is produced. Here's another article: <http://www.doctorslounge.com/index.php/news/pb/22316>

Technical Excerpt (for anyone interested): "The EES incorporates electrophysiological, temperature, and strain sensors, transistors, light- emitting diodes, photodetectors, radio frequency inductors, capacitors, oscillators, and rectifying diodes. Solar cells and wireless coils provided power supply."

Seems to be made on a silicon substrate (excerpt): "The investigators note that mechanical properties of the EES depend on the effective modulus and thickness of circuits, sensors, and the silicon-on-wafer substrate."</comment>


New TV show covering tech, politics, pop, and arts, powered by Reddit - <AUTHOR> http://yourweek.org/

<comment><USER2> Too bad for Ron Paul that this didn't happen sooner. He may have gotten 4 delegates rather than 3.</comment>


Identity Thieves Hijack Cellphone Accounts to Go After Virtual Currency - <AUTHOR> https://www.nytimes.com/2017/08/21/business/dealbook/phone-hack-bitcoin-virtual-currency.html <comment><USER2> I submitted this apparently just after: [https://news.ycombinator.com/item?id=15070199](https://news.ycombinator.com/item?id=15070199)

I got hacked a week ago in this exact fashion (I haven't tried to keep it a secret that I was involved in Bitcoin earlyish-on). I don't think they were able to get anything (largely because I am mostly out of the crypto space) but please remove cellphone 2FA from all your online dealings and add something like Google Authenticator instead (don't forget to print out, or at least encrypt a PDF of, the backup codes!)

My mistake was LEAVING cellphone 2FA in there on my main Google account even after I had activated Google Authenticator.

That was a mistake, because you can actually remove cellphone 2FA after adding GA 2FA. Which you should do!

My 2nd mistake was using a dumb PIN on my cellphone account.

The cellphone companies could prevent this attack entirely by requiring in- person (with ID) transfers of cellphone numbers to new hardware, at the store. Given the infrequency that I would have to do that, the extra inconvenience is acceptable.

After getting hacked and trying to move most of my online affairs to another account still under my control, I noticed that Facebook has a "name 5 trusted friends" feature which helps you regain access to an account after it's compromised, which might be useful to others... only issue being that once my private messaging and files are discovered (google drive :( ), the damage is already done.

<comment><USER3> >The cellphone companies could prevent this attack entirely by requiring in- person (with ID) transfers of cellphone numbers to new hardware, at the store. Given the infrequency that I would have to do that, the extra inconvenience is acceptable.

Fake IDs are cheap. This would not prevent a motivated attacker.

<comment><USER2> What do you suggest instead, then?

<comment><USER4> Don't put enough crypto on your phone to matter for one. I treat it as i would treat my actual wallet.

I use an electrum wallet on my desktop, and use one of the addresses in that multi address hd wallet as my hot wallet. I load that address on my android electrum install. That way if i ever lose my phone, there isn't much on it, and i can always move the funds using my desktop wallet if required.

But it does suck that it happened. Sorry to hear it.

</comment></comment></comment></comment><comment><USER5> This was raised by Kraken back in November 2016. Shortly afterwards I removed mobile phone as 2FA from all my accounts.

The simple fact is that I don't own my mobile number; the mobile operator does. As such I should not use it as 2fa.

[https://blog.kraken.com/post/219/security-advisory-mobile- ph...](https://blog.kraken.com/post/219/security-advisory-mobile-phones/)

</comment><comment><USER6> Perhaps using a non-published extra phone number registered to someone else (perhaps your child) can provide protection? It's security through obscurity but with the phone number being the crucial piece of information, keeping it secret will go a long way.

Of course the real fix would be to have better trained people working at the call centers.

<comment><USER7> The issue within the call centers are poorly enforced rules. If you have several customers a day demanding something eventually they just wear the reps down. When management fails to enforce those rules, and angry customers keep pushing, eventually the reps just do it. I've unfortunately seen/heard it more times than I can count in call center environments. I believe they honestly are trained well enough to know better, they just become apathetic. Not saying its right, its just what I have witnessed. Within my call center I am looked at as a stickler because I follow documentation to the T. It's sad that this generally makes you an anomaly within a call center.

</comment></comment><comment><USER8> It's nice to see this covered by The NY Times.

Cell phone account security issues are among my top personal "getting hacked" fears.

</comment><comment><USER9> Another huge looming problem: My emails were hacked recently with a fraudulent domain transfer using a fake ID. This exposes other accounts that use emails from the domain for recovery.

I lucked into some compelling evidence I'd like to share with any security experts that would be able to help me.

</comment><comment><USER10> In Turkey, when you move your phone number, 2FA automatically gets locked (you can't receive the code till you reactivate) for banks, requiring calling customer service or visiting a branch to reactivate.

It would be nice to have a similar system for all kind of 2FA solutions involving cell phones.

</comment><comment><USER11> The problem is that there is too much power in the hands of first level support personnel. They should hand it off to a specialized team that is extremely well trained to understand how to stop phishing. This should be standard practice for all companies with customer support.

</comment><comment><USER12> > _Accounts with banks and brokerage firms and the like are not as vulnerable > to these attacks because these institutions can usually reverse unintended > or malicious transactions if they are caught within a few days._

Ah, I see.

<comment><USER13> _Can_ but (in case of some banks) _won 't_. As I have learned from a friend who was a victim of debit card skimming and theft - with TD bank failing to block obviously out-of-character fraudulent transactions and refusing to revert the fraudulent charges, and then charging fees for fraudulent overdraft to add insult to injury.

<comment><USER12> Well shit, might as well put everything in a bitcoin wallet then.

<comment><USER14> On a USB stick. ($70) In a hand gun safe ($110), buried under a tree in the backyard ($Priceless).

</comment></comment></comment></comment><comment><USER3> Why hasn't any of these people losing six figures plus sued the phone company? Even if it's a longshot, it's worth it for the chance of recovery.

<comment><USER15> You can't sue them due to arbitration clauses.

<comment><USER3> So sue in arbitration.

</comment></comment></comment><comment><USER16> Cell phones are the most least secure devices. Although convenient, you can't trade that for security. The public wants convenience.</comment>


A Framework for First Principles Thinking - <AUTHOR> https://neilkakkar.com/A-framework-for-First-Principles-Thinking.html <comment><USER2> Generally the more advanced principles are the second, third, and fourth order principles. Questioning the fundamentals usually leaves you making a bunch of basic mistakes, as Elon has done, over and over.

It turns out, though, that if one of the first principles is, "though shalt not lose money" then Elon Musk has indeed disrupted it. It turns out you can do thing nobody else is willing to do if you're willing to lose more money than anyone else is. Welcome to the new secular era of cheap money.

<comment><USER3> Can you expand on "as Elon has done, over and over", for those of us not familiar with what you are referring to?

</comment></comment><comment><USER2> Generally the more advanced principles are the second, third, and fourth order principles. Questioning the fundamentals usually leaves you making a bunch of basic mistakes, as Elon has done, over and over.

It turns out, though, that if one of the first principles is, "though shalt not lose money" then Elon Musk has indeed disrupted it. It turns out you can do thing nobody else is willing to do if you're willing to lose more money than anyone else is.

</comment><comment><USER4> ironic title is ironic</comment>


Why we put the Internet into your favorite podcasting app - web-chib https://blog.chib.me/why-we-put-the-internet-into-your-favorit-podcasting-app/ <comment><AUTHOR> There are a few similar services in this space:

[https://huffduffer.com/](https://huffduffer.com/) [http://www.podmash.com/](http://www.podmash.com/)

And my own: [https://pdcst.ninja/](https://pdcst.ninja/)</comment>


Ask HN: Objective books on anthropogenic climate change - <AUTHOR> I belong to a book discussion mini-club and one of the subjects we want to study this year is climate change.
I'd like to find some objective materials that deal with the scientific data rather than the politics, however most of the books I'm finding are written from presupposition, trying to prove or disprove something from the outset rather than rationally examining and discussing the data.
Any recommendations for non-partisan and objective books (or online sources)? <comment><USER2> see [http://ipcc.ch/publications_and_data/publications_and_data_r...](http://ipcc.ch/publications_and_data/publications_and_data_reports.shtml)</comment>


Working full time in finance but want to create an app. Searching advice - <AUTHOR> Excuse me for this is my first time posting here.
I'm currently in my mid 20's and have a few years of experience working on the finance side of real estate. I love the industry and will likely be transitioning into a private equity type role soon, but I have always loved the startup industry. One day I hope I can leverage my knowledge in real estate with prop tech.
But over the last year or so I've had this idea burning in the back of my mind that revolves around using social media and apps to get people to reconnect, in person, rather than online. It's basically an idea that stems from the fact that social media is taking interactions online and reducing the quality of friendships. I want to leverage a technology platform where its easier and less burdensome to meet people face-to-face.
I don't have a background in UX or CS, but have tried to self teach myself Python and Swift. I realized I will never be an expert soon, so I stopped. However, I've begun outlining a business plan for this app idea and begun drawing out sketches of what it may look like. I believe this could become something that's not only highly profitable but also helps reverse the trend of human-to-human interactions going online, and deteriorating friendships.
I live in LA and I'm looking for advice on how I can take this idea and go running with it. I'm willing to spend a significant chunk of money but want to make sure I do it right. This is also considering I work 50-60 hours a week with my day job.
I would like to have a technical co founder or hire someone like a student local to LA who believes in the premise of the app as well. I've heard nightmare stories of people who go off and hire software engineers from Asia/East Europe that turn out to be utterly worthless. I'd rather take my time with this and have someone that I can work/hire directly with to develop.
Any suggestions or insight would be amazing. Thank you <comment><USER2> Learning to code and building it yourself is by far the easiest path forward. Building a social app like this is a multi-decade long project, so spending an extra couple years upfront developing the technical skills isn't going to set the project back by a meaningful amount.

If you hire other folks to work for you, count on spending at least 500k per year for, say, 5 years until you app starts bringing in revenue. Unless you can self-fund it at that level, you're probably just going to lose whatever money you put into it.

</comment><comment><USER3> Any great ideas I had before learning to code turned out to be not so great after learning how to code.

But bad ideas lead to better ideas. Learn to build small stuff first and gradually increasing the complexity. Make it fun and make it something you can enjoy.

Also most stuff can be done using the web stack now so I would encourage you to learn that instead of any other languages.</comment>


Ask HN: True Apartment Costs in SF? - <AUTHOR> For those here working in San Francisco, what is the true cost of, for example, a 1 BR apartment there, with a minimal commute to tech hubs?
I see a lot of posts mentioning numbers up to $3,500-4000. I'm sure those exist (everywhere), but I also see many on CL in the $2,500-2,800 range, which is still high of course but not as high as those other numbers, and not that far from (if not equivalent to) NYC and other high COL cities, where salaries are lower in comparison.
Certain articles may also pick out the highest-priced units to make a point.
Some of the ads I see may be deceptive, but I've seen enough that it seems like there are semi-decent places in that range.
Is that true?
State taxes are highest there as well, but it still comes down to net earnings, at least for purposes of this question. :) <comment><USER2> $3500-4000 for a 1 bedroom is common, (I rent one) but it's also probably in a nice, modern, new-construction building. Mine is 15th floor with a view, so it's more than the bare necessities. Buildings like this have the best marketing budget, so you see them all over the internet. The less developed and less expensive areas will have a longer commute. You could live in the east bay and ride Bart in e.g. at $11 per round trip from Berkeley. Your company may provide a transit benefit so you can spend pre-tax dollars on your commute.

<comment><AUTHOR> Thanks, that makes sense for that quality of apartment.

I'd rather be in SF (but understood).

<comment><USER3> 2ndAddress could be a good way to get a feel for neighborhoods without having to make a big commitment.

<comment><USER4> 2ndAddress is about 30-40% more expensive than airbnb monthly, FWIW.

</comment></comment></comment></comment><comment><USER5> I pay less than $2000 for a studio in the Tenderloin. Obviously, not everyone is willing to make that adjustment but if you want something cheap you can definitely find it.

</comment><comment><USER6> Because of San Francisco's unique laws, you can sometimes get a much better deal coming in as a new roommate to an existing lease than you might expect. So if rents are running $5000-6000 for a 3 bedroom, someone in an older building with a lease started 5 years ago might be paying $3000 for a comparable unit. As you can imagine, those deals are harder to find but they are not uncommon.

</comment><comment><USER7> I pay $2800 for a lovely 1br in SF, but the bus ride in door to door is always over 45 minutes. If you have the option to work from home a couple days a week or love bicycling, it's fine.

</comment><comment><USER8> I just moved to SF in December and was thinking the same thing.

I saw a ton of posts of CL in the 2500-2700 range which is what I was aiming for and thought It was gonna be easy.

But after moving and actually viewing the apartments it was not what I was expecting. If you have a car and want to have a W/D it's gonna be 3k minimum.

If you can ditch the car and not need in unit W/D you can find something in that range... this is excluding the tenderloin.

<comment><AUTHOR> Thanks, that's the sort of front line perspective I'm seeking!

Car no, clean clothes yes. (The laundromat's much less convenient and enjoyable.)

I do know a lot of the SF housing stock isn't that great, just from looking-- bad kitchens and old furnishings, because "they" know they can get away with it. (And you can bet they'd never live like that themselves: it's upgrades all the way.)

</comment></comment><comment><USER9> Naturally, it varies by location. Here's a rough map

[https://www.zumper.com/blog/2019/03/san-francisco- neighborho...](https://www.zumper.com/blog/2019/03/san-francisco-neighborhood- rent-map-spring-2019/)

The median doesn't show the whole picture. Median price in SOMA is higher than median in the Mission. But median _qualiy_ in SOMA is higher too - many more newer units, whereas Mission has a ton of older victorians.

<comment><USER10> Quality is subjective though: if you live in the Mission / Noe / Cole Valley, you'll see less crazy homeless people and you'll be walking distance to more interesting things and you'll get rent control, in exchange of which you won't get a newer unit.

</comment></comment><comment><USER11> My last apartment was $3200 for about 800 sq ft 1br in a quaint well kept Victorian apartment building that was a 15 minute walk to FiDi. Had nice big bay windows and all. My only gripe (not big ones either) was no washer/dryer in unit although the building had some for tenants and street parking only.

</comment><comment><USER12> I pay $3300 for a 700 sq ft 1 bed/1bath in a decent part of SoMA. It's got a builtin W/D, doorman, pool, gym with sauna, private dog park. Aside the doorman (which is super clutch for receiving packages!), I don't actually care about any of the other amenities.

</comment><comment><USER13> Renting $4,500/mo, 3 bedroom (upper part) of house in San Mateo + 1 car garage + backyard. Close to Hwy 101 and 92 (and 280). 30-40 minutes drive to SF and/or SJ.

Will be moving out soon, so if anyone interested - ping me.

</comment><comment><USER14> depends on your personal needs but if you're reasonable and want a 1 bedroom, a $2500-$3000 is fair game and live near downtown. You can go much cheaper (roughly half that price) if you're willing to live outside of downtown

</comment><comment><USER15> 2800 for a nice 1BR in a nice neighborhood.

<comment><AUTHOR> Thanks, for me $3k's a barrier not worth crossing (excepting FAANG-level remuneration?), and that seems workable considering the salary difference I see there.

<comment><USER15> For sure. I saw your above comment about laundry -- I don't have W/D so have to go to a laundromat about half a block away. I thought it'd be a dealbreaker for me but it's not so bad, I just make a thing of it every 2 weeks, listen to podcasts, and get through it. I've also used a pick up laundry delivery service on occasion, so if you went that route you could factor that into your monthly rent budget.

</comment></comment></comment><comment><USER16> Is it per week or per month?

<comment><USER17> Month. Rent prices in the US are always per month.

</comment></comment><comment><USER18> NYC 2,500-2,800 might be the average, if you live in manhattan, brooklyn, hoboken, or anything close to manhattan it will be more.

<comment><USER19> An average 1 bedroom in Hoboken is probably closer to 2500-2800</comment></comment>


What is an MVP for a B2B startup? - <AUTHOR> https://evrim.io/mvp-b2b-startup/ <comment><USER2> B2B encompasses a very wide range of buyers, with very different allowances for risk. The article talks about what would be commonly known as Enterprise Sales, which is marked by long sales cycles, high prices, and a lot of legwork in selling. It is possible to sell B2B software where the buyer is a single person within an organisation, or a small team.

Those are much easier to sell to, because there is a much smaller amount of buy-in needed from the organisation as a whole. Because the stakes are so much lower than in an enterprise-wide deal, an MVP may be perfectly acceptable to your customers.

<comment><USER3> You can have an MVP even in enterprise B2B if the problem is very apparent and easy to define, and the MVP is easy to deploy.

I've created an MVP for a B2B product and have success in selling it by making it as easy as possible to deploy. This reduces the amount of stakeholders required to sign off on the product. The key is to be able to deliver value (solve a problem) without a huge man-hour investment on the customers end. After demonstrating value, I can shift the focus to a deeper integration and have more success because I have more people on my side to push it internally.

</comment></comment><comment><USER4> I think the author actually means "Enterprise B2B" when they say "B2B".

I run a B2B SaaS company. We sell to businesses. Most of them have 5-500 employees (SMB/Mid-Market). Last year we built a very simple MVP and quickly started selling it.

If you want to do this too, the buyer and idea must be compatible. The idea also has to be something the buyer wants.

Buyer: As far as I know, hotels aren't big on buying new, simple services from startups. Try brick & mortar / mom & pop stores, startups, tech companies, etc.

Idea: Tablets are a big startup cost. You're asking your first customers to pay a lot more than ours did. Or you're taking a big loss. This immediately makes it harder to get going.

Demand: Do hotels / guests even want tablets in rooms? What burning problem is this solving, how did you learn that, and why is this a great, cost-effective solution?

<comment><USER5> As a guest I would love the ability to order room service/food through a tablet, rather than calling the phone, and hoping the other person can understand what I'm saying.

As a hotel owner, yeah, I'm not too sure... it might just be an additional cost, and not worth the ROI.

<comment><USER4> Yeah, but you could achieve the same value with an app/website on the guest's phone. Sure it's a tad more friction, but way cheaper and potentially worth it.

<comment><USER5> I would then need to know I could do that via an App. I guess if the hotel left a message in front of my room/desk, then yeah it would be the same effect. But then I probably would wonder if ordering through an app would relay reliably to them. With a tablet, it feels more 'real-time'

<comment><USER6> I would also want to be sure that someone else couldn't order something to my room. You'd need some sort of one-time use code/key or something, and then the friction gets even higher.

</comment></comment></comment></comment></comment><comment><USER7> The funny thing is that every Lean Startup founder who delays shipping struggles with excuses like this. Most customers in any market (consumer, SMB, enterprise) do not want to take a risk. He's ignoring the important advice in Moore's _Crossing the Chasm_ [1] and Blank's _Four Steps to the Epiphany_ [2]: the people who will buy a very early stage product are a tiny fraction of your total market; you have to aggressively find them.

That process is definitely different in an enterprise market. For whole-hog adoption, giant companies will want a mature solution. So instead you find ways to derisk it. Maybe it's a pilot program with a larger player. Maybe it's proving out the technology in an SMB context. Maybe you just find one mom-and- pop hotel who pays you not in money but in their time and data. Maybe you start with a single floor or even a single hotel room into which you preferentially book people who you think will be early adopters.

The M in MVP is for Minimum, and that applies not just to the product, but to the context of use. You start as small as possible, just enough to test your hypotheses. The smaller your tests, the faster you learn.

He makes another rookie mistake here: "I still need to buy the same number of tablets to rent to hotels, and can't even really discount the product that much." Lean Startups are not cheap startups. It cost Toyota millions to build the first Prius, but they did not sell it for millions. That's fine, because the point of your early MVPs is not to cover the expenses. It's to learn things, including about what people will pay. In Lean thinking you price based on _value_ , not cost, and then work hard to minimize costs while maintaining value.

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

[2] [https://www.amazon.com/Four-Steps-Epiphany-Steve- Blank/dp/09...](https://www.amazon.com/Four-Steps-Epiphany-Steve- Blank/dp/0989200507)

<comment><AUTHOR> > The funny thing is that every Lean Startup founder who delays shipping > struggles with excuses like this.

Honestly, that's the whole reason why I wrote that article. I'm struggling with that thought as well, but I don't think you're completely right on that.

> Maybe you start with a single floor or even a single hotel room into which > you preferentially book people who you think will be early adopters.

This is exactly the plan I'm going with actually. But still, sourcing tablets, sourcing funds to buy them, and then developing an MVP takes time. It can't be too simple that it will be detrimental to their guest satisfaction, finding the balance is key, that's why the initial version is only room service.

> Maybe you just find one mom-and-pop hotel who pays you not in money but in > their time and data.

Again, that's what I'm going after. Some people say that I should already charge them, and finding hotels that would pay for that at this stage is a waste of time, that's the point I was trying to make in the article. Finding a hotel that will pay with their time and data is exactly what I'm going after.

<comment><USER7> Ok? I'm glad you're doing more than is described in what you initially wrote, but I can only respond to the thing you wrote.

I think these struggles are very similar to what people doing B2C startups go through. Nobody has a fully marketable product on day 1. Early tests of the value prop are key, and people do all sorts of things to prove that the value really is sufficient to build a business on before they get cash in hand.

But I think it's always important to keep in mind that until somebody actually does pay, it's all just a fantasy. And it's also important to keep in mind that as entrepreneurs we really want to preserve the fantasy. You know your market better than anybody here, and it's your money you're spending, so use your best judgment. This could be the optimal way forward.

However, the inability to find early adopters could also be evidence that there isn't really a market, that you're selling a nice-to-have. Or it could be evidence that your company doesn't have the sales capacity to move the product, even if you end up making something good. Until you actually make some sales (and more importantly, recurring sales), you won't know for sure. So every time you find a reason to delay that moment of truth, you should be suspicious.

<comment><AUTHOR> Thanks a lot.

> So every time you find a reason to delay that moment of truth, you should be > suspicious.

I couldn't agree more with this. My worry is that this thought is going to make me approach hotels a bit too early that will be a waste of time. Finding the right time and the right stage is the key.

One thing that is not mentioned in the article is that my initial idea was to develop white-labeled app for hotels that their guests could download. I got someone to introduce me to a hotel owner, and he got me into his hotel. At that stage, I didn't have an app. I'm a software developer, but I didn't even know how to develop for iOS. After they agreed, it took me about one and a half months to learn iOS development, develop the client and develop the back- end. They kind of lost interest. Without getting into much detail, there were other issues with that idea, evident from my other visits to some other hotels, so I pivoted into this. And this time, when I go to a hotel, I want it to be at a stage where it's useful to the hotel, and where I can collect ROI data.

> However, the inability to find early adopters could also be evidence that > there isn't really a market, that you're selling a nice-to-have.

I definitely agree with that too. I talked to hotel managers, and they are mostly very excited about the idea, but until they pay me, there is no way of finding out for sure. In the end, in-room tablets might not be a thing, but hotels will need to use technology to understand their in-house guests better, personalize their experiences and automate many things that the staff do now, I have no doubt about it.

<comment><USER8> IMHO the key is to not think about scaling and economics when you initially try out stuff. You need to find one friendly hotel manager who puts one tablet in one of their rooms, and have reception staff ask the guest on checkout how they liked the tablet offering. That is enough for you to get a feedback loop going. If after a few development cycles your product is exciting enough that the friendly hotel manager considers paying for it, then you think about how you can make it work for that one hotel (from an economic perspective). Then you approach your second hotel.

Of course, it makes sense to have a plan about scaling, but it is a mistake to already put everything in place to be prepared for scaling.

(Disclaimer: working in a startup, but not a founder)

<comment><AUTHOR> That's an interesting point of view, thanks a lot!

</comment></comment></comment></comment></comment></comment><comment><USER9> The premise of the article is flawed.

It's a hardware startup that is selling to Hotels. There are barriers to entry, but nothing inherent to being a B2B startup.

Bootstrapped B2C hardware companies face similar challenges.

Hotels are only one business vertical, there are hundreds of thousands of business verticals, some of which won't require as much upfront product investment to gain traction.

It boils down to this: hardware startups need funding to get off the ground.

Here is my unsolicited advice:

Find yourself a business co-founder who has experience in the hotel hospitality space. If you can convince them of the value of your idea, and the sign on, their job is to find a few hotel chains to do a paid-for pilot. This person could even be your first investor.

In lieu of that, raise a friends and family round to generate enough funds to get the hardware you need, and target a subset of rooms at a hotel (luxury room suites). You won't have to buy nearly as many tablets, and their patrons already expect a premium experience.

<comment><USER10> > friends and family round ? Are you kidding ? not everybody is privileged to > have family or friends with money to invest.

<comment><USER11> So? It's not like he said that's the only way.

</comment></comment></comment><comment><USER12> A pattern I've witnessed on some enterprise B2B startups is that they start out with the founder having a pre-existing relationship with a decision maker at a company.

That guy is going "my business has this problem" over a beer and the founder goes "I can solve that for you" and they work out a deal. The founder builds the MVP that solves the customer's problem and incorporates so they can get paid.

The founder iterates and continues getting paid and at some point uses the cash to hire one of those expensive salespeople who knows how to chase down decision makers.

<comment><USER13> Exactly the way we started our SaaS about a year and a half ago and currently reached 68k Euros MRR with a 50% profit margin.

I am pretty sure this pre-existing contact was a great helper. Far beyond being the first customer.

</comment></comment><comment><USER14> I've seen B2B startups become successful by doing B2B consulting, finding something they can replicate aka productize, and create scale that way.

<comment><USER15> Can you give some examples?

<comment><USER16> We did that with B2B consulting in machine learning (rare-technologies.com) => transitioned to B2B products (scaletext.com, pii-tools.com).

Actually, we started even one step earlier, by working on open source (Gensim), no money involved at all.

</comment></comment></comment><comment><USER17> This problem gets even worse with enterprise sales. How to validate a market or use any of that "Lean Startup" wisdom when the sales process for a single customer is 6 months+, requires multiple meetings and getting 10's of the customers staff, across multiple departments, on-board? It's very hard to find any single, concrete measure of success.

<comment><USER18> Try adding a hardware product into the mix. Not only do you have to deal with super long sales cycles, each iteration of your product takes months, if not years, to release. You can't just whack together an MVP and make it better over time unless you're happy to keep doing upgrades in the field. B2B hardware products and the "Lean Startup" ethos are very hard to marry!

<comment><USER19> Or in biopharma, where selling a product requires 10 years and $200M of r&d. The model is to sell your company or go public long before that point

In this case, your "customers" are venture funds and pharma companies, and your MVP is a well thought out experimental plan. You get more customer / investors by doing the experiments and using that data to design another experiment

They tried adapting the lean startup to life science with mixed success. For biopharma as a specific life sci sector other models work better than lean

</comment></comment></comment><comment><USER20> The article reads like the author still hasn't tried selling it. B2B MVPs work just as well as B2C product. Sometimes they work even better with the correct client giving big $$$ to build some features with priority.

From a startup founder who also had a "We will perfect the product and then it will sell itself" mentality, which was one of our major mistakes: Start stelling! Now!

Even with a perfect product the sales process will only get only 20-30% easier. Even with the perfect product you will need the same optimized sales pitch and the same optimized sales presentations.

<comment><USER21> > Sometimes they work even better with the correct client giving big $$$ to > build some features with priority.

You're spot on with this. I worked in a small B2B startup for a bit over 18 months and that was always our route to market. Develop the stem of the idea, polish it enough to make it convincing in a demo, and approach a big company. They sponsor development by buying licenses, and in exchange they get a say in the development process, the features we prioritize/drop, etc. The result is a win-win: they get a product that fits their needs, we get funding and credibility.

<comment><AUTHOR> > Develop the stem of the idea, polish it enough to make it convincing

Well, this is exactly what I'm working on. What I was trying to say in the article is, many times in B2C startups, you can create an MVP that is very unpolished, it takes a bit more polishing in enterprise B2B.

</comment></comment></comment><comment><USER22> Actually, it's not uncommon for enterprise sales to involve signing an MOU/contract without the software being ready. You don't even need an MVP. Maybe a POC or strong reference customers of related nature.

<comment><USER23> Yep. A client of mine is approaching it this way now. I've been building the prototype/MVP for the past couple months. The founder (my client) is an ex- lawyer and the customers will be law firms like the one where he worked. The product pricing will be in the range of $50-100k per customer. The sales strategy is to pitch the early customers with the MVP, get them to commit $50-100k for the mature version of the product delivered in two months, and use that money to fund further development. We talked to some companies that successfully approached b2b sales in the same way. I'm interested to see how it works for us.

</comment></comment><comment><USER24> "I don't doubt that there might be a few hotel executives that are willing to bet on this, and sign up at this very early stage at a discounted price, but contrary to the belief of many others, this is really unlikely, and it's not worth spending too much effort on considering the expected return."

Not worth the expected return? This sounds like a case of you wanting 'instant gratification' and to be making huge amounts of money from the start, which is bogus. With a few customers you will:

1\. Be getting the use cases, bugs, feedback directly from your customers

2\. Show you can get _some_ funding and are building something people will pay for (or if they drop you, you'll understand why)

3\. Have numbers, knowledge, and customer referrals which will VASTLY help getting more customers. I.e. when you are in the sales pitch, saying "X hotels have been using this for a year, and have generated Y additional sales, and have learned Z metrics about their hotel guests" etc.

<comment><AUTHOR> As I mentioned in the article, being a solo-founder doesn't help.

There are two things I can do with my time.

1\. I can go ahead and talk to as many hotels as I can, halting development. At this stage, there isn't even anything that is actually working. I have dealt with hotel sales before, finding decision makers, convincing them, etc. take a lot of time.

2\. I can work on finishing the MVP (which is only room service).

Going with the first route, the expected return is way too small. Let's be optimistic, and say one in 30 hotel managers thinks this is super cool, and decides to pay for this thing way in advance. Talking to 30 hotels, arranging meetings, getting them to respond, etc. would take months.

Instead, I can get it to a point where I have an MVP that can be put in a hotel room, which can calculate the ROI it brings, which I can use to justify the cost of the product. This is the path I chose.

(I obviously talked to hospitality professionals to get their feedback, but I wasn't selling them.)

</comment></comment><comment><USER25> I work at a travel B2B SaaS company, and we roll out MVP products to our clients all the time. I think the key difference between selling to businesses and consumers is the appetite for risk.

So assuming you have a good product, you have to consider two things: commercial terms and SLA. This is a delicate balancing act when you're trying to shop your MVP. You don't want to underprice because implicitly you're saying the product isn't ready for production. You don't want to overprice, and set expectations too high. You also want to be careful about what kind of level of support you're agreeing to with your product. If it's an MVP, are you going to drop support after 6 months if your business can't support itself?

Good businesses consider these things before they sign-on for an MVP product, make sure you have good answers to these questions.

<comment><AUTHOR> Thanks a lot, I definitely agree.

</comment></comment><comment><USER26> you probably should have at least a chain lined up to work with. or find a var/re-seller that focuses on hotels. unless you are a hotel owner you don't know what their hot buttons are.

for instance if one of your features is guests can see their bill in real- time. that might not be a feature to the owners. they might want the extra revenue of customers not knowing their bill and getting cought up in the experience. the point is you don't know.

your adding features you want not the person buying. again unless you are working with a hotel owner or have sold similar systems or were one in the past.

</comment><comment><USER27> There's an interesting point to be made about B2C vs. B2B products.

There's a thesis out there, that in order to test the market you can put up a simple website adverstising your yet-to-be-made product and see if you get any subscribers. I feel like this applies to B2C products and low ticket B2B products (i.e. $10 per user per month).

The playing field for a serious B2B product is very different and the MVP needs to be in good shape in order to win and keep clients.

<comment><USER28> I strongly disagree with this comment (needing an MVP). For a serious B2B product you need a team, sales process and social proof/track record that convinces the customer you will deliver on your promises.

But above all, you need a product which solves a tangible, significant problem for the customer!

If the willingness of a customer to sign a prelaunch sales agreement comes down to the quality of your MVP, something has gone wrong in your sales process and the customer is just looking for an excuse to decline.

<comment><USER29> I think parent is saying something similar to you, but you've just laid it out in more detail. They didn't say the other things you've mentioned don't matter. They said that the product can't be a scrappy MVP.

<comment><USER28> Perhaps. I understood _' the MVP needs to be in good shape in order to win and keep clients'_ as meaning _' in order to win (and keep) clients, you need a (good) MVP'_.

I was objecting to the idea that you need an MVP at all to win clients (although obviously retaining them is a different story).

</comment></comment></comment></comment><comment><USER30> Requiring a customer to spend hundreds of dollars to use an MVP doesn't sound like an MVP...

Evrim doesn't clarify what his product is that needs a tablet, so it's hard to offer any specific advice. _BUT_ he should be finding a way to test his product with pen/paper, employee or customer smart devices, or other equipment that the hotel already owns.

<comment><USER31> The "V" in MVP stands for viable. If someone isn't willing to pay for it, then it's not an MVP.

<comment><USER30> Before the "V" comes the "P". His "P" is the software that is on the tablet, not the tablet itself (at least that was my impression). The hotel needs to pay for the software, not the tablet.

</comment></comment></comment><comment><USER32> It's unfortunate but most of the B2B marketing is done at business conferences I imagine. It's not cheap to setup a booth and I imagine the success rate is not very high.

<comment><USER29> On the flip side, B2B conferences and tradeshows exist because they're able to give vendors face time with people they couldn't easily meet otherwise.

It's not cheap, the success rate isn't high, but it can be cost-effective. I've spent 20k USD on a small 6x3 feet booth space, but also gotten 40 to 50k USD over the course of a few months from conversations that were initiated at the booth.

Another point to factor in is that enterprise customers by nature have low churn... and that makes the RoI work out in the end.

</comment></comment><comment><USER33> It's more of a B2B2C rather than B2B. Also it's a hardware-first startup, so it's going to be hard to iterate, no matter how good or bad the MVP is.

</comment><comment><USER34> Not one link in the article to Automated Hotel? Even if I would consider your solution, I can't find it? That does seem like bad sales...

<comment><AUTHOR> I actually have limited time working on the development side, so I didn't create a website for it. At this current stage, the chances of a hotel decision maker coming across the solution and deciding to buy it seemed very low compared to the time I needed to put in to put together a decent website.

And I just wanted to rant, I didn't expect it to get this much attention on Hacker News to be honest :)

</comment></comment><comment> at-fates-hands If anybody doesn't know, MVP stand for "Minimal Viable Product." It's not listed in the article.

</comment><comment><USER35> Always be closing. You will never really know what your customers need if you don't have any!</comment>


MIT students being badass on the big screen -- the '21' movie trailer (Bringing Down The House) - <AUTHOR> http://www.piusuzamere.com/2007/11/19/the-bringing-down-the-house-movie-is-going-to-be-badass

<comment><USER2> The book was a lot of fun, and the movie looks like it'll be entertaining too. It was a little silly that the book pitched itself as "the book vegas doesn't want you to read," though. Vegas loves this book, and vegas loves this movie. How many people are really going to organize a card counting team talented enough to beat a big casino? This movie will fill hotel rooms and get the kids down at the blackjack table. +1 for Vegas.

One thing that irritates me slightly - the blackjack team was mainly Asian, from what I've read. The casinos were ready to believe that an irresponsible child of super wealthy Asian parents was throwing down this kind of money at the tables - a stereotype that the MIT team successfully used to avoid detection for some time.

But eh, it still looks like fun. I'll probably go see it. And yeah, I'll probably lose some more money at blackjack.

<comment><USER3> I've never gambled, but from what I've heard Vegas has a hostile attitude towards cardcounters. This always seemed highly irrational, because often times they bring their silly spouse who gives back to the casino more than the smartypants card counter earns.

Then there's the fact that unless you really have some kind of special ace up your sleeve, you can only make maybe $10-25/hr. If you have the smarts to pull off some fancy gambling thing, you can probably use your limited brainpower elsewhere in more profitable ways. It becomes work like anything else. Doing it is not fun, it requires intense concentration and extensive preparation.

<comment><USER2> Yeah, the whole thing does seem like a big waste of time. The MIT blackjack team is capable of 1) writing software to calculate the expected value of a bet under variable counts and deck sizes, 2) focusing well enough to keep count under duress, 3) working closely in a tightly coordinated team environment, and 4) finding investors.

They don't need to be plaing blackjack, even under favorable circumstances. They can find a higher expected return by moving to Wall Street and doing computational finance, or by starting software companies.

That said, have you ever read Thorpe's "beat the dealer"? There is someting kind of great about gaining an edge over a casino like this. For whatever reason, the idea of using math and computer programming to gain an edge over a casino seems to appeal enormously to a subsection of the population.

</comment></comment></comment><comment><USER4> Most of this was actually shot on BU's campus. The scene where they're learning how to play was shot in the basement of Mugar (BU's main library).

Apparently MIT doesn't look enough like MIT...

<comment><USER5> First off, MIT's ugly... Second, and probably more important, MIT doesn't actually allow anyone to film for movies on campus.

<comment><AUTHOR> I don't think MIT's ugly, but I was certainly in the minority on that issue when I was on campus.

The reunion scene in Good Will Hunting was actually shot on Kresge Oval (I think), but I'm not sure why they went elsewhere for interiors. You may be right.

<comment><USER5> I was just kidding about the ugly. I'm a huge fan of the campus architecture.

</comment></comment></comment></comment><comment><USER6> The book read so much like an action movie that I thought they wouldn't have to change it much to make a movie out of it. I was wrong.

<comment><USER7> yea i thought the book was a good enough. i saw a discovery channel special about it, and they just made stuff up and left important details out.

</comment></comment><comment><USER8> I read the book (along with "Ugly Americans") back in high school and enjoyed it. Looking forward to seeing a live-action version.

</comment><comment><USER9> Too hilarious. I've met a lot of the people involved in that. Can't wait to see if they show up in the movies.</comment>


Google Securing The Web One Discrete Monopolizing Push At A Time - <AUTHOR> http://eric.lubow.org/2011/security/google-securing-the-web-one-discrete-monopolizing-push-at-a-time/

<comment><USER2> The fun thing is when you have a secure website and for some reason you have to link to a .png or JS hosted on a different, non-secure domain. Last I checked IE was displaying to the user a very ugly security alert message.

<comment><USER3> What you're describing is known as a mixed-content vulnerability, which allows an appropriately positioned third-party to replace the content with whatever they chose. In the case of something like an included JavaScript file, you're negating most of the security provided by SSL.

See: [http://googleonlinesecurity.blogspot.com/2011/06/trying- to-e...](http://googleonlinesecurity.blogspot.com/2011/06/trying-to-end-mixed- scripting.html)

<comment><USER4> Right. I think the goal of all this is to have everyone be on SSL so there aren't any mixed-content vulnerabilities. Hardware has come far enough where SSL is no longer overly taxing to encrypt-decrypt streams between the user and the site. So SSL-enabling a site isn't problematic (and in my opinion should be encouraged). (Full disclosure: I wrote that article).</comment></comment></comment>


Python 201: Decorators - <AUTHOR> http://www.blog.pythonlibrary.org/2014/03/13/python-201-decorators/

<comment><USER2> Everyone's pedagogical requirements vary, and decorators are notoriously hard to explain[0], but seeing something like "A decorator in Python is a function that accepts another function as an argument." as a flat statement at the beginning of the article is an immediate turn-off for me, since I can easily see someone who is still learning about Python in general extrapolating from this to conclude, say, that map(), reduce(), and filter() are decorators as well. It's just a bad start to the article IMO and I didn't bother reading much further.

[0] [http://pythonconquerstheuniverse.wordpress.com/2012/04/29/py...](http://pythonconquerstheuniverse.wordpress.com/2012/04/29/python- decorators/)</comment>


SESHAT: Handwritten math expression parser - <AUTHOR> https://github.com/falvaro/seshat <comment><USER2> Wow, just skimmed through the PhD thesis that includes this work[1] and it's impressively thorough. The algorithm supports both vector and bitmap input, and uses Recursive Neural Networks and probabilistic grammars to disambiguate the symbols. Their open source implementation is in C++, under GPLv3 license.

[1] [https://riunet.upv.es/handle/10251/51665](https://riunet.upv.es/handle/10251/51665)

I've tried the web demo and for me it works quite well. In my case, definite integrals work except for the "dx" which gets interpreted as "d_x" for no apparent reason.

Some years ago I did some work in this direction which might be relevant: it only involved the formula structure analysis with an improved version of the DRACULAE algorithm from Zanibbi et al. (also cited in SESHAT's paper), starting from given characters (no symbol recognition except for hand-drawn fraction bars) freely positioned/scaled on the page. It delivers layout/presentation markup (MathML, DRACULAE tree), semantic encoding (OpenMath), natural language (English) and speech output, all in Javascript: [http://matracas.org/tacto/](http://matracas.org/tacto/)

At the time, speech worked in Firefox, Chrome and even Safari, but nowadays only works in Firefox. I don't remember whether it worked in Opera but all other features did.

[Edit to add:] My application does not implement matrices either, just arithmetics including exponents, subindexes, and fractions.

<comment><USER3> You have to bring the x up a bit higher and/or make it bigger. I had the same problem, but with "dy" becoming "d_y".

</comment></comment><comment><USER4> I have been using the free app "MathPad" on iPhone for a few years now. It does the same thing (A LOT better). But the free version does not allow export to LaTeX, so this open source alternative is more than welcome.

</comment><comment><USER5> This reminds me of work by one of my professors at Rochester Institute of Technology (Dr. Richard Zanibbi). There is an application called Freehand Formula Entry System (FFES) available on his website for download (GPL source as well) [1]. He also published a paper on it titled "Recognition and Retrieval of Mathematical Expressions" (2012) [2].

[1] [https://www.cs.rit.edu/~rlaz/ffes/](https://www.cs.rit.edu/~rlaz/ffes/)

[2] [https://www.cs.rit.edu/~rlaz/files/mathSurvey.pdf](https://www.cs.rit.edu/~rlaz/files/mathSurvey.pdf)

</comment><comment><USER6> This is an awesome project! The demo could use some work, though. It's pretty hard to write legibly with a mouse, so I tried to open it on my phone, but the canvas doesn't work properly when zoomed in. (using Chrome on Android)

</comment><comment><USER7> Works great when it does, fails miserably when it doesn't.

For example, it doesn't seem to know about matrices. That's fine, but when you enter one, it comes up with spectacular failures. I got integrals (probably because an integral sign somewhat matches the 'opening parenthesis' of a matrix) i^i, cases where it almost randomly stringed together parts of a matrix, etc.

<comment><USER8> _On the other hand, matrices (1324)(1234), left scripts (nCmnCm) or piecewise functions (f(n)={n1−nn≥0n <0f(n)={nn≥01−nn<0) are not recognized yet._

</comment></comment><comment><USER9> The symbol recognition is really good, but it does not handle positioning and relative sizes that well: [http://imgur.com/7FCr6TD](http://imgur.com/7FCr6TD)

<comment><USER10> Your handwriting is pretty bad tbh. Could be the reason. If we were using styluses the problem might not exist.

<comment><USER9> My handwriting _is_ pretty bad, but it actually recognized all the symbols correctly (which is _really impressive_ , considering how deformed the pi and 1 are).

My point is that assembling the symbols into a complete expression does not seem to work as reliably yet.

I had a look at the PhD thesis on the approach and it seems that the algorithm essentially relies on relative positioning only, plus some heuristics for symbols with "appendages" like 'd' or 'p' (This probably explains how "dx" ends up as "d_x").

If it were to additionally take into account relative sizes also, performance might improve a bit.

</comment></comment></comment><comment><USER11> Hehe, guess I'm not the only one who likes using ancient gods as names for technology. My backup server is called Seshat, since she's seen as a record keeper.

</comment><comment><USER12> I can't seem to make it recognize logs with arbitrary bases:

[http://imgur.com/a/GkW9E](http://imgur.com/a/GkW9E)

</comment><comment><USER13> This works rather well! I tried it on my iPhone. Simple expressions work just fine. I can't seem to make finite integrals work though.

<comment><USER14> Indeed, it keeps trying to interpret it as a sum. Though perhaps the pi symbol is confusing it. I actually have an archive of all my physics degree notes - it'll be interesting to see how well it handles them (e.g. equations not written with it in mind, at all)

<comment><USER15> Unless you wrote your notes digitally, it won't work: "the parser accepts input files in two formats: InkML and SCGINK". These are stroke based formats - the recogniser needs to know which points are connected, and possibly which order things were drawn.

<comment><USER14> Oh, I was misinterpreting the definition of handwritten. A pity.

Edit: Though, thinking of it, does anyone know of research into decomposing images of text into stroke patterns? It seems like it's a problem that must have had some decent research on it...

</comment></comment></comment></comment><comment><USER16> This is great and worked very well on the few examples I tried. I wonder how it would work with a photo - author, has it been tried?

</comment><comment><USER17> Something seems off here: [http://i.imgur.com/qBJCIqh.png](http://i.imgur.com/qBJCIqh.png)

</comment><comment><USER18> The link text is something of a garden path sentence... At first I thought it was a handwritten parser for math expressions, not a parser for handwritten math expressions!

<comment><USER19> Assuming the title hasn't changed... I don't see it?

The confusion of a garden path sentence is caused by a prefix being parsed differently from the final sentence, but "Handwritten math expression" parses as one would expect here.

<comment><USER14> Except the phrase I parse is "Math expression parser", prefixed by "Handwritten".</comment></comment></comment>


The Sad State of the Backbone Ecosystem - <AUTHOR> http://benmccormick.org/2016/03/07/the-sad-state-of-the-backbone-ecosystem/ <comment><USER2> I disagree with the title - I don't think this is a sad state at all. This looks very healthy to me. Backbone clearly had a purpose some years ago and it is unequivocally deprecated now. To me, this is a javascript library aging gracefully and opening the way to newer, better libraries. By removing itself from the list of relevant libraries to choose from in the current year, backbone has helped to reduce decision fatigue.

I hope other Javascript libraries and framework follow this trend until we find a handful of "winner" libraries in the same way that each language has its own "winner" MVC library.

<comment><USER3> > This looks very healthy to me

The author of the project just like abandoned it, does that sound healthy to you ? Backbone is totally irrelevant.

<comment><USER4> By what measure?

I'm using Backbone again, courtesy of CartoDB.js [1] and have no interest in chasing whatever React variant was just pushed to GitHub.

(Un)fortunately I'm an enterprise developer and that means staying a decent distance behind whatever the "state of the art" is.

A recent experience with npm/ruby/grunt has put me off it until I have a chance to sit down for a few hours and unpick what exactly it was doing (can anyone recommend a way to simulate an NTLM proxy?)

[1] [http://cartodb.com](http://cartodb.com)

</comment></comment></comment><comment><USER5> Backbone is a fundamentally different paradigm from React, so as you point out it won't always make sense to borrow ideas from React or other one-way frameworks.* I find its usefulness waning these days for big projects, but it's absolutely my go-to for most small apps (I do a lot of client work). It's just easier to work with and less boilerplate when you don't need the strictness that React enforces / encourages.

As others have pointed out, having a stable API is a wonderful thing for a vast majority of projects. Backbone is stable because its ideas are battle- tested and the concepts are all there. People are seeing less usefulness for Marionette / Chaplin / Aurora, and I don't think that's all that bad.

* Disclosure: I'm a core contributor to Backbone.

<comment><USER6> > It's just easier to work with and less boilerplate when you don't need the > strictness that React enforces / encourages.

domvm [1] and Mithril [2] promote the same ideas as Backbone, as far as flexibility but with vdom underneath and are far faster than React. domvm is about 2x Mithril performance and both libs are < 20k min. Mithril is more stable and has a much larger userbase, while domvm 1.0 is targeted for 4/1\. If anyone is feeling adventurous, feedback and contributions are welcome!

* Disclosure: I'm the author of domvm.

[1] [https://github.com/leeoniya/domvm](https://github.com/leeoniya/domvm)

[2] [http://mithril.js.org/](http://mithril.js.org/)

<comment><USER7> According to Inferno's benchmarks section[1] that lists Mithril, Mithril is actually slower than React when it comes to DBMonster and is slower than all others listed. As an aside, domvm seems to be exceptional in its performance and size. Yes, others are faster, but the library is much smaller. The flexibility of it is also pretty awesome and holds a place in my heart after making my own mini framework years ago.

[1][https://github.com/trueadm/inferno#benchmarks](https://github.com/trueadm/inferno#benchmarks)

<comment><USER6> A small perf % is given up by domvm for improved ergonomics and compositional freedom. This was a premeditated choice for the architecture.

More details if you're interested: [https://github.com/leeoniya/domvm/issues/30#issuecomment-193...](https://github.com/leeoniya/domvm/issues/30#issuecomment-193416630)

</comment></comment></comment></comment><comment><USER8> Sad state? Not at all. I guess it all depends on the type of coder that you are. Let's say you need a theme/gui for your app. Plan A: get a bootstrap theme, tested, reliable, responsive, modern, etc. You'll be getting a ton of code/features of which you'll probably just need 5%. Plan B: get something ultra simple that gives you structure and add stuff as you need it, something that maybe has grids, buttons and forms (maybe something you even code yourself like I normally do). Backbone is like that: just the structure (hence the name!) with a couple of commonly used features. Angular/React/Ember are like the bootstrap theme. I personally like to have full control of what is added to my code.

Regarding Google Trends, if a framework has big (huge) money behind, it will most likely be more searched-for, sponsored, events held, conferences, hackatons, etc.

Finally, once you set to learn and use a stable tech, you will be profiting from it for a long time. I still have a couple of apps running classic ASP! With JS frameworks I think we can safely assume it will be even longer.

<comment><USER9> > Backbone is like that: just the structure (hence the name!) with a couple of > commonly used features.

I had a look at Backbone a few times and liked that it indeed provided a clean structure without too much overhead, though I've never had the opportunity to use it(I guess I won't now).

I'm wondering though, now that Backbone is apparently on the way to be deprecated, is there any good alternative?

<comment><USER10> Look at the aforementioned mithril and domvm...there is also vue.js [http://vuejs.org/](http://vuejs.org/)

<comment><USER11> And Riot. I think CycleJs also looks small and simple but maybe not in the same way.

<comment><USER8> Have you tried Riot in production? Maybe a sample app we can see?

</comment></comment></comment></comment></comment><comment><USER12> I guess I see this as a) not surprising, and b) not a problem.

If you're using Backbone in 2016 (like I am), it probably means you want your "framework" to be simple, stable, and customizable. Given those priorities, using a wide variety of plugins doesn't make much sense.

If you want 3rd-party code to do a ton of stuff for you in an opaque way, you're much better off using Angular or Ember.

<comment><USER13> "simple, stable, and customizable" aren't really priorities, since they're so ambiguous.

</comment></comment><comment><USER14> It's not sad at all, in fact it's the opposite - Backbone can be considered a stable, battle-tested framework with a "finished" API and features set. What's not to like? Sure, they could turn it into a bloated monster, with constant API changes and new features with new bugs, but Backbone had a clear goal to be as versatile, flexible and easy to use as possible, providing only the most important components, and they've achieved that all right. Seriously, if you've made several big web apps in the past using Backbone than you'll make another one much faster with Backbone, rather than the "new and shiny" which you'll need to learn from scratch.

<comment><AUTHOR> Several made this point, that Backbone is stable, not abandoned. I agree! I said so in the post. My concern is with the libraries around it. I've elaborated in this followup post: [http://benmccormick.org/2016/03/09/stability-vs- decline/](http://benmccormick.org/2016/03/09/stability-vs-decline/)

</comment></comment><comment><USER15> One of the common trends in JavaScript is the proliferation of dependencies...there are 25 listed (+ Backbone makes 26). It's a fragile chain that requires a lot of people to provide attention to maintenance of all that supporting infrastructure. And it requires each of them not to be on the wrong side of a "non-negotiable" feature requirement for each developer making a decision to use it _and_ has to be beloved enough that each maintaining developer is willing to fix bugs and update their library for no other reason than to make it appear "fresh."

<comment><USER16> I think this is strongly tied to the current fad have having every micro- library be "dependency free". I don't fully understand the appeal.

"Here's my tool that is superior because it has no dependencies. Will you make it your next dependency?"

I understand the appeal when you have a very small set of problems and ultimate flexibility, but this always ends up in a lot of duplication of effort and code (how many libraries have a denounce method, or other general utility method?)

Maybe to rephrase, I understand the benefits, I guess I just don't understand the persistence of the fad in the face all of the drawbacks.

<comment><USER17> You probably meant debounce. I'm now thinking of all the things I could use denounce() for.

</comment></comment></comment><comment><USER18> I think his Google Trends graph is way off. If you use spaces instead of dots (for example, use search terms like "angular js" instead of "angular.js" you will see a very different picture in which Angular passes Backbone early in 2013 and rises to dominance, with React following a similar trajectory below Angular, about 2 years later: [https://www.google.com/trends/explore#q=angular%20js%2C%20ba...](https://www.google.com/trends/explore#q=angular%20js%2C%20backbone%20js%2C%20ember%20js%2C%20react%20js&date=1%2F2011%2061m&cmpt=q&tz=Etc%2FGMT%2B5) That graph has a better fit to my subjective memory of the popularity of these frameworks. Backbone was never so dominant, and Angular is not flat or in decline, except over the past 6-12 months its growth might be slowing with respect to React.

</comment><comment><USER19> JavaScript - where library maturity is considered a failure.

</comment><comment><USER20> Frontend is still the Wild West. Programming is still the Wild West. We're still figuring out what ideas don't work, what ideas work and how far up they scale. I can't help but wonder if we are nearing the end state with Functional, or if some huge new ideas are yet to be thought up. Math and physics are kind of like programming and are pretty well figured out by now. There is also Logic programming, I personally don't understand any huge applications of it but the whole world couldn't apply functional until maybe ten years ago. What else is already out there that nobody is paying attention to?

<comment><USER21> > Math and physics are kind of like programming and are pretty well figured > out by now.

I used to think this too. Then I got into machine learning and modern physics. There is still much in both fields left unresolved, both empirically and philosophically. I suspect the same is true of programming. For instance, machine learning aided programming (the next generation of syntax checking, with recommendations) will no doubt open up new ways to be even more productive, and new tools will crop up to support that. Maybe machine-aided debugging gets way better and this leads to bettering ecosystems because it can catch (and maybe fix) breakages better. Right now, I think it's amazing that all these things like npm, pip, and apt hold together as well as they do (but the extent to which they don't is a huge time suck and productivity killer).

</comment></comment><comment><USER22> What I see there is:

\- React is off its peak, and may be flat-to-declining

\- Angular is declining

\- Ember is declining

\- Backbone is declining

It looks to me like a consolidation phase.

But, yeah, backbone sure got hammered in the last two years. Having watched a big company make a bet on a client-side library that didn't work out... sorry about that.

<comment><USER23> In a big company, if software is the product, I'm not expecting to get more than a couple years out of it.

</comment></comment><comment><USER4> Maybe, just maybe, constant movement and change isn't a good thing in a _library_ that has many, many projects depending on it. This article has made me _more_ likely to try Backbone again.

</comment><comment><USER24> I'm working in Angular now. I miss Backbone, and fully believe the applications we built in it are strong, supportable, tested and expandable. They increased my reputation for fast delivery and high quality.

But, the technologies aren't usually our decisions, and "what's cool" is generally what wins :-(

</comment><comment><USER25> I enjoyed working with backbone. It was a breath of fresh air back in the day. I've actually ported it to C++ and Java (implementing an Event emitter for both languages).

And I respect Jeremy, also the author of coffee script, the most expressive language which I also enjoyed working with.

Scaling such a lib for the entire universe and maintaining it is probably quite complicated without strong financial backing, but maybe not all projects are supposed to be scaled.

I still like hacking together quick one-page apps with Backbone, it's too easy to do, although I have to admit that React is much more powerful - in theory.

For many, though, Backbone can still be a very good choice.

<comment><USER26> I also greatly respect Jeremy for the work he's done on Backbone, CoffeeScript, and Underscore.

I'm confused by his stance on versioning, however: he's very much against semver, which means these tools can be tricky to use with npm (which assumes all packages follow semver).

[https://gist.github.com/jashkenas/cbd2b088e20279ae2c8e](https://gist.github.com/jashkenas/cbd2b088e20279ae2c8e)

</comment></comment><comment><USER27> (From the docs:) "Backbone is an attempt to discover the minimal set of data- structuring (models and collections) and user interface (views and URLs) primitives that are generally useful when building web applications with JavaScript."

In this respect, I would say it is a great success! The biggest application I have seen is the slick SoundCloud web interface (though I don't know if they've moved on).

Sometimes, you don't need a gigantic ecosystem that pulls in half the internet when you do an "npm install". Just something to give a basic structure .. a backbone .. hey wait :) !

</comment><comment><USER28> Backbone lovers who want a mostly compatible but modern tool (no jQ, state/reactivity, updates) ought to look at Ampersand.

</comment><comment><USER29> Last time I worked with Backbone I recall there being a schism in the community regarding the use of JQuery under the hood. The author was presented with performance metrics comparing Backbone to a vanilla JS fork which had made substantial improvements to rendering performance. That might've represented a major turning point in the evolution of the framework, but perhaps one of the reasons it stagnated was little to none of that criticism was taken onboard?

<comment><USER5> I'm not sure what you mean by that last part. We removed the jQuery dependency in View [0] and History [1], and I wrote a small shiim to allow Backbone Views to work with vanilla JS [2]. No schism, just not a huge paradigm shift either (which is a good thing).

[0] [https://github.com/jashkenas/backbone/pull/3003](https://github.com/jashkenas/backbone/pull/3003)

[1] [https://github.com/jashkenas/backbone/pull/3006](https://github.com/jashkenas/backbone/pull/3006)

[2] [https://github.com/akre54/Backbone.NativeView](https://github.com/akre54/Backbone.NativeView)

</comment></comment><comment><USER30> The extensions were hard to compose, because inheritance is such a dominant paradigm in Backbone.

</comment><comment><USER31> The sad indicator for me is the decline of activity around backbone in irc. The channel is all but dead, which means it's hard for people to get help when it is needed.

<comment><USER5> Most one-off discussion has moved to Gitter. It's not an open platform but the channel is better maintained because Gitter has modern features like email notifications.

</comment></comment><comment><USER32> Oh, some Javascript thing. I thought this was about the Internet backbone.

<comment><USER17> Does that have an ecosystem.

<comment><USER33> [https://www.icann.org/sites/default/files/assets/ig- ecosyste...](https://www.icann.org/sites/default/files/assets/ig-ecosystem- functional-2648-1998-20feb14-en.png)

<comment><USER17> That's awesome.</comment></comment></comment></comment>


Android Q will include more ways for carriers to SIM lock your phone - <AUTHOR> https://9to5google.com/2019/01/21/android-q-carriers-sim-lock/ <comment><USER2> Hopefully this means support for a better unlocking mechanism, too.

When I wanted to unlock my iPhone, I was able to go to my carrier's website, pay a small fee and have it be unlocked over-the-air. I wanted to do a similar thing to a Galaxy S6 Edge that I got from them before selling it and I was notified by their site that I will have to physically take it to a store to have it unlocked there. I did that and all they did was come up with loads of surcharges and BS hoops to jump through -- essentially saying that getting that phone unlocked would cost me like 6-8x as much as the iPhone for made-up reasons.

</comment><comment><USER3> Everyone should know that _these restrictions are applied on the first boot with an internet connection_ , and after application aren't easy to remove even if you root the phone and install a different rom.

The simple solution is _never let the phone contact the internet or the phone network with the default ROM_.

</comment><comment><USER4> Is it possible that a rouge app can takeover and add a sim-lock, which can be bypassed?</comment>


Show HN: Bitcoin Price – simple app to keep up with the price of Bitcoin - <AUTHOR> https://itunes.apple.com/us/app/bitcoin-price-simple-beautiful/id1028942813?ls=1&mt=8&ct=hn

<comment><AUTHOR> I focused on simplicity; yet something that's useful.</comment>


CloudEnvy: Development in the cloud - <AUTHOR> http://jake.ai/cloudenvy-development-in-the-cloud <comment><USER2> Heh, that's almost exactly what I'm working on now. After looking at OpenStack and other solutions, I rolled my own.

My solution is cloud agnostic, and does have (almost-there!) multi-node support, and was built to support a local cloud provider (via Linux Containers) .. so you don't have to be online, pay an external provider, or pay the latency cost if you want to run stuff .. you can just do it locally.

This is LOADS more complex than it may seem: due to dynamic virtual network infrastructure, configuration dependencies on network locality, resource requirements, portability concerns, security concerns, etc.

Our primary non-local cloud provider is EC2.

<comment><AUTHOR> Running OpenStack locally on your linux machine and interacting with it via an API may help with some of the networking complexities you're running into.

Is your project open source? I'd be interested to chat about how you're approaching the multi-node support in your stuff.

Please shoot me an email or send a tweet: email@example.com / @jakedahn on twitter

<comment><USER3> You both should take a look at Salt Cloud. Since you are already working with Python Jake it may be worth looking into. The project is doing a lot of the same things and it has the advantage of bootstrapping with Salt.

<comment><USER4> I hack on salt-cloud, and found it to be a useful tool. And getting better every day... <http://github.com/saltstack/salt-cloud>

If you build a few map files using salt-cloud, you have a quick vagrant-ish setup that you can start/stop/destroy with ease. Super easy to have a whole test cluster boot up for quick test/dev work. Fyi, salt is really awesome for people looking for alternatives to chef/puppet: <http://saltstack.org>

</comment></comment></comment></comment><comment><USER5> Awesome. I'm looking forward to EC2 integration.</comment>


Syncing and backing up personal data is still too hard - <AUTHOR> https://www.zachary.com/posts/how-to-data/ <comment><USER2> Looking at the final diagram in the article, though you've achieved your aim of redundant backup, it certainly ISN'T any simpler. If anything, it's a LOT more complex than simply buying dropbox storage and dumping everything there.

<comment><AUTHOR> true -- it's more complicated. However I wanted encrypted at rest documents (and that's hard with Dropbox), and I need backup - not just sync, so Dropbox can only provide half the solution.

There's an opportunity for someone here...

</comment></comment><comment><AUTHOR> This isn't high art, but perhaps it will be useful to others. Getting my family data reasonably well backed up and synchronized between our many devices was a harder problem that I expected it to be.</comment>


FizzBuzz without multiplication or division - <AUTHOR> http://jacob.jkrall.net/fizzbuzz-without-multiplication-or-division

<comment><USER2> FB has really been overanalyzed. It's a test of if you can program at all. 90% of applicants couldn't pass it so it was once a useful quick first line filter if they have any skills at all.

Yes, there are 100 ways to solve it. That doesn't matter. It's not meant to be a major intellectual challenge.

<comment><AUTHOR> The simplicity of the problem, when combined with the repetition of dozens of coding interview warm-ups, converts my restless mind into a FizzBuzz chaconne composer.

</comment></comment><comment><USER3> I've had several technical phone interviews and programming challenges in the past week, and nothing has been even close to as easy as FizzBuzz. Do places actually give it out in interviews?

<comment><AUTHOR> I only use it as a warm-up, because I understand that interviews are pretty stressful. Then I'm dumbfounded when someone who applied for the "Experienced ASP.NET/C# Developer" position can't even get through my warm-up.

</comment></comment><comment><USER4> Feels like the lookup array could be generated at compile time by the C preprocessor somehow...

</comment><comment><USER5> Is FizzBuzz getting used so often in interviews that we're supposed to _expect_ that people will have seen it before, thus the need to put a twist on it? This may say quite a bit about the unoriginality of interviews, if that is the case.

<comment><AUTHOR> I use it as a warm-up in every interview question, and it takes longer to actually write a solution than to reason your way through it, so I've had a long time to think specifically about this problem while waiting for candidates to finish typing. It's always interesting to see what sort of half- baked idea I come up with by the end.

</comment></comment><comment><USER6> Part 2 ([http://jacob.jkrall.net/fizzbuzz-without-multiplication- or-d...](http://jacob.jkrall.net/fizzbuzz-without-multiplication-or- division-p)) has my favorite solution in the series.

<comment><AUTHOR> Me too. What do you think about the line

         if(ix==15) ix = 0;

Should I change this to say

         ix = ix & 15;

Or is that too specific to 3,5-Fizzbuzz?

<comment><USER7> Are those really equivalent? What if ix == 15?

It would work with a 2,8-fizzbuzz, though.

<comment><AUTHOR> Whoops, I wrote that far too late last night. 15&15 = 15, so of course it wouldn't work :)

A 2,8-fizzbuzz would only need 8 items in the circular array since the least common multiple of 2 and 8 is 8:

        ix = ix & 8;

</comment></comment></comment></comment><comment><USER8> Circular look-up table, reminiscent of Oliver Steele's FizzBuzz Station: <http://osteele.com/archives/2008/02/fizzbuzz-station>

<comment><AUTHOR> That is an awesome diagram. There is a full finite-state machine in the comments on OP that I really like, too.

</comment></comment><comment><USER9> This is a weakened version of FizzBuzz---I was taught the version that has you buzz on any number that is divisible by five _OR_ which has a five in its base-ten representation. Which would be a lot harder to do without multiplication or division. :)

<comment><USER10> It would actually be pretty easy to do without (explicit) multiplication or division: just convert it to a string and check text properties. Whether or not it would be any faster is another question, to which I'm almost certain the answer is no.

      istr = string(i)
      if '5' in istr or istr[-1] == '0':
         print "Buzz",

<comment><USER11> For that to be valid, in my opinion, you first have to write an integer-to- string converter that _also_ doesn't use multiplication or division. From what I've seen (and written) of such code, that's not trivial.

<comment><AUTHOR> Hmm... the printf("%d\n") in my solution uses division implicitly, for that very reason.

</comment></comment></comment></comment><comment><USER12> Are there really people who apply for programming jobs but aren't able to write a simpler version of that program?

I find it extremely hard to believe, but I've read on two other blogs that it's a common test given to interviewees.

<comment><USER13> I've certainly had applicants who really struggled with it.

<comment><USER12> Do you dictate the language in which it's written, or let them choose? That's the only thing I could see being a valid hangup for anyone applying to a programming job...

<comment><AUTHOR> The position for which I use this question is titled "Experienced ASP.NET/C# Developer", so I really expect the candidate to know C#.</comment></comment></comment></comment>


Tengine - A variant of Nginx used on #1 Chinese ecommerce site goes open source - <AUTHOR> http://tengine.taobao.org/ Tengine is a web server developed by the Servers Platform Team at Taobao. It is based on the popular Nginx HTTP server with many convenient features. <comment><USER2> Hi guys,

I'm responsible for the Tengine project. We're very excited to see the news of Tengine appears on ycombinator.

Just a few clarifications:

Q: Why Tengine is 'forking' Nginx instead of committing the patches to the official Nginx?

A: First, we are developing our own Nginx version because we have strong requirements to enhance it. Our website is very busy (ranked #14 on Alexa's top sites list) and many features we need can't be done by writing modules. We would love to contribute our work to the official Nginx. We consider it as a great honor to share our achievements with the community. That's why we have open sourced it. We are also trying our best to contribute back to Nginx. Actually we have contacted the core members of the Nginx team last December, including Andrew Alexeev, the people in charge of their Business Development and their COO/GM, Maxim Konovalov. We asked how to collaborate with them. Their replied as following:

"It's interesting what you guys do and let's keep in touch. I'm not really quite sure right away in regards to what can be imported to the main branch, but hopefully we'll find things to collaborate on. We're a bit busy towards the end of the year, so probably a good idea to catch up in January."

More than two months have passed. We are still waiting for their requests. We are very confused because we don't know which features and bug fixes they think should be merged into Nginx. Some feature such as the syslog and pipe support are explicitly refused to implement; A 'bug fix' of the error_page directive I wanted to send to the Nginx developer but they thought that behavior was OK though many users think it's a bug... Frankly, we are a little bit frustrated. It's very sad that we haven't done too much things together yet. But the Tengine team are open to hear the ideas from the Nginx guys. And we're going to knock their door again.

Q: "input filters" in Tengine have anything to do with Chinese requirements for censoring?

A: No. It's just a mechanism to help implement something similar to Apache's mod_security. E.g. I have written a module to demonstrate how to fight the hash collision DoS attack: [http://blog.zhuzhaoyuan.com/2012/01/a-mechanism- to-help-writ...](http://blog.zhuzhaoyuan.com/2012/01/a-mechanism-to-help- write-web-application-firewalls-for-nginx/) BTW, please don't connect everything to censoring so rashly. The idea of 'people in China are willing to do censoring' is also stupid.

<comment><USER3> Would you be willing to put tengine code on github? It might be easier to send pull requests and patches.

Also, agreed on people not assuming the worst based on features.

<comment><USER2> Good idea. Thanks. Actually I'm considering it too. Maybe migrate the code base to github next month :)

</comment></comment></comment><comment><USER4> Never heard of this until now, so was very interested to see the list of enhancements that they have made to nginx. Some of them look quite useful e.g. the logging enhancements and Input body filter support.

This feature caught my eye: \- Combines multiple CSS or JavasScript requests into one request to reduce the downloading time

I wonder how they achieve this at the webserver level? Normally something like this is done as part of the deployment/compile process. Anybody familiar with Tengine care to comment?

<comment><USER2> You can get more information here: <https://github.com/perusio/nginx-http- concat> Thanks to António Almeida (perusio) for writing this :)

<comment><USER4> Thanks for the information. Looks like the app needs to support it too, using a custom URL syntax.

</comment></comment></comment><comment><USER5> Tenginx was not a community project.

It's a commercial project for www.taobao.com, which ranks 13th global according to Alexa (higher than ebay, lower than amazon) So when the company has some custom feature, it can't wait for the original project to accept and update.

Tenginx going open source because we got tons of help from the community, not only Nginx project. And it's an honor to contribute.

Other open sourced projects include TFS(file system)/Tair(distrbuted cluster)/Webx(web framwork), all currently running on taobao.com. You can check them out at <http://code.taobao.org/> . Most docs were in Chinese tho...

Currently the feature list on Tenginx might be limited, but who knows what would happen...Google forked WebKit into Chrome, that's nothing to do with feature list in the beginning.

<comment><USER6> It's really cool to see a website this big contributing back to FOSS, good stuff.

</comment></comment><comment><USER7> The opensource page suggests they're open to merging with 1.1. I'm hopeful that happens. It would be a shame for these patches to live on a fork.

Unfortunately the more interesting features -- input filters and file composition -- appear undocumented.

<comment><USER8> I wonder if those "input filters" have anything to do with Chinese requirements for censoring certain keywords? Or is this more like mod_security for nginx?

Also, how does combining CSS and JavaScript work? Can this be done at the webserver level without explicit support from the web application?

<comment><USER9> I don't think writing a huge list of banned keywords in nginx conf looks like a good idea. But it can be used in that way.

</comment></comment></comment><comment><USER10> Why not give back to the root Nginx project rather than fork or have these features as compilable modules?

<comment><USER11> There's often a serious communication barrier between Asian open source developers and Western communities; partially a language barrier, but also other issues. The end result is that a lot of projects end up being de-facto forked by Asian open source developers -- this is where outreach can be very important, to help integrate the changes back in as soon as possible and start that necessary contact.

If anyone cares I can talk a bit more about this (as this was an issue with x264). There was also a session (with notes online) on the topic at last year's GSOC Mentor Summit.

<comment><USER12> I most definitely care and am very interested.

Are these[1] the notes you were referring to? I couldn't find the talk itself.

[1]: <http://titanpad.com/fossinasia>

<comment><USER11> There was no talk; it was an unconference.

I'll try to retell x264's story here...

Japan has long had a community of x264 developers and users, but for a long time they largely remained insular and didn't make much active effort to push their patches upstream. This wasn't out of maliciousness; there were many reasons.

The language barrier was a big problem -- less so that they didn't _know_ English, but moreso that they didn't feel confident with it. In reality, we found the Japanese contributors to have way better English than they thought they did. People are often embarrassed or scared to use a language they're not confident with, and they worry about making mistakes and looking bad. _Make them comfortable_.

Note that this is especially an issue with Japan. In my experience, Japanese tend to be (typically) much less confident in their English despite equal or greater skill. This might be in part because the school system typically doesn't emphasize much 'real-time' conversational English.

This problem is more general than just language; open source IRC channels and mailing lists can be intimidating, and people (often rightly) suspect that they'll be mocked for making mistakes, so they just don't bother.

As is common in many non-English-speaking countries, the Japanese have many of their own tools and methods of communication that are unique to Japan. In this case, they had an ongoing x264 thread on 2ch. A friend of mine from the x264 user community offered to help. He was multilingual, able to speak near- perfect English and Japanese, along with many other languages. Using his translations, I answered questions for a few weeks on the 2ch thread.

Eventually it became somewhat obvious that one of the people posting in the thread was a Western developer; the Japanese jokingly called it the 'Black Boat incident', a reference to the arrival of Commodore Matthew Perry's fleet at Japan in 1853 (see <http://en.wikipedia.org/wiki/Black_Ships>). We convinced a few to drop by our IRC channel; we invited them, noting that difficulty with English was not a problem, and we had a Japanese speaker who they could converse with directly anyways.

A few came, some contributed patches, and a few stuck around; we now even have a small community of Japanese users who hang out in the main channels. One of them noted later that his (written) conversational English had improved vastly just by being on IRC for a few months and was now much more fluent.

Put simply, cultural and language barriers reduce peoples' confidence in communicating. They can also result in misunderstandings; open source developers, for example, tend to have a very blunt style of communication. In the best cases, this can mean they will ignore their own ego and debate decisions on technical merits, without pleasantries. In the worst cases, this can mean rudeness, intolerance, and general dickishness. Especially coming from a culture more heavily based around politeness, this can be daunting.

If you want to welcome a foreign community of developers, you should try to (list certainly not complete):

1\. Have someone who speaks their language, so they can feel confident that they have someone to speak to even if they aren't confident in their English skills.

2\. Contact _them_ first; don't rely on them to come to you.

3\. Be friendly and welcoming. If you have to, mute That Guy who insists on being rude and obnoxious. Mocking grammar errors or being needlessly blunt are quick ways to make people feel incredibly unwelcome. They probably speak your language much better than you speak theirs!

4\. Give them extra help -- don't treat them like Just Another Patch Contributor. Your goal here is not just to integrate their changes, but to gain a connection to their developer community. "Patch rejected, I don't like it" is not a way to gain friends.

5\. I really shouldn't have to say this, but apparently (from experience) I have to: seriously -- don't be a racist asshole. Particularly if you're inviting people to an IRC or high-traffic mailing list, there are often people (including devs!) who will make all sorts of insensitive comments. This needs to not happen. Yes, this means no stupid jokes about "roneriness" or Indian tech support.

Yes, this also means no stereotyping. Just because they're Japanese doesn't mean they want to talk about Naruto, and just because they're Chinese doesn't mean they really like General Tso's Chicken. I know you really love Korean culture, but just because they're Korean doesn't mean they want to talk about Girls' Generation and Starcraft. Don't treat someone from a different country as if they're some specimen under a microscope either. In short, avoid _othering_. Making people feel as if they are different and not wanted is a quick way to make them not want to come back.

<comment><USER13> Just a few things about not only a language barrier, but more importantly a culture barrier. Language Barrier is easier to break.

Then there is the obvious, IRC always tends to get lots of slang and jokes, that even Brits from UK wouldn't get what that US American are laughing about. And this put off a lot of Eastern Developers.

P.S - Nice to know DS read HN.

</comment></comment></comment></comment></comment><comment><USER14> If you can read Chinese, you can check out the link below. They are working on a list of projects (some of them are already opensourced) that handle "big data". In case you don't know, taobao is the ebay in China, with alexa ranking of 13.

<http://www.tbdata.org/p_d/development>

</comment><comment><USER15> This work is also worth checking out

<http://openresty.org/> <https://github.com/agentzh>

This too has originated at Taobao, Alibaba Group.

<comment><USER2> It's great work. Recommend +1.

</comment></comment><comment><USER16> Feature #1: "Input body filter support. It is quite handy to write Web Application Firewalls by using this mechanism."

Correct me if I'm wrong, but "Web Application Firewalls" sounds like an API for censoring content to me. As much as I loath the idea of internet censoring, I would love to get a peek inside the technical workings of the famed "Great Firewall of China".

<comment><USER17> Applying the same logic, firewalls used to protect computers and servers are only there to censor content.

From the description, it sounds like it has nothing to do with content filtering and everything to do with app security. Web apps in particular have very different attack vectors (think XSS, SQL Injection etc) that your standard install of iptables/shorewall is going to protect against

<comment><USER16> I only raise the issue because I happen to know that China is involved in large-scale automated internet filtering and that in order to operate, companies are required to implement those filters.

And the fact of the matter is, many many firewalls ARE used for content filtering. For example, many workplaces block common time-waster sites. Home wifi routers can be easily configured to filter adult content. Universities block file-sharing. ISPs do bandwidth shaping. etc. etc.

</comment></comment></comment><comment><USER18> When spoken, it sounds like 10gen.

</comment><comment><USER19> asdf</comment>


Go and Rust – objects without class (2013) - <AUTHOR> https://lwn.net/Articles/548560/ <comment><USER2> I like this style. I tend to use it in c++. It looks like I may have a java project some time this year. Is it possible to do this in java with plain old data classes ( preferably all final) and classes that are just collections of static final methods?</comment>