Progressive Web Apps Will Replace Native Apps? - <AUTHOR> https://itnext.io/progressive-web-apps-will-replace-your-native-app-4427f2df6604 <comment><USER2> My day job is leading teams that build native and web versions of applications for clients, so it's strange how much I agree with the sentiment, except for the world "replace".

Steve Jobs' original iPhone announcement gets brought up a lot. You don't release an entire development platform in a couple months as a course correction. They were working on a native SDK before the first iPhone launch. The talk about developing web apps as being the primary way to develop on mobile was a bit of face saving and Jobs style misdirection since the SDK was delayed.

Native apps will never go away, because mobile platform owners can't wait years until their hardware features are accessible through standardized web interfaces.

That said I agree that too many mobile apps out there should have been made as a website. Also many digital experiences take just seconds or minutes of interaction to be meaningful, so the overhead of App Store reviews and publishing is total overkill. About 80% of apps I have on my phone are not used daily and just taking up space.

However web apps historically have been painfully negligent in persisting user data, and lost some trust among non technical users in my experience.

</comment><comment><USER3> No, thanks.

      Your PWA is built with HTML, CSS and JavaScript and will therefore be lightweight and fast.

Huh?

<comment><USER4> Exactly. What kind of logic is that!

<comment><USER5> I suppose devs who programmed e.g. calendar or SMS apps for "dumb phones" using assembly will scoff at today's devs using XCode/Android Studio with "fancy languages".

Everything is developing to make development easier and easier, HTML, CSS and JS is even easier, but I guess "it'll have more performance" is not the correct argument.

<comment><USER6> I (a web developer) do not find HTML/CSS/JS easier than native development tbh. It's just a lack of familiarity that pushes people to use javascript for absolutely everything (despite it being unsuitable for many of those tasks).

</comment></comment></comment></comment><comment><USER7> > Well, the problem with this number is that these app users spend 77% of > their time on only 3 apps and even 96% of that time on their 10 favorite > apps. This means that it's extremely difficult to get users to even use your > app.

This seems like something a marketing person trying to push an idea would say. There's an alternative explanation: users need just about 3 main things from their device, with extra few filling the cracks (like a bank app that's used once a week or so). If your metric to improve is "what percentage of the time is someone using your app", that sounds just wrong.

</comment><comment><USER8> "Developers now had to use a native SDK to build an app for the iPhone."

Patently untrue. They were finally _allowed_ to use native API, which they had noisily demanded. And they were still allowed to use the "sweet solution" of (progressive) web apps, an idea that took off like a lead balloon and whose announcement was met with cold silence.

[https://www.macstories.net/stories/before-the-app-store- the-...](https://www.macstories.net/stories/before-the-app-store-the-sweet- solution-of-web-apps-and-developers-relentless-passion/)

And the alternative to native apps is not "web apps" (progressive or not), it's web _sites_. When engagement is not high enough to warrant installing a native app, it's not high enough for any app.

This isn't just theory either. For example, I worked on Wunderlist, and one of the major factors for its success was native apps on all major platforms, a point confirmed by the numbers and general feedback as well reiterated time and time again when talking to individual users.

This despite having a web app that absolutely rocked.

And of course there are numerous other examples, for example Facebook going back from a web app to a native one etc.

</comment><comment><USER9> As predicted - RIP PWAs - [https://ar.al/2020/03/25/apple-just-killed-offline- web-apps-...](https://ar.al/2020/03/25/apple-just-killed-offline-web-apps- while-purporting-to-protect-your-privacy-why-thats-a-bad-thing-and-why-you- should-care/)

</comment><comment><USER10> I don't think PWA will gain the traction needed to dominate the market. Native development is still better for the most part. I also don't believe Apple wants anything to do with PWA and the only reason they added support in 10.3 was due to the fact that they were purging their AppStore of what was effectively website apps. With Apple holding a significant share of the mobile market I can't see the reasons why you would want to invest in a PWA when there is such a large user base with devices who don't treat PWA as a first class citizen.

</comment><comment><USER11> Nope. I will always choose a native experience over a web experience. It's just plain better,

<comment><USER12> Nope. I will always choose a web experience over a native. It's just plain safer. Nothing to install on device. Less likely to have malware to track everything.

Native is not just plain better.

<comment><USER13> in practice i'm pretty sure the web things i'm using are tracking me much more than any of the native apps i've ever used. I remember the outcry whenever someone would find out that $native app would send some weird packets over wireshark - and even then, it's been 10 years since windows started asking for permissions for software to open a socket so you can't really miss it if it tracks you.

Also native apps don't have ads (afaik, never saw one except windows 10's shell but then I use 99% libre software), and I can stay at version 1.5 of the native app if it works better for me while this is impossible with web apps.

<comment><USER14> > Also native apps don't have ads (afaik, never saw one except windows 10's > shell but then I use 99% libre software), and I can stay at version 1.5 of > the native app if it works better for me while this is impossible with web > apps.

Not much of an Android user, I gather.

By the way, recent versions of Android allow apps to self update.

<comment><USER13> > Not much of an Android user, I gather.

mobile apps outside of native Jolla ones make my blood boil faster that I can turn those wretched devices off, so, yes, I try to limit my interactions with those to a minimum.

<comment><USER14> Oh, an actual Jolla user!

<comment><USER13> Sadly my Jolla phone died down last year and my life is filled with pain since

</comment></comment></comment></comment></comment></comment></comment><comment><USER15> > Here's a radical idea: Why not just optimise the mobile experience of your > website?

This is the most sensible bit of the article. In many smaller cases it's not really clear why the app needs to exist at all, and in some (Reddit, Instagram etc) the app is pushed so hard that it deliberately degrades the web experience.

<comment><USER16> Isn't it because app installs bypass browser privacy sandboxing? That and some marketing guy thinking that app users are "sticky" and browser visitors aren't.

<comment><USER14> That certainly helps.

</comment></comment></comment><comment><USER17> "Before users can use your app you need to get them to download it first. So you will need them to: \- go to the App Store/Play Store \- search for your app \- click to install \- accept permissions \- wait for it to download In each of these steps you can lose 20% of your potential users."

True.

Then again, when users have installed the app they need to:

1) Open it by a single tap

<Automatic face id authentication>

2) Enjoy

With a web app:

1) Open Browser

2) Type in the URL or...

2) Open settings/options menu of the browser

3) Select favorites

4) Scroll through the list until you find your web site

5) Open the website

6) Realize you are not authenticated

7) Tap login

8) enter username

9) WTF was the password

10) Close the browser

11) Open lastpass etc

<Automatic face id authentication>

12) Search for the website and open it in lastpass

13) Copy password

14) Close lastpass

15) Open browser again

16) Paste password

17) Tap login

18) Enjoy...?

Not to even mention high performance 1:1 user experience vs laggy and slowly loading websites, safety of app store, privacy protection by "Sign in with Apple" etc.

From developers' perspective:

Mobile apps:

\- High performance

\- 100% access to local SDKs, features, hardware (not exactly 100%, but only limited by the OS)

\- Elegant, fast and safe languages with static typing such Swift and Kotlin

Web apps:

\- Slow

\- Limited access or no access

\- JS

Of course if you are developing software for media outlet etc. (app for reading news) then it's probably not worth the effort to build native app vs mobile first website.

<comment><USER14> Mobile apps:

\- High battery consumption and no way to control background services

\- 100% access to local user data

\- Fast and unsafe languages such as C and C++ (yes they also come in the SDK tooling)

Web apps:

\- Fast with WebGL 2.0, and proper use of hardware accelerated CSS

\- Limited access is actually a positive

\- WebAssembly

<comment><USER17> "High battery consumption and no way to control background services"

\- Doesn't apply to iOS apps and background services are controllable and automatically shutdown unless there is specific purpose such as streaming music. Apps abusing these rules will be rejected and removed from app store.

"\- 100% access to local user data"

\- Completely false. No access whatsoever unless explicitly granted by the user.

"Fast and unsafe languages such as C and C++ (yes they also come in the SDK tooling)"

True, but marginally used and personally I'll take fast and unsafe rather than slow and unsafe.

"Fast with WebGL 2.0, and proper use of hardware accelerated CSS"

"WebAssembly"

\- Valid points. These really are positive developments in terms of web dev. AFAIK WebGL would only give benefits in games and then you would be limited by connection and the process resources of the browser app. WebAssembly is cool, yet 99.999% of cases are basic React apps that don't get any benefits from either of these.

"Limited access is actually a positive"

\- Not being able to make the app that you want to make as an web app can be seen as positive I suppose. In native apps there is not direct access to almost anything, but once permissions are given, apps can fully utilize the OS/Hardware features.

<comment><USER14> 85% of the world doesn't enjoy those iOS benefits, as per mobile OS market share.

<comment><USER18> Do you develop apps targeted at China, India, etc? Once you ignore developing countries, the market share of iOS grows a lot higher. If you target North America for instance, you're close to 50%

<comment><USER14> Yeah, up to 28% in Europe, our main market.

</comment></comment></comment></comment></comment></comment><comment><USER19> As someone who drank the PWA koolaid, I think this understates one significant problem: IOS. Apple, as the article points out is lagging behind. This is an understatement to say the least. More accurately, Apple has an enormous amount of money to lose if people stop using the App Store, so there are "anomalies" in how things work which in the end made it impractical to build an equivalent experience. I gave up and haven't worked on this for a while, but the problem I ran into were from PWA's running in different sandbox from Safari. Have a cookie or local storage? - they are different and can't communicate.

The bottom line is that if you need IOS support, then before you jump on this bandwagon, make sure you can solve your problems of opening URLS (linking) and authenticating users.

<comment><USER20> Apple is a huge weight against PWA, but it isn't about money. Apple AppStore revenue is an afterthought when compared to the rest of their top line revenue.

It is about control and security. They would prefer to see every piece of code you run on their device than let you visit some random site.

<comment><USER9> Exactly control.

Netflix, Spotify, YouTube and so many others would love to have an app that lets them advertise their subscriptions without giving 30% to Apple.

Also having porn and gambling apps on the iPhone, even if it's not coming from the Apple Store would be a big no-no for them.

</comment></comment></comment><comment><USER21> PWAs have an impressive feature list, and the site he links to is a nice demo of this.

The main arguments to move this way (which are rational) are 1. Competition on app store (including installation funnel) and 2. 1 code base for all devices.

The kicker has always been responsiveness; perhaps this is a matter of technology (or implementation). People expect apps to be extremely responsive and it's important for the bigger players.

<comment><USER22> If the arguments for moving to PWA are all about improving the developer experience then as an end-user why should I care.

It just screams PhoneGap/Cordova 2.0 which equally had the same story.

<comment><USER21> Overcoming competition and the installation funnel is more of a marketing/bizdev issue than development. Being able to navigate to a web page and be using "the thing" is also a better experience of installation for the end user.

But for the actual using of the app, we're in total agreement.

</comment></comment></comment><comment><USER23> I think the arguments here (and in the article) are largely missing the truly valuable point.

For __most __businesses (not necessarily for Facebook, or even other mass- market consumer-facing companies), the decision of native vs. web is not purely about responsiveness at the "10ms vs. 50ms" level of granularity. The conversation is centered instead around ROI (return on investment), and thus development/maintenance costs are very important.

Thus, the steady march of progress in the PWA space is awesome, and will indeed lead to the decline of native mobile apps created in the corporate space -- especially for internal and B2B use cases (again, not necessarily for the Facebooks of the world).

</comment><comment><USER9> No, they won't.

No way is Apple giving up their 30%, if they can help it.

<comment><USER24> And they control the web browser engines on iPhones. And keep those with fewer capabilities than native apps. See the HTML audio recording API for an example.

Apple have a massive financial incentive to ensure PWAs aren't as good as native apps. If people start seeing PWAs as better or as good as native apps, say goodbye to the iPhone.

<comment><USER22> MediaRecorder API is in Safari OSX as an experimental feature and it looks like it's actually not working properly in WebKit: [https://bugs.webkit.org/show_bug.cgi?id=85851](https://bugs.webkit.org/show_bug.cgi?id=85851)

To be honest it doesn't seem like developers are jumping up and down for it so it's easy to understand why it's not a priority. It's open source so you're welcome to fix it I suppose.

<comment><USER24> They have to accept the patch.

Currently if you want a website that records audio, and you want an iphone user to use it, you have to make a native app, just what Apple would prefer.

</comment></comment></comment></comment><comment><USER25> I think for applications like LinkedIn you're really better off leaving it on the web as you can kill all of their tracking with blockers, this is not possible with the mobile app. So I prefer to not use LinkedIn or Google products outside of a browser. This is a big hole in the app ecosystem that Apple should plug.

Also it's easier to clean up the UI a bit with plug-ins if your really need to, I think there's a whole ecosystem of them for Facebook for example. So for that type of apps: no way I'm going to install them.

But there are so many websites that just take 1GB of RAM to render one tab of data, like JIRA. I guess one of the problems is that complex JavaScript applications are prone to leaking, unless it's built by a really good team like Visual Studio Code. But mostly more complex applications, applications that have advanced multimedia or performance requirements or simply applications that tie deeper into the native capabilities are better off as a native application.

</comment><comment><USER4> The same was said by People who built JS Based Mobile apps via React Native and similar.

Today even Messenger moved back to Native code from React.

<comment><USER26> > Today even Messenger moved back to Native code from React.

Nope.

[https://twitter.com/dan_abramov/status/1234801507805138945](https://twitter.com/dan_abramov/status/1234801507805138945)

<comment><USER27> Don't know why you're downvoted, Messenger was native code before the rewrite, not React (nor React Native).

</comment></comment></comment><comment><USER28> >> It makes you wonder why certain websites even have an app

Good article, but the answer to the point above always seemed obviously about being better able to identify users and pull their data - this is why so many apps offer functions that go through your contact list and photos (they can pull the contacts to work out who you know and hash image / other files so other apps can be sure they're installing on the same phone)

</comment><comment><USER20> I started building mobile apps in 2004 and this Unicorn / debate was already alive and well at that point.

Yes, most apps could be easily dropped with increased focus on web responsiveness. No, it won't happen wholesale for a variety of reasons.

Most interesting for me to consider is what does an 'app' look like when the target is a contact lens or a hearing aid.

Platforms will continue to evolve and native will continue to be preferred imho.

</comment><comment><USER29> I've written multiple PWAs and native apps for a variety of clients, and they're basically two different things at this point. As the author points out, iOS especially lags behind.

Right now, PWAs will not replace native apps in their current form. In particular:

\- Companies want to have an "app" in the "store". The app store is a huge search engine, and if you don't have an app in the store, then you're missing out

\- iOS limits the amount of offline storage you can have, and will just start deleting your data if you go over the limit, so you can't reliably store offline data

\- There are a bunch of APIs (especially on iOS) that PWAs don't have access to (there are a number of sites that show that, including the ones the author linked to)

So: PWAs are ok for some things - but will in no way replace native anytime soon :/

<comment><USER14> Android and UWP do support "app" in the "store", though.

</comment></comment><comment><USER30> I built PWA for [https://talksub.com](https://talksub.com) Please check it out on mobile as well as desktop.

I spent about one or two months optimizing for mobile.

There are still a few critical features missing from PWA. 1\. Mobile Notification - probably the most important feature missing from PWA 2\. Navigation / History - How history and navigation works are fundamentally different between mobile and web. For example, mobile app keeps independent history for each tab. 3\. Pull to refresh - Not as critical, but people are used to this behavior.

Other devices features and native apis are also unavailable. For basic apps, PWA is pretty good though.

</comment><comment><USER31> Well I think progressive apps have a long way to go. Now you are able to do things like photo editing and video editing in your smartphones. You can't have that with web apps only. Performance of browsers or webviews is very limited.

</comment><comment><USER32> I'm a native Android developer who is almost always interested in the new and shiny tool and my bet is on Flutter instead of PWA. The issue with PWAs is that it's tied up to the mobile browser. Things will never get reasonably standardized, your PWA will have random strange issues that you can't fix and your users will have a sub par experience. As a developer, you just don't want that.

</comment><comment><USER33> The reason native apps are used isn't because they are in any way superior than web apps.

The are, but that's not the reason for the majority of the apps, probably under 10% need this superiority.

The reason is marketing and prestige via the app stores and that they are easier to create walled gardens for customers.

<comment><USER34> for things I use all the time and don't want to fuss with the disaster that is mobile browser tabs, native apps are vastly superior. I have even bundled up and sideloaded "apps" that are just a web view that is pinned to a specific page for some things just so I have a button I can press that always takes me to the same thing and has no potential for extraneous functionality

<comment><USER33> From a dev point of view I prefer web apps to native apps, because meddling around with the app-stores, xcode and android studio is a huge burden.

From a user point of view I prefer web apps, because I often just have a browser open and switchting through web apps and they also allow me to share links, videos and images even if the app creator didn't directly implement this.

</comment></comment></comment><comment><USER35> There's stuff like Capacitor with which you can build decently native-feeling PWAs that can be bundled into appstore-ready trinkets if you so desire. I'm a huge fan of the insta-deploy feature PWAs offer tho and routinely lobby for them at my company.

Clients seem to prefer apps for some reason tho.

</comment><comment><USER36> PWAs don't have real network access. You are restricted like a website(i.e CORS)

</comment><comment><USER37> The type of Apps I make can't even be done in a browser in the first place.

</comment><comment><USER38> I'd challenge people who write these think pieces to build a PWA that rivals a native app.

Somehow the "best PWAs" are a few pages of static text and images. And many of them (like Twitter) have horrible UI behaviour.

</comment><comment><USER14> Not for high performace games,and scenarions that require hardware access APIs.

However for typical CRUD applications, nowadays often packed as a WebWidget, or Flash like applications (WebGL + WebAssembly), it is a definite yes.

</comment><comment><USER39> People who suggest PWAs have only done web development or have no budget for native engineers

</comment><comment><USER40> I'll bet the 3 apps that people spend most of their time in are all social media.

<comment><USER41> PWAs can show notifications but Apple refuses to implement notifications for PWAs on their platform. You can use Chrome on macOS to get notifications working there but on iOS you're stuck with Apple's decisions. It wouldn't make sense to add notifications for them since PWAs would obviously cut into their profit margin so don't expect PWAs to work on iPhones or Safari in general.

I use my Home Assistant as a PWA and the notifications work well on all platforms I use. Firefox is behind on desktop though, they don't seem to see PWA support as a priority like Chrome does. On mobile it works fine.

Twitter is already a PWA (though they don't advertise it much) which you can install on any modern browser onto your phone. I've installed it in Firefox on my phone and I've never considered downloading their app since. Outlook.com also has some pretty good PWA support. Those are the ones I know off (aside from a few local websites/web apps only available in my language).

I don't know about other social media though, twitter is the closest thing to social media I follow.</comment></comment>


Ask HN: What conventions do you use for naming your funcs, vars, ids & classes? - <AUTHOR>

<comment><USER2> First, use whatever popular formatting is used in whatever language you are in (i.e. in PHP - UPPERCASE for constants, camelCase for functions, etc.) Benefit is your code is just compatible with most of the other code out there.

then for me - be as descriptive and terse as possible in naming:

      function validateScheduleArray($schedulearray) {...

For database fields I include the referencing table in the fieldname, (foreign keys may have the other table's name):

i.e. contact table:

      contact_id
      customer_id
      contact_type
      contact_description
      contact_info

or for more specific if you have similar tables in a large database:

      videocontact_id
      videocustomer_id
      videocontact_type
      videocontact_description
      videocontact_info

with that you always have an idea where something originated from.

Also I tend to go with singular terms for names in tables and fields. (contact instead of contacts) for fields with multiple values I use something like: contact_statlist

The more your source reads like psuedocode the easier it is to understand and maintain.

</comment><comment><USER3> I try to stick to the most common conventions for the language I'm using.

For JavaScript this means:

* Classes use camelCase and start with an uppercase letter: BlogPost

* Constants are all uppercase: PASSWORD

* All other variables (including function names) are camelCase: getAllPosts

</comment><comment><USER4> You should probably specify in what language. I would use a totally different scene for C++, Java, C and so on. Normally I try and gravitate to the norm, unless there is something that anoys me.

For example I dislike C++'s standard to appending _m to local variables. ie vabiable_m. If you need to be specific just use this->variable.

For you JavaScript devlopers, If you want to really annoy fellow devs, try unicode!

var ♼ = 12; var ㊹ = 44.0; var π = 3.0;

<http://mathiasbynens.be/notes/javascript-identifiers>

</comment><comment><USER5> Classes: camelCase CONSTANTS: UPPERCASE variables_and_methods: lowercase_underscore

I think that's fine with PEP8. I'm not 100% on how to name things that can be abbreviated. I dislike using img, pwd, tmp or similar in my code, but js or id is fine and I often use db or app, but I don't feel happy about it for some reason.

</comment><comment><USER6> I name them as they are, in lowercase. Occasionally in Camel Case, in the event I have, say, a getter/setter. I personally dislike pressing the shift button to write stuff in camel case, it breaks my flow of typing (weird, I know.)

</comment><comment><USER7> I name them what they are. A piece of pizza is a piece of pizza, not a bowl of soup.</comment>


Why Pandora bought an FM radio station - <AUTHOR> http://thehill.com/blogs/congress-blog/technology/304763-why-pandora-bought-an-fm-radio-station <comment><USER2> I am not surprised they bought a radio station. I am surprised that it took them this long to do it.

I just think that it is silly that such games have to be played. I am sure Pandora didn't want to play these silly games, but sometimes you do what you have to.

Disclosure: I am a paying member of Pandora.

<comment><USER3> Exactly, I just smirked and thought to myself "Your move."</comment></comment>


Hotel Stays, Especially in Inclement Weather - <AUTHOR> http://whathelpsthehomeless.blogspot.com/2016/12/hotel-stays-especially-in-inclement.html <comment><USER3> A few years ago I ran into a girl I went on a few dates with on the corner panhandling. She was now homeless. But because she knew me she wouldn't take anything from me.

I told her she could stay with me for a bit and she said no, I offered to put her up in a hotel and she said no, I offered money and she said no. She did let me buy her lunch. I saw her at different corners around town and she would never take money. But I would sometimes swing by some place and pick up a breakfast biscuit for her.

I haven't seen her in a while now. I hope she got help.

<comment><USER4> Do you believe she was addicted to drugs or alcohol when you saw her on the street?

<comment><USER5> Did someone downvote this, because it's a perfectly valid question. It's maddening that this problem is so hard to solve or even manage to provide conditions slightly better than third world, and here we have a newly homeless girl speaking to a "former" I guess peer, and she won't take any help? Why?

<comment><USER6> As someone who's been homeless I'll try and answer from my own perspective. It is very difficult to accept help sometimes, especially from people you know. It's partly pride and, maybe, a fear that they'll always hold it against you somehow?

For example, I have friends and family who would have helped me out if I had asked but that's the last thing I would ever do, still wouldn't even though I know it's a sure fire road to ruin.

I got lucky and took help from a stranger at the first opportunity.

Not sure that explains anything other than saying human beings don't always act rationally?

</comment></comment></comment></comment><comment><USER7> There's something subtle behind this that I think is more powerful than the details of the housing. It's someone taking time to interact and treat them like a person. I believe that interaction and showing others we value them as people is one of the most important things for those living in isolation from society like many homeless people do.

There's no easy way to do this. It's hardly ever convenient. It isn't a foolproof means of turning situations around. It is, however, extremely powerful and desperately needed.

Do I practice what I'm saying? Sadly, not enough.

<comment><AUTHOR> I haven't yet written about it, but you might be interested in the film _But for the Grace of God?_ by Ron Garret:

[http://graceofgodmovie.com/trailer.html](http://graceofgodmovie.com/trailer.html)

<comment><USER8> Thanks for the shout-out, Michelle!

<comment><AUTHOR> It is excellent work and meets my gold standard for the site. * I would like to see it become a standard part of staff training at homeless services. I plan to write about it on the site, when I can figure out the right framing.

* [http://whathelpsthehomeless.blogspot.com/p/about.html](http://whathelpsthehomeless.blogspot.com/p/about.html)

<comment><USER8> Thanks. FWIW, GoG was not intended to be a trailing film. The target audience is people who have never interacted with homeless people beyond saying, "Sorry, can't help you." That obviously doesn't include anyone working at a homeless service.

While I was filming a number of my subjects did talk about what they called the "homeless industrial complex", and how it doesn't really care about getting people off the streets because that would put it out of business. I never found out how much truth there was to that, but if I were ever to take this subject back up again that is were I would probably start.

<comment><AUTHOR> Yeah, training tends to be sucktastic anyway. I used to have long discussions with people on homeschooling lists about the difference between _training_ and _education_ and how much of public school and college these days is _training_ rather than _education._

But your film makes a critical and surprising point that I strongly agree with: These are, first and foremost, _people._ We aren't some separate population. We come from the rest of the population, but our lives have fallen apart and one of the most problematic things is the way social ties get cut.

People with more normal lives tend to be oblivious to the social fabric that defines so much of their life and which buffers them against simply going off the rails when something negative happens. They don't see this difference between themselves and homeless individuals, yet the reinforce the isolation by the way they interact with the homeless (or don't interact at all -- effectively shunning them).

I was pleasantly surprised by the film. I think more people should see it.

<comment><USER8> Thanks. Anything you can do to help promote it would be much appreciated.

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> It is just me or is anyone else reading the comments getting the feeling that mental health issues are rampant today probably the most neglected space of health care or at least public awareness?

Shouldn't society and/or the government do more to increase awareness of these mental Heath issues and make information and treatments more widely available?

<comment><USER10> We're running out of problems to solve and it's a good thing.

Nobody cares much about mental health problems when the primary issue most people face every day is finding something to eat. As a corollary, I'd bet there are really significant causal forces at work in many mental health issues coming from exactly this – the lack of simple problems like food and shelter at the front in center of life combined with having the basic skills and environment to tackle those problems daily – drives many mental health problems.

Lots of people are depressed but almost nobody is starving, almost nobody is getting murdered or fighting in a war or dying of the common cold. Just about every baby survives, very few have to defend their home or their families from attack.... on and on and on. Human life used to be very rough and was not very long ago. We live in the most peaceful prosperous time in human history (and almost nobody seems to realize we're living in a paradise compared to a few hundred years ago).

<comment><USER5> Well yes, but man, homeless people live in terrible conditions, but I think even worse than that would be watching everyone go about their lives in seeming prosperity, knowing you used to be one of them and you can't ever get back, _and no one cares_. To me, that would hurt.

</comment></comment></comment><comment><USER11> Interesting. From the "About Page" on the blog...

 _" The author of this site has about six years of college, including an incomplete Bachelor of Science degree in Environmental Resource Management...After the class was over, she continued to volunteer at the shelter for several more months. Years later, while homeless herself, she started the San Diego Homeless Survival Guide and also this site."_

It's a shame the idea of helping the homeless via a night in a hotel is such a manually intensive effort. The article mentions paying in cash, I assume to avoid liability. Would be nice if there was a way to buy vouchers online that you could hand out.

<comment><USER12> While you could, I doubt hotels would want the reputation of being "The Homeless Hotel". Then there are other issues like drug use, untreated mental illness, etc that the homeless are more prone to.

<comment><USER13> Vouchers also don't do anything for the possible damage/theft. I used to work hotels, mostly 3rd shift, and none would ever have gone for that. They also all always require ID cash (photocopied if cash) or not; even in the ghetto.

Let me possibly shatter an illusion though. Staying at a "nicer" more expensive hotel in not-the-ghetto doesn't make it safe or secure or have any less problems than the cheap ghetto ones. It just means the room _might_ be cleaner and you _might_ be compensated something for bitching instead of told to fuck off. I worked both.

I saw a lot of shit and basically if you go in and they look like they're cutting corners on things like, and I shit you not and am quoting an Indian manager fresh off the boat "We're not required to have coffee creamer", run the fuck away fast. I saw similar places not wash sheets to save soap money (different hotel, same mind set). I saw meth labs in "nice" hotels. It goes on.

But you're right they wouldn't do it just for the "reputation of being a homeless shelter" alone.

<comment><USER14> > Indian manager fresh off the boat

didn't help me understand the point of your story, but did cast doubt on your credibility.

<comment><USER15> This seems to imply that you haven't experienced the full gamut of motels in operation in USA. The percentage of innkeepers who are Indian is higher than that of pretty much any other occupation.

</comment></comment></comment></comment></comment><comment><USER14> It seems like the article is long way around of saying that people want or need nicer accommodations than today's shelters. The difference between a "shelter" and a "hotel" is (a) of/how you pay (minor detail), and (b) the quality of the accommodation (privacy, security, comfort).

</comment><comment><USER8> Back in 2006 I spent two years trying to get a homeless person off the street and made a movie about it:

[http://graceofgodmovie.com](http://graceofgodmovie.com)

</comment><comment><USER16> I think there's something being missed here by a lot of commenters. The title of the blog isn't "What Solves Homelessness", it's "What Helps the Homeless". As in, right here, right now.

It doesn't take systemic or policy level changes to make someone's day/week better.

</comment><comment><USER17> Idea that the homeless have nowhere to go is a stretch (really, ask them, don't take my word for it) - and if the author's advice is followed, your basically spending in a single night (few hundred) what it would cost to feed them for a whole month.

<comment><USER18> > _Idea that the homeless have nowhere to go is a stretch (really, ask them, > don 't take my word for it)_

Everything I've read says that while shelters are available, they typically have very strict schedules and policies, and staying there opens you up to theft and assault.

<comment><USER17> Much like hotels, shelters are not responsible for the security of your things and I assure you that hotels have more thefts than shelters.

As for assaults, no shelter is going to allow an assult to happen and if an assault does happen, the police would be called. If you believe assaults are common at shelters, which they are not, call a shelter or the related police station and ask how many assaults they have had reported in the past year.

Everywhere has rules and polices, including hotels. Shelters are free and they have reasons for the rules.

<comment><USER19> >> call a shelter or the related police station and ask how many assaults they have had reported in the past year.

• If assaults happened in shelters, why would the shelters ever tell you?

• Why would anyone ever tell the police? I can't imagine the homeless victims would want the police MORE involved in their lives.

• Even if someone told the police about an assault at a shelter, would they bother to investigate, or keep records? Police have incentives to reduce crime stats, which isn't the same as reducing crime.

<comment><USER20> > would they bother to investigate, or keep records

They absolutely would[1] here (central/east Europe). Is it different in the US?

[1] I run a local news site and we get these kind of stories all the time. Not just press releases from state or municipal police, but messages from the people themselves.

</comment></comment></comment></comment></comment><comment><USER21> I've known some homeless people, and for them, it was mental illness that kept them on the streets. They thought everyone was out to get them or control their life. It's a shame that they all want the handouts, but they don't want to follow any rules that come with it.

What I realized is a lot of these people don't want any responsibilities. They're not willing, or able to accept that life sucks for everyone. The governments need to start offering better mental health care that doesn't involve locking people up in hospitals (something an old friend of mine had happen to him, and it caused him to lose trust in everyone).

I don't think giving people hotel rooms is going to solve any problems - <USER2> anything it's just enabling it. A better solution is to expand affordable housing and job programs so people start to get back on their feet while ultimately leaving the decisions up to them. Ultimately if they want to live under a bridge that a choice they've made and there's nothing we can really do about it.

<comment><USER22> You hit the nail on the head, and then turned it into a condemnation and missed the point and problem entirely.

It's mental illness. The reason they won't "follow any rules" is because they're mentally ill. There's no easy answer, and saying "there's an easy answer, but it won't work for them" isn't actually an easy answer.

Many of them are very mentally ill, and living under a bridge is not a choice they've made willingly.

If someone's too mentally incapable of holding a job, or reading, or clothing themselves, then is it right that we force them under a bridge?

Note: I am responding to your comment, not to the practicality of the article's proposed solution.

</comment></comment><comment><USER23> > The current shelter system very often warehouses people in conditions that > would not be acceptable for any kind of paid accommodations, whether it be > temporary accommodations (like a hotel) or permanent (like an apartment or > house).

I'm curious how homeless shelters compare to (paid) hostels, which are far more economical than hotels. They're (I assume) both in a dormitory setting.

Hotels are obviously not economically feasible as a long-term solution. I think the risk of this proposal is that they are _not_ a reasonable on-ramp to society, as even if you can get a stable job you almost certainly cannot afford to live in a hotel full-time. On the other hand, some sort of hostel- style accommodation would be reasonable.

</comment><comment><USER24> I think we should shine the spotlight on the number of homeless. Instead of the weather/temperature and the rise and fall of some key stocks at the end of a news broadcast, we should also report the number of homeless by region and whether it has gone up or down. It certainly feels like it should be more important.

<comment><USER25> That's a number that's both hard to accurately count just because of the population you're trying to measure and unlikely to change very often because of the cost and difficulty of measuring it so I'm not really sure it'd really have the effect you're looking for.

</comment></comment><comment><USER26> Interesting idea. Do you know of any case where it has worked? From the way the article was written I was sort of expecting to hear a case study.

Speculation roundup:

There are two economic values of a homeless person, actually any person, but I digress. P is the cost, to the state, of keeping that person alive and medically stable, which includes police and health services, as well as shelter costs, soup kitchens, etc. V is the value generated by the homeless person through their labor, which varies much more than some people expect. Many homeless people have jobs. But for many homeless people it's zero.

Ways of decreasing P include a number of creative policies designed recently as well as "short-term" tolerance of outdoor living. Ways of increasing V by contrast are generally limited to:

* standard inpatient mental health "treatment", has a slim chance of success and a large chance of backfiring and setting V to zero for a long time, also sends P through the roof

* outpatient medication, has a similarly tiny chance of success but a smaller chance of backfiring and is much cheaper

* prison labor, effective but brings to mind immediately _The Road to Serfdom_ and other dystopian fictions (heh)

* ???

Creative ways of increasing V ought to depend on economic fundamentals, i.e. finding out what a homeless person is good for and exploiting that, to wit: homeless people tend to beat normal people at dealing with homeless people. They might also be able to help out with e.g. trash pickup or road maintenance. The typical road-map people envision for increasing V looks like this:

homeless -> [treatment] -> normal

but in reality looks more like this:

very low V -> [treatment] -> low V -> [more treatment] -> slightly low V -> [more treatment] -> mediocre V -> [more treatment] -> with luck normal V

The typical way of dealing with the intermediate stages currently consists of either locking them in a small compound with shitty beds and twelve other crazy people or giving them a bottle of pills and hoping Jesus can handle the rest. This, really, is the problem. Halfway housing for homeless people might look like a situation where housing is provided in return for part-time labor.

I'd also like to point out that while in "treatment" for homelessness it might not be reasonable to demand _complete_ sobriety when you consider that you're preparing them for eventual release into a world where they'll be allowed to drink alcohol and smoke cigarettes and probably marijuana and their drug use will not be so heavily monitored. Supporting the development of self-control means that people have to be able to have a little control in the first place, and the ability to make small mistakes before making big ones

<comment><USER27> If you want to look at it from a purely numbers perspective I suggest we re- label some of your variables.

Net value (delta, etc) being the summation of all Costs (you call this P for some reason) and all Benefits (You call this V, which is why I'm calling the result 'net').

We will presume humane solutions only. We are unwilling to leave people to die of sickness, mal-nutrition, exposure to the elements or lack of social safety mechanisms. To allow any of those preventable deaths is to admit that our society is morally and/or financially bankrupt.

In short, letting them die or killing them isn't a solution.

So, as a society, we must make them human again.

Survival: We must ensure that they are able to fulfill their daily physical needs. They also require shelter, and medical care; just as everyone else does.

Belonging: It is in society's best interest to identify what types and how much work needs, or is desirable to be, fulfilled. It is also in society's best interests to identify potential workers that can meet these needs and offer them training in that type of work. This can't really help with relationships, but forming a stable life and a community that can include the worker is a good foundation for that to happen within.

Empowerment: Belonging, and being 'useful' and desirable to have around are likely the underpinnings of esteem and a sense of having worth. Without these building blocks there is little hope of becoming more than a slave animal or worse.

Fixing these issues would help everyone, not just the most disadvantaged.</comment></comment>


Show HN: Java Returns to the Browser with TeaVM - <AUTHOR> https://blogs.oracle.com/javamagazine/java-in-the-browser-with-teavm <comment><USER2> Cool stuff. I wonder if and when it will target webassembly

<comment><AUTHOR> There is a webassembly target, but it is currently considered experimental:

Demo: [http://teavm.org/live-examples/jbox2d-benchmark/teavm- wasm.h...](http://teavm.org/live-examples/jbox2d-benchmark/teavm-wasm.html)

Build flags for web assembly: [http://teavm.org/docs/tooling/maven.html](http://teavm.org/docs/tooling/maven.html)

</comment></comment><comment><USER3> I can't remember a single java app I ever enjoyed using. Why are we going back here?

<comment><USER4> JetBrains IntelliJ IDEA

I used to develop the Forex trading app for OANDA using desktop Java. Don't know that 'enjoyed' is the word I'd use it but it worked pretty well at the time keeping up charting realtime rates.</comment></comment>


Hanlon's razor - <AUTHOR> http://en.wikipedia.org/wiki/Hanlon%27s_razor <comment><USER2> I think "Grey's law" is actually more relevant in most cases:

 _"Any sufficiently advanced incompetence is indistinguishable from malice."_

Sometimes motivations matter, sometimes motivations are irrelevant because the damage is the same regardless of intentions.</comment>


Google Chrome set to take over IE in market share - <AUTHOR> http://www.cnn.com/2012/01/04/tech/web/google-chrome-browser/index.html

<comment><USER2> It's no coincidence when you see tech oriented sites have visits from 30-40% of Chrome owners (or Firefox owners a few years earlier), when the general market share for Chrome only had like 10%. And then a few years later the general marketshare reflects the marketshare on tech sites from a few years before.

Bottomline is browsers need to win over the tech crowd, or they will fade away. Firefox did that to IE, and now Chrome is doing it to both Firefox and IE.</comment>


Curated list of blog posts complaining about Go not being good - <AUTHOR> https://github.com/ksimka/go-is-not-good <comment><USER2> When reading the list of problems from each article in that page it reminded me of the famous phrase by Rob Malda (Slashdot's creator) when the iPod launched:

"No wireless. Less space than a Nomad. Lame"</comment>


I make $10k per month with the Amazon Affiliate Program - <AUTHOR> https://www.reddit.com/r/Entrepreneur/comments/6lmotf/i_make_10000_per_month_with_the_amazon_affiliate/ <comment><USER2> I've been burned by the Amazon Affiliate Program on three separate occasions, and as a result I would not recommend it to anyone else. All three cases were for completely legitimate, high-quality websites that I created (all original content, decent traffic, good conversion rates, no gimmicks). Each time, I would be approved for the program, generate a few hundred dollars in referred sales over the space of weeks or months, and then Amazon would send me a message that my account had been terminated (and of course, no way to get any of the commission I had earned).

Each time, they pointed me to a part of the agreement that says you need to have "original content" that isn't primarily just ads. In each case, I know the content was original (I created it: mostly articles about DIY electronics, 3D printing, etc), there were no other ads on the sites other than a few (2 or 3 per page) affiliate links where I mentioned products that I had incorporated into my own DIY projects.

I wasn't able to get any further explanation from Amazon in these cases, so I don't even know _why_ they kept shutting down my accounts - and I guess that's what concerns me the most. Even if they _hadn 't_ shut me down when they did, the fact remains that they could, at any point in time, shut down or significantly alter the terms of our "agreement" at their (seemingly arbitrary) will.

<comment><USER3> If you lost enough money from this it sounds like it might be worth getting a lawyer involved

<comment><USER4> No reason to get a lawyer involved. If Amazon owes you less than $5k then file a small claims case against them.

<comment><USER5> In some states, the small claims limit goes up to $25K. They closed my account in the past and I took them to small claims for the five figures they owed me and I won.

I know of two other people who also took them to small claims and won as well. (both in states with five figure small claims limits)

</comment></comment></comment></comment><comment><AUTHOR> Some interesting takeaways further down in the OP's answers:

\- Has "zero" web dev experience; everything is built on Wordpress and plugins.

\- Gets "a couple hundred thousand PV/mo"

\- He picked an broad niche that he himself doesn't particularly care about.

\- Amazon's change to their commission rates last month hurt his income by about 25-30%

I found this part amusing:

> _I filled my site with a few dozen high quality pieces of content, then > started outreaching to other bloggers in my niche, either asking for a guest > post or asking them to check out a piece of content /infographic I just > created and asking them if they'd "share" (link) it with their audience (aka > the skyscraper technique)._

I get these goddamned emails every week, sometimes a dozen from the same person asking me to mention their blog post about SQL because I happen to have a page that ranks fairly high for some general SQL info apparently. Never thought the SEO actually paid off (these request emails look like they're generated from a template that can be easily automated(.

<comment><USER6> I'm interested in getting started with Amazons affiliate program. Whenever I go to research things, I find many stories like this one. But I don't want to pursue this track. I have dev experience, don't want to pay for views, want to write in a narrow niche I enjoy, and I don't care about the lower commissions to boot. I'd be beyond thrilled if I made made more than a hundred bucks a month.

Where can I find information about this path, versus the substanceless course this person took? I haven't had a public website in a decade and just want to know how to do things decently well and not get into trouble.

<comment><USER7> One tip for not getting into trouble is to _not_ use SSL on the site you are sending traffic from (or use a referrer policy meta tag so that the browser is authorized to pass the referrer from your SSL page). SSL results in blank referrers by default. A friend had his Amazon account banned and earnings confiscated because his traffic had blank referrers.

<comment><USER8> This is not correct. SSL only blanks referrals to non-HTTPS links, the referrer _is_ passed _by default_ to all HTTPS links.

Since HN is using HTTPS, this should be very easy to test by just clicking on this link: [https://www.whatismyreferer.com/](https://www.whatismyreferer.com/)

Note that HN includes this line of HTML which affects the sent Referrer header:

        <meta name="referrer" content="origin">

<comment><USER9> Interesting! Any idea why HN sets the referrer to origin?

<comment><USER10> The HackerNews repo is gone (and thus the issue), but at one point this was a Github issue I successfully filed to get HN to add it so their referral data for non-SSL pages wouldn't be lost:

[https://github.com/HackerNews/HN/issues/68](https://github.com/HackerNews/HN/issues/68)

(Background: [https://news.ycombinator.com/item?id=7197520](https://news.ycombinator.com/item?id=7197520))

IIRC, I think the developer was open to adding a referral, but not have it leak any on-site information, so this was a compromise.

</comment></comment></comment></comment></comment></comment><comment><USER11> So he's making $10k a month, and his trick, he says, is to have "high-quality, exceptional quality" content. But he does not write this content himself; rather, he pays $700 to "an expert copywriter in my niche [...] (he's a superstar)".

Seems like the real trick is to find someone talented but unaware of how much money they can generate on their own, and use their work to make money.

Now clearly, he's adding value, since that writer alone wouldn't know how to turn their writing into $10k a month. But I wonder if that writer is aware that their work is generating that much, and that they're only seeing 7% of it.

<comment><USER12> The core tenant of getting ahead massively in a capitalist society -- arbitrage. Exploitation of inequality of knowledge and/or opportunity is always a faster ticket to success than actually producing anything of value.

<comment><USER13> >tenant

tenet

<comment><USER14> A true capitalist would make them pay rent!

</comment></comment></comment></comment><comment><USER15> > consistently does between $10,000-$11,000 per month in revenue.

> an expert copywriter in my niche who I pay about $600-$700 per month (he's a > superstar).

> we're talking about $9,200-$10,200/mo in pure profit

Honestly the only thing I get out of this post is that to me it seems like his superstar copywriter is being ripped off.

Clearly I'm not cut out for entrepreneurial side hustle!

<comment><USER16> Dude could have just as easily (probably far more likely) have paid his writer for 6-8 months and ended up with a dud site. Writer is free to take that risk as well if he so chooses. Instead he's taking the less risky fixed payment.

<comment><USER15> That is a good point, and at the end of his post he did say that he paid the writer a bunch upfront at the start as well.

</comment></comment></comment><comment><USER17> If I was going to spend this much time and effort creating content and building a site, I'd certainly not be sending the traffic and sales over to Amazon.

I'd most likely be drop-shipping products or actually carrying some inventory and then doing the shipping myself.

In the long run, it's much easier to sell a profitable business than sell an affiliate site. With the traffic and search engine rankings, I'd do a few things:

\- Transition out of being an Amazon affiliate and start selling your own products, even if that means drop shipping or carrying inventory

\- Change the overall look and feel of the site so that it's a real business with brand

\- Use alternative methods of getting traffic to the site, other than Google organic search results. Develop an email list/email newsletter, test out FB ads and other paid search alternatives.

If you build a brand and actual store (rather than being an affiliate), it's a lot easier to cash out later on.

<comment><USER18> I was going to suggest maybe the guy involved wasn't interested in flipping the business & was happy working 5 hours a week and being able to run the business from anywhere.

However, the OP replied to this same comment over on Reddit [1]:

"Great feedback, and I agree. eComm is Phase 2."

[1] [https://www.reddit.com/r/Entrepreneur/comments/6lmotf/i_make...](https://www.reddit.com/r/Entrepreneur/comments/6lmotf/i_make_10000_per_month_with_the_amazon_affiliate/djwhndj/)

</comment></comment><comment><USER19> This seems like a cheap way to make money. You're basically filling Google search results with garbage. If I'm looking for recipes I want to be directed to Kitchn or Serious Eats or Chowhoud - no some blogspam site with tupperware container links.

Searching for things on Google is useless when the first 3 pages are just pages full of affiliate links and no real content. I don't know why they don't eliminate those pages from their rankings, or at least score them lower.

<comment><USER20> What if the site is genuinely useful, though? I like The Wirecutter for technology opinions, and affiliate links are the only way they make money. It seems like a win-win(-win) to me, if the products are actually things the visitors want to buy. They're a more informed and more satisfied consumer, Amazon (or whoever) gets another sale, and the blogger gets a commission.

<comment><USER19> >> What if the site is genuinely useful, though?

I'm perfectly fine with that. Serious Eats uses affiliate links (and also has other advertising on their site). I have a ton of respect for the work it takes to do what they do.

What I'm not okay with is someone building tons of Wordpress sites and filling them with stock photos of food and recipes they found online, and linking to Amazon.

<comment><USER20> Yes, hopefully those sites will not be successful because they do not provide any value to consumers. I don't see how sites like that could get high rankings on search engines, though. Who actually wants to see those? Then again, I know nothing about SEO.

</comment></comment></comment></comment><comment><USER21> I'm sorry but I call bullsh*t on a lot of aspects on this story. I think this may have been true 5-10 years ago, but not now, not the way the Web works now. Everyone ignores those cross-link e-mails. Getting the amount of articles he says is NOT enough; you need more. You just don't get high-quality content for .05 cents a word. And that's just for starters. I know, why would this person lie? But really, for those of us who do the Web day in, day out, there's a lot that just does not ring true in this post.

</comment><comment><USER22> Bragging about the revenue of the own affiliate site is part of the affiliate marketing scheme. I read it on the internet, it must be true...

</comment><comment><USER23> i find this very disgusting

<comment><USER24> This is just another form of marketing, and marketing does create value. It's true that some marketing is dishonest and harmful, but I don't have a reason to think this is one of those cases.

This person is providing a service in reviewing products for people making buying decisions. As a result, they waste less time being unsure about their decision, and less money is spent on purchases they regret.

<comment><USER25> i really disagree that marketing creates value, at least the current state of things. to me, marketing looks like a big prisoners dilemma that i have to actively ignore and filter in order to make good decisions.

<comment><USER26> > _i really disagree that marketing creates value_

Have you never found a product you wouldn't have heard about had it not been for an ad or something like it?

<comment><USER27> If marketing were really about "product discovery" there would just be a yellow pages for all products and we'd call it a day.

It is a zero sum game of trying to get a manipulate a consumer to like your product over another.

<comment><USER28> spot on. Do people need McDonald's ads to inform them about McDonald's products? Maybe in a few rare cases. It's not about information, it's about manipulation.

</comment></comment></comment></comment></comment></comment><comment><USER29> Makes you wonder if he's netting $8-9K per month for 5-10 hours a week why he doesn't just quit his day job?

<comment><USER30> Thought 1: Wow, I've replaced my income

Thought 2: Or, I've _doubled_ it.

It's easy to go for 2 for a while and then go with 1

<comment><USER31> or just wake up one day and decide to retire early

<comment><USER32> Early retirement (significantly early that is) does not tend to do well for folks who take it. The loss of mental faculties once you have a reason to stop using them is astounding. The ones who are most successful tend to "retire" and then switch to low paid or unpaid volunteer work full time.

</comment></comment></comment></comment><comment><USER33> Is Amazon still the only real large-scale affiliate program? I'm surprised Amazon is so unique in this when lots of competitors are trying to break into that space.

Any other affiliate programs recommended?

<comment><USER34> Amazon does their affiliate program in-house (It's just the &tag=affiliate-id on the regular URL. Many (most?) others use third party affiliate providers.

Adblockers often block third party affiliate providers.

</comment></comment><comment><USER35> Nice article. Does anybody here tried Udemy (or other online course affiliate) affiliate? Any success stories for the same?

<comment><USER36> Just an average Udemy creator here, but maybe what I've learned is useful.

I started doing Linux tutorials on YouTube a few years ago ( [http://youtube.com/c/tutorialinux](http://youtube.com/c/tutorialinux) ) and then created a course on Udemy about a year ago. Affiliates make a decent percentage there (75%) but I suspect they have the same frustration that I do: Udemy has sales EVERY FEW DAYS.

Every few days there are sales that offer 90% off all courses, $10 courses, etc. etc. So a course with a $200 price tag will have an average sale price of $10-15, which leaves everyone (including affiliates) with pretty slim margins.

The simple problem is that they have the power to re-price courses as they see fit, and an incentive to do so (Udemy gets 50% of the revenue, possibly more from their promotions).

As it is, I make about the same amount of money from YouTube revenue (40k subscribers) as I do with one of the highest-rated Linux courses on Udemy (a few hundred dollars a month). It's really just a blip next to my salary; I can't see it replacing full-time tech work anytime soon.

<comment><USER37> I would second what Dave said, and have you look at this front pager from yesterday: [https://news.ycombinator.com/item?id=14711492](https://news.ycombinator.com/item?id=14711492)

<comment><USER36> Yeah, I'm not sure why I haven't started running AdWords campaigns yet, but I need to get on that. I'll try that; thanks for the kick in the pants!

</comment></comment></comment></comment><comment><USER38> I can't even begin to imagine putting in this amount of work and effort - while he may "only" spend 5-10 hours a week currently, apparently there was a lot of upfront effort - on something that is fundamentally of no interest to me: it really is just making money for money's sake, isn't it?

<comment><USER39> Or for the sake of the things money buys.

</comment></comment><comment><USER40> I am not sure if this model will work if you develop a content aggregator site.

</comment><comment><USER41> Makes me think about youtubers like Casey Neistat who post Amazon affiliate links in every video description. He's getting around 2m views per video. Wonder what that generates..

</comment><comment><USER42> I'm not sure I understand, is this similar to the articles by comparison websites (e.g. The Wirecutter), or is he wholesale copy-pasting content from those sites & making affiliate money?

</comment><comment><USER43> _The trick is, it has to be high-quality. Exceptional quality. Read some articles on Greatist.com and you 'll see exactly what I'm talking about. If you can write (or find a writer who can write) that type of content, then you're in business._

Describes his only employee, a writer, as a 'superstar' but pays him only $6-700/month while keeping $10,000 for himself. Sorry, that's sleazy. Give him more money you freeloader.

</comment><comment><USER44> I've seen several stories like these lately. But no actually proof, no links to web sites etc. This might be an effort from Amazon to get more affiliates.

<comment><USER45> Publishing the website will get you more copycats. It will reveal your backlinks and SEO strategy.

It will also get more people to find your Amazon affiliate ID and look for it on google. Which will reveal all your Amazon affiliate websites.

</comment></comment><comment><USER46> How stable is this? Are you always one algorithm / policy change away from disaster?

It seems to rely primarily on Google ranks. Good gig if you can generate them.

Anyone have any other perspectives on how difficult this is?

<comment><USER47> I made $600 with some friends on Amazon's affiliate program with a couple weeks worth of Facebook advertising, but I personally wouldn't recommend it as more than a side business. It doesn't scale very well due to the massive number of conversions you need, it's hard to track performance since you can't cookie the potential buyer, any sales outside of your country is usually lost (you have to sign up for separate affiliate programs for each country to make money abroad) and of course you're at the mercy of Amazon's business decisions.

It's better in the long term to set up your own store and build up lifetime value around your own brand, which is what I'm currently doing. You can start out that way dropshipping from AliExpress or with print on demand products. It's more work, but it's also more stable and of course scales a lot better.

But an even better suggestion is to build SaaS products. It scales even more and not many people know how to do it.

<comment><USER48> Very experienced people have told me to sell my VPN routers[0] on amazon, and I never, ever will. I own the distribution, I own the content, I own the marketing. I'm probably leaving a good chunk of revenue on the table, but overall I think it's the better longterm solution.

[0] [https://easyvpnrouter.com/](https://easyvpnrouter.com/)

<comment><USER49> Offtopic, but it says you use OpenWRT and LEDE so - is there a link to the source somewhere?

<comment><USER48> I say it in the FAQ, but it's just vanilla LEDE, and the mobile app uses the JSON-RPC API to communicate. The mobile app isn't open source, but the everything on the device is in UCI, cron, and /etc/openvpn.

The magic isn't in the device, it's in the flashing and configuring it for non-technical people.

<comment><USER49> I'm pretty sure you still need to provide source to the version of LEDE you use, at least to your customers.

<comment><USER48> opkg can give current release and package info.

But I think you are missing the point here - people who are asking the questions you are asking aren't my typical customers. It's some random guy who has never heard the word "linux".

<comment><USER50> No the op's point is that to comply with the licence you need to provide the source to customers that ask for it. She's trying to save you some potential trouble.

<comment><USER51> If his customer asks, he doesn't need to do shit if his customer doesn't ask. My recommendation would be do what the likes of Toshiba do for their TVs include in the product an offer with an email address on some hidden copyright page.

<comment><USER52> That offer is in fact mandatory, if one doesn't want to include the source.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER53> Making money through deception and lies is nothing to be proud of son.

<comment><USER54> Perhaps I've overlooked the obvious, but where is the deception and lies?</comment></comment>


Pijul version control system - <AUTHOR> https://pijul.org/ <comment><USER2> Looks like a faster darcs. For anyone who has never used darcs a brief description is in order. Darcs is a revision control system based on something called "Patch Theory". That gives it some interesting properties. But for the user this translates into the possibly the clearest easiest to use interface of _any_ DVCS out there bar none. It's merges are the least painless of them all in my experience.

t's glaring flaw though is that it has historically been really slow as the repository grows in size. They've improved this since but it still can't compete with git and hg on speed. If it were faster though I'd use it in a heartbeat. Pijul looks to be a refinement of the darcs algorithms and thus much faster as a result. I'll definitely be watching them as they progress.

<comment><USER3> You didn't really say what "patch theory" is. Can you describe or provide a link?

<comment><USER2> [https://en.wikibooks.org/wiki/Understanding_Darcs/Patch_theo...](https://en.wikibooks.org/wiki/Understanding_Darcs/Patch_theory)

</comment></comment></comment><comment><USER4> Sounds like it aims to be a (much) faster darcs. But between the name and the fact that they are trying to maintain two separate codebases (OCaml and Scala) that both do the same thing, I'm not super optimistic about its prospects.

<comment><USER5> That should make you _more_ optimistic! They want to make sure that the data format is well-specified from the very beginning, ensuring that there can be a third-party ecosystem that doesn't have the issue Git has right now where the only real definitive definition of Git's data formats is Git, yet people expect libgit2, JGit, etc. to work.

</comment></comment><comment><USER6> > ...snapshot-based systems can be extremely fast, but require an in-depth > knowledge of their internals

This is false, as demonstrated by Mercurial.

<comment><USER7> I dunno, Mercurial Queues are pure black magic that only the most advanced dark wizards can possibly understand.

<comment><USER8> Please don't use mercurial queues. histedit, rebase and the recent changeset evolution extension allow you to do everything while having first class history and merging support. Also far easier to understand than git. Useful links (first 2 slightly Mozilla specific):

[http://ahal.ca/blog/2014/new-mercurial- workflow/](http://ahal.ca/blog/2014/new-mercurial-workflow/) [http://ahal.ca/blog/2015/new-mercurial-workflow- part-2/](http://ahal.ca/blog/2015/new-mercurial-workflow-part-2/) [http://evolution.experimentalworks.net/doc/](http://evolution.experimentalworks.net/doc/)

</comment></comment></comment><comment><USER9> Couldn't easily work out how it compares to git/svn/mercurial/darcs/bazaar.

A comparison to any one of those would do wonders for the landing page.

<comment><USER5> It presents the same conceptual UI as Darcs (it's patch-based, not snapshot- based), but provides the performance of Git and Mercurial. It does that by changing the internal storage of how patches work compared to Darcs. If you know Darcs, that's your entire sales pitch: Darcs, but now performant.

For everyone else: In Git and Mercurial (and Bazaar, Monotone, Subversion, tla, Fossil, TFS2, and others I'm forgetting), the state is always represented conceptually as a snapshot of the current revision and a pointer to the snapshot of previous revision or revisions, so if you identify that you're at "snapshot 590", and I'm also at "snapshot 590", we're both at the same thing, and both have exactly the same history of how we got there.

In a patch-based system, like Pijul or Darcs, that's not true. The state is instead represented by _the set of applied patches_. These usually have an implicit ordering, but you and I can theoretically have the same patches applied and have a different ordering. (We also can _briefly_ have different resolutions to merge conflicts that result from that, and Darcs' historical inability to deal efficiently with you and me resolving conflicts differently is a major reason it doesn't scale well.)

That sounds weird, but can have major benefits. For example, I can now sanely cherry-pick a bug fix from you regardless of the history of that bugfix--and, unlike in Git and Mercurial, Darcs/Pijul will know that the patch I cherry- picked from you is _the exact same one_ that you have on your branch. No duplication, Cherry-Pick: messages, or merge collisions will result if I later pull in your whole branch (or vice-versa). You can also do things like have a patch that has all of your security settings, but always simply not push that when you push out to a public server. (N.B., giving this as an example, not best-practice.)

If Pijul works, and can provide Darcs' model in an efficient way, it'd be really awesome. I'm not sure whether it'd be better than Mercurial or Git's model at scale, but it's been really hard to answer that question historically when Darcs itself didn't scale well. Pijul could change that.

<comment><USER10> "That sounds weird, but can have major benefits."

I give git training at work with some frequency. I now briefly discuss this sort of patch-based workflow, explicitly so I can tell people it's not how git works, because in my experience, it's what most people naively expect out of a version control system. Same problem when people try to work out workflows for git. I hypothesize that the reason for the profusion of git workflows is precisely that we _really_ want a patch-based system. Or, in other words, it's not really weird; snapshot-based systems may be weird.

It never comes up in SVN or similarly klunky systems, because they're too incidentally complex to notice the underlying essential mismatch. Git and friends, to their credit, made the incidental complexity go away, but I think the essential complexity of their approach is still higher than it ought to be. I wish pijul all the best, because there _is_ room for improvement here.

And may I suggest to the pijul team that they really, really want a Pijul-hub as soon as they think they're even remotely ready.

<comment><USER5>
        I give git training at work with some frequency. I now briefly discuss this
        sort of patch-based workflow, explicitly so I can tell people it's not how
        git works, because in my experience, it's what most people naively expect
        out of a version control system. Same problem when people try to work out
        workflows for git. I hypothesize that the reason for the profusion of git
        workflows is precisely that we really want a patch-based system. Or, in
        other words, it's not really weird; snapshot-based systems may be weird.

I actually agree. I advocated for DVCS-based workflows for a long time, but I think it speaks volumes that I "got" Darcs within about 20 minutes of first seeing it and playing with it, but I know for a fact that, somewhere in the Freenode archives, you can find me saying "The frak is Mercurial? The frak is Git? The frak is this?" as I tried to grok what on Earth they were doing--and this after having taught myself tla!

That said, just because _something is intuitive_ doesn't necessarily mean that _something is best engineering discipline_. I want a Darcs-like workflow to be the dominant one specifically because it's intuitive, but I'm very open to the fact that it might be a really, _really_ crappy way to build a sane (forget performant) large code base.

Or it may be exactly what we've always wanted.

The simple fact is that I have no idea. This industry, for all the "science" in CS, has got to be the least results-based discipline I'm personally aware of. Pijul will at least permit anecdotal tests of how well patch-based systems scale _as a workflow_ if it takes off, but I'm not holding my breath on someone doing a genuine A/B productivity/trade-off study.

</comment></comment></comment></comment><comment><USER11> SHA-1 and 32-bit time for a new project in 2015?

<comment><USER8> I understand the 32-bit time not being a good idea, but why is SHA-1 bad for a non-cryptographic application?

<comment><USER11> Because a hash function in version control system is a cryptographic application — it's important to be able to verify the integrity of repository.

<comment><USER12> I think the GP question is not trivial.

The rationale behind SHA-1 being obsolete is that it will be used for password protection. The back end stores Hash(password+salt) and uses it to grant access. Finding _any_ password_prime which causes a collision with password on Hash(p+salt) will brake the security of that scheme.

In this case, instead, the problem from the point of view of the attacker is to find repository_prime such that...

1\. Is a syntactically correct program...

2\. It is syntactically and semantically close enough to repository_orig that it will not be discovered by simple inspection.

3\. The delta between repository_prime and repostory_orig causes a useful side effect in the program behavior (from the point of view of the attacker).

4\. The delta between repository_prime and repostory_orig does not introduce other significant and unintended side effects that will trigger investigation beyond simple inspection from some legitimate maintainer.

I will say that this is a much higher bar to cross than merely "no collision shall be found". And if you are concerned that SHA-1 is not enough to protect against such attack, you probably have to consider that SHA-2 may not be enough either... You probably need to use half a dozen of cryptographically strong hash functions, preferably based on different principles, so that we ensure that at no possible delta can simultaneously fulfill all the 4 points above for every hash function.

And if you have reached that level of paranoia, you need to consider that the adversary will simply not bother and chose a different attack vector, like exploiting the bureaucracy of your commit process...

<comment><USER11> First of all, this has nothing to do with passwords.

Indeed, this may be a higher bar to cross, but higher bars are usually being crossed. For years we known that RC4 had biases, but it was considered okay until we discovered that it was not okay after all. MD5 collisions led to rogue certificates.

It's not correct that SHA-2 is not enough to fix the issue. While they share some design structure, SHA-2 is not broken, while SHA-1 is. Also, the proposal for multiple hash functions isn't particularly good: collision resistance of many cascaded hash functions is not much better than the maximal resistance of one hash function used in the cascade.

It doesn't make sense to use a broken cryptographic hash function in a new project that does need cryptography. There are faster modern cryptographic hashes than SHA-1. And it doesn't make sense to use a broken cryptographic hash function in a new project that doesn't need cryptography. There are faster modern non-cryptographic hashes than SHA-1.

To be fair, I don't know why we even have a discussion about this if cryptographers say that SHA-1 shouldn't be used, and you're trying to defend this choice for exactly what reason?

<comment><USER13> > SHA-2 is not broken, while SHA-1 is

this kind of bare statement benefits greatly from a citation

> collision resistance of many cascaded hash functions is not much better than > the maximal resistance of one hash function used in the cascade

I don't think GP is suggesting including results of hashes in the contents to be hashed by subsequent hash functions, but rather calculating MD5(contents), SHA1(contents), SHA2(contents), FOO4(contents) etc, and then concatenating all the hashes together. Or am I misunderstanding and this kind of scheme is exactly the "cascading" that you're talking about ?

<comment><USER11> > this kind of bare statement benefits greatly from a citation

Seriously?

> I don't think GP is suggesting including results of hashes in the contents > to be hashed by subsequent hash functions, but rather calculating > MD5(contents), SHA1(contents), SHA2(contents), FOO4(contents) etc, and then > concatenating all the hashes together. Or am I misunderstanding and this > kind of scheme is exactly the "cascading" that you're talking about ?

Yes, this is cascading. See this paper: [https://www.iacr.org/archive/crypto2004/31520306/multicollis...](https://www.iacr.org/archive/crypto2004/31520306/multicollisions.pdf)

</comment></comment></comment></comment></comment></comment></comment><comment><USER14> Is git that broken? To focus on replacing VCS, you should have a big reason for that I think. I'm just curious.

<comment><USER15> git is an example of an amazing and powerful new VCS paradigm (distributed), but I sure hope we are not done making better and better tools, like, ever.

<comment><USER14> I also hope we are not done making better and better tools, but to make something better, you need find some gap in current technology and fix it. That's what I am asking: which are the gaps fixed by this VCS? Or in simple terms, why should I switch?

<comment><USER16> Git is a representation of history as a directed acyclic graph (DAG) of commits full of trees that are the state of the repository at the time of the commit. That DAG is strictly ordered (commits point to their parents and this is part of their identity so changing a commit parent makes a new incompatible commit).

Darcs (which predates git, by the way) represents a repository as a loosely ordered set of patches (just the changes, not the full state at any given time). Darcs works to know how to rearrange patches in time to create new states. The difference/benefit to this approach is best illustrated with cherry-picking: in Darcs it is very easy to state that I want the patches my fellow developer created for modules X and Y, but I don't think he's done with module Z yet so I'm going to skip those. The patches can be interleaved and recorded in any order and Darcs will do all the hard work of figuring out how to grab just the ones I want, and do so without changing the physical identity of those patches (they are still the same patches my coworker developed). When this works, and it works 98% of the time without an issue, it is a wonderful magic. (Contrast this to git cherry-pick which builds new commits and is likely to have future merge issues with the commits it was built from, even those commits are somewhat "the same".)

Pijul is an attempt at getting some of the same magic of a patch-oriented approach (and smarter patch merging) in a post-git world.

Also, it's definitely early to talk about switching to Pijul.

</comment></comment></comment></comment><comment><USER17> "Pijul" sounds like "dick" in spanish lunfardo :p

</comment><comment><USER18> This seems like a classic case of novice developers thinking it's a great idea to re-invent the wheel. The page gives no compelling reason why I'd want to adopt this over the much more mature solutions out there.

I say they are novice because they are maintaining two parallel codebases, which is a mistake no experienced developer would make.

<comment><USER5> I disagree. Having maintained a massive system that had to go deep into Git's internal data structures, I will tell you that, regardless of what Git's docs might tell you, the actual documentation for most of Git's file formats is, "Whatever the Git commands actually output." This is part of why a perfectly legal Git repository (as far as Git itself is concerned) can sometimes crash libgit2 and JGit.

By the Pijul team forcing themselves to have two different implementations in lockstep, they will probably do a very good job avoiding that problem.

<comment><USER18> That is the most ass backwards reasoning I've ever heard.

In order to force yourself to stick to a reliable standard repository format, maintain two codebases at once.

What?

How about just publish a standard and abide by it.</comment></comment></comment>


Show HN: I make my family postcards every year. Here's this year's. - <AUTHOR> http://postcards.lekevicius.com <comment><USER2> It's interesting how a simple symmetry instantly transforms what would otherwise be a bunch of random ugly lines into something beautiful.

Kaleidoscopic IFS fractals are also based on this concept. (8 axis symmetry + some simple transformations), and look at the result: [http://www.youtube.com/watch?v=renxaQZfsdk](http://www.youtube.com/watch?v=renxaQZfsdk)

<comment><USER3> Yes, we see beauty in symmetry, so any junk becomes beautiful when arrayed in a pattern, and the junk creator can feel proud of creating a work of art, when in fact the aesthetic is mostly provided by the symmetry engine.

</comment></comment><comment><USER4> Very nice. You should either open-source it or do a write up on how you made it. As a newbie to web development, I'd love to read it.

<comment><AUTHOR> It's open source! Use, remix, study and criticise!

[https://bitbucket.org/lekevicius/christmas-2013/](https://bitbucket.org/lekevicius/christmas-2013/)

</comment></comment><comment><USER5> Pretty fun :)

It's after clicking on "Gallery" that I understood you could draw on the postcard, maybe a hint on the landing page would be nice

edit: oh, I get it. On my FF, the "family postcard draw it" thingie flashes too fast.

edit: also, line breaks are not saved.

</comment><comment><USER6> This is excellent. Extremely simple and fairly intuitive, I wish I had heard about it days sooner.

It's somewhat surprising to continuously encounter such (seemingly) simple projects/proof-of-concepts like this that fulfill a need many of us didn't realize we had. If you haven't yet, consider writing about how you came to the idea for this particularly iteration and the process of creating it. I know I'd enjoy reading something like that.

<comment><AUTHOR> Thanks!

I do this every year. Last year, I experimented with Meteor.js and made a Christmas forest: [http://kaledos.lekevicius.lt](http://kaledos.lekevicius.lt) (sorry, in Lithuanian). Made that in about 10 hours - idea, design, development. It's a fun thing.

This year I did the same. You couldn't have heard about it days sooner, because it did not exist yesterday, just yesterday I wrote "rails new christmas_2013". And I have no intention of maintaining it: next year it will be another thing made in a day (:

<comment><USER7> Very nice idea. Linksmų šventų kalėdų!

</comment></comment></comment><comment><USER8> This reminds me so much of a toy I had when I was a kid, with a catchy commercial...

[http://en.wikipedia.org/wiki/Spirograph](http://en.wikipedia.org/wiki/Spirograph)

commercial [http://www.youtube.com/watch?v=VoSECiRl- pI&t=8m49s](http://www.youtube.com/watch?v=VoSECiRl-pI&t=8m49s)

</comment><comment><USER9> Doesn't work in Chrome on a tablet. Start drawing zoomed to some a flipped view of the backside and there is no space bar to tap without a text field.

Hacks for desktop only is understandable but increasingly a niche area to target first.

<comment><AUTHOR> "to target" and "first" (:

Well, it's a hack - for pretty much one day, mostly for our family friends. If something doesn't work, really, I would have no problem saying "Oh, sorry, just use Chrome on desktop. Merry Christmas!"

Really, tablets don't matter much here (:

</comment></comment><comment><USER10> Isn't this a family Christmas card, rather than a postcard? Isn't a postcard something you send back from a vacation?

<comment><USER11> No, a postcard is a very specific type of mail, which can have any image you desire on the other side (vacation, Christmas, save the date, etc). The key characteristics of a postcard is that you don't put them in an envelope and you can send them using cheaper postcard stamps instead of more expensive standard stamps.

</comment></comment><comment><USER12> Nice site! It seems like the initial instructions don't show up in Firefox though. The drawing still works.

<comment><USER13> Same here, in Firefox the instructions disappeared on load. Had to experiment to see what it did. Cool otherwise.

</comment></comment><comment><USER14> The gallery has my chuckling really hard

<comment><USER15> My pre-click expectations were fully met.

<comment><USER8> Glad I wasn't the only one with that idea...

</comment></comment></comment><comment><USER3> It works on mobile, but please add an on page button to clear card, since I don't have a space bar.

</comment><comment><USER16> Drops mouse=up event sometimes...IE 11.0.9600

</comment><comment><USER17> beautiful work! would love a breakdown on how you built this (I made a postcard app a few years back picsicle.com)

<comment><AUTHOR> You can check the source: [https://bitbucket.org/lekevicius/christmas-2013](https://bitbucket.org/lekevicius/christmas-2013)

Basically, it's just a Rails app. No front-end framework, just jQuery. Canvas is converted to base64, sent to server, server uploads to S3, user gets URL. Very simply, one day hack.

</comment></comment><comment><USER18> Very nice.

</comment><comment><USER19> Hello, this is dog.

<comment><USER20> what is with all the dog ones?

<comment><USER21> This is how to upload custom images to the gallery:

Using Google Chrome Inspector, you can find out the line that is triggered in the Javascript code when the "SAVE" button is pressed (inspect the "SAVE" button element, and it will tell you what part of the code is executed when it's clicked). By looking at the code, you see that what happens is: the previous HTML5 Canvas where you draw the snowflake is rendered into JPEG and encoded in base64 (.toDataURL("image/jpeg")), then the data is appended to the <form> element inside the "value" attribute of an <input> tag. Then, the form is submitted via POST.

So if you set a DOM Breakpoint (using Chrome's Inspector) to watch for subtree modifications of the <form>, you will catch it when the <input> tag is appended. Then, you go take your own custom .jpeg, encode it into base64 (for example here: [http://base64.wutils.com/encoding-online/image-to- base64/](http://base64.wutils.com/encoding-online/image-to-base64/)), and then paste your custom image data inside the the "value" attribute. Then you resume the script, and the server will receive your custom image data, instead of the original one.</comment></comment></comment>