Ask HN: What you watch to laugh? - <AUTHOR> I've noticed that recently I'm out of things that make me laugh - series, youtube channels etc. Since I want to try new things, I prefer not to disclose my preferences, just hear from you. <comment><USER2> \- Burnistoun (sample here: [https://www.youtube.com/watch?v=sAz_UvnUeuU](https://www.youtube.com/watch?v=sAz_UvnUeuU), [https://en.wikipedia.org/wiki/Burnistoun](https://en.wikipedia.org/wiki/Burnistoun)): I have regularly thrown laughing fits over this.

\- Hardy Bucks ([https://youtu.be/qq-G2ugAG44](https://youtu.be/qq-G2ugAG44), [https://en.wikipedia.org/wiki/Hardy_Bucks](https://en.wikipedia.org/wiki/Hardy_Bucks))

Tech-wise, Silicon Valley I think is funny esp. the earlier series.

<comment><USER3> These are great, thanks for sharing.

Some of Limmy's stuff is funny too... He used to be a flash designer / developer.

</comment></comment><comment><USER4> Party Down. If you like The Office or Parks and Rec, it's kinda like that but funnier. I like them all but I laugh more watching Party Down.

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

Curb Your Enthusiasm

Arrested Development. The first 3 seasons.

Master of None. Season 2 is funny. Season 1 is good but not that funny. It's more real and depressing. Season 2 is great, and funny.

<comment><AUTHOR> Great, I'll try those.

</comment></comment><comment><USER5> [https://www.reddit.com/r/funny/](https://www.reddit.com/r/funny/)

</comment><comment><USER6> I rarely laugh if I'm alone, despite how humorous or amusing I find what I'm listening or watching or reading. However, I will readily laugh in a crowd (even if I'm the only one laughing). I go to theatre, improv shows, comedy clubs, and movies for a laugh. But perhaps the best laughter is with a group of friends.

</comment><comment><USER7> If you are interested in cooking/food, I get a laugh out of Brad Leone's show on YouTube called "Its Alive", where he focuses mainly on fermented foods.

Recent episode: [https://www.youtube.com/watch?v=7T4NutUazJE](https://www.youtube.com/watch?v=7T4NutUazJE)

</comment><comment><USER8> BBC's Cunk on Britain. Diane Morgan's brilliant faux naif character - Philomena Cunk - quizzes experts on various topics. If you liked the Ali G spoof interviews with various celebs you'll love this. Look for the Brian Cox interview on YoutTube. If you like it, head for iPlayer...

</comment><comment><USER9> Frasier. There are scenes and episodes I have seen tens of times and stil laugh out loud at.

</comment><comment><USER10> My paycheck!

</comment><comment><USER11> Mr Bean, maybe its a bit of nostalgia, or the child like qualities of Bean himself, but I just returned to this and its as comfy as I remember.

Red Dwarf, Eastbound and Down, and Macgruber are some other favourites.

</comment><comment><USER12> Brooklyn Nine Nine - that's my happy place. Scrubs is always a classic.

</comment><comment><USER13> These cause me to often laugh out loud, but warning, they're a bit of an acquired taste (like all good things):

\- XFM Series (you tube, start season 1 episode 1) \- Nathan for you \- People just do nothing \- Alan Partridge

</comment><comment><USER14> I started watching AzeeLand [https://www.youtube.com/channel/UCzeB_0FNcPIyUSjL_TL5lEw](https://www.youtube.com/channel/UCzeB_0FNcPIyUSjL_TL5lEw)

</comment><comment><USER15> \- Anything with Dylan Moran in it (stand up, Black Books)

\- QI

\- Have I Got News For You

\- Trailer Park Boys

\- South Park (earlier series)

</comment><comment><USER16> Try this : impractical jokers the best I've come across.

<comment><USER17> I live in the 3rd world and only discovered them for the first time about a month ago. For those that don't know, it's a great comedy show where 4 friends basically try to embarrass each other as much as possible in public, which works out well since you never feel like the random people they interact with are being picked on, they themselves are usually the butt of the joke.

Although they have a show you can view individual bits of their episodes on TruTV on Youtube, in case you don't have access to in anywhere else.

</comment></comment><comment><USER18> Trailer Park Boys [https://www.youtube.com/watch?v=eyTf7y3ityk](https://www.youtube.com/watch?v=eyTf7y3ityk)

</comment><comment><USER19> Psych: [https://en.wikipedia.org/wiki/Psych](https://en.wikipedia.org/wiki/Psych)

</comment><comment><USER20> Watching Hearthstone is enjoyable for me, I watch Thijis' videos every day and Hearthstone Lucky & Funny.

<comment><AUTHOR> Thanks for sharing!

</comment></comment><comment><USER21> The Office US

Parks and Recreation (especially if you enjoy The Office US)

It's Always Sunny in Philadelphia

Arrested Development (the first 3 seasons are top notch)

One Punch Man (anime)

Silicon Valley

New Girl

</comment><comment><USER22> "Desus and Mero" on Viceland.com. Infectious level laughter from commentary.

</comment><comment><USER23> Mock the Week.

Have I Got News For You.

Both very British panel shows, and both show politicians zero mercy.

</comment><comment><USER24> \- Louis C.K standup comedies

\- The Big Bang Theory + Friends + How I met Your Mother

\- World News

</comment><comment><USER25> Comrade Detective (Amazon)

Marvelous Mrs. Maisel (Amazon)

Future Man (Hulu)

American Vandal (Netflix)

</comment><comment><USER26> on youtube: cuts from tv dramas e.g. the big bang theory; silicon valley; clips of scallops running

<comment><AUTHOR> Yes, cuts on YouTube are a great resource. Thanks!

</comment></comment><comment><USER27> Hassan on P3

</comment><comment><USER28> I read books, do online courses and then laugh at myself how stupid I was before and I didn't knew stuff.

</comment><comment><USER29> Brooklyn Nine Nine

Scrubs

Community

Modern Family

Silicon Valley

early Archer seasons

Office (US version)

Rick and Morty

Futurama

<comment><USER23> Brooklyn-9-9 is great <3

</comment></comment><comment><USER30> reddit.com/r/contagiouslaughter will get me every time

</comment><comment><USER31> r/programmerhumor

r/animaltextgifs

r/funny

<comment><AUTHOR> I didn't know animaltextgifs. Awesome, thanks!

<comment><USER31> yw :)

</comment></comment></comment><comment><USER32> Eastbound and Down

</comment><comment><USER33> Larry David!

</comment><comment><USER34> Family Guy

Curb your enthusiasm

Silicon valley

Workaholics

</comment><comment><USER27> US politics

<comment><USER35> this is the truth</comment></comment>


Ask HN: Karma Question - <AUTHOR> I'm new to Hacker News and thought I might as well make an account for this platform so I could link this account to my keybase account but it requires at least 2 or more karma and I'm not familiar with how karma here works. Could somebody here possibly explain it to me? Is it similar to how it works on reddit? <comment><USER2> Possibly start here: [https://news.ycombinator.com/newsfaq.html](https://news.ycombinator.com/newsfaq.html)

</comment><comment><USER3> Upvotes and comments minus downvote = your karma</comment>


Plugin vs. Bake-in - Embedly WP plugin - <AUTHOR> http://blog.embed.ly/vimeo-videos-work-with-embedly-and-wordpress

<comment><AUTHOR> I threw this on hackernews to get a conversation going about how you have to be careful building functionality into a core product vs having a plugin mentality. Story line is in the post.</comment>


Why is the Caltrain connection to SFO via BART so cumbersome? - <AUTHOR> http://www.bayrailalliance.org/question/why-is-the-caltrain-connection-to-sfo-via-bart-so-cumbersome/ <comment><USER2> Why? Cuz turf is more important than passengers.</comment>


Co-founder role - <AUTHOR> We are two co-founders with some overlapping skill sets, broadly equal equity and a startup that is growing quickly from seed to series A. How have others founders managed to split roles such that the vision of the company isn't just the vision of the one person who becomes ceo? How can you ensure that both founders grow with the company and not just the CEO? Want to see people's experiences here. <comment><USER2> Clear, open communication is vital.

If you two believe in each other, you'll WANT to bounce ideas off of each other. You'll be creating the vision together by doing so. Titles are meaningless as far as setting vision goes IMO, especially at an early stage.

</comment><comment><USER3> I have found that in a start up there is only place for one person at the top. There are going to be disagreements between the both of you as there are in any team, and it doesn't matter who is right and who is wrong as there is actually no objective way to determine this in advance and ultimately one path has to be chosen or your company will land up in a deadlock, hurting moral and I am sure you will agree with me that this is a far worse position to be in for a startup. Ultimately the 'CEO' is responsible for the company's strategy and must answer for any failures, this does give them the privilege of having the final word when it comes to which strategy to follow. Over time this could lead to feelings of resentment between founders when a member of the team believe they are always being over-looked.

My recommendation is to ask yourself if you truly see yourself working at the company for an extended period (10+ years). Realising that the CEO is just another employee of the business and is probably going to face unbelievable stress in their lives over the next few years, possibly lose their house and/or girlfriend/wife, have the business take over every aspect of their lives while earning less than most of your employees, and still having to wear a smile every day despite living through the apocalypse, be grateful that isn't you.

Work hard, support your CEO where you can, as they grow you should to, build something you can really be proud of in terms of the product and the business structures/processes over the next 3/4 years, pick up your shares, and leave with the respect and admiration of your team.

You'll be in the possession of a large chunk of equity that should be growing quickly + your voting rights, not having to sacrifice everything in your life to continue growing the business, and not having to carry the stress that building a successful business brings.

In terms of your practical day to day responsibilities... Every IT business needs an accountant, lawyer and a technician; as you get a little bigger you are going to need a 'CEO', professional assistant and sales/marketing manager. Those roles are pretty clearly defined. My suggestion is find one that you really enjoy doing and write your own job description, exercise some responsibility, but otherwise take everything you don't enjoy about your job and make it someone else's problem. If that means hiring someone to do that work, do that, if you can't hire someone, then ask your ceo how he expects it to get done... Don't be confrontational about it...but it can be a great place to start the conversation around roles and responsibilities. Remember, you're building a start up to have the opportunity to create a place you actually want to work, that also means having the opportunity and the responsibility to craft a job you want. You're not going to get it all your way, but at least you've exercised a lot more freedom than many get to have.

And remember, regardless of your role or position, be respectful, be humble and be a professional and you will always grow.</comment>


AWS S3 Having Problems Again? (Monday 12PM Pacific) - <AUTHOR> We're seeing similar problems to last night -- lots of 503s from S3. Anyone else? <comment><USER3> Indeed. As I write this we're in the midst of our third S3 outage of the day. The past two were eventually documented on the AWS Service Dashboard. The latest one has not yet received its tiny status icon to indicate an outage.

It's one thing that S3 keeps going down today; we run our own server cluster and I accept that 100% uptime isn't possible. But it's aggravating that they can't at least figure out how to give timely updates on their dashboard when something is broken.

We inevitably learn of S3 outages through our internal error reporting systems before AWS posts it to their status page. When they do finally post, it is usually a tiny "information" icon, even when reporting a problem that makes the service unusable. The laggy, misleading nature of their status page gives the impression they must be tying bonuses to the status icons. Can't fathom why else they would be so inept when it comes to keeping us updated when something is wrong. Surely they have sufficient internal monitoring to pick up on these outages long before they update their customers.

<comment><USER4> It shouldn't be, but I've found [https://twitter.com/ylastic](https://twitter.com/ylastic) by far the best way to find early info on AWS issues.

</comment></comment><comment><USER5> From Amazon:

"Hello, We have just become aware of EC2 network connectivity issues in the US-EAST-1 region. The impact of this issue is loss of network connectivity to EC2 instances in US-EAST-1. The AWS support and engineering teams are actively working on bringing closure to this issue. I will share additional information as soon as I learn more about this issue."

</comment><comment><USER6> Yep, same. Lots of latency too--here's what we're seeing: [http://kuebri.ch/bucket/s3_latency_081015.png](http://kuebri.ch/bucket/s3_latency_081015.png)

<comment><USER7> What tool is that?

<comment><USER6> [http://www.appneta.com/products/traceview/](http://www.appneta.com/products/traceview/)

<comment><USER7> Thanks

</comment></comment></comment></comment><comment><USER8> I'm risking being inflammatory here, but do people really believe that they get better uptime from AWS compared to renting dedicated servers?

I feel like AWS has way too many moving parts to be stable.

It's very tempting for them to reuse bits of infrastructure everywhere which increases the chances that if something goes wrong somewhere it will break your stuff. So for example, hosting instance images on S3 means that when S3 has issues, now EC2 has issues.

<comment><USER9> AWS is so massive that even when 0.1% of the customers are having problems, it is huge news like this.

The reality is most customers are not affected, and overall service uptime is highest anywhere around.

Not to mention that whenever AWS is having issues it's always in one region at a time, and frequently a single availability zone. As long as you build your application to be AZ-tolerant, you won't run into problems.

<comment><USER10> _The reality is most customers are not affected, and overall service uptime is highest anywhere around._

Unfortunately it's really impossible to say in this case, since they don't release numbers. Informally everyone I know with S3 buckets in US-Default had issues this morning.

 _As long as you build your application to be AZ-tolerant, you won 't run into problems._

What you say about multiple AZs is true for EC2, but many other AWS services (especially EBS-backed ones) tend to go down across the entire region. If you're serious about availability, you really need to be in multiple regions.

</comment></comment></comment><comment><USER11> The us-east-1 region gets treated differently than all other regions by AWS. Part of the reason it gets treated differently it is the default, and hence the most popular. It also doesn't help that it is on the east coast, and experiences more weather.

For the above reasons, and that I work in the SF bay area, I put everything in us-west-2. us-west-2 sometimes has it's own issues, but nothing quite at the level of us-east-1.

<comment><USER12> IIRC, the AWS console itself is hosted out of us-east-1. Which means you're always somewhat exposed to whatever failure modes it has.

<comment><USER13> This is no longer true.

</comment></comment></comment><comment><USER14> "12:28 PM PDT Between 12:03 PM to 12:19 PM PDT we experienced elevated errors for requests made to Amazon S3 in the US-STANDARD Region. The issue has been resolved and the service is operating normally"

Our AWS TAM called us. I don't think he wanted the nasty call I gave him at 4:30am

</comment><comment><USER15> Amazon yet again lying to it's customers about the status of the service is the only real issue I see here>. Services fail, it's a fact of life but at least admit it's broken and that the issue is being fixed instead of blatantly lying and saying minor disruptions.

<comment><USER16> [http://status.aws.amazon.com](http://status.aws.amazon.com) appears to indicate that they did have problems and have now resolved them.

</comment></comment><comment><USER17> We saw a short burst of 503s a short while ago, but we have not seen any since. Hopefully we do not see any more though.

Also, for the record, S3 has been very stable for us otherwise. We have been rather happy with AWS overall.

<comment><USER18> Same, though just as I write this we see another spike of errors.

<comment><USER17> Ok, no 503s but just got a very small burst of 500s,

"com.amazonaws.services.s3.model.AmazonS3Exception: Status Code: 500, AWS Service: Amazon S3, AWS Request ID: -redacted-, AWS Error Code: InternalError, AWS Error Message: We encountered an internal error. Please try again., S3 Extended Request ID: -redacted-"

:/

</comment></comment></comment><comment><AUTHOR> Looks like it got better around 12:20 PM, about 10 minutes after the incident started. We haven't seen any problems in the last few minutes.

<comment><AUTHOR> ... and errors started up again at 1:00 PM.

</comment></comment><comment><USER19> What happened to that 99.99% availability? Either way this just got posted at reddit.com/r/sysadmin which might be useful to some for tracking error rate: [https://pulse.turbobytes.com/results/55c8751aecbe400bf80005f...](https://pulse.turbobytes.com/results/55c8751aecbe400bf80005f2/)

<comment><USER4> Their SLA guarantees 99.9% on a monthly basis. The 99.99% mentioned on the product page isn't guaranteed at all.

As for what happened, my money is on this: [https://aws.amazon.com/about- aws/whats-new/2015/08/amazon-s3...](https://aws.amazon.com/about-aws/whats- new/2015/08/amazon-s3-introduces-new-usability-enhancements/)

> You can now increase your Amazon S3 bucket limit per AWS account... Amazon > S3 now supports read-after-write consistency for new objects added to Amazon > S3 in US Standard region.

The 100 bucket limit used to be an absolute, unchangeable hard limit - <USER2> for AWS and thus likely something deep in the architecture from S3 being one of their first services - so I suspect the lifting of that limit involved some fairly major changes to the backend.

<comment><USER20> They actually would let you increase that, but only up to a certain point and only if you specifically requested it. I don't see them mention the absolute ceiling being lifted, so that is probably still in place somewhere.

I'd wager it's more likely that read-after-write change.

</comment></comment></comment><comment><USER21> 503s galore. Is anyone seeing issues in other S3 regions?

</comment><comment><USER22> We had problems while connecting to S3 standard US region from us-east-1 at 19UTC but it was solved 20 minutes later.

edit: seeing connectivity issues again at 19h50UTC

</comment><comment><USER23> We're seeing similar symptoms here as well.

</comment><comment><USER24> We have also seen a higher rate of port scans/attacks today. I wonder if it is AWS wide causing system overload issues.

</comment><comment><USER25> Interesting this article was bumped from the front page so quickly. Makes you wonder...

</comment><comment><USER26> Just started again in us-east-1.

</comment><comment><USER27> We had problems with AWS ML tonight

</comment><comment><USER28> Same here :(

</comment><comment><USER29> Same for us

</comment><comment><USER30> Yes, seeing the same thing.

</comment><comment><USER31> Seeing it too. 15:00 EST

</comment><comment><USER32> Yes, same here.

</comment><comment><USER33> bad day.

</comment><comment><USER34> Yep!</comment>


This is how we work with clients - <AUTHOR> http://elweb.co/stuff/this-is-how-we-work-with-clients/

<comment><USER3> I know the flow, use one myself for one of the biggest corporations out there. But in my experience it's more "This is how we _wish_ to work with clients". I see a lot of " _squeezing the agency_ " going on these days. (As in non-paid extra work and revisions despite agreements on how to work).

<comment><USER4> There's always an "Oh, I thought of one more small thing..."

<comment><USER3> Or the "YOU forgot about my remark 3 weeks ago regarding the -insert little detail that doesn't mean jack sh*t but I want it done anyways- ... (Sorry to rant)

</comment></comment></comment><comment><USER5> I have met these guys in Puerto Rico (which has a great emerging startup scene) a few times. They are by far one of the top UI/Django pairs I have ever met, and could give any agency a run for their money. If you're looking for some smart guys, consider them.

</comment><comment><USER6> It is great how everyone describes their "process". In the end, it doesn't mean a lot because it will all depend on the mentality and knowledge of the people working in that process.

At the point where people are using "the process" and not their brains and common sense, it will cause a disaster and you have to re-invent "the process".

<comment><USER7> There's a difference between "following a process" and "following THE PROCESS".

Outlining the working process means that I and my client have an understanding, and that they have less grounds for being surprised about getting a larger than expected bill. It forces the client to be disciplined in their own behaviour, which they wouldn't be without a process.

On the flip side, demanding clients fill out Form 27-B for Change Requests every time they want something changing is way, way over the top.

In addition, a process can help give a client some confidence that you know what you're doing. This is especially true in the technology business, where clients tend not to really understand what they're working with.

<comment><USER6> The root cause of all the symptoms that you are describing is that your client hasn't got the proper knowledge, experience and mentality to (co-)develop something innovative.

How exactly is "a process" going to change that so rapidly?

(I haven't a simple answer and I am also struggling with this problem..)

<comment><USER7> I think clients in this area tend to not want "innovative". From my (admittedly limited) experience, most clients want "a website". A process can help the user understand what is needed to go from nothing to a website.

It works well when the website is an aside to their goal e.g. selling watches. The website is merely a facilitator to this. By setting a process, you can gauge your client's capacity to work with you on the project. If they don't like how you do things, you can compromise or part ways, amicably.

If you are building the product that the client will sell directly (e.g. a web service) then I believe that a process alone isn't going to overcome the fundamental difficulties of the project - namely that your client is probably selling something that they don't fully understand.

</comment></comment></comment></comment><comment><USER8> We too employ a 2-iteration process to the design/UI/IA stages, however I don't understand why the client should still have the option to make 2 iterations of changes during the development and especially deployment stages of a project.

The elweb illustrated process appears to miss out a key section - <USER2> specification. We derive our func specs from scoping meetings, navigation structure, required content etc. which is then presented to the client along with user journey flow diagrams. This is presented and discussed before the design stage - thus the functionality is agreed upon far before development happens.

With this approach we don't run into the situation where the client wants to make changes during development which could potentially greatly extend a project's timescale (cost is less of an issue as it passed onto the client anyway).

<comment><USER9> The process shown on elweb is just to illustrated the 2-iteration process, not a concrete example on how to make a website, more like an example of using the 2-iteration process on various steps of a project.

</comment></comment><comment><USER10> We run an Agile process where the client is involved as Product Owner in the team. The client can add stories at any stage, and set the priority in the backlog at any time. They just can't change the current sprint's stories and priorities. That way they can make as many changes as they want, and the impact of those changes are always visible.

Why limit the client to an arbitrary number of changes (like 2 in this example?) The whole idea of Agile development is that we cannot know everything in the beginning, so we spec as much as we can in the beginning, and leave room to change our minds at a later stage.

Of course, we explain this way of working up front as well, and we make the benefits clear to the client. They have to buy into this before we start with anything. It works very well when they do buy in though.

<comment><USER11> Explaining how you get buy in would be a much more interesting blog post. The person footing the bill usually wants some plan for reassurance sake. Something along the lines of, "Aha! Gotcha! You didn't do X! I'm not paying!"

<comment><USER10> I'll try to make the time to write up something. It's really a matter of explaining to them why our way of working ends up being faster and less expensive than the flat fee way. With our way of working, there's an assumption of trust, and we keep that trust through visibility of our progress. That way we share risk, and if we can share risk with the client, we can charge less, because we don't have to build in such a big margin in the price to cover our risks.

<comment><USER11> Couple pain points from experience:

Estimates in $$$ desired before start

-> Leads into defining a complete feature set

-> Desire for all estimates in time for all work (BS number, always)

Guarantees on what will be delivered

-> Getting the client on board with paying for time vs. paying for features

-> Offer minimal feature set + what we can do?

-> Dealing with scope creep

Require clients time

-> Feedback

-> Showcases

-> Many A) or B) given B) is 10 times more expensive

</comment></comment></comment></comment><comment><USER12> To me, this looks very similar to the waterfall model.

<comment><USER11> Arrows all going in the same direction? Yep, that's waterfall.

<comment><USER13> but the steps are repeating..getting feedback from client after every step

</comment></comment></comment><comment><USER14> > We also explain the client that anything that does not get revisions or > comments from them is automatically approved.

A really good post. I hate it when the clients ask for last minute features (for free) after not saying a thing about this during the development.

<comment><USER9> The great thing about this method is that when that happens the client is clear about that, we get to add another whole step, and charge for it.</comment></comment>


American Capitalism Is Brutal - <AUTHOR> https://www.nytimes.com/interactive/2019/08/14/magazine/slavery-capitalism.html <comment><USER2> For those who read the comments to decide if they'd consider to read the article, this is a set of history texts with the topic:

"Slavery helped turn America into a financial colossus. And our economy is still shaped by management practices invented by enslavers and overseers."

There are some interesting details about the management practices, but also banking and monetary policies in the texts written by Mehrsa Baradaran, also featured on the page:

"The Limits of Banking Regulation"

"Fiat Currency and the Civil War"

"Cotton and the Global Market"

and by Tiya Miles:

"How Slavery Made Wall Street"

\--

The title is also shortened from already shortened "American Capitalism Is Brutal. You Can Trace That to the Plantation." The title visible on the page is "In order to understand the brutality of American capitalism, you have to start on the plantation."</comment>


The Rise and Fall of Object Oriented Programming - <AUTHOR> https://medium.com/machine-words/the-rise-and-fall-of-object-oriented-programming-d67078f970e2 <comment><USER2> > However, as the years went by, people started to realize that the strict > approach to object orientation created a number of problems. These problems > tended to be of the kind that makes code complex, hard to understand, and > hard to test.

No, ease of testing is one of the reasons for OO adoption, and probably the primary reason software is much more stable than it was in the mid 90s.

> Many of those higher-level classes are "polluted" with methods and > properties that are only relevant to a small number of subclasses.

Well, then it's broken and needs to be refactored.

> During my last couple years working at Google, I created a new user > interface toolkit called "Quantum Wiz"

Of course, in true Google style, you wrote something from scratch instead of refactoring the old.

> composition > inheritance

Not a new finding. I learned this in 2000, at the peak of OO craze.

> Because object oriented inheritance is about organizing things into classes, > it doesn't model the real world very well; what it does model well is the > way humans think about the real world.

That's the idea. Good software is written for the simplicity of those poor slobs charged with maintaining it -- often ourselves a year later.

> A physical object has many uses other than the specific purpose for which it > was built. I can use a coffee cup as a paperweight or a doorstop;

The whole idea of modeling is to remove certain details! Otherwise the model would be identical to the genuine article, and would provide no benefit.

<comment><USER3> Re: _Well, then it 's broken and needs to be refactored._

Refactoring means the original design didn't handle change well. Refactoring is badge of disgrace, and should not be considered a standard practice any more than putting out kitchen fires should be considered a standard practice of cooking. One of the key points of abstraction is to make the code change- friendly. If you have to refactor, the code failed that job. Minor rework is expected upon new requirements, but complete structural overhauls should be avoided, in part because it can create cascading side-effects.

Re: _The whole idea of modeling is to remove certain details! Otherwise the model would be identical to the genuine article, and would provide no benefit._

But in some cases OO-based modelling becomes awkward or forced. Does the action of "gluing" belong with the glue or with the object being glued (fixed)? We can _force_ it to be with one or the other to satisfy "OO rules", but that doesn't necessarily mean it's a good model. It's a forced model.

Re: _[article] it doesn't model the real world very well; what it does model well is the way humans think about the real world._

It doesn't model all thinking well. For smaller sub-systems it's fine. But OOP seems to get messy and tangled on a larger scale.

<comment><USER2> > Refactoring is badge of disgrace, and should not be considered a standard > practice any more than putting out kitchen fires should be considered a > standard practice of cooking.

I can only grant you the benefit of the doubt and assume you aren't quite using the word the way the rest of the industry does.

Replacing two similar code fragments with two calls to a single method is an example of refactoring. In no universe would that ever be considered any sort of kitchen fire.

<comment><USER3> "Refactoring" is also often used when for example somebody uses the wrong OOP pattern (doesn't fit changes) and has to convert it to a different OOP pattern.

</comment></comment></comment></comment><comment><USER4> Isn't the argument that there is nothing inherently wrong with OOP but like all things, it shouldn't be used exclusively?

For instance, working with language like Kotlin or C# it's fairly straightforward to get the best of both worlds: Use inheritance where appropriate, favor composition in all other cases.

IMO being dogmatic about not wanting inheritance altogether will result in friction as well: The fact that Rust eschews inheritance altogether will increase boilerplate whenever you want to do something that is 'inheritance- like'. Sure, people will argue that in 90% of the cases this is bad design, but for the cases where it IS the best approach it's a shame it's not part of your toolbox.

<comment><USER5> Inheritance is so natural to a GUI data structure. UI in Rust is incredibly painful. Probably a reason behind the CPU-wasteful "immediate mode" fad.

<comment><USER6> _Implementation_ inheritance _may_ have its uses, but it's not for the faint of heart. Its defining feature is _open recursion_; that is, defining an object's external interface (its bundle of public and protected methods) _in terms of itself_ (in that any method may be defined as calling any other method of the same external interface) and then leaving the whole thing open for _arbitrary_ overriding in "derived" classes, via a "tying the knot" trick. Most treatments of OOP brush over this feature, but it creates a _huge_ amount of complexity. It is even proper to say that something like this should be avoided at all costs, IMHO.

</comment></comment></comment><comment><USER7> I've always felt so alone in my distaste for ORMs. They often lead to at worst taking way more data than you need and manipulating it all in a language that's not very good at it, or at best running some kind of query-builder which takes a far more complex configuration to get the same data that a simple query could. Objects make much more sense as something to build from a query, not something to be queried themselves.

If the tide is turning against ORMs, it probably has a lot to do with the rising love for fp that this author covers. Languages like SQL are declarative, as is fp, so that approach feels more natural to people these days.

<comment><USER3> ORM is one of those "dark grey boxes" we often have to deal with. When they work as intended, they can indeed save time, but when they don't, you have to fiddle in an organic fashion to solve or work around the problem, because otherwise they are thousands of line of code if you wish to dig in code-wise.

As an alternative, use stored procedures with Dapper, or use smaller sub- helpers that prepare most of the SQL statements or sub-statements for you but don't outright hide it. They assist in creating SQL (and prepared statement parameter mapping), but only assist, and are kept to less than a few hundreds of lines of code.

Other dark-grey-boxes include URL route mappers, seen in MVC stacks, and HTML formatters, such as Razor. When they don't work right you'll waste many many hour fudging with them. I'd often rather replace the URL router with Case/switch statements: it would be easier to debug; so what if it's a bit more typing. It's a white box.

<comment><USER8> "As an alternative, use stored procedures with Dapper"

I understand using Dapper. It is exactly what I want in an ORM. But I've yet to see anyone make a convincing argument for using stored procedures over using parameterized SQL.

</comment></comment></comment><comment><USER9> People will write terrible code in every language. Some languages make it easier than others, but mostly the problem is between the chair and the keyboard.

</comment><comment><USER10> One use case where I found OO particularly unsuitable is applications that rely heavily on events. Trying to understand what's happening is hard, when any call to your object structure can trigger changes at any level of your hierarchy, triggering other changes again, and so on.

Luckily, the rising popularity of Swift, Kotlin, and Go, will push for a more reasonable use of OO in combination with FP.

<comment><USER3> Re: _One use case where I found OO particularly unsuitable is applications that rely heavily on events._

I agree. Events typically have to "belong" to something in OOP, but how they are best grouped or managed may not fit a single-item belonging-ness.

I'd like to see languages which are flexible in how events are organized in file systems. Their file grouping wouldn't have to reflect some object hierarchy or odd code structure, it would be organized how a team wants. Conway's law. A "header" would define the criteria for triggering. You could have wild-card based triggering and expression based triggering. wild-card triggering would be more efficient and orderly, but one needs expression-based triggering for certain circumstances.

Perhaps manage all those event handlers in an RDBMS. But our existing tools and IDE's are file-centric when they should be looking to be RDBMS-friendly. When you are dealing with thousands of fairly-similar things, such as event handlers, it's time to think about databases, not files and folders. OOP and files/folders don't scale very well.

<comment><USER11> I can't agree. Do you know which application who rely heavily on events is anywhere and it is programmed in OOP all around the world?

Windows management systems. Everywhere. OOP works like a charm.

Also, all that stuff you are saying about "expression-based" triggering, it exists and working fine...

Also you are mixing OOP with files and folders and I can't understand why...

<comment><USER3> Re: _Windows management systems. Everywhere. OOP works like a charm._

Good enough, perhaps. Charm, no.

Re: _Also, all that stuff you are saying about "expression-based" triggering, it exists and working fine..._

Perhaps, but expression-based dispatching is not OOP. It's more comparable to relational or functional.

Re" _Also you are mixing OOP with files and folders and I can 't understand why..._

I don't necessarily proposing mixing. If we can do it without OOP, that would be fine by me. I prefer the source code be organize by how a shop wants to work, not how the framework forces you to. Conway's Law.

Better yet, manage it in a database so one can sort, search, group, and filter by specific need at a given time. Why hard-wire a grouping when we have relational? If I want to see all button-handling events together, query, boom, done! If I want to see events for widgets with labels having the text "cup" in them, query, boom, done! Etc. Bill Gates won't determine my grouping/view, you don't determine my grouping/view, but _I_ do. Me, myself, and I. I like that, it makes me productive.

</comment></comment></comment></comment><comment><USER11> This article only says one truth: OOP is not as famous as it used to be.

The rest of it it's completely mistaken. The writer has no clue about OOP.

Let me tell you the problem with OOP. Everybody said "use objects" you will re-use them over and over, not only for this project but projects in the future as well.

But we already have libraries and I still yet to find someone (or enterprise) reusing its own code.

Every respectable programmer knows he must refactor his old code again because it's not so good anymore.

<comment><USER3> There have been many claims about OOP that turned out to be mostly hype: reuse, intuitiveness, change-friendly, etc. What's remaining is more subtle and nuanced.

</comment></comment><comment><USER12> I look at oop as a DSL. A robot that has a method to raise hand is infinitely better mental model than a function from robot to new robot whose hand is raised.

<comment><USER13> Sergey Dmitriev of JetBrains once said at a conference or interview (I forgot which) that any well designed class library is in effect an embedded DSL.

When you consider that UML tends towards object-oriented modelling of systems, it is practical to consider the methods as the action semantics of the model.

</comment></comment><comment><USER14> To those who enjoyed reading this article, I'd also recommend this one. [https://steve-yegge.blogspot.com/2006/03/execution-in- kingdo...](https://steve-yegge.blogspot.com/2006/03/execution-in-kingdom-of- nouns.html)

<comment><USER15> My main beef with this genre of article is that code is for humans, and if you don't think humans like nouns, bring an object to work that nobody there has every seen, and count how many people ask what it is before they ask what it does.

For many people, that kingdom of nouns lives in their brains. I'm not saying I agree with this entirely. I don't even think I'm saying we shouldn't fight it - I certainly have felt the pain of people wanting to pigeonhole me at work by noun instead of looking at what verbs I'm capable of.

But it's out there, and you don't have to look very hard to find it.</comment></comment>


Meltdown, a description of life at MIT - <AUTHOR> http://mitadmissions.org/blogs/entry/meltdown

<comment><USER2> Is this article only important because it was posted by a student at MIT? Frankly, this is a description of any person with self esteem problems, being at MIT doesn't make it any more 'interesting' or 'deep'.</comment>


Japronto micro-framework: Million requests per second with Python - <AUTHOR> https://medium.com/@squeaky_pl/million-requests-per-second-with-python-95c137af319 <comment><AUTHOR> Reported by user about 600k+ req/s (pipelined) via "wrk" benchmark [1].

[1] [https://github.com/squeaky- pl/japronto/issues/3](https://github.com/squeaky-pl/japronto/issues/3)</comment>


Italy historically has had excess mortality for influenza - <AUTHOR> https://www.ijidonline.com/article/S1201-9712(19)30328-5/abstract <comment><USER2> The case fatality is <1%, Italy just has a lot of people infected with SARS- CoV-2. There must be over a million cases in Italy, they just aren't able to test everyone. The age distribution is similar in South Korea.

As bad as Italy is, India worries me the most by far.

<comment><USER3> Do you have evidence that Italy has more infected than anywhere else? Because, that is what this would take, at this point.

<comment><USER2> No direct evidence. But any reasonable parameters for the viral reproductive number and mortality, along with clear evidence of asymptomatic carriage, lead to this inevitable conclusion.

<comment><USER3> To be fair, I agree the expected case to death rate is less than one percent normally. The questions this leads to, is why it is higher on Italy? Either in reach of infection, or in deaths?

This article implies their infection to death rate was already elevated for the flu. Most accept this is, at best, a deadly flu. That would strengthen this hypothesis.

But your hypothesis seems to be there are more infected in Italy than elsewhere. But you then have to explain why it did more there.

If we have infection to death rates in all countries, that would let us predict if the first hypothesis is true. To test yours? What can we do?

<comment><USER2> I don't think there is anything special about Italy, they just started earlier than other countries (1st cases were 3 weeks before other Euro countries) and in some provinces didn't take it seriously.

<comment><USER3> Per another thread, the US has to start seeing the numbers they have had to date every two days for this to be worse then last year's flu. Per this article, Italy has to continue with their current pace to hit last year's numbers. For another few weeks.

Let that sink in. Italy had 25,000 deaths attributed to flu like illness two years ago. They are at 6000. Accepting that this is a hard flu like virus, we would expect them to have bad numbers. Why? What is so bad about Italy?

Again, comparing to the flu is not minimizing. The flu is already a terrible virus.

</comment></comment></comment></comment></comment></comment><comment><USER4> I'd like to note that so far we only know the mortality rate under the assumption that every patient that needs to be hospitalized (~18% of infected looking at NY's numbers) receives treatment. That is why the elderly and people with underlying health conditions are dying – they can't survive being in an ICU with a nasty disease a lot of the time.

Once we run out of beds and ventilators, the picture will look very different. I don't know about you, but I'm not old but I'd much rather be in a hospital if I have a nasty case of pneumonia, but we certainly can't fit 40-80% of the population in hospitals, let alone have enough health workers to treat them.

<comment><USER3> I'm not sure what you are claiming.

This article would imply that Italy was coming closer to saturation on hospitals before this virus. Not claiming that this virus wasn't worse. The implication is they were closing to a topping point than elsewhere.

It does fit, in that so far Italy is the outlier, not anyone else. Japan, in particular, but also Norway, Germany, and most of the US.

I think Spain throws a but of a wrench at this, but don't have that looked at handily.

</comment></comment><comment><AUTHOR> Can we trust Italy's numbers? They're attributing any questionable death to corona to hide their embarrassing influenza death rate. This can almost explain USA's minuscule death toll at 500 (influenza season averages 200/day).

<comment><USER5> For those wondering if the people minimizing this disease as nothing more than a weaker influenza are correct, here's some data from new york's hospitals: [https://www1.nyc.gov/assets/doh/downloads/pdf/imm/covid-19-s...](https://www1.nyc.gov/assets/doh/downloads/pdf/imm/covid-19-syndromic- surveillance.pdf)

Visits to emergency for Influenza-likeIllness+Pneumonia is at ~1.5x a bad flu season's peak and ~4x a normal flu season. Admissions for the same are at ~2-3x.

<comment><USER3> I think people are claiming it is a stronger flu, not weaker.

I think there are lots of people that don't realize how many die of the flu every year, but that is a different claim.</comment></comment></comment>


Ask HN: How was your experience hiring a white hat hacker? - <AUTHOR> How did you find them? Was it worthwhile? Any recommendations for a company paranoid about IT security and considering hiring one? <comment><USER2> I'm a white hat hacker!

I think a better question is what are you looking for or what type of organization do you run or work for? A good security firm can provide application reviews to find everything from xss bugs in your web app to remote code execution in kernel components. This is done either black-box or source assisted and staffed with a team reflective of the size and complexity of the application.

Another aspect of security assessments can be network and infrastructure, these generally mean someone running nmap and looking for entry ways further into your network. I am biased but my organization almost never fails to find critical bugs or breach networks.

I'm not a salesman but my firm is NCC Group, we are a global pure security consulting firm, which means we don't make or push products. We also have tons of research [https://www.nccgroup.trust/us/our- research/](https://www.nccgroup.trust/us/our-research/) which you can check out to see a sample of what you be paying security consultants for.

</comment><comment><USER3> My firm was referred to a firm that needed us through the leader of the local Python user group.

The client needed us to review code and act as a witness in a court case on very short notice.

It was interesting work, but a bit frightening once we did some research into the black hat hacker who had been warring with the client.

I would say to make sure you are hiring a WHITE hat hacker, and pay accordingly. Do your research, check recommendations by past clients and the community, and do a background check at minimum.

</comment><comment><USER4> HackerOne worked really well for us, it's a crowdsourced bounty based marketplace for white hat hackers.

</comment><comment><USER5> Bugcrowd leaderboard provides insight into the top bounty hunters - [https://bugcrowd.com/leaderboard](https://bugcrowd.com/leaderboard)

</comment><comment><USER6> The safest and most convenient way of hiring a white hat hacker (a.k.a. ethical hacker) is to run a bug bounty program and get the input of many of them.

HackerOne is the leading bug bounty platform.</comment>


Experience with ePaxos: Systems Research using Go - <AUTHOR> http://da-data.blogspot.com/2013/10/experience-with-epaxos-systems-research.html <comment><USER2> This mirrors my own experience using go to write software used in biological research. Performance is good enough and the quickened dev cycle due to less verbosity and excellent tooling makes implementing variations on algorithms easy.

Ie I wrote a random forest implementation [1] and i've been able to quickly add in a bunch of different published and experimental variations on the algorithm as needed for the data sets I work on.

[1] [https://github.com/ryanbressler/CloudForest](https://github.com/ryanbressler/CloudForest)

</comment><comment><USER3> > _Paper weaknesses_

> _Evaluated using prototypes of protocols in Go_

Retarded. This is why I left academia.

<comment><USER4> Eh. (blog author here). It was exceptionally annoying, but in the end, the paper got in. You have to develop a thick skin, but I've found that in the long run, the process works pretty well. The feedback we got from our first submission to OSDI was _awesome_ , and helped seriously improve the quality of the research, not just the paper. (It led us, for example, to adding the formal proof and the machine-checkable proof.) The NSDI feedback was crappy. I'm disappointed, because I like NSDI a lot. I think people were just having a bad-Paxos day. The final SOSP feedback was again really good.

<comment><USER5> I'm someone who's happy you put the proofs in there.

As soon as I read "has no designated leader" I stopped reading and skimmed through to make sure safety and liveness proofs were in there somewhere before I spent any significant time reading the rest.

This feels like it's probably a nice advancement over S-Paxos and I'm looking forward to getting through it -- thanks for making it accessible.

Also, this is awesome: "Copyright is held by the Owner/Author(s)"

<comment><USER4> That last awesomeness is SIGOPS: They bought out the copyright for all papers at SOSP'13 on behalf of the authors. _three cheers_. All of the SOSP papers are available -- already -- open-access: [http://sigops.org/sosp/sosp13/program.html](http://sigops.org/sosp/sosp13/program.html)

(For the non-academics: SIGOPS is the chapter of the ACM for operating systems. It runs SOSP and similar things.)

</comment></comment></comment></comment><comment><USER6> How does Go compare to modern C++, using the newer feature and libraries without the old cruft?

<comment><USER4> From a systems perspective: Dealing with lots of communication and having lots of concurrency _where the concurrent actors are doing a lot of different stuff_ is easier in Go.

Achieving high performance on a single machine and building reusable data structure libraries is easier in C++. Things like vectorization, cache- optimized layouts, etc., are all more easy here (or just in C).

<comment><USER7> What were the general techniques you learned for optimizing Go?

<comment><USER4> Good question. I'm not sure I have a great mental list that differs from the "go community conventional wisdom" (whatever that is), but it was basically: \- Avoid creating garbage unnecessarily, but don't go too crazy. It's often enough to, e.g., statically size those things you know are static. We tried adding a structure cache to our RPC/marshaler to further reduce GC, but it didn't prove helpful and just complicated our interface. \- Pre-size data structures when you can (maps, arrays): Reduces performance variation as they dynamically resize. \- Be careful of using introspection for things like marshaling. It's easy to create a bottleneck. \- Batching is just - or more - important as it is in C++. \- When you're doing complex stuff, be deliberate with how you prioritize request handling ( _).

More on (_): We found it incredibly important for the performance of our system to prioritize processing of existing requests over processing new request arrivals - up to a point. Making progress on an existing request helps _reduce_ the number of goroutines/objects/etc. that're processing, so that everything runs faster. But you don't want to go too far or you starve for work. The key here was to think about it instead of letting your design happen to you.

The most important is already known: Profile, don't guess. The profiling Go article is a good start.</comment></comment></comment></comment>


Show HN: Electronics Hobbyists – Feedback on Search Startup - <AUTHOR> https://www.buyparts.io/ <comment><USER2> I tried to reply to this on eda board but not enough privileges so I'll do it here.

It's similar to Octopart but with free typing for filtering which is great. Thumbs up for the interface. Thumbs up for content. The interesting bit is that Octopart integrates the availability and pricing buy you dont. It is more like a pure part selection which connects to 3rd part sites for the inventory. Overall I would say for data it looks like the best site out there. Comprehensive. Hands down the winner. Parametric fields and one click files are just perfect. For ordering I would say it's a pain in the behind. No one, and I mean no one can order their parts list by searching separately for each part. You really need to rethink that

</comment><comment><USER3> Sorry. I found this a little difficult to use. I searched for a few terms and had results that seemed to be in a wide range of categories. Take a look a digikeys search results as an example of results categorization.

Also, I found the pictures on the front page to be without rhyme or reason. One example: Why separate icons for different color leds but not for different types of capacitors? Why aren't similar items grouped together. Try taking a look at McMaster-Carr's website for a GREAT example of visual product selection.

<comment><AUTHOR> Thanks Matt, appreciate note on the homepage images. they are just for search engines to pickup content. Sites not really geared for browsing like McMaster but more focused on searching and faceting using the input boxes in the table headers. So it's really for users who have specific paramaters they're looking for.

It is early so all this feedback is good. Seems to have the marmite effect at the moment. Some users loving it. Some users not.

A few people have said that a key feature of faceting by inputting paramaters is not clear enough and needs some guidance for the user. May revise that a bit.

<comment><USER3> Good luck. Great idea to solicit feedback early

</comment></comment></comment><comment><USER4> At first glance it seems like a more visually friendly version of a digikey/jameco style parts interface. In order to be comparable however you need to have more categories of information per part to help sort them. That might go against the design feel, but from a normal workflow on digikey/jameco, I'm personally very used to finding the general category and iteratively adding more constraints until a few parts are left.

</comment><comment><USER5> Good. The narrowing with inputs is neat. Needs bom upload.

PROS: Spam free Very Fast Lots of data Works on mobile Effective with params

CONS: Only 150 results each search Sites whois private bom

</comment><comment><USER6> Check out Octopart for an example of this concept done right. To differentiate, need to work on discoverability/browseability. When I click on connectors, viewing a list of the first 150 of 490K items is not useful in any way.

<comment><USER7> I think it's just personal preference. For me it has several wins over octopart and I got the input filtering which is really cool. Really neat man. Shame it's all single search at a time.

<comment><AUTHOR> thanks boardguy. multisearch is something we may look at in the near future.

</comment></comment></comment><comment><USER8> Excellent. Direct comprehensive information with no hassle. So curious whos backing the platform?

</comment><comment><AUTHOR> Early demo but any thoughts on this? good or bad. All suggestions appreciated.

</comment><comment><USER9> It runs super fast on mobile. The UI feels a bit lacking and unfinished.

Keep up the good work

</comment><comment><USER10> I sent this link to some of our colleagues at Altadox. They have been using it all day so its good.

150 results is too small. better than element14, digikey</comment>


XNOR.ai frees AI from the prison of the supercomputer - <AUTHOR> https://techcrunch.com/2017/01/19/xnor-ai-frees-ai-from-the-prison-of-the-supercomputer/ <comment><USER2> Thought that Google's TensorFlow already does this and has since shortly after it was released - what am I missing?

Example: [https://www.tensorflow.org/mobile/](https://www.tensorflow.org/mobile/)

<comment><USER3> XNOR-Net is not currently part of TensorFlow, although there is a feature request to support it. [0]

The main difference is that XNOR-Net uses 1 bit quantized weights and XNOR+popcount to approximate the dot product of convolution, which can be implemented very efficiently by using 64-bit arithmetic instructions on a CPU to operate over 64 1-bit components in parallel. [1]

TensorFlow's optimization is also using discretized weights, but AFAIK targeted at 8-bit quantized weights. [2]

[0] [https://github.com/tensorflow/tensorflow/issues/1592](https://github.com/tensorflow/tensorflow/issues/1592)

[1] [https://arxiv.org/pdf/1603.05279v4.pdf](https://arxiv.org/pdf/1603.05279v4.pdf)

[2] [https://petewarden.com/2015/05/23/why-are-eight-bits- enough-...](https://petewarden.com/2015/05/23/why-are-eight-bits-enough-for- deep-neural-networks/)

</comment></comment><comment><USER4> The license specifies: The following license governs your NON-COMMERCIAL use of the Software. Commercial use is strictly prohibited.

That's a goodbye for anyone wanting to build anything interesting in the future with it. Such a pity. I couldn't find anywhere any kind of "commercial license".

<comment><USER5> Why is it that only commercial applications are interesting ?

<comment><USER4> TL;DR, it is NOT that only commercial is interesting; it is that not commercial allowed is really restrictive.

I do a lot of Open Source, so I know the troubles associated with GPL and the like. This is a lot more extreme than that.

If you were to make a tool based on this a lot of your potential userbase dissapears. Like most of the people.

Why? For using it, while I mostly use Open Source, learning/mastering a tool only to discard it and then learn/master a different tool that does the same for a commercial application is a HUGE waste of time.

If there was a way (2 licenses) to use this as commercial software then it'd be a different story.

PS: I'm the author of _legally_ and I made it for this reason: [https://npmjs.com/package/legally](https://npmjs.com/package/legally)

</comment></comment></comment><comment><USER6> Disgusting appropriation of language to punch up a business headline

<comment><USER7> It's tech journalism, what did you expect?

</comment></comment><comment><USER8> recent discussion of running tensorflow/grad. descent on DSP chips: [https://news.ycombinator.com/item?id=13379847](https://news.ycombinator.com/item?id=13379847)

This is a good writeup on mobile/low power devices, lower precision arithmetic, compression, sparsity, hogwild type "naive" assumptions etc [https://arxiv.org/abs/1612.07625](https://arxiv.org/abs/1612.07625)

</comment><comment><USER9> Uncanny Vision[1] have similar computer vision and deep learning libraries for ARM chipsets.

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

</comment><comment><USER10> Sending data to a server isn't that "comically clumsy", light speed is very fast. [https://superuser.com/questions/419070/transatlantic-ping- fa...](https://superuser.com/questions/419070/transatlantic-ping-faster-than- sending-a-pixel-to-the-screen)

Unless you're talking about privacy, there I agree, I would much rather my phone do voice recognition locally than send it to google servers (where it'll be stored [0] so they can train better models later). That's a bit of a catch-22 though, if people don't need to send you their data to use your model then you won't get data for training your model.

[0] [https://myactivity.google.com/myactivity?restrict=vaa](https://myactivity.google.com/myactivity?restrict=vaa)

</comment><comment><USER11> Inference (forward pass) in convnets is really cheap even in floats, there are some awesome hardware like NVidia Jetson and most deep learning framework (i.e. Caffe) support it right out of the box. So we were doing realtime inference in embedded for years now, what am I missing?

<comment><USER12> You're missing the fact that Jetson is $435, it draws a lot of power, and requires cooling.

<comment><USER13> So where do I buy those xonr.ai, how much does it cost and when do they ship?

<comment><USER12> Well, if you look at their website, they have an email there, which you could use to ask them directly.

</comment></comment></comment></comment><comment><USER14> There are lots of starputs like XNOR.AI for example: [http://aipoly.com/](http://aipoly.com/) [http://scorch.ai/](http://scorch.ai/) they have dealing with devices also

</comment><comment><USER15> Rumelhart was the first to note this, I think, although of course he didn't have mobile phones. Implementation looks spiffy, but not spiffier than Han et al's work

</comment><comment><USER16> Backprop is expensive. Not sure what the revolutionary aspect is here. Smells a bit like the Theranos of AI.

<comment> hidden-markov I am pretty sure this is about optimizing the graphs of trained models. That is, training is not freed from "the prison of supercomputers".

<comment><USER16> Exactly my point. Feed forward can run on much lower specs just fine. So their whole "prison of supercomputers" analogy is for the wrong side of the equation.

</comment></comment></comment><comment><USER17> Isn't this article conflating feed forward applications of trained conv nets with the training of conv nets? The latter is what is so expensive, yet it seems like the demo of object recognition is the former, and not a breakthrough to run on a phone AFAIK.</comment>