Buy (and rent) vs buy: a hacker's view on housing - <AUTHOR> http://micho.biz/buy-vs-rent

<comment><USER2> Don't forget the down payment you'll need for a house (conservatively, 20% - potentially more as a foreign investor) and another 1%-5% of the purchase price in fixing stuff that's inevitably broken or in need of upgrading. Given how mobile you are, buying real estate to live in might not be a good thing for you. I bought at a similar age, and it's definitely a major consideration when considering moves now.

Real estate as an investment provides quite fantastic leverage (no-one's going to lend you 80%+ of your capital to buy stocks) and is a great way to build long term wealth, but make sure you have enough cash around to avoid getting into trouble if something major breaks or to pay the mortgage if your property is vacant for months at a time (especially if you're doing vacation rentals). Take what you estimate you'll need as a cash buffer, and triple it.

Don't underestimate the hassle involved with absentee landlording, even with a property management company. The property management industry, especially at the lower end (single unit residential or vacation rental) is largely unregulated and there are plenty of horror stories about corrupt managers who skim rent, take kickbacks, etc - or just collect rent for several months and disappear.

Highly recommend anything by John T Reed (johntreed.com) or William Nickerson (out of print) to learn about real estate as an investment. The field is full of scammers and smoke-blowers (even moreso than tech...). Those two stand out as offering pragmatic, actionable advice.

I really like the slow-paced, long term wealth building approach of real estate combined with the fast-paced, high cashflow, low equity field of tech consulting. It's early days for me, but the combination seems to work well together.

</comment><comment><USER3> _What's happen if the market went down and I sold it after 5-10 years for a 25% loss? In that case I'd be more or less breaking even, since the money I spent was spent on an investment (an unfortunate one), but not entirely lost as if I had just rented a place._

Eh? In that scenario a buyer is MUCH worse off than a renter. Depending on the variables (interest rate etc) you'd lose your down-payment, all the payments you made so far and still be five figures in the hole. And in Spain, the bank will go after your other assets to make up for their lost money, unlike in some US states where you can just walk away.

</comment><comment><USER4> I'm interested in the rent vs. buy thing too, so here are some of my thoughts:

>What if I hate the place and want to move away from it? Then a high demand for housing would play in my favor.

You'd still have to sell your house, which I've heard is rarely easy. There is time/money cost associated with selling the house (including repairs, real estate agents, etc.).

>What if I move to another city? Then it'd be good if I could rent it out easily, ideally making a profit with it or at least not losing money.

You'd still have to manage the rental property or pay someone to do that. This is another time/money cost.

> What if prices go down dramatically? Then I'd be stuck with the place, since > I'd lose money by selling it. So I need to really like the place, or be able > to make enough money by renting it to others.

You also have to be able to absorb any catastrophes to your financial situation. If you all-of-a-sudden couldn't afford your mortgage, you're still on the hook for it. If you were renting, you could just move somewhere cheaper (less the costs of the move).

I didn't see maintenance/repairs factored into the cost of buying a home. If the water heater dies, that's going to be a major expense. Same with paint jobs, pipe repairs, acts of god, etc. Might be worth considering what these factors would do to the math.

Finally, there's the opportunity cost. If you put a 60€ (20%) down payment on €300k, that money is now tied up in your house. If you had rented, you could have put that money towards another type of investment that could potentially earn you more money or at least be more liquid.

</comment><comment><USER5> this is a very simplistic way to look at the rent vs buy, although its more thorough than most. using a mortgage calculator and amoritization table it seems that after 10 years of paying 1200/mo you would have about 45k in equity (+ your downpayment) with the rest going towards interest. this is a far cry from 100k+ in equity that you stated.

if you are working with a vacation property manager or airbnb, expect to give them a hefty cut of the rents you collect and while it may cover your mortgage you still have to rent someplace else to stay.

maintenance costs are also not minimal, and a reasonable estimation is about 2% of your purchase price every year. on an older home, this is going to be more.

those things apply to everybody in the rent vs buy debate, but for hackers specifically we need to think about opportunity cost. with an apt you may have security deposits, etc, but you dont have a massive down payment. that downpayment could be used for giving a startup a longer runway or even just helping give you peace of mind that you would have a cushion if things at your job didnt work out.

buying a house isnt "bad," but it isnt as good as most people like to think (meaning the default play for everybody shouldnt be to buy a house). if you dont know where you will be in a few years, let alone 5-10, then it is almost definitely not the best decision to buy a house unless you have enough money where it just doesnt matter.

in short, most people underestimate the true cost of a house and overestimate their likely returns. buy a house when you can afford to pay for the comfort of home security. dont buy a house as an invesment unless you can prove that it will yield a better return on your money than your other options.

</comment><comment><USER6> From a very macro level, buying a house is like making a highly illiquid, incredibly non-diversified investment. The returns can be strong, but it's definitely a higher risk play than other investment vehicles.

Personally, I'd only do it for a place I really wanted to live in, and a place I could afford without worrying about rental income or appreciation. Then, you have a longer time horizon to recoup your investment, and at minimum you are buying cost certainty, which is something that you won't get in most rent situations.

</comment><comment><USER7> Be careful that you're not falling for the "honeymoon" part in the culture shock curve: <http://en.wikipedia.org/wiki/Culture_shock>

I've known quite a few people who moved somewhere, made big commitments, only to find out that they just couldn't deal with the new place after a year.

IME, it's best to first live there (rent!) for a year, figure out if it's right for you still, and then go for it (-:

</comment><comment><USER8> An alternative (more feasible in suburbia): buy a duplex or multi-unit dwelling, live in one and rent out the other(s).

That's what we did, and though a bunch of our savings lost it's liquidity (now encased in real-estate as a down payment), our equivalent rent is about half of what paid before (esp. including tax deductions)... it's like an investment with a great return, even assuming 0 or mildly negative house price appreciation.

</comment><comment><USER9> For the interested, Khan Academy has an excellent series analysing renting vs buying at [http://www.khanacademy.org/video/renting-vs--buying-a- home?p...](http://www.khanacademy.org/video/renting-vs--buying-a- home?playlist=Finance)

</comment><comment><USER10> Here's a couple of reasons not to buy a home: [http://www.jamesaltucher.com/2011/03/why-i-am-never-going- to...](http://www.jamesaltucher.com/2011/03/why-i-am-never-going-to-own-a- home-again/)

</comment><comment><USER11> There is also the possibility that the mortgages rates will hike. This seems unlikely right now but if you take a 30 years mortgage... it's longer than the average marriage these days so anything can happen

<comment><USER12> IMO, this would definitely be a poor time to get into an ARM. I expect severe inflation coming down the pike over the next few years. If you decide to buy, it should be fixed rate all the way. :-)

</comment></comment><comment><USER13> Your number for SF is a bit outdated, add an extra $1k.

<comment><AUTHOR> Last time I visited it was a homeswap :) I'll edit that, thanks!

<comment><USER14> The parent is wrong. $2-$3k is still quite reasonable as a rent number in SF.

<comment><USER13> I've spent the past 4 months obsessively browsing craigslist. This summer I moved out of an apartment (non rent-controlled) because my rent was increased from $2850 to $4,150. [http://sfbay.craigslist.org/search/apa/sfc?query=&srchTy...](http://sfbay.craigslist.org/search/apa/sfc?query=&srchType=A&minAsk=2000&maxAsk=3000&bedrooms=2) is a search of 2br apartments in the city of san francisco, all neighborhoods. It returns 253 listings. Raising that to 3000 -> 4000 gives you 265 listings.

If I exclude the neighborhoods where I wouldn't live due to distance, safety, or a dislike of feeling like I'm in the burbs (bayview, excelsior, ingleside, north beach (fuck tourists), portola, richmond/seacliff, sunset, tenderloin) treasure island) then those searches ([http://sfbay.craigslist.org/search/apa/sfc?query=&srchTy...](http://sfbay.craigslist.org/search/apa/sfc?query=&srchType=A&minAsk=3000&maxAsk=4000&bedrooms=2&nh=1&nh=2&nh=149&nh=3&nh=4&nh=5&nh=6&nh=8&nh=11&nh=12&nh=14&nh=15&nh=16&nh=10&nh=20&nh=24&nh=17&nh=18&nh=19&nh=21&nh=164&nh=25&nh=27&nh=29&nh=118&nh=114&nh=30)) drop down to 106 and 184 apartments, respectively.

The competition for apartments is fierce right now due to a combination lack of credit keeping people leasing rather than owning, and the current tech bubble having imported 10s of thousands of new dot-commies happy to spend 50% of their salaries on housing, because they're young and stupid.

If you make under $150k, are fiscally conservative and don't want to live with roommates, then you're priced out of San Francisco.</comment></comment></comment></comment>


E. coli bacteria engineered to eat carbon dioxide - <AUTHOR> https://www.nature.com/articles/d41586-019-03679-x <comment><USER2> Now that is very much the start of a disaster movie!

<comment><USER3> Isn't that essentially just plants with an extra step? Or well worse than plants given it depends upon formate as an energy source.</comment></comment>


Ryanair CEO: "Seatbelts On Airplanes Are Pointless" - <AUTHOR> http://www.businessinsider.com/ryanair-ceo-seatbelts-on-planes-are-pointless-2012-11?0=transportation-contributor

<comment><USER2> I've seen arguments for and against.

Arguments for:

[http://www.nytimes.com/2008/01/25/opinion/25iht- edbibel.1.95...](http://www.nytimes.com/2008/01/25/opinion/25iht- edbibel.1.9503843.html)

"People have broken their necks bouncing off the ceiling when a plane suddenly drops a few hundred feet in severe turbulence"

[http://skeptics.stackexchange.com/questions/1951/are- safety-...](http://skeptics.stackexchange.com/questions/1951/are-safety-belts- in-planes-meant-for-safety)

"according to the FAA on average 60 people a year are injured a year because of turbulence.

According to Capt. Lim, each year about 58 U.S. passengers and flight attendants are injured by not wearing their seat belt."

"Aloha Airlines Flight 243 where a large part of forward portion of the airplane was ripped from the plane. The only casualty could probably have survived if she was buckled in at the time."

Arguments against:

"It has been shown that there is no net safety benefit for passengers who choose to wear 3-point restraints on passenger carrying rail vehicles. Generally passengers who choose not to wear restraints in a vehicle modified to accept 3-point restraints receive marginally more severe injuries."

[http://www.railwaysarchive.co.uk/documents/RSSB_Seatbelts200...](http://www.railwaysarchive.co.uk/documents/RSSB_Seatbelts2007.pdf)

Plenty of articles about fat people not getting any benefit from airplane seatbelts.

"in most air crashes, a seat belt will not matter"

[http://www.linkedin.com/answers/business-travel/travel- tools...](http://www.linkedin.com/answers/business-travel/travel- tools/BTV_TVT/681502-31139360)

So, basically airplane seat belts are shown to help with turbulence. If an equivalent level of restraint can be created for standing passengers, I don't see why not.

Edit: O'Leary seems to be aware of the turbulence issue: "We're not talking about areas of huge turbulence around Europe."</comment>


Graphical Vim Cheatsheet - <AUTHOR> http://www.viemu.com/vi-vim-cheat-sheet.gif

<comment><USER2> Important VIM tip that cheatsheets never mention for some reason: text objects. First, remember these two things: a for a, and i for 'inner'. 'daw' deletes a word under the cursor. 'diw' deletes the contents of a word (the 'inner' of a word) under the cursor.

What? How is that useful?

'das' deletes a sentence under the cursor. 'dap' deletes a paragraph under the cursor.

'da{' deletes the block of text that's currently surrounded by braces. 'ci(' deletes the inner content that's surrounded by parentheses and puts you in insert mode. 'gqap' reformats the contents of the paragraph under the cursor ('gqip' will end up leaving your cursor at the beginning of the paragraph instead of the end.)

<comment><USER3> I consider text objects and the f/t motions to be the core Vim editing motions. I'm always annoyed that vim intros go through teaching the w/e/b motions when you can easily get by with f<space>/t<space>/T<space> and the search commands generalize to things like replacing the first part of a camelCase word (ctC) or the end of a string (ct").

</comment></comment><comment><USER4> I've had that taped to my office wall since way back when I decided to use Vim. That, and the intermediate learning cheatsheets here were very useful. [http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial...](http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html)

</comment><comment><USER5> Definitely be sure to give thanks to ViEmu for this great set of graphics, and if you happen to like Vim and use Visual Studio, give consideration to buying their plugin. It works incredibly well, and really helps me feel at home when writing software in Windows.

</comment><comment><USER6> It's a good sign of ViEmu's quality that they provide the standard Vim cheatsheet without any editing. I haven't used ViEmu myself, but their emulation seems extensive -- impressive given how limited to the point of uselessness Vi-emulating "keybindings" are for other software.

</comment><comment><USER7> I had Office Depot print this cheat sheet: in color, legal-sized, double- sided, laminated with a heavy/stiff plastic and spiral bound. It now sits off to the side of my desk and has made for an invaluable reference over the past year.

</comment><comment><USER8> If you use Vim, snipMate is an awesome plugin to give you snippets.

<http://www.vim.org/scripts/script.php?script_id=2540>

</comment><comment><USER9> Here's a nice article on how to set up VIM as a Python IDE: <http://blog.dispatched.ch/vim-as-python-ide/>

</comment><comment><USER10> This cheatsheet was great when I started using vim years ago.

I highly recommend <http://vimcasts.org/> It has neat little tutorials that cover a lot of vim's powerful features.

</comment><comment><USER11> Does anyone know what sort of a license does this picture carry ? I want to 'reblog' this to my own blog, just for future reference..

<comment><USER12> Feel free to "reblog" a link to the GIF, but it would be best to link to the containing page:

      http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html

You can blog an image hotlinking to the cheatsheet inside a link that points to the containing page for best effect.

Also of possible interest, the "why vi" article:

      http://www.viemu.com/a-why-vi-vim.html

I'm the author of both.

<comment><USER11> Thanks a lot for the prompt reply, and for letting me 'reblog' it. Appreciate it.

</comment></comment></comment><comment><USER13> Seeing this makes me wanna use vi again.

<comment><USER14> You should! I've been an on/off Vim user for years, but only recently have finally decided to do all my editing in Vim and I can say that (after the typical initial re-learning curve) I'm more than happy.

This article in particular made me want to go back and try again, with a better Vim configuration file: <http://nvie.com/posts/how-i-boosted-my-vim/>

Now I've gotten so used to Vim, I keep closing tabs and chat windows when trying to delete a word I just typed (Ctrl+W on Vi). Awkward :)

EDIT: I linked the wrong article. Fixed now.

<comment><USER15> Also try FireFox with the Vimperator add-on.

<comment><USER16> Or Pentadactyl : <http://dactyl.sourceforge.net/pentadactyl/> [+]

</comment></comment></comment></comment><comment><USER17> Those come as stickers too, and make your laptop look really cool! I got mine from 4keyboard.

</comment><comment><USER18> Sometimes I feel like I am the only one who just doesn't get VIM

</comment><comment><USER19> Is there something like this for non-US keyboards?

</comment><comment><USER20> Hahah. A graphical cheatsheet for a command line editor. Nice!</comment>


Wait, Who Says My Tweets Belong to Google or the Library of Congress? - <AUTHOR> http://www.thebigmoney.com/blogs/sausage/2010/04/14/wait-who-says-my-tweets-belong-google-or-library-congress?page=full

<comment><USER2> Why, the EULA you agree to in order to use the service. question answered.</comment>


What can we do about Facebook? - github-cat http://www.pixelstech.us/article/1502463235-What-can-we-do-about-Facebook <comment><AUTHOR> I think one potential solution is to not use Facebook and support the smaller startups.

Personally, I prefer spending my time clicking through HN soties rather than the stuff on the news feed.

If only HN also implemented infinite scrolling :)

</comment><comment><USER2> Is there any criteria on what can be considered as a copycat? If there is, there should be some law or degulation to regilate this. Do we need some jury?

</comment><comment><USER3> This is really a bad trend. Though people would say that adequate copy with some changes would be micro-innovation, I feel uncomfortable about this.</comment>


Ask HN: Do you charge to fix a clients site when it gets hacked - <AUTHOR>

Hi everyone
I'm a web developer. Two of my clients, that I made sites for, got hacked this week. I spent two days fixing the intrusion and doing support to the clients.
If this has happened to you in the past do you charge clients for this service?
The clients know this isn't my fault and are grateful to me fixing the problem but I could have been doing other work during this time but don't know whether to bill. <comment><USER2> If you haven't discussed it up front with them, you're going to have to tread carefully.

We offer, as part of the handover when we deliver a site, a "support contract" which includes a few hours of phone support per month as well as software security updates. It's made clear in this offer that if your not on our support contract, any time doing that is chargeable at our regular rates.

What you need to do is make sure you and your clients are both aware of all the different responsibilities in keeping a website up (from the network connectivity and hosting hardware, through the OS, OS applications, web app dependancies to the web application software), in many cases the "web developer" has no control over some of those responsibilities (particularly if the customer is organizing the web hosting), and everybody needs to be aware of who to call, and who's responsible for fixing problems at each layer, and how the cost of that responsibility is going to be borne. In my experience, everything between the OS install and the web app software (Wordpress/Drupal/custom written app) is often overlooked - who's responsible for keeping apache/MySQL/nginx/memcached/sendmail/named up to date? Customers in general don't even know they're using those things. Race-to-the-bottom- price hosting companies aren't going to be proactive about protecting your $4.95/month hosting account. Unless you've raised these issues with your clients beforehand, your relying purely on their goodwill towards you to get paid for any time you spend fixing problems you never knew you signed up to accept responsibility for…

<comment><AUTHOR> Yes I should have included what happens when a site is compromised in the terms. As the developer, not host this just didn't occur to me. I provide a 90 warranty but generally this only requires a small amount of hours as major problems are usually picked up in testing.

tyvm - great comments

</comment></comment><comment><USER3> You need to define this in your terms of service. The problem from a client's perspective could be that there is a weakness in the security of the site, which you the developer are responsible for creating, and therefore are responsible for securing. The technicalities of what happened or who is responsible (host or developer) may not be an argument you can win.

For example it could be that a simple form was the entry point because you did not put in place any SQL injection prevention steps.

Any developer worth their salt would point to this being a developer's error. Any host with experience might also point to the developer, and they'd be right.

My question to you is "can you figure out what was hacked, and how?" and if you can, then plug the leak quick and pray they don't take you to court over it.

<comment><AUTHOR> tyvm for feedback. What country are you writing from? Is court action common place when a site is compromised in your country?

I'm guessing you are from the US?

</comment></comment><comment><AUTHOR> As the topic of SQL injection has come up... what are your thoughts on:

MySQL vs MySQLi vs PDO MySQL

Also I grabbed this checklist online. Does anyone have anything to add?

1\. Use dynamic SQL if and only if there is no other alternative

2\. Escape user input always

3\. Always assume magic quotes is off

4\. Install security updates and patches regularly

5\. Remove all the dead SQL's or other codes that you don't use

6\. Never display the system defined error message for SQL errors

7\. Store database credentials in a separate file

8\. Use the principle of least privilege

9\. Disable shells

10\. Use SQL injection Hack tools to check vulnerabilities

</comment><comment><USER4> You should change the title to be of "Ask HN:" format.

My $0.02 is that if you charge your clients as part of an overall hosting solution, then you either have a rate card or a monthly rate that covers issues such as this.

Else, it's outside of your usual work, then it would be reasonable to bill for your time.

<comment><AUTHOR> I'm not the host. Just the developer. The host is shrugging it off as 'just one of those things', which it may well be and have billed for restoring dbs etc..

I think you're right - I not sure how to broach the subject with the client though. tyvm for your $0.02 :)

<comment><USER4> Well, in that case, you might want to chalk it up to lesson learnt this time.

However, you might want to use this as a opening point for discussion with your client should something similar happen in the future. It is your responsibility to set expectations but if the client merely expects you to work for free, I would say then you know what you need to do...</comment></comment></comment>


Mountains and Gravity [pdf] - <AUTHOR> https://www.nature.com/articles/1691079a0.pdf <comment><USER2> Fascinating subject.

I feel someone should make a long-form, James Burke Connections style piece on how mountain gravity was measured and how it fits in with history.

The label on the tin might say, "While surveying the Allegheny mountains in 1772, surveyors encountered a systematic error they could not explain, and took a side track into the developing theory of gravitation to resolve it." It ties together Newton, Cavendish, Mason and Dixon, the Royal Society, mountains on two continents, the mass of the Earth, and the fields of astronomy, geology, physics, and surveying.

</comment><comment><USER3> Is it completely crazy to potentially harvest energy from gravity through the force of pressure on crystals sitting in between a mountain generating piezoelectricity and perhaps doing some form of computation or cymatics with it?

<comment><USER4> A constant pressure isn't enough to produce power. You'd need a changing pressure.

<comment><USER3> At what rate? Is there enough geological movement to induce a change of pressure? What type of gradient/size/rate is needed here?

<comment><USER5> Thankfully, we already have a source of constantly changing pressure: the Moon! (Well, the Earth's rotation)

Since the Earth rotates around its own axis, you're oscillating closer to and further from the Moon every 24 hours. When you're "facing" the Moon, it's puling you up (from the Earth). When you're away from the moon (on the opposite end of the Earth) it's pulling you down (toward the Earth).

This (along with other factors) causes tides. And tides are already used to generate power.[1] Including using the piezo-electric effect (not sure how with what efficiency, though).

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

<comment><USER6> Interesting idea.

You could carve a few cubic kilometers of rock. Raise it when the moon is at zenith. Lower it when the moon is on the other side of earth.

There was this idea to use a carved rock cylinder for pumped water energy storage (have the water under the cylinder).

You could even combine these.

Of course, in reality the difference in gravity is so tiny, the round trip efficiency is too low, killing the idea.

</comment></comment></comment></comment></comment><comment><USER7> now we've even measured to [https://en.wikipedia.org/wiki/Geoid#Anomalies](https://en.wikipedia.org/wiki/Geoid#Anomalies)</comment>


Meet the New Raspberry Pi 3 - <AUTHOR> http://makezine.com/2016/02/28/meet-the-new-raspberry-pi-3/ <comment><AUTHOR> I bought a Raspberry Pi a few months ago and love it. If it had more than 1G of RAM it could be a serious desktop replacement. I tried using it for several days as my only work + play computer. I found that Ruby and Clojure development with Emacs was fine but using IntelliJ was too slow. It supported my writing tools fine.

If you haven't played with a Pi yet, there are about 6 programming languages set up and lots of available projects for school kids to experiment with.</comment>


'Run toward the crisis': Some employers balk at letting employees work remotely - <AUTHOR> https://www.latimes.com/business/story/2020-03-20/coronavirus-balk-at-home-work <comment><USER2> I have a friend who works as an analyst at a company that discourages remote work, even though there is nothing stopping them from doing it other than a "butts-in-seats" mentality, and because of this, when they are finally forced to have everyone work from home because of the pandemic, productivity really does plummet because everyone was trained up until then to think "work from home" meant a free vacation day, and are having a hard time adjusting. I would imagine this would be the case for a lot of places that do not have a good remote culture.

Contrast that with mine, who strongly encourages us to spend at least a few days a week in-office, but by the same token has a good remote culture otherwise. Going full remote wasn't much of a big deal for us.

Lesson here is that even if you do as an organization have a strong preference for in-person interactions (and personally I like having an office to go to), enabling a part-time remote culture can make your organization much more resilient, not to mention one with happier employees.

Another anecdote, a few years ago I suffered an injury that kept me more or less on the couch and unable to drive. Without an effective remote culture it would have been very tough on both me and my employer to keep the relationship going, but fortunately it worked out just fine.

Remote life is a reality as we move more and more to a tech-focused economy. Hopefully this is a catalyst for more employers to rethink their outdated attitudes.

</comment><comment><USER3> >"It is soul-stealing and debilitating to embrace the notion of social distancing and economic hibernation."

While I agree with this on a personal level, this is not something that should be pushed down from people in a position of authority.

I appreciate my employer's stance on things. "We want you to feel completely comfortable working from home. We aren't going to enforce it, but we do encourage it, and if there is anything you need to make it easier for you to do so, let us know."

Some may disagree and think that the employer should "enforce" WFH, but I find this approach to be extremely respectful to the employees' agency as individuals. And it seemed to work very well. A couple people stuck around in the office for a few days, and now everyone is working from home.

</comment><comment><USER4> A good friend of mine is commuting 2 hours a day to a job he's beginning to hate. And he doesn't even need to be there. His tools are Word, Powerpoint, and Excel. And as we chat and drink I keep broaching the idea of telecommuting. The bosses don't want to hear it. If your butt isn't in a seat at a desk they can watch you may as well not be working at all. There are so many PHBs who think like this, it's going to take a lot of momentum to move that needle. I hope this self-quarantine is what pushes it over the tipping point.

</comment><comment><USER5> Unfortunately Costco has been one of the Seattle-area employers who've resisted remote work even after it was obvious the area was experiencing community spread. One of their HQ employees has since died of COVID-19 and others are beginning to test positive.

[https://www.businessinsider.com/two-costco-employees-at- corp...](https://www.businessinsider.com/two-costco-employees-at-corporate- office-test-positive-for-coronavirus-2020-3)

</comment><comment><USER6> I find that the companies who do not allow work from home are the ones who have a poor management system.

They are also aware of that and hope that having someone at the office means less slacking.

This is not a stupid approach. Fixing management wild obviously ne the right solution, but it is also much harder to do.

</comment><comment><USER7> Good luck hiring after this!

<comment><USER8> Saw a tweet last night saying that a question we should all ask of interviewers from now on it "how did your company respond to COVID-19?", and things like this make me think that that might really be a good idea.

This terrible crisis is definitely providing us with great insight into which companies care about their employees' wellbeing and that of society and which don't.

</comment></comment><comment><USER9> Are people going to vote with their wallets?</comment>


35 Startup Buzzwords Every Entrepreneur Should Know  - <AUTHOR> http://www.forbes.com/sites/ericaswallow/2012/03/14/startup-buzzwords-infographic/

<comment><USER2> Most will elicit mild chuckles.

My favorite was their alternative definition of MVP: "A theory developed by Industrial Revolution manufacturing tycoons, which posits that a business that fails to make its product profitable within 90 days of release should scrap it and start producing whiskey, cigarettes, or shoes instead."</comment>


HNews Swipe? - <AUTHOR> The tiny text and my big fingers are a frustrating combo on mobile. Is it just me? (Even big-screen mobile, even landscape)
Swipe right/left for next/previous article, swipe up to open browser.
Throw in the first paragraph too - why not? <comment><USER2> Android - The Hacker News app Materialistic seems to give the functionality you're seeking.

<comment><USER3> Thanks! This is better than the current HN app I am (was) using.

</comment></comment><comment><USER4> I don't know which phone OS you are using so I'm not going to bother to check, but I believe there are multiple Hacker News apps. It seems likely that at least one of them will provide a more appropriate interface.</comment>


Ask HN: What are the best resources to learn computer vision? - <AUTHOR> Ideally, I would like to be good enough to get a job at an AI/robotics startup. I already have a CS degree, a decent math background, and am working as an embedded software developer for a large company. <comment><USER2> For a full course, Nothing beats CS231n: Convolutional Neural Networks for Visual Recognition [http://cs231n.stanford.edu/](http://cs231n.stanford.edu/) by Andrej Karpathy et al.

Also, for a general and high level introduction to neural networks, I wrote a Learning Deep Learning in Keras [http://p.migdal.pl/2017/04/30/teaching-deep- learning.html](http://p.migdal.pl/2017/04/30/teaching-deep-learning.html), focusing on visual tasks.

<comment><USER3> I did this course, but couldn't finish all the assignments. Loved it. Please note that this is a convolutional neural networks course, not computer vision as such. From what I know computer vision encompasses a variety of non machine learning based algorithms, which are not covered in this course.

<comment><USER4> As an engineer, it's difficult to know when to use deep learning and when to use more classical algorithms. Often, you have to try both and see which is better (twice the work, hooray!). The classical algorithms often are very understandable, and you can reason with what's going on and figure out what is breaking. Deep learning is so much harder, e.g., are my hyper parameters bad, or do I need another 30 GPUs running for a week?

<comment><USER5> Imho, deep learning has little to do with engineering, and more with guessing, hoping and praying. But it seems you can often get something to work if you do those three things hard enough.

<comment><USER3> This has been my experience as well :). Deep learning is a lot of random guesswork, trial and error. I am almost always in the 'brute force' mode. However, in this course, you learn more about the fundamentals of convolutions and backprop. You have to implement your own backprop - not sure of what use that is, given that it's a one line code in TensorFlow

<comment><USER4> I watched a great video on Tensorflow (link below). It mostly introduces very basic deep learning concepts, but there are a few key moments in the 2 hour+ video, where he explains what to do if something goes wrong. It's definitely not a "science", but with enough experience in deep learning, you can intuit what's going on inside the black box, and there are best practices on what to try next.

For example, he goes through a few examples where a neural net has too many weights, or too little data or improperly connected nodes. All three result in problems, but the problems exhibit themselves in slightly different ways and with expertise you can start identifying them.

[https://www.youtube.com/watch?v=vq2nnJ4g6N0](https://www.youtube.com/watch?v=vq2nnJ4g6N0)

</comment></comment></comment></comment></comment></comment><comment><USER6> This is pretty old school, but I recommend Multiple View Geometry by Hartley and Zisserman ([http://www.robots.ox.ac.uk/~vgg/hzbook/](http://www.robots.ox.ac.uk/~vgg/hzbook/)) to get through the fundamentals...it's really good to understand the geometric foundations for the past 4 decades. Along the same lines, you have Introductory Techniques for 3-D Computer Vision by Trucco and Verri ([https://www.amazon.com/Introductory- Techniques-3-D-Computer-...](https://www.amazon.com/Introductory- Techniques-3-D-Computer-Vision/dp/0132611082)), which also goes over the geometry and the fundamental problems that computer vision algorithms try to solve. It often does come down to just applying simple geometry; getting good enough data to run that model is challenging.

If you just throw everything into a neural network, then you won't really understand the breadth of the problems you're solving, and you'll be therefore ignorant of the limitations of your hammer. While NNs are incredibly useful, I think a deep understanding of the core problems is essential to know how to use NNs effectively in a particular domain.

After getting a grip on those concepts, Szeliski's Computer Vision: Algorithms and Applications ([http://szeliski.org/Book/](http://szeliski.org/Book/)) had some really amazing coverage of CV in practice. Mastering OpenCV ([https://www.amazon.com/Mastering-OpenCV-Daniel-Lelis- Baggio/...](https://www.amazon.com/Mastering-OpenCV-Daniel-Lelis- Baggio/dp/1786467178)) was very useful when actually implementing some algorithms.

</comment><comment><USER7> I think the question is a little too unspecific for there to be a good answer. The field is vast and depending on which thing in computer vision you want to tackle the best learning paths may vary greatly. Just to give a bit of an overview:

Before the Deep Learning Craze started in 2011 more classical Machine Learning techniques were used in CV: Support Vector Machines, Boosting, Decision Trees, etc..

These were (and still are!) used as a high level component in areas like recognition, retrieval, segmentation, object tracking.

But there's also a whole field of CV that doesn't require Machine Learning learning at all (although it can benefit from it in some cases). This is typically the area of geometrical CV, like SLAM, 3D reconstruction, Structure from Motion and (Multi-View) Stereo, anything generally where you can write a (differentiable) model of reality yourself using hand-coded formulas and heuristics and then use standard solvers to obtain the model parameters given the data.

Whenever it's too hard to do that (for example trying to recognize many different things in images) you need a data-driven / machine learning approach where the computer comes up with the model itself after seeing lots of training examples.

As for resources the other answers are already giving a great overview. Use Karpathy's course for an intro to Deep Learning for CV but don't expect it to be comprehensive in terms of giving you an overview of CV.

Learn OpenCV for more low level, non-ML and generally more "old-school" Computer Vision.

A personal recommendation of mine is [http://www.computervisionblog.com/](http://www.computervisionblog.com/) by Tomasz Malisiewicz. It's an excellent resource if you want to get an overview of what's happening in the field.

<comment><USER8> Great points.

I would argue Kinetic or Geometrical Computer Vision problems, things like Tracking, Mapping, Reconstruction, Depth Estimation are best suited for the classical approaches like VO, SFM/MVS, SIFT/SURF, HOG etc... and are a separate category of CV problems than object recognition/detection/segmentation - much more capable of being done with ML because dimensionality is reduced.

 _But there 's also a whole field of CV that doesn't require Machine Learning learning at all (although it can benefit from it in some cases)._

In fact, Machine Learning has made almost no progress on most of what you mention, specifically SLAM and Multi-View Stereo. It takes completely rethinking how those are done when they are approached from the Deep Learning perspective.

</comment></comment><comment><USER9> A lot of real world computer vision is implemented on embedded devices with limited computational resources (ARMs, DSPs, etc.) so understanding how a lot of commonly used algorithms can be efficiently implemented in embedded systems is important. It is possibly a way for you to jump the gap from "embedded software developer" to "computer vision engineer". Also keep in mind that in many companies a "computer vision engineer" is fundamentally a different beast from a "software developer". A CV engineer creates software but the emphasis tends to be more on systems and is not 100% about software. This will vary a lot by company but if you're working with prototype hardware you will need to get at least a working knowledge of optics.

Fun and trendy though it may be, I would not focus on deep learning / convolutional neural networks to start off. Deep learning is a small subset of computer vision. I would focus more on understanding the basics of image processing, camera projection geometry, how to calibrate cameras, stereo vision, and machine learning in general (not just deep learning). Working with OpenCV is a good place to start for all of these topics. Set yourself a project with tangible goals and get to work.

</comment><comment><USER10> I once created a list of 20 problems in CV. If you solve them in order, you will know basic CV. Here goes: [https://gist.github.com/abhinai/b6eebecb4d19c57cfb1ee64c2b53...](https://gist.github.com/abhinai/b6eebecb4d19c57cfb1ee64c2b538643)

A good online reference is: [http://opencv-python- tutroals.readthedocs.io/en/latest/py_tu...](http://opencv-python- tutroals.readthedocs.io/en/latest/py_tutorials/py_tutorials.html)

</comment><comment><USER11> Surprised nobody has posted [http://course.fast.ai/](http://course.fast.ai/) yet. I've been following along with it so far for the first 4 lessons and it has been extremely helpful in understanding how deep learning works from the perspective of someone who did not have much of any related baseline knowledge except how to program. Jeremy is an excellent practical teacher.

<comment><USER12> Happy it is interesting for you.

I too got this url referred by somebody, and I got excited after their extended intro why, how etc their course different and better then any other.

Though after 5 videos i know nothing more then from any other ML/AI guide on the internet then i did before. 99% is only related to image classifying, and i'm simply seeing too many guides for that.

If anybody has some good links/videos on ML/AI on structured data, please comment and i'll be thankful and happy to click 'm :)

<comment><USER13> The author himself said that DL isn't the best option for structured data.

"Certainly I'd pick DL over more linear models for most problems. But I'd pick random forests over DL for most structured data problems."

"Deep learning is best for unstructured data, like natural language, images, audio, etc. it sounds like you may be dealing more with structured data, in which case the Coursera ML course would be a better option for you"

More discussion here - [https://www.reddit.com/r/MachineLearning/comments/5jg7b8/p_d...](https://www.reddit.com/r/MachineLearning/comments/5jg7b8/p_deep_learning_for_coders18_hours_of_lessons_for/)

<comment><USER12> many thanks! much appreciated, will read it over the weekend.

</comment></comment></comment></comment><comment><USER14> OpenCV and [http://www.pyimagesearch.com/](http://www.pyimagesearch.com/)

disclaimer: not related to any of these

<comment><USER15> Adrian here, author of the PyImageSearch blog. Thank you for mentioning it, I appreciate it. If anyone has any questions about computer vision, deep learning, or OpenCV, please let me know.

In regards to OPs original question, I'm actually working on solving your very problem right now. About 1.5 years ago I created the PyImageSearch Gurus course ([https://www.pyimagesearch.com/pyimagesearch- gurus/](https://www.pyimagesearch.com/pyimagesearch-gurus/)) with the aim of bridging academia with actual real-world computer vision problems. The course has helped readers in their academic careers, such as securing grants ([http://www.pyimagesearch.com/2016/03/14/pyimagesearch- gurus-...](http://www.pyimagesearch.com/2016/03/14/pyimagesearch-gurus-member- spotlight-tuomo-hiippala/)) as well as students become practitioners and land jobs in the CV startup space ([http://www.pyimagesearch.com/2017/06/12/pyimagesearch- gurus-...](http://www.pyimagesearch.com/2017/06/12/pyimagesearch-gurus-member- spotlight-saideep-talari/))

Within the next month I'll be launching PyImageJobs which will connect PyImageSearch readers (especially the Gurus course graduates) with companies/startups that are looking to hire.

Finally, I'm also working on my upcoming "Deep Learning for Computer Vision with Python" book ([https://www.pyimagesearch.com/deep-learning-computer- vision-...](https://www.pyimagesearch.com/deep-learning-computer-vision- python-book/)) which is now 100% outlined and I'm on to the writing phase.

Definitely take a look and if you have any questions, please let me know or use the contact form on my website if you want to talk in private.

<comment><USER16> PyImageSearch is absolutely fantastic. We couldn't have got a top spot in an AI hackathon without your blog: [https://www.youtube.com/watch?v=OreCICEcQWY&t=2m45s](https://www.youtube.com/watch?v=OreCICEcQWY&t=2m45s)

Looking forward to your book. Keep up the great work.

</comment></comment></comment><comment><USER17> I found Computer Vision: Algorithms and Applications really good. You can download it for free (for personal use) at [http://szeliski.org/Book/](http://szeliski.org/Book/).

<comment> alok-g +1

This is the most comprehensive book I know of on Computer Vision. The diagrams in the book (including captions) themselves do a great job of explaining things.

</comment></comment><comment><USER18> I started by getting a webcam or two and trying out various projects: marker tracking (made an optical IR pass filter and tracked an IR LED with two cameras), object segmentation (e.g measure geometry of certain-colored objects).

Measure the speed or count the number of cars passing by your street. Try to implement an OCR for utility meter. There are lot's of applications you can train yourself in, and I guarantee that you will learn a ton from each and every one of them.

</comment><comment><USER19> Grad-level CV courses, all recently offered:

Princeton CS598F Deep Learning for Graphics and Vision

[https://www.cs.princeton.edu/courses/archive/spring17/cos598...](https://www.cs.princeton.edu/courses/archive/spring17/cos598F/)

Stanford CS331B: Representation Learning in Computer Vision

[http://web.stanford.edu/class/cs331b/](http://web.stanford.edu/class/cs331b/)

UVa CS 6501: Deep Learning for Computer Graphics

[http://www.connellybarnes.com/work/class/2016/deep_learning_...](http://www.connellybarnes.com/work/class/2016/deep_learning_graphics/)

GaTech CS 7476 Advanced Computer Vision

[http://www.cc.gatech.edu/~hays/7476/](http://www.cc.gatech.edu/~hays/7476/)

Berkeley CS294 Understanding Deep Neural Networks

[https://bcourses.berkeley.edu/courses/1453965](https://bcourses.berkeley.edu/courses/1453965)

Washington CSE 590V: Computer vision seminar

[https://courses.cs.washington.edu/courses/cse590v/16au/](https://courses.cs.washington.edu/courses/cse590v/16au/)

UT Austin CS 395T - Deep learning seminar

[http://www.philkr.net/CS395T/](http://www.philkr.net/CS395T/)

Berkeley CS294-43: Visual Object and Activity Recognition

[https://sites.google.com/site/ucbcs29443/](https://sites.google.com/site/ucbcs29443/)

UT Austin CS381V: Visual Recognition

[http://vision.cs.utexas.edu/381V-fall2016/](http://vision.cs.utexas.edu/381V-fall2016/)

And best of luck to you!

</comment><comment><USER20> Suprised no one has mentionned it, but Udacity has a very good very course on computer vision.

[https://www.udacity.com/course/introduction-to-computer- visi...](https://www.udacity.com/course/introduction-to-computer-vision-- ud810)

</comment><comment><USER21> Does anyone know if tech like OpenCV is used at companies developing their own "computer vision" product, maybe at Tesla? Or do they build their own technology from scratch which isn't available to public domain? Or do they say fork OpenCV and build upon it and heavily modify as OpenCV could be seen as 'outdated' technology.

Disclaimer: Never worked with any technology related to Computer Vision, just a bloodboy beginner Python programmer.

<comment><USER22> Used to work on Tesla Vision / Autopilot Vision. They used Caffe, were switching to Tensorflow when I left, but might be moving to Caffe2 now.

Usually no OpenCV on successful products. Facebook Ads has dedicated research engineers implementing their real time photo analysis algorithms.

</comment></comment><comment><USER23> cs231n by Andrej Karpathy : [http://cs231n.github.io](http://cs231n.github.io)

<comment><USER24> Yes, this course is very good: [https://youtu.be/2uiulzZxmGg](https://youtu.be/2uiulzZxmGg)

In addition, you can try to work through a serious project related to computer vision to help you solidify concepts. I worked used Style Transfer as my motivating example: [https://harishnarayanan.org/writing/artistic-style- transfer/](https://harishnarayanan.org/writing/artistic-style-transfer/)

</comment></comment><comment><USER25> You don't specialize in surgery before learning biology. Similarly, you don't specialize in CV before learning basic ML and DL. The fundamental concepts are the same no matter if the modality is text, image or video (for example: regularization, loss, cross validation, bias, variance, activation functions, KL divergence, embeddings, sparsity - all are non-trivial concepts that can't be grasped in a few minutes, and are not specific to CV alone).

</comment><comment><USER26> PyImageSearch by Adrian Rosebrock. [http://www.pyimagesearch.com/](http://www.pyimagesearch.com/)

<comment><USER15> Adrian here, author of PyImageSearch. Thanks for mentioning the blog. If anyone has any questions regarding learning computer vision, please see my reply to "sphix0r" below.

<comment><USER27> Hey, amazing blogs. Currently working on degraded scanned documents. Are there algorithms distinguishable for documents and natural images?

I am using open cv to process the documents, curious if I am missing out chunk of cv algorithms specially for scanned administrative documents (financial,personal documents)?

<comment><USER15> I'm not sure what you mean by "algorithms distinguishable for documents and natural images" \-- can you elaborate? OpenCV itself doesn't have builtin functionality to take documents and fit them to a pre-defined template, that tends to be part of a specific use-case/niche of computer vision for document processing. The general idea is to take a document a user has filled out and "fit" it to a blank template, where you know exactly where each field is. That way you can exact the information from the document.

<comment><USER27> "The general idea is to take a document a user has filled out and "fit" it to a blank template" \- I agree point to point. However, I am struggling with templatization due to poor quality of the document images. To process those documents (denoise, super resolution, HE - etc. etc.), the OpenCV algorithms are not working good enough, requires a lot of tuning varying with each document.

So, I was wondering if those algorithms work better for natural images (buildings, people, things etc) than document images (text, graphics) and if so, there must exist algorithms to process such documents I am unaware of.

</comment></comment></comment></comment></comment><comment><USER28> It's a really broad field, so don't expect to get up to speed very quickly. A lot of people have recommended a lot of books already, and I could add to that list. One thing you might think about is Safari Books Online. You'll notice a lot of the recommended books are there, and even though it's a bit pricey, I think you'll find you'd save money by the time you get enough of the books that seem useful to you. You'll also loose nothing by jumping from book to book because they're too advanced/not advanced enough until you find one that's at your level.

I would recommend starting with one of the many OpenCV tutorial books, and maybe work your way through a few of those. Then move into books that cover more of the algorithms behind the library like "Multiple View Geometry" by Hartley and "Machine Vision" by Davies, among many others.

</comment><comment><USER29> I learned OpenCV using the O'Reilly book by Bradski and Kaehler (back when it was OpenCV 2). I found it well-structured and it worked for me. They have an updated version for OpenCV 3.

However, I can't tell you if OpenCV is still the framework of choice and/or widely used in the field you want to go into.

</comment><comment><USER30> We made a mind map for learning computer vision :

[https://learn-anything.xyz/computer-vision](https://learn- anything.xyz/computer-vision)

Nodes with a map will go to other mind maps with resources. :)

</comment><comment><USER31> There is a processing library with opencv bindings here: [https://github.com/atduskgreg/opencv- processing](https://github.com/atduskgreg/opencv-processing)

</comment><comment><USER32> [https://github.com/biometrics/openbr](https://github.com/biometrics/openbr) these guys are amazing, see what they are doing and you will have a good start

</comment><comment><USER33> OpenCv is a great start, and is where I began.

this book: [http://shop.oreilly.com/product/9780596516130.do](http://shop.oreilly.com/product/9780596516130.do) has a number of worked examples that explain things well.

It does touch on Machine Learning, but it focuses much more on the fundamentals of computer vision, like feature detection, that allows things like SLAM to exist.

</comment><comment><USER34> Is OpenCV (traditional CV technique) better to use or Deep Learning based approach? Has anyone done a comparison of the two approaches? The obvious flaw with deep learning is that it requires large labeled data sets - but assuming that is available, which one is more accurate at object detection (hotdog or not), detecting features on an image (faces, manufacturing defects)?

<comment><USER4> For the widely used handwriting dataset, MNIST, there is a site that actively tracks the best algorithms (although I'm not sure when it was last updated): [http://rodrigob.github.io/are_we_there_yet/build/classificat...](http://rodrigob.github.io/are_we_there_yet/build/classification_datasets_results.html)

You'll notice that all of the top contenders use Neural Networks, but I would bet that many of them use at least some traditional CV techniques to transform the images at various steps. That said, many of the more modern deep learning approaches are ditching CV altogether, just feeding in raw pixels without any normalization or transformation, leaving fewer parameters to tweak.

</comment></comment><comment><USER35> For classical (non-machine learning) material, there's the nice text by Ballard and Brown: [http://homepages.inf.ed.ac.uk/rbf/BOOKS/BANDB/bandb.htm](http://homepages.inf.ed.ac.uk/rbf/BOOKS/BANDB/bandb.htm)

Even if you end up using neural nets, understanding how to think about the problems is useful.

</comment><comment><USER36> Try reading the samples that come with the predominantly used programming library/framework. Works with pretty much everything. I know a thing or two about statistics because I study R examples at night. I know a decent chunk of winapi and windows ipc because of delphi, I know some CV because I studied samples from opencv and tried to solve problems with it, etc.

</comment><comment><USER37> I learned mostly from MATLAB documentation. Good if you want theory and implementation, and most capabilities can be done with open source equivalents if you don't have MATLAB.

[https://uk.mathworks.com/products/computer- vision.html](https://uk.mathworks.com/products/computer-vision.html)

</comment><comment><USER38> This one is pretty good: [https://www.udemy.com/computer-vision-with- python/](https://www.udemy.com/computer-vision-with-python/)

</comment><comment><USER39> coursera has some; I typically have locally the images-2012 one, but you also have things like dsp-001 which is a bit more advanced. Generally speaking, coursera has some good material in many related domains.

</comment><comment><USER40> Here is a guide I have developed over 6 years when I dove into copmuter vision around 2011. My path has been self taught until recently I took a graduate course.

I started from wanting to develop AR apps during my undergrad, Here are the best resources I have found to date:

Computer Vision is very theoretical and experimental, so the more hands on, the better! My approach has been to go top-down, overview the landscape and slowly progress deeper.

Begin with the best library for CV in my opinion: OpenCV. The tutorials are amazing!

Python tutorials: [http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_tutorial...](http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_tutorials.html)

C++ tutorials: [http://docs.opencv.org/3.0-beta/doc/tutorials/tutorials.html](http://docs.opencv.org/3.0-beta/doc/tutorials/tutorials.html)

Immerse yourself in these and build any apps you think of!

Then go into: pyimagesearch tutorials [http://www.pyimagesearch.com/](http://www.pyimagesearch.com/) and aishack.in [http://aishack.in/](http://aishack.in/),

tons of great tutorials to learn different topics of vision with coding walkthroughs. Understand the examples and rewrite applications.

Then Dive Deep:

Get the new OpenCV3 book, a nice deep overview of many topics in computer vision. [https://www.amazon.com/Learning-OpenCV-Computer-Vision- Libra...](https://www.amazon.com/Learning-OpenCV-Computer-Vision- Library/dp/1491937998/ref=pd_lpo_sbs_14_img_0/130-9452832-4153358?_encoding=UTF8&psc=1&refRID=M57H0VTXQ0WZZE2KGEHC)

And watch this course on youtube:

[https://www.youtube.com/watch?v=skaQfPQFSyY&list=PL4B3F8D4A5...](https://www.youtube.com/watch?v=skaQfPQFSyY&list=PL4B3F8D4A5CAD8DA3)

I feel like then, you will have so much exposure that when you dive into formal classes and textbooks, you will really understand and be enlightened.

This was the general way I learned computer vision, and recently I completed a cv internship for nanit.com . I was not hired for my formal knowledge, but they were impressed by all the various projects ive done and knowledge I had on many vision topics.

I also recently took a formal course of vision at Cornell: [http://www.cs.cornell.edu/courses/cs5670/2017sp/](http://www.cs.cornell.edu/courses/cs5670/2017sp/)

All the assignments have starter code in python and opencv. This was an amazing class as it dove deep into 3D computer vision, which is so relevant to augmented reality!

Also, here is a link opencv examples for iOS: [https://github.com/Itseez/opencv_for_ios_book_samples](https://github.com/Itseez/opencv_for_ios_book_samples)

here are links for opencv example for Android: [https://web.stanford.edu/class/ee368/Android/](https://web.stanford.edu/class/ee368/Android/)

Hope this helps! Shoot me a dm if you or anyone has more questions!

</comment><comment><USER41> Opencv documentation

</comment><comment><USER42> Tensorflow tutorial

</comment><comment><USER43> Buy a book: [https://www.amazon.com/gp/aw/s/ref=is_s?k=computer+vision](https://www.amazon.com/gp/aw/s/ref=is_s?k=computer+vision)</comment>


Hacking the Sonos IKEA Symfonisk into a High Quality Speaker Amp - <AUTHOR> https://makezine.com/2019/08/16/hacking-the-sonos-ikea-symfonisk-into-a-high-quality-speaker-amp/ <comment><USER2> Quite dangerous to leave this without an enclosure, since the power supply is on the same PCB, several of the components and solder points carry mains voltage.

I'm surprised an outlet as high profile as Make don't at least recommend one, or have any of the usual warnings about high voltage.

On a side note, it's no mean feat integrating large through hole components and tiny SMD parts onto the one PCB, normally power supplies are wave soldered while SMD parts need reflow instead, and hence TVs and the like use seperate PCBs. Pin-in-paste[1] is possible, but only with some parts, so maybe they used automated selective soldering[2] instead?

[1] [https://www.7pcb.com/blog/the-application-of-the-pin-in- past...](https://www.7pcb.com/blog/the-application-of-the-pin-in-paste-reflow- process.php)

[2] [https://www.nordson.com/en/divisions/select/soldering- proces...](https://www.nordson.com/en/divisions/select/soldering- processes/selective-vs-wave-soldering)

<comment><USER3> From TFA: "... maybe build yourself a nice enclosure for the electronics ..."

<comment><USER4> At the very end. It also uses the word "maybe" to equivocate on the subject, and describing it as a "nice enclosure" both minimizes the importance and avoids mentioning the _very_ dangerous risks. The sentence assumes prior knowledge on the part of the reader, which even for a site like Make, isn't always the case. People without that knowledge, who weren't necessarily the intended audience, find their way to these sorts of tutorials as well.

That doesn't detract from the article's interestingness by any means, but pointing out at least some of the risks is the sort of thing that should happen more often in them. The off-hand way in which the enclosure was mentioned detracts a bit, in my mind, from an otherwise interesting article. Maybe I'm overthinking things a bit.

</comment></comment></comment><comment><USER5> IKEA seem to be killing it in speaker area these days. Even as Swede, that's kind of unexpected. I guess they saw a market segment where a lot of wood is used (this one's plastic though), and there were high margins for the premium products and then decided to go for it.

There's obviously a great deal of outsourcing to chinese and taiwanese manufacturers going on here, but they seem to be very competent in the customer role.

I love my IKEA Eneby BT speaker from last year. (This one, with the add-on battery: [https://www.ikea.com/us/en/catalog/products/00357636/](https://www.ikea.com/us/en/catalog/products/00357636/))

I would love for IKEA to go into the standalone analogue speaker segment with a fantastic living room speaker, just to piss off those (often) European and quite pretentious speaker brands. Take on B&W and the likes!

<comment><USER6> Eneby is one hell of a speaker for the price. I use a the one you linked to at work for "play along" when a practicing new pieces for the orchestra. Before it I had a hard time finding a portable speaker with enough pinch and battery life with a reasonable price.

</comment></comment><comment><USER7> This is cool! I wonder if you connected just one of the audio outputs to a speaker with a crossover, the system would adjust to put the whole frequency range through it?

It may also be that there's somewhere on the pcb you can tap into line level full frequency audio (or maybe not - they could easily do the filtering only in the digital domain)

One thing to keep in mind when doing this is the impedance of the speakers.

I'd measure the resistance across the IKEA ones and whatever speakers you're using first. It may be that the IKEA ones are not the common 8 ohms. If they're more (eg 16 ohms) there's a risk that an 8 ohm speaker will result in too much current through the amplifier.

<comment><USER8> A speakers' impedance has substantial reactances, and the nominal ohmic ratings have little practical meaning.

Almost all modern class D amplifier ASICS have short circuit protection on their outputs

</comment></comment><comment><USER9> Fun fact: the author of this piece, Ben Hobby, is the son of David Hobby, the photographer who maintains Strobing, one of the best blogs on off camera lighting: [https://strobist.blogspot.com/?m=1](https://strobist.blogspot.com/?m=1)

<comment><USER10> Really thought this post was going to somehow circle around to Hobby Lobby as I was reading it.

<comment><USER11> Nope, but you can read it while your plane is circling around Houston Hobby airport.

</comment></comment></comment><comment><USER12> Most wireless speakers released nowadays have a digital EQ to compensate for differences in frequency response to simulate accuracy. However the fact that this EQ is now being utilized on a different set of speakers makes this build far from "high quality".

<comment><USER13> While the little hack is surely fun, this is an underrated comment. The tuning that SONOS speakers do at setup will also not help if the speaker's own signal characteristics are taken into account for generating the system transfer function between input signal, speaker, and room. That's how SONOS, BOSE, et al. achieve a consistent sound in the first place.

So the result with different speakers will be mediocre at best and indeed far from high quality, even with a high quality speaker strapped on to it.

</comment></comment><comment><USER8> There's very little chance that the crossover filter topology, as well as any biquads in either bandpass are appropriate for a two way loudspeaker other than the original.

Solid looking unit from the teardown, I might have to get one...

</comment><comment><USER14> This is really awesome! Is there any issues with the mismatch of inductive resistance/impedance of the bookshelf speaker vs the original speakers? I would imagine the board is designed for a very specific ohm range.

</comment><comment><USER15> Anyone knows how much power that amp can source? Impossible to find any numbers.

<comment><USER16> He turned a speaker amplifier into a speaker amplifier.

He just pluged in the speaker cables into a different speaker. Started with a speaker and amp all in one box, and a speaker needing an amp. Ended up with a speaker and separate amp in bits on the table, and, if he screws the sonos box back together, a speaker that now needs an amp.

He is now wondering about building a box for this amp. ;)

I would recomend he put the bits back in the box they came in!

Pretty pointless. I've dont the opposite "hack" of mounting amps inside passive speakers, saves on untidy cables.

If you want an external amp for your speaker. Well, go buy one: when you buy it, they will tell you the numbers :)

<comment><USER17> > If you want an external amp for your speaker. Well, go buy one: when you buy > it, they will tell you the numbers :)

Sonos Amp costs $599, so this is an interesting alternative.

[https://www.sonos.com/en-us/shop/amp.html](https://www.sonos.com/en- us/shop/amp.html)

</comment></comment></comment><comment><USER18> What would it take to connect those two outlets to the line ins of a sub / speaker?

<comment><USER19> You would have to take the line-level signals from before the power amps, and the crossover is probably around 2500-3500Hz, way too high for a subwoofer.

</comment></comment><comment><USER20> It looks so much of an overkill on the digital side. A fully fledged SoC with PCI Express and standalone WiFi NIC just to do network, and audio decode?

Chinese factories make such Internet radios on $2 Espressif or Realtek microcontrollers.

<comment><USER21> It looks like the processor is doing some form of DSP, so some smarts are required. It can also play from Spotify etc. and the binaries for that are probably bloated like most cloud services.

With this said, had this been a lower end product, the SoC would probably have been an Allwinner or MTK with a soldered Realtek SDIO WiFi solution.

<comment><USER22> > It can also play from Spotify etc. and the binaries for that are probably > bloated like most cloud services.

One of my favourite things about my Sonos setup is that it avoids me having to run bloated cloud service binaries on my personal computing devices. (Most notably, of the services I use, SiriusXM digital services have always been most unpleasant to use.)

<comment><USER23> That's what made me ditch sonos 4 years ago. Being forced to run everything through the awful Sonos app instead of casting from the dedicated app or playing through Bluetooth without any delays.

<comment><USER22> Last I checked, the Sonos app is better than the SiriusXM app. Not that I use it much anyway, I mostly use Sonos/Sirius via Alexa control.

</comment></comment></comment></comment></comment><comment><USER24> Clever. Don't go frying the amp hooked up to those big towers. :)

<comment><USER25> IIRC the only way to fry an amp is to hook it up with no load. Putting not enough load will fry the load when the amp overdrives it, putting too much load will simply make for a quiet speaker.

<comment><USER26> Really dependance on the kind of amp you tot. For older tube amps, this is a major concern indeed because they drive by current, not voltage, thus exploding the voltage when there's no path for the current to flow. Modern class D amps don't have this problem, those just hate short circuits as they drive by voltage.

</comment></comment></comment><comment><USER27> Wasn't SONOS already exposed for being a CIA front? Like streaming the audio encrypted to a receiver station. I would have expected the hacker looking into this instead.

<comment><USER28> This speaker is conspiracy-theory-proof: it has no microphone

<comment><USER27> You don't know. Traffic is encrypted and articially enlarged with some spooky Mesh Networking talk.

And one of the founders got caught.

</comment></comment></comment><comment><USER29> I find it odd to have a hacker project that connects to a proprietary ecosystem (Sonos). In general, I'm disappointed that Ikea went with Sonos, it's not very "people and planet" to be dependent on one company and app to enable different sound ecosystems, without even a Bluetooth option.

<comment> crooked-v I don't think there's any alternative open standard that can do what Sonos does - group speakers arbitrarily, do line-in without requiring separate computers/phones, auto-balance speaker volume/lag for room positioning, have the same speaker set switch between surround sound and other inputs with minimum hassle, etc, and all wirelessly without a specific server hub needed.

There are proprietary competitors (Alexa is moving into that space, and Bose has an even more expensive equivalent), but nothing to allow true interop, and Ikea trying to build out that same functionality from scratch would take huge effort and expense, certainly a lot more than the simple-by-comparison requirements of smart bulbs.

Personally, I'd be happy to see Apple eat everyone's lunch here (they're already partway there with arbitrary speaker output from arbitrary input devices), but that's mostly because there's preexisting homebrew that will that bridges arbitrary speakers to virtual Airplay devices and arbitrary input to virtual Airplay streams.

<comment><USER15> > preexisting homebrew that will that bridges arbitrary speakers to virtual > Airplay devices

Got a recommendation?

<comment> crooked-v Some examples, including both software and dedicated hardware options:

[https://www.makeuseof.com/tag/4-airplay-receivers-that- are-c...](https://www.makeuseof.com/tag/4-airplay-receivers-that-are-cheaper- than-apple-tv/)

[https://github.com/philippe44/AirConnect](https://github.com/philippe44/AirConnect)

[https://www.airserver.com/](https://www.airserver.com/)</comment></comment></comment></comment>


Exedore is a throughly Mac-Native Python IDE - <AUTHOR> http://celestialteapot.com/exedore/

<comment><USER2> I always like the ideas of these beautifully made single purpose applications.

Inevitably I try them out, and within minutes go back to terminal, fire up emacs knowing that I can run a shell command, debug, grep/sed my output, write my documentation all in the one place. My MBA is just an emacs terminal and browser when working.

christ. I sound like an emacs fanboy. I promise I am not. I think.</comment>


Message from Facebook: this could be war - <AUTHOR> http://espresso.economist.com/b10a2a12bd626d144ac39e21c894fd4f?%3F=fsrc%3Dscn%2Fesp%2Ftw&fsrc=scn%2Fesp%2FTW <comment><USER2> Ugh.

At least the world has managed to have "Email" as a standard, a medium, that is not controlled by any huge corporation's grubby claws.

Why not with chat? What happened to this? Why is there a war for my data with these big companies, who do NOT have our best interests in mind, and never will?

Why can't we have a federated standard for chat, controlled by no one? It seems that we have come close at various times but it has never happened. Will it ever happen? Or is it already too late?

<comment><USER3> Because Jabber is awful but too many people were so enthusiastic about its open-source nature that it blinded them to its faults (specifically poor groupchat and a bunch of bad choices about the behaviour when logging in from multiple clients at the same time).

I don't think it's too late. I know the people working on [http://matrix.org/](http://matrix.org/) and I trust them to get the technology right. But as we know, popularity depends on a lot more than the technology.

<comment><USER4> Thanks for the link to matrix.org. I hadn't heard of it, and I wish them success. I don't think XMPP is awful, and I think the reasons for its failure have been political/social/cultural rather than technical, but if Matrix can get more traction, then more power to them.

<comment><USER5> Please come ask any questions on [https://matrix.org/beta/#/room/#matrix:matrix.org](https://matrix.org/beta/#/room/#matrix:matrix.org) \-- or #matrix on freenode which is bridged to the same matrix "room"!

(disclaimer: I work on Matrix)

</comment></comment></comment></comment><comment><USER6>
        Facebook is expected to say that it will turn its
        app - called Messenger - which has 500m users, into
        a "platform". That means others will be able to
        develop software for it (for gaming, hotel bookings,
        tickets and so on).

Doesn't FaceBook have form in encouraging people to use its interfaces and facilities, and then either cutting them off or starting to charge unexpectedly? I wonder what guarantees they will give that they will provide continuity of service.

Certainly I'd be incorporating an exit strategy, and my game plan would be to leverage off FB to start with, to grow as fast as possible, develop my own community and eco-system, and then be able to shed FB and replace it with something else.

I wouldn't trust them.

But that's just me. I'm interested to see what the HN community thinks.

<comment><USER7> There is no such guarantee. Right now, the publishing industry is in its own conundrum on how to deal with Facebook. FB is reportedly in talks with content providers, including the New York Times, to publish content directly on FB's platform...the ostensible reason being that it provides a better user experience. Publishers would get more eyeballs and presumably some cut of the ad revenue, and publishers who don't go for this, well, they may find their external content more and more deprioritized. As the Atlantic pointed out [1], back in 2011, Facebook announced "social reader" apps and news orgs jumped on...and when FB decided less than a year later to drop the effort, well, all those efforts were wasted.

FB is in a much stronger position now, and conversely, publishers have only gotten weaker. Ideally, publishers would take the tack that you've described...FB will undoubtedly provide some kind of API that would make it easy for news orgs to export their CMS data as easily as they do for their print and web editions...if publishers don't like how things are going, then they just pull out, and their API points to another platform.

The problem is that publishers are very weak financially and have shown very little ability to innovate. And consumers have shown mostly apathy about the way their daily attention is diverted to social networking and linkbait...so news publishers have serious existential issues on top of their financial ones.

1\. [http://www.theatlantic.com/technology/archive/2015/03/facebo...](http://www.theatlantic.com/technology/archive/2015/03/facebook- as-a-press-baron/388559/)

</comment></comment><comment><USER4> This is so depressing. There's already a standard, interoperable, decentralized instant messaging protocol ([http://xmpp.org/](http://xmpp.org/)). And it does things none of the competing walled gardens do, like real private conversations ([http://wiki.xmpp.org/web/OTR](http://wiki.xmpp.org/web/OTR)). Why can't people just compete to produce the best user experience on top of XMPP?

<comment><USER8> I was going to say that Facebook Messenger does work with XMPP but double checking just now, it seems that was deprecated a year ago and will disappear at the end of next month. Huh.

[https://developers.facebook.com/docs/chat](https://developers.facebook.com/docs/chat)

<comment><USER5> it's a real shame - both facebook and google tried to use XMPP but have since removed support.

<comment><USER8> I think Google still work with XMPP but not 100%.

[https://developers.google.com/talk/open_communications](https://developers.google.com/talk/open_communications)

[https://xmpp.org/2015/03/no-its-not-the-end-of-xmpp-for- goog...](https://xmpp.org/2015/03/no-its-not-the-end-of-xmpp-for-google-talk/)

</comment></comment></comment></comment><comment><USER9> In the UK, there have been quite a few TV ads from Facebook recently.

Yesterday, after watching another one, my girlfriend commented: "Even Facebook is making ads now - this tells us a lot about how well things are going for them."

<comment><USER10> Heh, good point. Google advertises on Google but I have hardly seen a Google ad outside of a page that displays Google ads. Disclaimer: I don't watch TV.

<comment><USER11> I've seen loads of Google ads - on TV, in the press, and especially outdoor advertising. It's typically conceptual stuff, about security, privacy, etc.

In addition, I get a lot of direct mail with vouchers for using AdWords.

</comment></comment></comment><comment><USER12> Is this "espresso" format the future for the economist? There should be a link to the full article at least, I read this rag purely for the analysis and this format is a bit short on that.

here it is in full: [http://www.economist.com/news/finance-and- economics/21646802...](http://www.economist.com/news/finance-and- economics/21646802-facebook-enters-booming-market-mobile-payments-unfriending- cash)

<comment><USER13> The Economiszt wants you to subscribe to ead the the full article, which is here: [http://www.economist.com/blogs/graphicdetail/2015/03/messagi...](http://www.economist.com/blogs/graphicdetail/2015/03/messaging- apps)

</comment></comment><comment><USER14> This is the kind of market where UI/UX is the single most important thing in the app. I personally began using MSN messenger 10 years ago , and moved to skype because I felt skype was easier to use, had a better UI . It was simply beautiful compared to MSN messenger. On the other hand, the skype client on my android is just shitty as hell, it might have changed since but I understand why skype doesn't dominate the mobile space.

I tried a lot of "raw" XMPP clients, most of them felt like the developer was in charge of the UI/UX. It felt like shit.

If an open standard wants to win, it has to have a very good client,with a perfect UX/UI.

I understand it's a bit difficult for designers that aren't developers to contribute to opensource code projects. I'm thinking very hard about how such a tool could be set up,and how can the design workflow and the coding workflow could be joined seamlessly. I'll come up with something eventually.

</comment><comment><USER15> This is different from the "browser wars", because the thing that people are trying to access through their choice of messenger app does not look, feel, and function differently depending on which one they choose. The experience doesn't _break_ because one chat application decides to implement one feature and others don't because they aren't _supposed_ to work together.

It's similar, however, in that consumers have a lot of choice, with no one chat application really being that much better than any other in terms of features or experience, just that if we could just get everyone on _one_ and for that _one_ application to continue to improve, everything would be great, in theory.

This isn't going to stop any time soon.

</comment><comment><USER16> As developers we value open apis and interop, but I'm not sure end-users care that much. They just want to connect with their friends and family, and if they need to use a different apps to stay connected, so be it.

In a way, I think the device and notification systems are enough for most people. If I have 5 different message apps, they are all on my phone and they all notify me when something comes in, so I'm able to stay connected.

</comment><comment><USER17> First they separated messaging from the Facebook app where you can have games and apps and stuff and now they are integrating all that back. Why? Personally I absolutely prefer a slim messaging app not bloated with more or less unrelated stuff.

<comment><USER18> My thoughts exactly. Seems like facebook bought Whatsup to bring it to the ground.

</comment></comment><comment><USER19> The messaging wars never really ended. It simply moves to new formats as technology evolves. Through it all, though, IRC carries on. May it always be so.

</comment><comment><USER20> I'm sick to my back teeth of 'platforms'.</comment>