How to Make an HTML5 iPhone App - <AUTHOR> http://sixrevisions.com/web-development/html5-iphone-app/

<comment><USER2> I developed a small HTML5 app a couple of weeks ago, optimized for the iPhone (in Dutch): <http://c.phanatics.nl/>

It converts between track and field performances and awarded points by the Dutch athletics competition. The conversions can be stored. Intended usage is on the field during competition day, or just for the curious.

Source: <http://svn.vermaat.name/competitie-rekending/>

Originally I also used a manifest file for caching, but decided I didn't need it (and Firefox popups warnings with it). (The manifest is still used in SVN rev 20.)

The biggest problem I encountered on the iPhone (and have not been able to solve) is that whenever you switch apps and return, Mobile Safari reloads the page (online, or from cache) and does so using the original url. There seems to be no way to stop this.

For me that meant that stored conversions where lost (they were stored in the DOM and url), so I had to store them explicitely using localStorage. And still then, it is annoying you have to wait a few seconds for the page to reload before you can do anything.

The only info I found on this problem suggested that it might be related to Mobile Safari's memory management and as such wouldn't occur (as often) on iPhones with more memory than the one I tested with.

<comment><USER3> Personally I would only use the cache manifest, when I planned on using it as an app that is launched like normal. Also did you make sure all your files were less then 15k that seems to be the limit at which iphone will cache files.

</comment></comment><comment><USER4> Full, free O'Reilly book on the subject:

<http://building-iphone-apps.labs.oreilly.com/>

<comment><USER3> Yea, this book was really helpful, and I can't belive I forgot to add the link to the article. For some reason though people still didn't know they could write apps like this. That was my biggest reason for writing this article.

</comment></comment><comment><USER5> This is a great post and I'm glad to see someone do such a nice description of "doing it from scratch", but I thought I'd mention that Dashcode (part of the free developer tools for OSX - <http://www.apple.com/macosx/developers/#dashcode> ) has built-in support for developing iPhone Web Apps and includes some templates for the more common types.

It's a cool way to get an app up-and-running quickly without having to consider the App Store process and while it does abstract you a bit from the straight coding, it's all still done with HTML, CSS and Javascript so if you're already a web developer and not interested in learning Objective-C it's a nice tool to build something quickly.

I've developed several "native" iPhone apps but went this way for one project because we could do everything they wanted to do in a web app and it was simply faster to get there than if we did a native app.

Definitely one of the most overlooked options out there.

</comment><comment><USER6> _but its C—or a form of it—and it's really hard to learn_

I personally prefer Javascript to Objective-C, but HTML, CSS and Javascript are not easier to learn than Cocoa and Objective-C. Objective-C and Cocoa are very will designed, simple tools.

<comment><USER7> True - they're not easier to learn but beyond the browser they are more applicable across different mobile platforms (i.e. Android, Blackberry). Objective-C and Cocoa will always be iPhone specific. I've been learning Objective-C though I wonder if my time would be better spent on javascript/html/css and usage of environments such as Titanium developer or Phonegap.

<comment><USER8> Also, many many people already know JS/CSS/HTML, like me.

I picked up phonegap and had my first app on the store in a week of spare time. But then I rewrote it with Titanium because it was kind of slow, which took at most another day.

It felt like Christmas, and I found iPhone skillz under the tree.

But now I want in-app-purchase, so I'm learning Obj-C... so the above was all for nothing.

<comment><USER3> Why can't you do in app purchase, with the titanium, or phonegap?

</comment></comment></comment></comment><comment><USER9> Thanks for sharing.

If anyone else hasn't made an HTML5 iPhone app or any web app for that matter before and got lost at this part:

"Then, next step is to server it from an actual webserver that can set the proper settings on the cache.manifest"

then maybe I'm not alone? I'm assuming I just read it wrong and it means you can use the same webserver you are using to host your blog, website, etc.?

And then, I was curious how you get the icon on the iPhone home screen which I found the answer here after a quick goog search: <http://italkmagazine.com/how-use-iphone-itouch-web-app>

(edit) I do have one more question to add for all you crazy iPhone app and maybe Palm app developers out there: 1. Is there an straight-forward way to do this method and then use iPhone developer apps to bring it in and export it to then distribute via iTunes App Store? 2. Same question about Palm.

<comment><USER10> The HTML5 Spec actually has a nice explanation of how to do the manifest. You can find it here: <http://bit.ly/aLbKP0>

I wrote a blog post a while back that talks about how browsers handle the manifest files. Forgive the shameless self-promotion, but it might be interesting background reading: <http://bit.ly/9WhsO8>

Basically, the manifest file is just a special text file that stores a list of the things you want the client to cache. This is the feature of HTML5 that enables offline access to web resources. Think of it as sort of a robots.txt for caching purposes.

<comment><USER11> I am sorry, but please no URL shorteners.

[http://www.whatwg.org/specs/web-apps/current- work/multipage/...](http://www.whatwg.org/specs/web-apps/current- work/multipage/offline.html#a-sample-manifest)

[http://edwardbenson.com/how-safari-and-firefox-handle- html-5...](http://edwardbenson.com/how-safari-and-firefox-handle- html-5-manifest)

<comment><USER10> Given your comment, what a smile it brought to my face when I read your HN profile and learned you created a URL shortening service of sorts :)

Apologies if I breached HN Etiquette. I'll post full URLs in the future.

</comment></comment></comment></comment><comment><USER8> My opinion is mobile safari is still too slow for this. I did one and it was fine in the simulator, but lagged on iPod touch. 3GS was mostly ok. Maybe in a generation or 2.

Currently sucking it up and learning ObjC

<comment><USER12> > Currently sucking it up and learning ObjC

Keep at it. I seriously dove into it about three months ago. Objective C/Cocoa is no longer the problem, it's the solution. Don't worry if the code you write sucks when you look back at it (e.g. no categories, protocols, NSNotification use). Interface Builder has a thick skin; curse at it. Part of learning this is learning the non-optimal way first. You'll grow into it. The best part of Cocoa/Objective C is how well it was designed. Highly recommend "Cocoa Design Patterns".

<comment><USER8> Currently going through this one. Seems pretty solid for people that already know their way around UI. Haven't found anything obviously wrong like in some other iPhone books I looked through.

[http://www.amazon.com/iPhone-SDK-Development-Pragmatic- Progr...](http://www.amazon.com/iPhone-SDK-Development-Pragmatic- Programmers/dp/1934356255/)

Will def check out Cocoa Design Patterns when I get a chance.

</comment></comment></comment><comment><USER13> Anyone have a write-up on the limitations of html5 webapps vs. native apps? eg. push-notification only available through native apps?

<comment><USER14> I was just thinking about if a webapp could setup a protocol handler, similar to the way Tweetie uses "tweetie://" in its Mobile Safari bookmarklet. I wouldn't mind using something like Notifo to push notifications to my users but it's unclear how my offline webapp could be launched from the notification.

</comment></comment><comment><USER5> The timing of this post complements nicely my upcoming iPad app discussed elsewhere on HN:

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

Thank-you :)

</comment><comment><USER15> Very interesting. Thanks for posting.</comment>


Ask HN: How did you meet your cofounders? - <AUTHOR> <comment><USER2> I went solo... It's more likely that you'll succeed</comment>


Show HN: Mixpanel for Advertising - <AUTHOR> https://interstateanalytics.com/ <comment><USER2> I've noticed tiers of understanding of ad tech. Some people have never run campaigns and critique gaming companies for focusing on acquisition instead of product.

Others run a test and fail (including early days of Dropbox).

Others have $100K/mo budgets and ads are the basis of their entire business. Jamie has built tools for the high end, and now anyone can use them. Fuck yeah.

Jamie and I first met in YC W08 -- seems like ages ago. He's one to watch.

<comment><AUTHOR> Thanks Ivan! We're hoping this makes great marketing analytics accessible to anyone the same way Mixpanel has made great product analytics accessible to anyone.</comment></comment>


Most Consider The Web Most Reliable Source of News - <AUTHOR> http://www.mediabistro.com/tvnewser/webnewser/most_consider_the_web_most_reliable_source_of_news_101463.asp

<comment><USER2> Um, 37% is not "most". Over 50% is "most".

Obviously this headline wasn't written by one of the reliable parts of the web.

<comment><USER3> Um 37% in this case is 'most' as there were no other choices that met or exceeded that value.

"most: in the greatest quantity, amount, measure, degree, or number: to win the most votes."

I do however hope that when they said "Internets" they were joking.</comment></comment>


I figured out a way to hack any of Facebook's 2B accounts - <AUTHOR> https://medium.freecodecamp.org/responsible-disclosure-how-i-could-have-hacked-all-facebook-accounts-f47c0252ae4d <comment><USER2> Holy crap. $15k for brute-forcing an unthrottled endpoint with GET requests? gratz on that payout

<comment><USER3> I assume payouts are linked to the severity of the attack rather than elegance.

Also in this case the throttling is an absolute requirement rather than a "nice to have, users set good passwords right?" thing.

</comment></comment><comment><USER4> Not the smartest thing, to go posting a photo of one's credit card, considering there are only 999 combinations of the security # on the back. Hopefully Visa is smarter than facebook in this regard.

</comment><comment><USER5> What would this vulnerability be worth in the open market? 10 times that? 100x?

<comment><USER6> I'm sure it would be way less legal that route.</comment></comment>


I deleted my social media apps because they were turning me into an idiot - <AUTHOR> https://www.theguardian.com/technology/2017/mar/14/deleted-social-media-apps-facebook-instagram-emotions-likes <comment><USER2> A big article attempting to justify a person's inner battle and the demons that come with social media. No. Let's call it what it is. The user lacks self control.

> I'd open Facebook, then Instagram, then Messenger, and in the time it had > taken me to look at the latter two there was a chance that something might > have happened on Facebook. So back I'd go and open it again. Then Instagram. > Then Messenger. The cycle would continue. It was annoying the hell out of > me.

Sheesh. I see so many anecdotes about people being liberated by removing social media, as if they're heroin addicts starting their journey to recovery. I think someone just needs to say it: grow up and have some damn discipline.

<comment><USER3> "I quit X or Y thing forever and here's what happened next" is a catchier story than "I developed self-control and discipline and can focus on my work when I have to".

<comment><USER2> I personally like: "I OD'ed on my twitter feed, here's the 12 step program I took to get my life, my house, and my family back."</comment></comment></comment>


LinkedIn Email Makes Great Use of Technology - <AUTHOR> http://www.smileycat.com/miaow/archives/002368.php <comment><USER2> That's a good move to increase Linkedin stickiness. At the end, it's all about how relevant the information is to the users. Apparently, everyone would definitely want to know how many of his/her business connections had moved to a new venture.</comment>


Ask HN: Post Covid-19 will present many opportunities. What might they be? - <AUTHOR> The world, post Covid 19 will look different in many ways.
This represents fresh territory and openings for startups, if you can see them early and if you are in a position to act.
What might some of those opportunities be?
The obvious ones will be all the economic niches left open by businesses that did not survive such as the vast number of retail and restaurants.  I wonder what other opportunities there might be? <comment><USER2> In general: Fully digital and distributed processes. Both in terms of products and consulting services.

While it might seem that we already have all the necessary tools and services at our disposal right now, in my opinion we're not even halfway there yet:

Currently, and to some extent understandably so, the focus is on video conferencing, somehow re-enacting the way the office used to work (only remotely), and restoring at least a semblance of normality.

However, in the long run this won't nearly be enough. We need to adapt and rethink offline processes in order to not just make them work in online, distributed settings but to actually reap the benefits and efficiency gains such settings potentially provide.

This will require an entirely new set of tools and processes.

Maybe, something not unlike the "Agile" movement (hopefully without the "Yeah, we're agile, too. Actually, of course it's same old micromanagement bullshit but now with a cool, buzzwordy label." twist this time around) but for business processes in general.

</comment><comment><USER3> Not commercial real estate. Probably not public transportation. If someone could get self sanitizing door handles to catch on, that would be great.

ButcherBox style businesses may get a lot of traction.

Local business variant of Shopify+Stripe to put DoorDash, UberEats, ChowNow and the like out of business. Possibly a co-op ownership model.

Autonomous delivery services will happen faster and be well received.

Thoughts, nothing more.

<comment><USER4> We've actually been making brass (or more specifically copper based) door handles for probably centuries; they're naturally anti-microbial:

[https://en.wikipedia.org/wiki/Antimicrobial_copper- alloy_tou...](https://en.wikipedia.org/wiki/Antimicrobial_copper- alloy_touch_surfaces)

Might be time for a come-back.

</comment></comment><comment><USER5> "Distributed" will become a new buzzword. Nothing like breaking a fragile JIT supply chain to drive this point home.

Whole new markets will arise providing middleware to help suppliers, shippers, warehouses and sellers find each other and ensure degrees of separation.

<comment><USER6> the supplies that are missing cost on the order of billions. countries may stock them up periodically, but i doubt they 'll redistribute supply chains. It would take a generational change for people to accept to go back at manufacturing jobs. People of today aren't even trained for that, they ll keep seeking knowledge jobs.

</comment></comment><comment><USER7> I think that due to the economic crisis coming, companies may be at last serious about cutting costs. The truth is that when everything is fine, people is companies often prefer their comfort to taking the risk to change things to be cheaper.

Enterprise IT is certainly very inefficient at all levels, starting with using technologies that are incredibly inefficient with hardware (I can understand you do not program in C / assembly anymore, but man, all those awful scripting languages...). I could quote also commercial software with licence prices unrelated to the value delivered.

I hope this may be an opportunity for my open-source lowcode project, that could replace many commercial software at a very limited build and run costs.

[https://github.com/openlowcode/Open- Lowcode](https://github.com/openlowcode/Open-Lowcode)

</comment><comment><USER8> A washable, reusable, durable and fashionable face mask. I'd imagine this will become common place every flu season. The weirdness around it is gone in the West at this point.

It's be great if they could make nice scarves with a patch that sort of acts like an n95. Then it would be same as bundling up with a scarf around your face in the winter. It would just look like a regular scarf.

<comment><USER9> I hope you're right. Every flu season my wife has to stop getting essential medical treatment and hide in the house because she's immune compromised and no one in our culture seems to care if they spread it, including medical staff.

</comment></comment><comment><USER10> We'll definitely see a surge in applied robotics and automation when it comes to food preparation, distribution and the manufacturing of goods.

It's 2020, people getting sick should not prevent supply chains from operating at peak efficiency, considering how advanced our manufacturing and distribution capabilities can be.

The technology is there, it just hasn't been implemented at scale.</comment>


The word "bit" is a portmanteau word for Binary digIT - <AUTHOR> http://en.wikipedia.org/wiki/List_of_computer_term_etymologies

<comment><USER2> Vaguely disturbing that this is new to anyone on HN. Queue discussion of nibbles and bytes.

The paper is well worth reading if you haven't already done so.

        A Mathematical Theory of Communication

([http://cm.bell- labs.com/cm/ms/what/shannonday/shannon1948.pd...](http://cm.bell- labs.com/cm/ms/what/shannonday/shannon1948.pdf))

Especially page 5, which is a very easy to understand description of EDIT markov chains. But you can use that letter frequency thing to do a really nice easy description of compression.

</comment><comment><USER3> It's a contraction. Yes, I've read the wikipedia definition of portmanteau, and I still think _bit_ isn't a portmanteau.

Obligatory <http://xkcd.com/739/>

</comment><comment><USER4> So</comment>


Startups are pummeled in the 'great unwinding' - <AUTHOR> https://www.nytimes.com/2020/04/01/technology/virus-start-ups-pummeled-layoffs-unwinding.html <comment><USER2> Startups are in way better shape than traditional small businesses.

By our very nature, we need months of runway just to keep running. We're designed to weather this kind of storm because "zero revenue" is the default state.

Hearing about Bird cutting 30% of their workforce is awful. But it's nothing compared to the thin-margin Mom & Pop, or medium sized private enterprise that had 1 week of cash on hand and ceased operations overnight.

My friends and family in startups are doing fine, for the moment. It's those that chose to work at the more stable, traditional work environments that are getting wiped out, and much less likely to return when the economy starts back. Because when it does, there will be money ready for investment - extending your runway to get there for a startup is more straightforward. But when you're a bigger business with little cash and no-one is buying assets right now, you literally are unable to make any decision to help.

I've got friends in manufacturing, hospitality, services, and so on that will not return to work because their businesses are going to or have already failed, for good. That's the fucking terrifying thing happening right now and it's more deserving of attention than us tech bros.

<comment><USER3> You weren't around in 2000 or 2008 were you? Your startup is only in "better shape" as long as VCs are willing to keep funding you. VCs are only willing to keep funding you if they have confidence that you will have a profitable exit.

<comment><USER4> Not all startups require VC capital, some of us are just running without venture funding just clients money, some startups are in better shape because are on right market on the right time. You just need to be in the right time.

<comment><USER3> And you're probably not looking for a large exit. You are trying that unheard of concept of spending less than you make. What you are doing is running a "lifestyle business".

That's not a negative despite what the tech bro's think. I hate the idea of success for a company seems to be "we got another round of funding while losing money".

<comment><USER5> The term "lifestyle business" really annoys me. It's Silicon Valley propaganda. There are better ways to build companies than taking hundreds of millions or billions in funding. Pre-crisis startup funding was largely decadence enabled by cheap money.

By contrast early generation SV companies took relatively small amounts of funding if at all. Intel for example took the equivalent of $18.4M US in 2019 dollars prior to IPO. [1]

[1] [https://en.wikipedia.org/wiki/Intel#Origins](https://en.wikipedia.org/wiki/Intel#Origins)

<comment><USER6> The thing that annoys me about "lifestyle business" is that it also suggests this idea of short days, tons of vacation, etc. Which is usually not the case.

<comment><USER7> Honestly I think it's a way for those that owe million to VCs to feel like they have one over us businesses that grew at a healthy pace, have money in the bank, and money in the bank goes up not down every month.

At least that is how lifestyle business is slung here. No one in my local business association would scoff at businesses growing at a healthy pace and no debt. Also nice if no VC gives me another round, I don't have to shut down tomorrow.

<comment><USER6> Yes. However it can also be pitched as there's no big upside and the salary is so-so but it's a "lifestyle business" even though the hours and other time-off are nothing to write home about.

<comment><USER8> I'm the CTO of a "lifestyle" business, though we don't really call ourselves that. Salaries here are excellent for our area (MN). Time-off is better than average, and we have free worldwide flights for vacations as a perk. Highly flexible work hours and location - we have some FTE's 100% remote, living in other states; I'm 90% remote. No overtime culture, no death marches. Maybe every 2-3 years we have a couple weeks of a good crunch but it's with buy-in from everyone doing the crunch.

We're lucky to have a customer base that spans many industries. We've lost some chunks of income.. chains of malls closing, restaurants, lobbies, DMV offices, customers getting live sports info.. but it's all temporary and we're well in the black. Instead of worrying if we'll make it we're looking for opportunities and how we can best take advantage of our strong position.

<comment><USER6> That sounds great. A lot of the time "lifestyle" businesses for the owners (in the sense of control, no outside investors, etc.) doesn't trickle down to the employees in any meaningful way though.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> > For start-up workers, the past few weeks have been sobering. Many had bought > into the tech industry's change-the-world ideals, had few boundaries between > their work and personal lives and hoped for big payouts if their start-ups > went public.

This saddened me, because it's a refrain that we hear over and over and over. Same exact thing happened during the .com bust (which scares me to believe that was _20_ years ago already).

You can work really hard at a startup, put in a ton of energy, but at the end of the day, never forget it's just a business. It's a team, not a family, and in a team sometimes team members get cut. I've also found that the best folks in business tend to have rich, fulfilling lives outside of business as well.

<comment><USER10> > I've also found that the best folks in business tend to have rich, > fulfilling lives outside of business as well.

Totally agree, but I've been burned multiple times by startups that see any kind of multifaceted lifestyle as "not fully committed" to the team or company, which is ridiculous. I've been so disappointed how frequently this happens in tech.

<comment><USER11> It's because the owners are trying to squeeze as much value as they can out of you in as short a time as possible. This might be obvious but owners want as much they can show an investor as soon as possible to make their ownership of the company more valuable in the shortest amount of time, and also often trying to make the amount of money they lose to you as small as possible.

I think you probably already know this but for those that need to read this - the chances of you becoming a millionaire at a start up are zero. Better to go buy a lotto ticket. That said, much like owning a home in Southern California there are many good reasons to join a startup- money is not one of them.

There is of course the caveat that of course some people win the lotto but planning your financial life around winning the lotto is idiotic.

<comment><USER12> Owners of every kind of company want to extract as much value as they can at the lowest possible cost. Even nonprofits want to serve their missions (which are usually distinct from staff welfare) as best they can at a given budget. Greed doesn't seem to have much explanatory power for why startups in particular would be worse.

<comment><USER13> _Owners of every kind of company want to extract as much value as they can at the lowest possible cost_

Other than sports, what other industry than VC-backed startups lures in talented-but-naive young people, promises them riches, then chews up and spits most of them out, having burned them out? OK maybe music and fashion as well.

Meanwhile the owners get richer and richer.

<comment><USER14> Pretty much any career that has an up or out policy with the promise of riches if you don't get pushed out of which there are plenty. For example, many consulting companies work this way where they will pay you a fraction of your billing rate and have you work a ton of hours in the hope that you will eventually make partner which is where you make the real money.

</comment></comment></comment></comment></comment></comment><comment><USER15> I'm sorry for some of my schadenfreude here, but really, so many of these startups are overfunded with way too many employees to begin with. They've often paid top dollar for expensive technical talent in locations with very high cost of living.

I can't wait to see a pull back to solid fundamentals. I don't see why a daily vacation rental company honestly needs 240 highly paid employees. One company cited in the article (WanderJaunt) laid off 56 out of its 240 total employees, but honestly I bet they could do just well with 20 total employees.

Let's put the Lean back in Lean Startup and provide real value instead of playing the magical, mysterious game of VC musical chairs.

<comment><USER12> Why is it so offensive to people in this industry that our skills are valued?

Sometimes it seems a little crazy to me too, but I'm not, like, _excited_ to need to live with 5 roommates 90 minutes away from work again like you seem to be.

<comment><USER16> The GP is not complaining that our skills are valued, it's complaining that those companies have an awful low productivity.

You know, people filling low productivity jobs means that our skills aren't valued enough.

<comment><USER17> > it's complaining that those companies have an awful low productivity.

That is just human nature, once the company starts going big and has the funds, the managers start empire building.

</comment></comment></comment></comment><comment><USER18> I work for a Fortune 150 company as a programmer. I've had lots of people ask me why I don't move to California and work for a startup. The main reason is because I'm risk adverse and I really don't like the Bay Area (I spent many years living in San Ramon, Alameda, Newark, etc. in my youth and have no desire to ever return). Now I have a new reason to be grateful I work for a Fortune 150 company. I've been able to work from home no problem. Nobody has been laid off. The company has already announced that they are going to go ahead and pay 100% of our year end bonus regardless of what happens in the 4th quarter (the current quarter). Frankly the quarantine has been very very non- stressful for me and my family so far. I don't think that would be the case if I had been working for a startup.

<comment><USER19> >I spent many years living in San Ramon, Alameda, Newark, etc. in my youth and have no desire to ever return

I understand that this is not center to the point you're making but I am curious! What makes you hate the Bay area? I lived there for ~4 years and recently moved to Pittsburgh. I can't wait to move back. In fact, the mere mention of these places evokes a strong sense of homesickness in me for some reason.

<comment><USER20> Not OP. I've only visited the Bay Area a few times. Human filth, needles, and just so many people packed into the space. I can't imagine raising a family in that situation. Contrast that with where I am now: I have a very large house on 10+ acres of land on the edge of a lake. Each of my kids has their own room and there are lots of rooms and corners to "get away from each other". We have room for food storage, a home gym, and are not dependent on the city for water or gas (though we do have to fill our propane tank a couple times a year). If I walk to the edges of my property, I can see a couple other houses. We have bon fires, ride ATVs, go fishing, shoot guns and bows in the back yard. We have full on seasons (granted that winter is the largest, but we like cold and snow). Not to even begin talking about the political differences.

The few things I liked about the Bay Area: lots of economic opportunity (esp. as a software dev), nearby greenery, and lots of food options. Oh, and the ability to find others who would like to play board games. I can't find anyone to play board games with out in the middle of nowhere (my family is not interested in any).

<comment><USER21> Live in San Francisco for 3 years now. Haven't seen a single needle yet or "human filth". AMA.

<comment><USER22> How? I was in the city for a week and saw more needles on the street than the slums of China.

Even the townsfolk would complain about some mental hospital closing down forcing mentally ill people to live on the streets and you could see them everywhere.

That said, I didn't have a guide, I'd just walk with friends for an hour or two aimlessly starting from the pier. On the other hand, this is how I'm used to do it and I've been to 20+ countries.

<comment><USER23> All cities have bad parts. San Francisco is somewhat unique amongst places that I've visited, in that most of the tourist traps are either in or are immediately next to the absolute worst parts of town.

<comment><USER22> Human suffering (homelessness, needles and mental issues) is not something I'd call bad parts. Whatever that was goes beyond that.

I don't even want to know how it would affect a person to see that every day and think it's normal.

</comment></comment></comment></comment></comment></comment></comment><comment><USER24> I've heard numerous times startups have had a hard time getting a _smaller_ amount of funding from angels and VCs. As in, "I want $500k" and "no, we only do deals with $1M+", or something like that. I thought that was crazy. This is probably the pendulum swinging back, as pendulums do.

I am interested in how this situation affects larger companies. My guess is since they're so much larger this time around than back in 08-09, and since tech didn't really change all that much in the past ten years or so, there might be greater structural pressure for startups in terms of hiring talent and market direction, because the big guys have so much liquidity and are entrenched in many different verticals. It'll be interesting to see how it all plays out.

<comment> Spartan-S63 I think they get bullied into larger deals that inflate their valuation beyond what they think they're worth. It works in a growing market to fundraise beyond your valuation and then grow into it. It doesn't work when the market turns down. If your runway is sufficiently short, you'll be fundraising a down round in a down economy which will slash your valuation and make it harder to get good terms.

<comment><USER25> Yea, I had this c2015 when I was seeking 250k to grow a revenue generator. I was told to make a story that compels a 15M future valuation so I could ask for 750k now. But I didn't even believe the revenue projection need to justify! I said no, these are my numbers. I couldn't fake a 10x story and my 6x story wasnt compelling enough.

</comment></comment></comment><comment><USER26> It's hardly unique to startups, and has more to do with the industries they're in than the company size. Mine is still hiring very aggressively but we are in the health research industry which didn't face the same sort of "unwinding", and have always been remote so there's no empty office we're obligated to pay rent for. Meanwhile I have friends in very established publicly traded companies who have been laid off or had their benefits cut already. One lost all company matching on 401ks this year.

VCs remember that there are some very successful companies that came out of the 2008 recession, and many are doing a lot more than usual to help the more promising parts of their portfolio weather this storm.

This article fails to highlight how any of these startups (on that note, how is AirBnB a startup) are worse positioned than their larger competitors. Not one of the ways that workers are impacted that are mentioned in the article is unique to any size of public or private company.

<comment><USER27> I was laid off last week (yes, it was a startup), do you have a link to a careers page?

<comment><USER26> I sent you a message on your LinkedIn

</comment></comment></comment><comment><USER28> So I'm curious will property and rental prices drop in San Francisco now that funding is drying up? Can't seem to find much information about that. For example a friend of mine who was laid off still has to pay $3300 / month for his studio. Curious how long this will last for?

<comment><USER29> I think its unlikely because everyone knows its going to right back up once this blows over. So demand should hold constant.

<comment><USER30> Perhaps, but the way it's moving there will be another 20m+ people without jobs in a month or two (prime working age folks), and with a bunch of industries contracting at the same time it's likely that recovery will take a while before it all resumes. Hope I'm wrong but it could be a few years before it will bounce back.

</comment></comment></comment><comment><USER15> The news just keeps getting worse for SoftBank. "OneWeb, a satellite start-up that had raised $3 billion in venture funding from investors including SoftBank, the Japanese conglomerate, filed for bankruptcy on Friday and plans to sell itself."

Can we finally admit that SoftBank's model of so-called VC funding success is really just a colossal failure? The throw-everything-into-it approach of making Unicorns a reality just doesn't work.

<comment><USER31> Normally I would agree, but in this current shit-show of a market even investments in Delta can evaporate. Looks like everyone's suffering. Imagine even healthcare ETFs saw a 15% loss so far.

</comment></comment><comment><USER32> I've got an esports side project that was starting to get some interest within the community and generate non-trivial MRR (~4k mo). I have a closed alpha that a few teams in the league were using, and I was talking at some level to basically everyone that could be in the market for the current version of the problem. I was looking into getting a business/sales partner in order to have more success on the business side of getting the other organizations I was in talks with, as I am normally just a lead dev with no business interaction. Then the league, along with everything else, got delayed and quarantines started. Within 3ish days all of the professional teams, academy teams and two other organizations are interested in my "alpha" software. So now my "side project" as of April 1st has ~10x'd its MRR (~40k).

As of now I am getting some business stuff ironed out and only making bug fixes/small updates while I get a better feeling of what type of workload difference the growth is making

<comment><USER33> Interesting. If you don't mind me asking; how did you make contact with the first few teams? Was the early exposure from sharing parts of the project through social platforms or directly reaching out to the teams?

<comment><USER32> I have existing contact with some people in a few of the organizations which has come following the game over the last few years on a personal level. I've travelled to some events, have conversations with some players but mostly coaches, analysts and production team members, and have been around the scene on a hardcore fan basis for a long time. Last season I created a fantasy league app and some advance stats collection. This season I didn't feel like doing the fantasy app again because there were good enough options out there but got some requests for stats/rankings from some of the people I know. So I started that then pivoted it into a platform instead of creating a bunch of spreadsheets (even though I still end up doing that for them sometimes)

</comment></comment></comment><comment><USER34> What I'm seeing:

\- Forget funding. The window is closed.

\- Big customers are battening down the hatches. Cash is king. Lots of asks for payment terms.

\- Little customers are failing.

If you run a startup or work at one, implement Plan B now. Cut.

<comment><USER35> Frankly, as a solo I'm thinking of just looking into SBA help (USA).

</comment></comment><comment><USER36> I've been contracting lately and I'm on two active contracts. One of the two is winding down. I've been billing at $155/hour via an agency (to be clear, their fee added on top of that $155). They offered me $90,000 salary to go employee. They upped that to $100,000 when I said no (I thought we were done but I said no again). Their thinking is they can take advantage of the situation to get cheap engineering staff.

If you're running a startup and thinking that now you can get cheap senior engineers, you might want to consider that it might be true for those who aren't careful with their finances. However, the talent you attract with this method is going to leave as soon as they find a better offer.

I don't think most management teams are like this one but I'm amazed by the short term thinking. Professionally, I can't really call them on this behavior but I'm glad to have been saving for financial independence (now is the time to go back to working on my own things and yes, I do have a multi-year runway).

<comment><USER37> Get an engineer for a year or two at the cut-rate price and once they've gotten ingrained into your org and code base they'll head off when (if?) the economy recovers. Not very forward-thinking.

<comment><USER38> There is no guarantee those high salaries will come back quickly or at all. This event might well usher in a more cost-conscious era.

<comment><USER37> Maybe, but right now it's too early to tell and a move like that, to take advantage of developers during this time, will hurt them nonetheless. I personally have been keeping track of companies I've applied for to see how they treat people during the worst times, right now, and I won't work for a company like that. I'm sure there are other developers who would do the same.

</comment></comment></comment></comment><comment><USER39> Article's premise is right but they primarily used start-ups in the travel and transportation space for examples of insane revenue drop. If people are sheltering no one is gonna be using these services. So, it's really not surprising.

The longer term impact is going to be the lack of funding in the coming couple of years and lack of customers for the services/products coming out of startups.

How will VC funds fair in this? Are there enough LPs out there willing to put their money into this risk pool?

<comment><USER40> > How will VC funds fair in this?

Probably not well. [https://news.ycombinator.com/item?id=20985687](https://news.ycombinator.com/item?id=20985687)

</comment></comment><comment><USER41> Talking about startups in difficulties, any idea how wework is doing these days ? I would expect the work spaces being near empty, and for the companies renting spaces they might be even pulling the plug. I am worried that if wework goes under because of the pandemic (and SoftBank realizing that it is not worth being salvaged), then it would trigger a domino effect in the whole US commercial real estate market.

</comment><comment><USER42> Classpass was founded in 2013. Wonderschool was founded in 2012. Can we stop calling companies that age a startup? Or at least stop using them as examples? I mean, the article then goes on to call Airbnb a "home rental start-up". It isn't a start-up, it is over a decade old and has over 10,000 employees.

<comment><USER43> Another thing that's more than half a decade old is your objection. The term "startup" has come to have a broad meaning. The meaning of words changes over time. Fortunately, new terms often come along to fill gaps. In this case there is the term _early-stage startup_.

<comment><USER44> So "startup" now means "company" and "early-stage startup" means "startup". I look forward to having to call them "incipient early-stage startup".

<comment><USER45> I guess startup is generally understood now to mean a VC-backed company that doesn't make any money.

<comment><USER46> Often, a "startup" just means a private company that plans to go public but hasn't done so yet (as opposed to already public companies, and private companies that don't plan on going public)

<comment><USER47> No, that sounds like a private company trying to sound trendy.

A startup has a small number of employees to start with and a 2 - 3 year window to go big, fizzle out, or pivot into a small - medium sized business. You're not a "startup" forever, nor does eventually marketing yourself as one, actually make you one.

</comment></comment></comment></comment></comment></comment><comment><USER48> One of my good friends is a restaurant owner in NYC and my spouse is a doctor/surgeon in NYC. Startups aren't pummeled -- they're insulated. Restaurant owners and doctors are pummeled. And all of you who thought incompetent federal government leadership was OK in this modern world -- you were bamboozled. You can start apologizing now.

<comment><USER49> But I genuinely believe all federal government leadership is incompetent - it's not a matter of it being "OK", that's just the default for every administration. Which country on earth is responding to this well without resorting to authoritarian practices?

<comment><USER50> Denmark. Norway. Singapore. New Zealand. Taiwan.

The fact of the matter is, there's too many people in America invested in a cynical notion that we should expect the government to "fail," which makes it easier to keep everything underfunded, which almost guarantees failure (random acts of heroism not withstanding). THAT, more than any single person, is what's killing America. And that's a bipartisan cancer.

<comment><USER51> No, in the US there's only one party that is explicitly anti-government, anti- expert, expecting government to fail. The other party has its own problems (its progressive and centrist factions are are war with each other, for example), but they are different problems.

</comment></comment></comment></comment><comment><USER52> Isn't this just accelerating the inevitable for many of these companies?

<comment><USER9> Yes and no. Certainly the unit economics for some start ups always looked problematic. But for others, it's not hard to see how they would have solid businesses in normal times, but have no resources to weather this downturn.

I mean, it's not like people are never going to travel again or eat out at restaurants. But I certainly wouldn't want to be a travel startup or restaurant startup (at least of the dine-in variety) today.

<comment><USER53> It may be that travel never has big enough margins to support a 10k employee middleman.

<comment><USER9> Expedia and Booking have been around nearly 25 years and both have well over 20k employees. Seems like travel has more than enough margins to support multiple companies that size.

<comment><USER54> There's never been an extended global shutdown of travel like now though.

<comment><USER9> Yes, everyone fully understands with travel at a complete standstill, _none_ of these companies are viable if the current situation were the norm.

But the current situation is not the norm, people will eventually get back to travelling a lot, and when they do there will be plenty of economic activity to support large companies in the travel business.

<comment><USER55> An extended shutdown with shut borders may have long-term effects on consumer's willingness and desire to travel. If the travel industry remains shut down for the next 12 months it's not unreasonable to think that the travel industry wouldn't fully recover for 10 years.

<comment><USER56> Or maybe pent up demand will have the opposite effect. There's no way to know.

I've had the same thoughts about the restaurant industry. Will lockdowns create a generation of home cooks, or will be so tired of staying in that the restaurant industry booms after this is over?

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER57> Startups have had years to prepare, work on their plan, strengthen their fundamentals, and raise capital if necessary. I think the shock is that probably this is a faster onset and deeper drop scenario than most had modeled.

Every [1] startup has been thinking for the past couple years about their plan for when the recession would come. Probably hundreds of articles written in mainstream and economic/financial press over the last 2-3 years about "the coming recession" [1]. Trade war? Debt bubble popping? Auto loan credit crisis? Nope, turns out it's pandemic. Nobody saw that coming until January [3].

[1] No evidence but my guess. If they haven't it seems negligent.

[2] here's an example from 2018 from the NYT contemplating what will be the cause of the next recession (note, not whether or if it will happen, just what will cause it) [https://www.nytimes.com/2018/08/02/upshot/next-recession- thr...](https://www.nytimes.com/2018/08/02/upshot/next-recession-three-most- likely-causes.html)

[3] I mean the specific timing of this pandemic. As we've all learned now many in and out of government had warned the public.

<comment><USER58> People always write about coming recessions. I could "recession year 20NN" and find someone proclaiming a recession would happen that year. Given someone in the peanut gallery is always claiming recession is near imminent, when are businesses supposed to prepare? Leaving piles of purposeless cash is poor business acumen: it could be put into R&D, expanding operations, or returned to shareholders.

<comment><USER59> > Leaving piles of purposeless cash is poor business acumen: it could be put > into R&D, expanding operations, or returned to shareholders.

Or put into making the company profitable, or at least not losing money. That might very well include R&D (to develop new products or more efficient ways to produce and distribute those products) or expanding operations (to leverage better economies of scale and have a better bargaining position with vendors).

</comment></comment></comment><comment><USER60> [https://archive.md/Xnbvv](https://archive.md/Xnbvv)

</comment><comment><USER61> I hope this is the final nail in the coffin of Silicon Valley: this place has been, very well deservedly until 2010-2015 but completely undeservedly after that, at the top of VC's investment list. But nothing innovative is coming out of that place anymore: the magical days of Facebook, Instagram, Twitter are over. What was my 'aman' (enough) moment? That startup with the juices and the juice squeezers (I forgot their name): to me that was the sign that the place is running out of steam. Hopefully this economic crisis will do enough damage and the investment focus will shift to more promising industries and locations. Awaiting the downvotes : I btw realise the irony of the fact that I write this comment on a website owned by ycombinator, but I am here because sometimes interesting things are shared :)

</comment><comment><USER62> Is the narrative that big companies are safe havens for job seekers actually true? Isn't Airbnb a "big" company?

<comment><USER63> Airbnb is working on pulling out all the stops to try and prevent layoffs. They might not succeed, but if they were a smaller company they wouldn't even have anything to try.

<comment><USER38> Is there anything inherent in their size which means they can weather the storm?

</comment></comment></comment><comment><USER64> Excuse me for getting a little bit off topic: I think these crazy times will cause startups, medium size companies, and especially individuals to, in the future, keep much larger cash reserves and generally exist more frugally.

It is true that at least in the USA that democrats and republicans in Congress and the president are working overtime to shore-up their constituents (i.e., large corporations) so they will be fine. I think the help given to the mega corporations will be at least an order of magnitude greater than what is given to help individuals and regular businesses - I base this on what has been just been given to the financial industry in the last month.

Frugal small businesses that we own ourselves are probably the most stable unless you are in the billionaire class.

</comment><comment> ur-whale [https://archive.is/EbF9b](https://archive.is/EbF9b)

</comment><comment><USER65> Startups are having their great reckoning. No longer can they just come up with fancy catch lines, and get bought by a billion dollar company. Now they actually have to provide something unique, something useful, something worthy of them actually being acquired.

<comment><USER66> Or just going on to become market leaders. Out of the tech bubble pop emerged google, apple, amazon, microsoft, etc standing strong

</comment></comment><comment><USER67> To me the most pertinent question is how long is the impact going to last. Are we ever going to get this under control? If it takes 6 months can any of the service businesses survive that long? What about startups?

<comment><USER63> I'm extremely optimistic about the coronavirus, something like the 90th percentile among positions I've read, and even I think we'll still be facing impacts in 6 months. Even if the lockdowns end this month and the public health problem is considered resolved in June, that won't be enough time to shake off all the effects.

Most businesses will certainly be allowed to open long before then, though.

</comment></comment><comment><USER68> Prediction: The great unwinding is going to be felt much more severely by Big Tech employees, but many months out from today.

Source: I don't work at Big Tech, but personally know many folks who do. For the most part, they are not really thinking very far into the future, because they think (with some justification) that their jobs are much safer than startups and smallish companies.

1 The usual reasons of less people spending money on stuff holds, of course. If your customer is now unemployed, they will _eventually_ cancel your software subscription too.

2 Most employees working at these companies have stock options which will plummet once people start pulling money out of the stock market because they actually need the cash to survive.

3 There will be the usual letting go of people because the manager doesn't like them. In a big company, ironically, this is much easier because no single employee is indispensable.

4 The actual problems are not going to start at Big Tech till about a year from today. This is one of the main problems. Most predictions of economic recovery are way too optimistic. Unless something extraordinary happens (e.g. a combination of off-the-shelf medicines, all in large supply, which miraculously just negates the virus, and we learn about it tomorrow). There is an excellent chance that the layoffs will hit Big Tech precisely when most of their employees think they are safe.

5 The biggest problem, in my view, is how much these employees are used to the cash cushion. There will always be a few prudent folks who save a large chunk, but generally the lifestyles have already been elevated to match the income. The folks who never raised their lifestyle to that level will not really have much to worry about, but that is a small minority.

One can imagine these folks - who are basically going to be the last to be laid off, having to compete with much more hungrier folks while simultaneously having to significantly downsize their lifestyle. And suppose they also bring an "attitude" with them (not that everyone does, but some do), who will want to hire them?

Some folks will point out the large cash holdings of these companies and easy access to credit. But how far can that runway last, realistically, under these types of circumstances?

</comment><comment><USER69> During the dot com bust - they began building Santana Row, on the site of a very old shopping center called Towne and Country.

The developers wanted to revamp the site to take advantage of all the tech money and provide upgraded experiences etc...

While they were in the middle of building it - the bust happened.

Then, one of the largest buildings that was ~65% complete or so caught fire. It was HUGE - I think it was an 11 alarm fire....

There was a crap ton of speculation as to how this happened - and the prevailing theory among many I knew at the time (I lived right down the street and actually stood across the street watching the thing burn down for a few hours) - was that it was insurance fraud to recoup some of the investment in the multi million dollar development due to the fact that its demographic was now largely out of work.

Obviously they did fine eventually, but lots thought it was an opportunistic attempt to take advantage of the situation.

As an aside, not too long after that, I had a pool aprtty at my place for all the tech people in our circle. 65 people showed up and out of that, only 2 were still employed.

The tech industry is a hell of a lot more resiliant this time - as actually many of the service provided are actually of great value to those stuck at home or unemployed. So this collapse will be nothing like the dot com bust.

However - the wealth transfer this time will be far greater than the 2008 collapse.

The next Black Swan [0]:

[0] - [https://youtu.be/NEnuWv38urI](https://youtu.be/NEnuWv38urI)

</comment><comment><USER70> It really ticks me off when people think that 'startup' is different from 'business'. Startup is a new business. The fact that it is most frequently in the IT sector doesn't change it's nature. It's still a business that fall under all business rules.

</comment><comment><USER71> Quote: "We purposefully and intentionally did not have any video on to protect privacy as we delivered the news live to individuals"

Translation: We are SoB's and we DGaF about you to the full extent to not even look you in the face when giving you the finger.

</comment><comment><USER72> There might be something wrong with an economic model which is predicated on infinite growth.

</comment><comment><USER73> I know many people who have been fired around me, throughout the world, this is really scary.

</comment><comment><USER74> I dunno.. online businesses will probably do well in this "new" economy. There's a ton of opportunity to remote work tooling as well. Right now people are hunkered down trying to get the basics in order. Restaurants and grocery stores have had to reconfigure themselves for delivery and curbside pickup. Cloud kitchens will do well here, Instacart is probably doing well too. AirBnB will not do well since they are a function of in person travel. Airlines though have moved to cargo delivery type function. Amazon is obviously cleaning up. If you can make masks or ventilators you are probably going to do really well. Every local community has an instacart like opportunity and some of these are grass roots organized.

</comment><comment><USER75> The WeWork saga is especially instructive.

</comment><comment><USER76> Ctrl+F "Ecology"

Ctrl+F "CMBS"

Ctrl+F "Reits"

Ctrl+F "Repo"

Oh, wow.

You guys are totes not ready for the next stuff.

<comment><USER77> I know the others, but what does ecology have to do with it?</comment></comment>


Software Engineering Takeaways - <AUTHOR> https://blog.regehr.org/archives/1594 <comment><USER2> "So on one hand we don't want to write everything in C "for speed" but on the other hand we need to avoid showstoppers such as Python, a bottleneck data structure stored on disk, a quadratic algorithm, etc."

That part about Python deserves more explaining. Surely that's a jest, right?</comment>


Show HN: Compass that points you to a photo's EXIF location - <AUTHOR> http://www.getphotofind.com/

<comment><AUTHOR> I've been hiking and foraging for mushrooms and wild foods, so I made this simple utility app for iOS.

It lets you pick a photo you took (or that someone sent you) and then points you in the direction the photo was taken, kind of like a compass, based on the coordinates stored in the photo's EXIF data. It's basically a fast and easy way to mark locations and get back to them.

Originally I tried it in JavaScript, but iOS strips lat and lon info from photos when they're picked with a file input field. You can still find the beginnings of my hacked together JS version here: [http://foodsfofree.herokuapp.com/](http://foodsfofree.herokuapp.com/)

This is just a side project I built for fun since I hadn't built an iOS app before, so I'm not trying to turn it into a business or something, just wanted to share it!

You can also read more about it here on my blog: [http://gohnjanotis.com/photo- find-v1-1-released/](http://gohnjanotis.com/photo-find-v1-1-released/)

<comment><USER2> Very neat idea, reminds me of the Gatherer add-on from WoW ([http://www.curse.com/addons/wow/gatherer](http://www.curse.com/addons/wow/gatherer)).

<comment><USER3> Ugh, flashbacks to hundreds of hours gathering herbs and ores with that add-on during my WoW addiction.

</comment></comment></comment><comment><USER4> Cool! A few years ago I was couch surfing at a stranger's house on the opposite side of the U.S. and found myself unable to find the house again after a late night at the bar. Didn't have the address because we had met on a bike trail and followed him home earlier. Eventually I remembered I had taken a picture of his cat, and sure enough it was geotagged directly on his living room!

</comment><comment><USER5> Great idea ! Has been on my list for a while as well ;-)

> Originally I tried it in JavaScript, but iOS strips lat and lon info from > photos when they're picked with a file input field.

Yes, that is how far I got. Good you went a step further.

I think there are options for expanding: because a photo is easier to share then a location plus it tells a lot about the location itself. Better then some numbers of shortened url.

Combined with compass navigation the user does not need internet (Apple, Google maps) to still be able to navigate to a location.

And why share just one photo ? Share a collection: interesting buildings in a city, or the best places with cakes (based on just the pictures of those cakes :-).

I still think a concept to think about more. Please continue.

<comment><USER6> why don't they need Internet?

<comment><AUTHOR> As long as you already have the app and photo on your phone it just uses the compass and GPS, which are both sensors built in to the iPhone and don't require internet.

<comment><USER6> sorry. I'm an idiot and didn't think about gps seperately from internet

<comment><AUTHOR> It's a pretty good point actually! Because Airplane Mode disables GPS on the iPhone.

<comment><USER7> That's a little odd. Isn't GPS generally completely passive? That is, it should not be possible to cause any sort of interference.

<comment><USER8> A radio receiver often uses a signal of an intermediate frequency: [http://en.wikipedia.org/wiki/Intermediate_frequency](http://en.wikipedia.org/wiki/Intermediate_frequency)

So a receiver that would appear functionally to be passive could still conceivably cause interference.

<comment><USER7> Cool. Was not aware of the usage of intermediate frequencies in radio receivers. Thanks for the knowledge :)

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> This is a cool idea. I see it as a great utility for taking newer versions of photos years later or even just remembering where you parked.

Curious though when I installed it I only see kilometers but the screenshot on the website shows imperial units and I don't see any way to change it. Is there a way?

Edit: yeah just found the swipe to change units. I'm all for supporting apps and developers but $2 just to switch units? No thanks. Uninstalled. That's insane.

Edit 2: the biggest issue about the price is perceived value. Making this app cost $.99 or $1.99 itself? Not bad in my opinion. Development isn't free and I probably would have paid that. But when you move to an in-app purchasing model now the perceived value is a free app that is gouging you $2 just to switch from metric to imperial. Maybe the intent was to have as many people try it as possible and to hopefully make a little money from it but the way the in-app purchasing is structured it makes me feel like I'm being taken advantage of.

<comment><AUTHOR> There's actually a screen you can swipe to to the left of the main screen where you can change the units, but I wanted to make an economic incentive for people to try SI so it'll cost ya! ;-)

Also, I apologize for the buggyness with that swiping... I should have used a UIPageViewController and will probably go fix it at some point.

You can read more about all this in my blog post, including the decision about distance units.

</comment></comment><comment><USER10> Neat! An "open in maps" option would be nice to get directions.

<comment><AUTHOR> Yeah! Awesome to hear! I was already thinking about adding that because sometimes some driving or public transit is needed to get within walking range haha

</comment></comment><comment><USER11> Awesome idea, very creative. I'd love to see you keep working on this.

Android version when? ;)

<comment><AUTHOR> Haha I know, I know... you're not the first to ask about Android!

The reason I tried JavaScript first was to start off cross-platform, but when that failed I developed for the hardware I use.

However, I've been meaning to try out some Android development, so maybe at some point...

<comment><USER12> If you need help with an Android port, I'd be glad to pitch in.

</comment></comment></comment><comment><USER13> If you are searching for this in the app store, try searching for "Photo Find Ganotis". When I searched for "Photo Find" it matched like 1,500 apps, and gave up looking in those results.

<comment><AUTHOR> Oh yeah! That part sucks. I should have done more name research first. I always tell people to search "photo find hiking" (quotes not necessary) because that's easier to spell than my last name and it's the only app that comes up.

</comment></comment><comment><USER14> Great idea. I always take a photo when parking at the airport, but recently learned this isn't much help in iOS when Lots D, E, F are adjacent but Lot C is half a mile away in a random direction.

<comment><USER15> Not to mention the poor reception you get using GPS in a parking garage!

</comment></comment><comment><USER16> I remember kinda similar concept implemented years ago for Openmoko and Maemo, but for geocaching - the app showed you just the arrow and the rest was up to you :)

</comment><comment><USER17> I'm assuming this works with GPS data.

So this would not work with photos taken with a DSLR without a GPS module/attachment.

Am I correct?

<comment><USER18> It uses the EXIF data, so it would use the location data in the EXIF.

> So this would not work with photos taken with a DSLR without a GPS > module/attachment.

Depends. You can also retroactively edit the EXIF data to reflect a location. It should work on those kinds of pictures, even though the original camera didn't have a GPS.

<comment><USER17> Correct, I should've been been more clear in my post; I meant location data in EXIF data that has been recorded by the/a GPS module.

I think this is so. Reading the developer's post it seems he had the idea to use pictures taken with his iPhone, which would include GPS data in the EXIF.

I think this is a fantastic idea.

<comment><AUTHOR> I don't have much experience with DSLRs and didn't even know there were GPS modules for them, but that makes sense and is awesome!

But yep it just pulls the lat and lon from the EXIF data, so it should work fine. The standard for EXIF is degrees, minutes, seconds and then a separate "Ref" value for N or S.

I have to do a little math on those values to turn everything into a decimal format, but based on this standard I would assume everything saving location in EXIF data would use this same format so it should all be compatible:

[http://www.exiv2.org/Exif2-2.PDF](http://www.exiv2.org/Exif2-2.PDF) (See page 53 of the PDF under the heading GPSLatitude)

If you test it, let me know!

<comment><USER17> I just might do that!

My initial thought was pulling some of my favorite shots from Flickr and using this to find the location of where the shot was taken. Great for finding those hidden photoshoot locations!

Unfortunately most DSLRs do not have the GPS built it. It's usually an add-on attachment.

</comment></comment></comment></comment></comment><comment><USER19> Very simple, very cool. Nicely done!

<comment><AUTHOR> Thanks! I really appreciate hearing that!

</comment></comment><comment><USER20> Very nice, downloaded :) It would be cool to have an extension right in the Photos app.

</comment><comment><USER21> The compass isn't updating for me in iphone 6. Or is that one of the premium features?

<comment><AUTHOR> Haha not a premium feature! Sometimes there are calibration issues. I meant to add some calibration checks and user feedback about needing to calibrate at some point.

Try rotating your phone around in a circle a bunch and then see if the compass starts moving and correcting itself.

</comment></comment><comment><USER22> Hi! Neat project, but hasn't iOS got a similar function built in already, where you can see all the pictures you took on a map?

<comment><AUTHOR> Sure, but have you ever tried navigating to a photo that way?

The map doesn't show your location, and even if it did you would still need some kind of compass arrow, like the Google Maps app for iOS shows, to be able to navigate to it.

Also, this works by pasting a photo from the clipboard instead of just using photos in your library.

</comment></comment><comment><USER23> Great idea, but charging to show in feet? Ridiculous. Uninstalled.

<comment><USER16> I love the idea of charging to show in imperial units. That's some amazing pro-SI propaganda, we need more stuff like that :)

<comment><AUTHOR> Thanks! It's about time.</comment></comment></comment>


Ask HN: Is there anything similar to DocumentCloud for non-journalists? - <AUTHOR>

I'm looking to be able to store pdf documents in the cloud and be able to search them.  DocumentCloud looks perfect but I'm not in journalism.  I'm having trouble finding an obvious alternative.  Do you guys like any other services or know of a simple way to do this with NoSql?  I was looking into using a hosted mongodb service but I can't find any information on searching binary data.  Thanks for any pointers. <comment><USER2> You're not going to be able to simply upload a PDF and search for text using the raw file data. It's not readable. You're going to have to either use a tool to extract embedded text, or perform OCR on the document if it's image- only. A really good tool, that I have used before, is called Aspose. If you are allowing users to upload these PDFs, you'd also need some sort of distributed task queue, because performing the PDF file operations is not something you want the user to have to wait on. I've used RabbitMQ for this, and haven't had many issues. Once you have OCR'd the document and extracted the text, then you can store the text as well as the native document in a database like MongoDB. You would maybe even benefit from using a full-text search engine, like ElasticSearch.</comment>


Ask HN: Software Development Opportunities on Craigslist - <AUTHOR>

What are your experiences with CL ads offering an idea in exchange for programming, especially iPhone and Android? <comment><USER2> Like everything else in life - it's variable. I'm an idea person who found a highly qualified iPhone developer in the SF Bay Area, who was interested enough in doing dev work for me part-time (he's a FT iPhone dev for a large corp) that he only asked for $2500 plus 3% equity. I'm in Vancouver. I found him on CL. Also, although IMO they mean nothing, he was happy to sign an NDA. It was a good experience.

</comment><comment><USER3> Even a great idea is worth nothing compared with the work of implementing it. And my guess would be that the ideas you'd find on craigslist are more along the lines of "build a twitter clone only MORE SO" than any genuine insights.

Even if you do think the idea is amazing, only engage in such a deal if you get to keep 90% of profits. Development work requires hundreds of man hours. Ideas can come while in the shower.

It's the difference between "Dude, I should learn to play the guitar" and practicing an hour a day for five years.

<comment><AUTHOR> Since most, if not all of the CL "opportunities" involve NDAs I was wondering what are some positive/negative things developers have experienced. I was hoping to gain some insight on how to approach such dealings and what to avoid.</comment></comment>


What Is Systems Programming, Really? - <AUTHOR> http://willcrichton.net/notes/systems-programming/ <comment><USER2> My idea of system programming is that, other than the "near to the bare metal" element, which may not be always true, has this quality of creating infrastructures for other layers to use. A game 3D engine and a DNS server may be both written in C++ and may use the same low level programming techniques to achieve speed, but the fundamental difference is that one is just part of an application program of some type, and the other a system that provides a general service to other programs. So clearly it's technically possible to do system programming in higher level languages, even if often this will require anyway dealing with many system calls regardless of the language, both explicitly or implicitly via abstractions.

<comment><USER3> I think systems programming should be split in two, honestly.

You have the kernel-level systems programming where you need to be near the bare metal, where you write kernels or program microcontrollers with less RAM than a x86 CPU has L1 cache, where taking a microsecond longer can mean the overall system crashing (or even costing a human life).

And you have system-level systems programming where you write services and supportive infrastructure to enable user programs, where garbage collection and non-realtime behaviour is acceptable, where you can skip a microsecond and it'll be alright.

<comment><USER4> I think the two "poles" you've identified are good ones (~microseconds matter and ~100ms matters) but there's a wide range in between. If you do anything with video at modern resolutions, then you're in the single-millisecond- matters regime (this includes games as mentioned upthread, and just about anything in VR as well).

<comment><USER3> Video streaming and gaming have some soft realtime guarantees, yeah, though generally these aren't systems programming and application programming instead.

The plumbing below, ie graphics rendering pipeline, tend to fall into the category of kernel systems programming, controlling the GPU is pretty close to doing what a kernel does IMO.

</comment></comment></comment></comment><comment><USER5> Great article. This is an important distinction to make. I've noticed that the more experienced I got, I felt less and less need to micro-optimize every aspect of a program at the expense of code readability. That's where I think the design and implementation of a system intersect; making it easy to understand how it works and giving future maintainers the confidence to make changes is best accomplished with clear and readable code with the right abstractions (even if it hurts performance a little). I think that documentation will always be second to that.

<comment><USER6> Depends on the kind of software, though. If you're writing an interpreter/compiler, web server, database or operating system you don't have much choice.

</comment></comment><comment><USER7> > _Andrei Alexandrescu (creator of D)_

Andrei didn't create D; he's been influential in it, especially w.r.t. D's metaprogramming story, but the language was created and is primarily maintained by Walter Bright.

<comment><USER8> D1 was created by Walter Bright, but D2 was primarily created by both Walter Bright and Andrei Alexandrescu.

<comment><USER7> Is D2 so different as to be considered a separate language? (I haven't really followed it for years now.)

<comment><USER8> Yes it's very different.

D2 introduced a lot of new keywords, new semantics, not two "standard" libraries like with D1 where there were Tango. Tango is pretty much completely obsolete in D2. Most D1 code might work to an extend with the D2 compiler, BUT almost no D2 code will be able to run using a D1 compiler and it'll even be difficult to translate it directly.

D2 is basically when Andrei joined the development of D back in 2007.

</comment></comment></comment></comment><comment><USER9> > You should be able to forge a number into a pointer, since that's how > hardware works.

It's a C-centric view of the world and I wonder what old school FORTRAN77 people or lispers would think of this.

Anyway, I think the right to do this should be a privilege of the compiler. As soon as you claim this right, you abandon all possible support she can give you in battling all kinds of silly mistakes.

<comment><USER10> Pointers are not even necessary for writing operating systems or memory allocators. The Oberon system writes those low-level components using intrinsic peek/poke functions (like some ancient BASIC!) that are recognised specially by the compiler and turned into direct memory modifications. This is clearly just as unsafe as pointers (probably more so), but it means you don't generally pollute the language to support some very specialised code. The rest of Oberon is memory-safe and garbage-collected (with the garbage collector also written in Oberon).

<comment><USER11> > The Oberon system writes those low-level components using intrinsic > peek/poke functions (like some ancient BASIC!) that are recognised specially > by the compiler and turned into direct memory modifications. This is clearly > just as unsafe as pointers (probably more so), but it means you don't > generally pollute the language to support some very specialised code.

How is "val = PEEK adr" and "POKE adr, val" any less polluting than allowing "val = &adr" and "&adr = val" in select places?

<comment><USER12> It shouts to you, "Take care something dangerous going on".

Hieroglyphs are easy to pass by.

<comment><USER11> Lots of languages (like C#) allow pointers, but only inside blocks explicitly declared to be unsafe.

        void DoSomeUnsafeStuffHere()
        {
            // regular code here. pointers verboten.

            unsafe
            {
                 // pointery stuff here
            }
        }

I think that is equally clear, if not even more. And again: I don't think this is any more polluting than weird out of place PEEK/POKE statements.

<comment><USER12> That is true, my point was that for C and C++ that is not clear at all.

You cannot simply search for & and __* regarding point operations because those are also valid numeric operators, thus with context dependent meaning.

Being able to search for PEEK/POKE, SYSTEM.PUT/SYSTEM.GET, or just unsafe blocks makes all the difference tracking down unsafe code.

Also note that unsafe code blocks is older than C almost for 10 years, as ESPOL/NEWP already had such feature in 1961.

<comment><USER13> > _You cannot simply search_

Which is one of the reasons why in the modern world (of fast CPUs and large RAM) code should be edited using editors that "understand" the language's syntax.

</comment></comment></comment></comment></comment></comment></comment><comment><USER14> The author's point that functional programming principles are important to systems programming and should be taught alongside it is well taken. I think he confuses the issue somewhat with all the discussion of what is a "systems programming language" as these days it's just used to refer to languages substitutable for C.

</comment><comment><USER15> System programming is definitely a bit overloaded these days though I believe it is now widely understood to be languages like C/C++ that can be used for OS, kernel, and embedded development.

I would agree though that the language ecosystem is shifting a lot in the last few years. IMHO there are now a few languages that are becoming proper full stack languages in the sense that they scale from embedded all the way to browser development. Rust is a great example.

I'm really impressed with what the Rust community has done in just a few short years. All my life, C/C++ was the only game in town for the stuff that is now done with Rust with arguably the same or in some cases slightly better performance.

Stuff like WASM allows the use of system programming languages in places where they would not be used in the past. Using Rust transpiled to WASM makes it a proper fullstack language. And people are using it for that. And people do server development as well in it as well as OS development.

<comment><USER16> > IMHO there are now a few languages that are becoming proper full stack > languages in the sense that they scale from embedded all the way to browser > development.

I think you're being a bit optimistic here: traditionally, the only language that has been able to do this is C++, and Rust is displacing it simply because Rust really tries to target C++ developers and their pains. But other than that I don't see much else development here. Swift has promise, but unfortunately nobody's really writing much framework or foundational code with it; at least not yet.

<comment><USER17> > _the only language that has been able to do this is C++_

I'd say Object Pascal is able do it too, though it's certainly true that Pascal is not as widely used as C++. Free Pascal and Delphi are the two major Pascal implementations today:

[https://www.freepascal.org/](https://www.freepascal.org/)

[https://www.embarcadero.com/products/delphi](https://www.embarcadero.com/products/delphi)

<comment><USER12> That Borland management board.... :(

</comment></comment></comment></comment><comment><USER18> Irrespective of language and framework, if the code needs to be aware of underlying hardware then it is systems programming. ex. kernel code, user- space drivers, databases, portions of cloud or server code which need to be hardware aware, etc. What golang targets, I think, should be more of middleware or service-level programming, whether its containers or servers.

<comment><USER19> Alan Perlis has a thoughtful way of expressing this: "a programming language is low level when its programs require attention to the irrelevant."

At first I thought it was poking fun; now I see it as a comment about what is relevant at a given level of abstraction.

<comment><USER20> I like that line of thinking.

When discussing the suitability of different programming languages I always point to the problem at hand and identifying the abstraction level the problem is at. What your problem requires you to care about and pay attention to gives this.

Ideally, solving your problem would be a one-liner in an already existing DSL created for your specific problem (domain). In reality, this rarely happens and you must have your pick beteeen everything from niche DSL:s to assembly, but the key really is identifying that problem abstraction level.

I work in a mainly C/JS shop whereas I privately prefer Rust/ReasonML. Rust would be a great fit at work, but Go would also work nicely for tons of things we do. Alas, the inertia of organizations.

<comment><USER21> > Ideally, solving your problem would be a one-liner in an already existing > DSL created for your specific problem

I like thinking about the practice of programming as creating a DSL in a language to solve your specific problem.

</comment></comment></comment></comment><comment><USER22> I'm curious where Erlang fits into this story. It was built to be a "systems" language but algorithms are tersely implemented (I forget exactly, but I remember reading about a study that an Erlang program is much shorter than the comparable C program), and has gradual typing of a sort. It also is garbage collected (I don't think you could "write your own memory allocator in it", as Andrei Alexandrescu described).

</comment><comment><USER23> Nice article.

My view of Systems Programming will forever be colored by my start with IBM mainframes. The Systems Programmer maintained all the utilities that the mainframe provided, and also the frameworks that supported online programming.

I suppose today's equivalent is a combination of a sysadmin and an applications developer, providing the applications are things like container components, build pipelines, etc.

<comment><USER24> They call them devops these days.

</comment></comment><comment><USER25> A systems programming language can run on bare hardware by itself, or nearly so. It is acceptable to require a very small amount of assembly code, for example to implement something like memcpy or bcopy, or to provide atomic operations.

A language is disqualified if it requires an OS or if it requires code written in a different non-assembly language. Cheating, by adding that as a huge (impractical) amount of assembly, also disqualifies a language.

Funny story about gcc: The compiler demands a memcpy, which it sometimes uses for struct assignment. If you implement memcpy in the normal way, gcc will helpfully replace your implementation with a call to memcpy! Despite this, C is still a systems programming language.

<comment><USER26> > It is acceptable to require a very small amount of assembly code, for > example to implement something like memcpy or bcopy, or to provide atomic > operations.

There is some stuff missing in your list: preparing the stack pointer, address layout, etc. You also need tools to produce text and data sections that can be loaded at a specific address. Even if C is a low level language, there is still quite some stuff between it and the "bare hardware". In that sense, the only language that gives you enough control to produce the binary exactly in the form needed by the hardware (without relying on external tools or libraries) is assembly.

<comment><USER16> > You also need tools to produce text and data sections that can be loaded at > a specific address.

Though, of course, most compilers provide extensions that make this task generally possible within C (using the loose definition of "I don't need any separate files or inline assembly, just attributes and flags).

<comment><USER27> So we're getting closer to it. The linker inputs and scripts are the only "real" systems programming language.

</comment></comment></comment></comment><comment><USER28> I don't think a single definition makes any sense now: decades ago you may have had a definition of a 'computer system' that describes every big program. Nowadays there are many sets of requirements depending on context, each set of requirements implies its own constraints on memory management and scheduling so that there is no one description of how a complex program would look like.

</comment><comment><USER29> You're HN famous, Will!

But I disagree with this:

> Companies like Dropbox were able to build surprisingly large and scalable > systems on just Python.

Many of Dropbox's _services_ are written in Go, and Magic Pocket is written (partly, at least) in Rust. Earlier in their development, Dropbox relied on S3, which is obviously not in Python.

Fundamentally, I think the important part of the "production" aspect of "systems programming" is that it'll be used a lot. That's what drives the requirement for efficiency: if you're 10-100x less efficient, someone else will be more cost effective / solve bigger problems.

As an additional example, GitHub was written in Ruby, but that's fine because the underlying Git and filesystem manipulation is all in C. The same thing is sort of true of Facebook's world of PHP: PHP is mostly a wrapper around C libraries. Until it got complex enough that they rewrote the language.

tl;dr: I don't think systems programming needs to be "low level", but production systems do need to be efficient. More powerful computing just moves that further to the right!

</comment><comment><USER30> In old days, computers that came from manufacturers like IBM, DCE was refrred to as system. The operating software for the system was referred to as "system software". People who created that software were called "systems programmer". Much of it invariably involved writing direct to metal/assembly code which is why systems programming has been associated with low level programming. People using this term to refer to task of doing some complex application architecture are doing it wrong.

</comment><comment><USER31> I think that it is not useful to build on Ousterhout's definition as his definition of systems programming language is mostly meant as contrast to Tcl with it's everything is a string memory model (in that view one could very well conclude that Python is a systems programming language).

</comment><comment><USER32> when I was programming in the 70s and 80s (in the UK), the term systems programmer applied to those people involved in the configuration, tuning, management of software such as CICS, MVS, and their equivalents on other hardware bases. I worked at Sperry Univac for several years and the "systems programmers" were the engineers who tweaked the OS, the TP schedulers, built the product installation scripts, designed the configs that controlled the software. It was a specific tradecraft suited to those who were more technically focused, remember that COBOL was the prevalent language for nearly all programming roles in the 70s and that there was no "web" per se. The term started to fade away roughly when PCs started entering into mainstream computing

</comment><comment><USER33> If you are making system calls–without too much abstraction–you are doing systems programming.

</comment><comment><USER34> I think the author makes fair points. My conclusion: Do the bit twiddling and strongly constrained parts in a low level language and the rest in a language that supports strong static typing and good interfaces.

</comment><comment><USER35> ... this deserves a supplementary question: what will get us beyond UNIX to the next platform, not just the next paystub?

<comment><USER12> Maybe something like Android, OS X/iOS, ChromeOS, UWP, Fuchsia, Unikernels, Language runtimes on Hypervisors.

And since I sense the question coming, Android, OS X/iOS, ChromeOS might use an UNIXy kernel, but its exposure surface to applications is so small, that it can be easily exchange for something else, it is just a matter of cost.

Which brings us to the next point, given the commodity of free UNIX-like OSes, maybe only an hardware reboot like Quantum computers will actually do it.

<comment><USER16> > And since I sense the question coming, Android, OS X/iOS, ChromeOS might use > an UNIXy kernel, but its exposure surface to applications is so small, that > it can be easily exchange for something else, it is just a matter of cost.

Android, macOS, and iOS expose almost the full set of POSIX to the programmer. Now, you may argue that it goes mostly unused, but it _is_ there, and there are people using it.

<comment><USER12> Android does not, use at your own peril as it is not part of the official APIs and will get your app terminated if you use unauthorized APIs.

Using libc is not the same as POSIX.

[https://developer.android.com/ndk/guides/stable_apis](https://developer.android.com/ndk/guides/stable_apis)

[https://developer.android.com/about/versions/nougat/android-...](https://developer.android.com/about/versions/nougat/android-7.0-changes#ndk)

[https://android-developers.googleblog.com/2016/06/android- ch...](https://android-developers.googleblog.com/2016/06/android-changes-for- ndk-developers.html)

As for macOS, and iOS, if Apple removed POSIX how many apps written in Objective-C and Swift (not UNIX cli tools ported from Linux) would actually be affected?

Very few, because those written in C and C++ ported from other platforms are most likely making use of ANSI C and C++ standards.

</comment></comment></comment></comment><comment><USER36> Nowadays it broadly means using C++ programming, involving dealing with different levels of system calls.

</comment><comment><USER37> IDK about systems programming, but one thing I do know: Systems researchers = ^[AI researchers]

</comment><comment><USER38> 640x480, 16 colours, Ring 0.

</comment><comment><USER39> Hm I really like the observation that "systems programming" is overloaded.

I gave my take here:

[https://lobste.rs/s/jrzwgy/what_is_systems_programming_reall...](https://lobste.rs/s/jrzwgy/what_is_systems_programming_really#c_ubvdwf)

In short, I think _shell_ is actually a more appropriate language for describing systems, rather than OCaml or Haskell! If that sounds weird, then I'll point you to the evidence of shell already being used for this purpose (e.g. the 40K lines of shell in the Kubernetes repo I mentioned).

Although, on reading the blog post a little more closely, we may not be agreeing precisely on the problem.

I should probably write my own blog post about this ... there are a couple I linked that give something a flavor.

<comment><USER40> It's simple:

Bugs in application code causes errors in that application.

Bugs in system code causes errors in an user application.

If bugs in your code causes problems only to your code - it's single application. If bugs in your code causes problems in other programs - it's system of programs.

</comment></comment><comment><USER41> In one word - syscalls. What do I win?</comment>


Before you manage others, make sure you know how to manage yourself - <AUTHOR> https://www.bettermanager.us/four-pillars-better-management-1-self/ <comment><USER2> I recently completed a leadership program at my corporation and they had a similar first pillar of knowing thyself. This always makes me think of the prevalence of _Mirror Bosses_ at the end of video games. The greatest enemy to concur is one's self.

[http://tvtropes.org/pmwiki/pmwiki.php/Main/MirrorBoss](http://tvtropes.org/pmwiki/pmwiki.php/Main/MirrorBoss)

</comment><comment><USER3> This is the same taxonomy they taught in my college (a military academy). Freshmen learned to lead (what we called 'manage') themselves,sophomores to lead 1-2 freshmen, juniors small teams,and seniors organizations (100+ students).

In hindsight, I can't imagine a better way to build one's self into a leader.</comment>