Getting to know Scala - <AUTHOR> http://postneo.com/2011/02/28/getting-to-know-scala <comment><USER2> I've been getting into Scala in the past couple of weeks, as well, and this part was certainly agreeable:

"Scala's type checking saved me from doing stupid things several times and I really appreciate the effort put in to the compiler."

The reason that I was first intrigued by the idea of Scala was because of what friends had told me about its static typing and its type inference. I was concerned that there would be an untold amount of frustration from poor inferences, but the compiler absolutely protects the coder. It has done so well for me, in fact, that it has started to reinforce a sense about when to be explicit and when to be implicit. This has been the big joy of Scala, for me.

</comment><comment><USER3> _"It was about this time that I realized that most of the Scala projects I saw were using simple-build-tool instead of Maven to handle dependencies and build automation. I quickly installed it and Scala syntax primer quite often), I decided to tackle something real but still relatively small in scope."_

Did he lose a line of text between 'I quickly installed it...' and '...and Scala syntax primer quite often)'?

<comment><USER4> Yes, He's missing a closing quotation on one of his links. There's a good couple of sentences in a link.</comment></comment>


mDNS, Avahi and Docker non-root containers - <AUTHOR> https://gnaneshkunal.github.io/avahi-docker-non-root.html <comment><USER2> I made a project to solve this issue from the other end in my home network: [https://gitlab.com/viraptor/docker_mdns](https://gitlab.com/viraptor/docker_mdns)

You can run the app on the host with docker containers and traefik and any service.local domain configured in labels will be announced via mdns. Services themselves don't have to be mdns aware and will be registered/removed as they come up/down. It works without traefik too, but you have to include the port then as well.

</comment><comment><USER3> This is timely! I installed Wireshark last night for fun and have been looking at traffic on my network. There's quite a bit from mDNS, which is all new to me.

<comment><USER4> I can highly recommend taking a look at the traffic going across your network as well. With an OpenWRT or Ubiquiti router, you may even be able to mirror your WAN port to something Wireshark can see - it's definitely eye-opening.

<comment><USER3> I've been thinking about getting a Ubiquiti Dream Machine Pro or a similar setup and would love to look at the traffic there. Right now I just have an Orbi router with two satellites.

<comment><USER4> I'm sure there are cheaper options with a port mirroring function, but one of the entry level Ubiquiti switches plus a controller running in a VM would work, too. Hmm, I should definitely investigate cheaper options.

<comment><USER3> Yeah, I've thought about other options, including running a lot of things in a VM, because of that. Plus I usually like to tinker and learn. But I have so many other things on my plate right now that I'm not sure I want to take that on too. So having something that's prosumer that I don't have to mess with as much would be nice. I just wish I lived somewhere where I could find more second-hand networking equipment!

</comment></comment></comment></comment></comment><comment><USER5> [http://zeroconf.org/](http://zeroconf.org/)

[http://www.dns-sd.org/](http://www.dns-sd.org/)

[http://www.multicastdns.org/](http://www.multicastdns.org/)

</comment><comment><USER6> I'm a big fan of Zeroconf / MDNS / Avahi / Bonjour (it has many names due to the differing packages that can be used for it across platforms). It's a great way to make any type of service discoverable, whether it's a web service, or what have you. Having had used something like Eureka from Netflix I think mdns is way simpler, especially on Linux, if you can install Avahi all you need to do is write an XML file to a directory and you're broadcasting a service immediately.

<comment><USER7> Zeroconf is fantastic for discovering services, but hardly anyone supports it. Apple _removed_ it from Safari, 3 years ago [1]. It's been an open feature request in Chromium for 11 years [2], and in Firefox for 18 years [3].

The only major database I know which supports it is Postgres (it's disabled by default) [4]. On MySQL, it's an open work item, untouched for 13 years [5].

Last I checked, no major web framework broadcasts its service using Zeroconf.

Zeroconf service broadcast is so easy to implement (really) and such a tremendous help to users that I don't understand why developers aren't falling over themselves to implement it.

[1]: [https://apple.stackexchange.com/questions/299700](https://apple.stackexchange.com/questions/299700) [2]: [https://bugs.chromium.org/p/chromium/issues/detail?id=13573](https://bugs.chromium.org/p/chromium/issues/detail?id=13573) [3]: [https://bugzilla.mozilla.org/show_bug.cgi?id=173804](https://bugzilla.mozilla.org/show_bug.cgi?id=173804) [4]: [https://www.postgresql.org/docs/9.1/runtime-config- connectio...](https://www.postgresql.org/docs/9.1/runtime-config- connection.html) [5]: [https://dev.mysql.com/worklog/?sc=id&sd=ASC&pg=3](https://dev.mysql.com/worklog/?sc=id&sd=ASC&pg=3)

<comment><USER8> The browser support you listed is for listing out the available sites. The browsers still support mdns for name resolution. Zeroconf is used in Google Cast and Airplay for service discovery.

<comment><USER7> As Apple's Bonjour page points out, addressing and naming is only 2/3 of it. If that's all you support, then you still depend on users knowing the name, and typing it with no mistakes -- not exactly "zero configuration". 1980's AppleTalk was better than that.

How do browsers 'support mDNS for name resolution'? Isn't that a feature of the OS? I can "ping NAS.local" (without a DNS server) just as easily as I can go to "[http://NAS.local"](http://NAS.local"), and ping.c doesn't appear to have any mDNS code.

<comment><USER8> Right there still a need for apps and browsers to surface mDNS services but the parent comment made it seem like the browsers can't use mDNS at all.

You're are correct, mDNS name resolution is an OS feature and to the browser/program/app it makes no difference.

<comment><USER9> Notably Android doesn't support mDNS as part of general hostname resolution. (There is the NSD API available but you have to explicitly use it, and the browsers do not.)

</comment></comment></comment></comment></comment></comment><comment><USER10> > If it is IPv6, it's nearly impossible to remember the address.

Why should that be the case? If you have 1000 nodes, you could organize your network such that node one gets prefix::00:01, node two gets prefix::00:02, node 138 gets prefix::01:38, etc.

There is so much space in IPv6 that you can group things more logically than was ever doable in the IPv4 world.

</comment><comment><USER11> "But still, on most of the local systems, we don't have a DNS server and we have to remember the IP addresses of the systems."

Perhaps I'm misunderstanding this, but why would your systems not have access to a local DNS server? My routers respond just fine to DNS queries for "hostname.local"-like requests without using something like mDNS.

<comment><USER12> This only works if your router arranges this through its DHCP server, and even then only if everything on your network uses DHCP and the DNS server supplied by it. This is not widely the case, and with devices that roam across wifi networks it's likely not even true for your devices. mDNS provides peer-to- peer discovery that does not require any supporting network infrastructure.

<comment><USER11> There's no reason this requires DHCP, or even for the DNS server to be on the router. You could assign static IPs everywhere and still have the DNS server perform lookups to its hosts file.

<comment><USER12> Yes, of course. I took it as a given that any alternative solution would have to be automatic and so manual configuration of hosts wasn't an option. If you think it is an option, then the answer to your question is obvious: mDNS does it automatically, so you don't have to maintain the mapping and it works for automatic IP address assignments.

</comment></comment></comment></comment><comment><USER13> This is such a pet-peeve for me. A noisy network service turned on by default where most users won't use it,but all users are exposed to the network through it. (Edit: I mean in most Linux Distros not in this example, of course I have no problem with anyone intentionally doing anything to their own system)

In my opinion, modern systems shouldn't run services in case something needs them, they should be dynamically loaded and unloaded (isn't this what dbus is for??). If Chrome needs mDNS it can ask for it. If network resources are accessed at login, the login processes can request avahi to be loaded and then unloaded once they're done. What really feels like insult to injury is how systemd was forced on unwilling users because of features like this, yet avahi,cups,etc... Just sit there idle even if you didn't start any application that has a need for them.

I think maybe I am seeing it from the wrong perspective?

<comment><USER14> > This is such a pet-peeve for me. A noisy network service...

Complaints like this about mDNS are my pet peeve. Back in the day networks were 1000 times slower and we had Appletalk and dynamic peer-to-peer LAN networking was absolutely effortless. It was plug-and-play, networking-for- dummies easy. And nobody had to explain to their Mom over the phone what an IP address was.

But Appletalk was chatty and that bugged people with large enterprise LANs. So Apple turned it off and invented mDNS which was less chatty and used modern DNS protocols. It made LAN setup about half as easy as Appletalk but by that time everybody had gotten used to typing IP addresses into their printers as if that was "normal." Or they just gave up on peer-to-peer connections entirely.

So now not many people use mDNS and it's not nearly as chatty as Appletalk and our networks are 1000 times faster and a tiny bit of LAN traffic is nothing; _nothing_ compared to the value mDNS would bring if people just used it. But no. Let's complain about how chatty it is and continue using LANs full of multi-teraflop computers that have no way to ask their neighbors what their damned IP addresses are.

Yes I'm bitter.

<comment><USER13> Look, I will never ever use mDNS. I have never ever needed to use mDNS because I don't mind using an IP address. We have our preferences but why are you forcing your preference on people?

I am very bitter about this too. I turn on a computer and it broadcasts excessive details about itself to anyone that will listen to it.it does things I did not ask it to do and refuses to do things I need it to do because people like you think there is one way everyone should do things.

What on earth is stopping you from turning on Avahi and using mDNS right now? Clicking on a checkbox in system settings? What else is there to it?

I will continue to complain on how chatty this and a plethora of other things are. Actually their chattiness is not the issue, the fact that they sent even one packet of that protocol is my issue, or more importantly that they listened on that port offerinf network services on my client computer. So, now when there's a vulnerability abusing that service, a service no one uses, well too bad then right? A network service is an exposure, people/apps should opt into not opt out of exposures!</comment></comment></comment>


Google Cost Cuts Take The Company Away From Its Engineers - <AUTHOR> http://www.alleyinsider.com/2008/12/google-not-even-pretending-to-be-an-engineer-run-company-anymore <comment><USER2> Is this based on any real information, or is it just a rehash of the WSJ article?

The "money quote" says nothing about 20% time. It says that the company won't instantly allocate 20 engineers to somebody's 20% project. Which is really just sound business sense - what other startup gets 20 engineers to fool around with before they even have a product?

The impression I got when I visited the Google campus two weeks ago was nothing like this article suggests, and the Googlers in the comments seems to indicate it's basically made-up too.

</comment><comment><USER3> _He says the company is "not going to give" an engineer 20 people to work with on certain experimental projects anymore. "When the cycle comes back," he says, "we will be able to fund his brilliant vision."_

Hardly forward thinking. Previous articles have claimed that some of Google's best developments have come out of that 20% time. By cutting it, they're basically cutting their R&D significantly.

Google's doing what panicked investors are doing.. pulling out resources in a low market, instead of investing while low to reap when the market picks up! I smell an opportunity.. If you're a startup with a year's money in the bank or an independent developer who can work hard for the next year on some exciting new stuff, you could get a real jump on Google in some areas if they keep this up.

<comment><USER4> The author claims this quote has something to do with 20% time, but the quote says nothing about 20% time.

</comment></comment><comment><USER5> In general I can't tell if Google is in trouble or not. One day they are the gatekeepers of the internet and the next day they are trying to make ends meet. They still make billions a year don't they? Yahoo has gone downhill...MS isn't a threat search-wise.</comment>


Predicting the Popularity of GitHub Repositories - <AUTHOR> https://arxiv.org/abs/1607.04342 <comment><USER2> Umm they use the first 6 months of data in the model. How is it surprising that trajectory of stars in first 6 months predicts the rest of the trajectory.....

</comment><comment><USER3> > when newcomers are not considered, there is a very strong correlation > between predicted and real rankings

I'm having trouble parsing the meaning of this. It seems like their data can predict the popularity but only on existing repositories in which they can look at the first 6 months, calculate the popularity and see if it matches up. Am I understanding that correctly? Seems...weird. Can this be used in any way for new projects?

For instance my msngr.js[1] library initially had like 3 stars from friends then it was posted to HN and within 2 weeks had about 150 then it slowly climbed to what it is today over a year or so and lately it's kinda stalled. I'm not sure their data would predict anything correctly about my repository and I would imagine a large majority are more like mine where you might have a handful of users and some pop when being on the front page of something like HN but then traffic dies back down.

[1] [https://github.com/KrisSiegel/msngr.js](https://github.com/KrisSiegel/msngr.js)

</comment><comment><USER4> So... They found that the number of stars is autoregressive? What's the punchline?

<comment><USER5> IIUC the utility is that github or someone could use the arrival of stars to predict which repos are likely to attract more future stars. This could be used for ranking up-and-coming new repos worth attention.

<comment><USER4> From what I remember of reading the paper yesterday, they simply estimated the coefficient of various lag terms. That might help if you wanted to estimate how many stars a project will have next week (because of some prediction market?). For the task of predicting which projects will attract more stars, the fitted model is largely unnecessary -- more means more.</comment></comment></comment>


The Limits of Satire (2015) - <AUTHOR> http://www.nybooks.com/daily/2015/01/16/charlie-hebdo-limits-satire/ <comment><USER2> This article is in response to the Charlie Hebdo massacre, and it really irks me.

> And again, is a culture that takes mortal offense when an image it holds > sacred is mocked a second-rate culture that needs to be dragged kicking and > screaming into the twenty-first century, my twenty-first-century that is? Do > I have the moral authority to decide this?

If fundamentalist Christians were responsible for these atrocities, I am certain the author would have no problem answering "Yes" to both of these questions.

> However grotesque and provocative its comedy, its aim is to produce an > enlightened perspective on events, not to start riots.

If people hate a cartoon enough to riot, then condemn the hateful people, not the cartoon.

> Is it likely this approach will help to isolate violent extremists from > mainstream Muslim sentiment?

Yes! We satirize fundamentalist Christians all the time, and it actually _does_ help isolate them from mainstream Christians. Why should Islam be any different?

The most annoying thing about this piece wasn't any particular quote. It was the author's frequent fallback to describing the cartoons, as if their offensiveness was in any way responsible for the massacre. It _doesn 't matter_ whether the satire was racist or bigoted. In the words of Sam Harris: "People have been murdered over cartoons. End of moral analysis."

<comment><USER3> How clear-cut and simple everything is in your world! Good thing the real world is just like that - morally unambiguous and without complication or subtle nuance!

<comment><USER2> Is this your reply to all straightforward moral arguments, or just the ones you disagree with? It's not my fault that answers can sometimes be simple.

If you trawl through my comment history, you'll see I've discussed ethics on topics such as torture[1], corporal punishment[2], whether possession of certain information should be illegal[3], the Dallas PD's use of a robot to kill the shooter[4], smart guns[5], and even whether we should make natural predators extinct[6].

Sometimes, my answers to these moral questions are simple. Sometimes, they're not. In this case, it's the former.

1\. [https://news.ycombinator.com/item?id=10963920](https://news.ycombinator.com/item?id=10963920) [https://news.ycombinator.com/item?id=10531577](https://news.ycombinator.com/item?id=10531577) [https://news.ycombinator.com/item?id=8725500](https://news.ycombinator.com/item?id=8725500)

2\. [https://news.ycombinator.com/item?id=9280711](https://news.ycombinator.com/item?id=9280711)

3\. [https://news.ycombinator.com/item?id=11441708](https://news.ycombinator.com/item?id=11441708)

4\. [https://news.ycombinator.com/item?id=12059148](https://news.ycombinator.com/item?id=12059148)

5\. [https://news.ycombinator.com/item?id=10494398](https://news.ycombinator.com/item?id=10494398)

6\. [https://news.ycombinator.com/item?id=10476699](https://news.ycombinator.com/item?id=10476699)

</comment></comment></comment><comment><USER4> >Now that the whole world is my neighbor, my immediate Internet neighbor, do I make any concessions at all, or do I uphold the ancient tradition of satire at all costs? And again, is a culture that takes mortal offense when an image it holds sacred is mocked a second-rate culture that needs to be dragged kicking and screaming into the twenty-first century, my twenty-first-century that is?

The answer to this question is quite simple: France is a nation-state, if you wish to be part of the French nation you need to fulfill its two most fundamental clauses:

\- the desire to adopt a common history, in its glory and its shame

\- the desire to live and thrive together: "to have achieved great things and achieve more, together"

France is an assimilationist country and the French state takes its sovereignty from the Nation i.e the People. If you wish to come here, if you wish to be part of it, then you need to uphold its principles and traditions.

And of course, it should be needless to say that no one is forced to come here and that on the contrary, they are urged to leave as soon as possible if they find out that they have a burning desire to murder journalists- cartoonists when those draw their prophet the wrong way. That is non-negotiable.

I find it remarkable that the "multicultural crowd" fails to adjust their views so they can be sound with their moral principles when switching their country-wide frame of reference to a global one. If you sincerely believe that cultural minorities have a right to govern themselves and that moral monism is "oppressive" then how come haven't you figured that the French are an underwhelming minority at the world-scale and that their conception of the good life (eudaimon) - not only differs than yours - but includes protecting their public space from religious interference.

So to reply to your question and playing to your rules, dear author:

>And again, is a culture that takes mortal offense when an image it holds sacred is mocked a second-rate culture that needs to be dragged kicking and screaming into the twenty-first century, my twenty-first-century that is?

Mutatis mutandis, this apply exactly to your disdain for the French tradition of satire that you hold in perspective with your globalised view of the world.

<comment><USER5> One advantage the far east has over Europe and north America (south America has no such problems either) is that they don't vacillate when it comes to their culture and whether its morality is weak. For them, you either buy in, or you're out. There is little in the form oh, but what about those whose morals conflict with ours. No, adapt. That's not to say it's not problematic in other ways --like Russia, there is the shadow of the strongman or strongwoman in their psyche and the state has greater control over the individual and there is more paternalism but also there is less social division and had wringing over whether their culture is good or bad. They just are. There is less of good vs bad.

<comment><USER6> I think perhaps you should be happy that Europe and North America do not have that particular advantage.

When Europe was operating without a bit of hand-wringing, it seems to have overrun much of the rest of the world, taken charge, planted colonies, and run said rest of the world for its own benefit. Likewise, we here in NA have a certain history of transplanting people who have something we want into camps in the stinking desert. Or into the ground, whichever is more convenient for all involved.

<comment><USER5> Like many things, there are tradeoffs and unknowns. Would the world have been better off without colonialism at all? Or would colonialism by Russians or Ottomans or Chinese or Egyptians? And had it not happened, where would we be technologically? Would we be more advanced? Would we be behind? Would we still be suffering from infectious diseases? Where would the world pop be today? Where would strife be today? Or totally at peace? Impossible to say. Only that it would not be the same and most of us on the planet would be other people, or no one at all.

</comment></comment></comment></comment><comment><USER7> There is no limit to satire , there is only limit in the head of uneducated people. The debate need to be shut before it's even opened. You should not have to censure yourself (when doing satire) because you are scared of offending people. Otherwise , any group can claim to be offended by anything , and you give them power on you. What if vegetarian decide it's offensive to eat meat ? What if I decide that eggplant are offensive ? What if I decide it's offensive to be offended ? There is no end to this. Let's limit freedom of speech at the hate speech mark and allow the rest , legally and in practice.

<comment><USER8> "Let's limit freedom of speech at the hate speech mark"

Ok, but where's this limit? Who's to say what "hate speech" is? This line is subject to all of the arguments that you just posed.

<comment><USER9> I wish we could be honest with each other and admit that these limits are fucking arbitrary and only extend as far as ones means to enforce such. Everything else is just pandering to more human status games with some games being more optimal for certain societal outcomes over others.

<comment><USER10> They are arbitrary, and reflect the biases of those in power. This is because effective satire demand widespread dissemination, and those in charge of the means of dissemination are the very rich. Also, increasingly those who are in charge of our creative culture are rich and monocultural, and satire is used as a tool to suppress.

</comment></comment></comment></comment><comment><USER11> So the author says France must choose between globalism and mass migration on one hand, and freedom on the other. This is easy! France is for the French, and the French are a free people.

Also, let's be clear eyed about what the author is actually suggesting. Banning any type of satire necessarily means that police come to bust down your door and throw you in jail at some point when you refuse to comply. That's the violence lurking beneath the veneer of "tolerance".

</comment><comment><USER12> Funny how the original satire was about how to solve the problem of starvation and the problem of population explosion in Ireland at the same time by eating Irish babies. Yet somehow people are think there should be limits on satire. The fundamental accusation is that Catholics have more children more quickly than they can feed (implying that they are too stupid and sex crazed to realize the consequences of their actions). Eating babies is a sideshow to the real, deep, and uncomfortable question that SHOULD make people angry because it is calling them out for inconsistent, immoral, unethical, or strait up bad behavior.

<comment><USER13> I don't think Juvenal wrote about population explosion in Ireland.

<comment><USER6> Swift didn't invent satire; he just perfected it.

</comment></comment></comment><comment><USER14> There is limit of satire and it is similar to limit of pornography. It's pretty common sense one. If it disgusts you - Don't look at it.

You shouldn't have fetish satire shoved in your face over Sunday dinner but same would probably go for yeast infection remedy advert.

</comment><comment><USER6> The article has an interesting point about satire, although it loses the plot towards the end.

Allegedly, Voltaire said to Rousseau, "I disagree with everything you say, but I will fight to the death for your right to say it."

You cannot disagree with many of the _Hebdo_ comics, or defend them; there is nothing there to disagree with or defend. The comics are just mocking attacks from one group on another.

</comment><comment><USER15> This article seems to legitimize satire by pretending "Its raison d'ȇtre over the long term is to bring about change"

Can we just step back and say that funny things are good as an end unto themselves?

<comment><USER13> "Satire" isn't "funny things"; satire indeed _is_ social criticism posing as art. Satire may often employ humour, but neither is necessary for the other.

Unfortunately, in recent times, large sections of the English-speaking world (or maybe just English-speaking Internet; I'm not sure) have taken the word "satire" to mean "something that shouldn't be taken seriously". I think it can be partly blamed on the fact that English speakers are introduced to "satire" via Jonathan Swift's _A Modest Proposal_ ; which indeed extensively employs exaggeration, irony and black humour and isn't meant to be taken literally. But this is _not_ a defining characteristic of satire. There are plenty of works that can just as rightly be called satire, and contain hardly any of these. _Animal Farm_ is a satire of communism. _Brave New World_ is a satire of consumerism. _Black Mirror_ is a satire of technological progress (or rather, humanity's irresponsible use thereof). In neither of these works humour is a major element; you may find a few gags here and there, but the message of each work would have stayed intact if those had been cut out.

I think this semantic shift creates a situation where the average person's natural response to something being called "satire" is to stop taking it seriously, or thinking about it at all. Which is another way satire can fail. It's been worrying me a lot lately.

PS. Relevant — DFW on irony: [https://www.youtube.com/watch?v=UKdZU9Db6fk&t=2m33s](https://www.youtube.com/watch?v=UKdZU9Db6fk&t=2m33s)</comment></comment>


Ask HN: Canvas Drawing Library - <AUTHOR> I'm currently testing out Canvas JS libraries. I'd like to build a simple paint type of web app using Canvas and JS. I'd like to be able to create layers, draw, erase, etc. I tested out PaperJS, but it seems PaperJS is more geared towards SVG and fails at erasing. What popular Canvas JS libraries is everyone using nowadays? <comment><USER2> I prefer PixiJS ([http://www.pixijs.com](http://www.pixijs.com)), it comes with a ton of primitives and renders efficiently even on mobile. I've created layered drag-and-drop webapps with Pixi, draw & erase would not be much different.

</comment><comment><USER3> If you're building something simple, why not just use the HTML5 Canvas API?

There's no reason to overcomplicate things, and it'll give you fine control over how things work and what you expect it to do. Layers and whatnot are pretty simple to implement a rough cut of, so why make things complicated?

<comment><AUTHOR> Going with the native Canvas API is where I'm heading. I've used RaphaelJS in the past. This week I've tested out PaperJS and FabricJS. I'm trying to save some time and code manageability with a framework.

<comment><USER4> If you loved RaphaelJS you'll probably like Snap.svg [1] aswell. It's originally authored by Dmitry Baranovskiy (Raphael's author) and sponsored by Adobe.

[1] [http://snapsvg.io/](http://snapsvg.io/)

</comment></comment></comment><comment><USER5> I am a big fan of pixi.js ([http://www.pixijs.com](http://www.pixijs.com)). I haven't explored its "erasing" capabilities, but it is a great library for performant 2d graphics programming in the browser.

</comment><comment><USER6> In simple cases like you described, you can always create your own. I've done something sorta like that in here: [https://github.com/felipegtx/Raska](https://github.com/felipegtx/Raska)

</comment><comment><USER7> If you have an ActionScript background, I highly recommend Easel JS.

[http://www.createjs.com/easeljs](http://www.createjs.com/easeljs)

</comment><comment><USER8> i really liked to use fabric.js([http://fabricjs.com](http://fabricjs.com)) for a small collaborative drawing tool([https://github.com/wearespindle/dotd](https://github.com/wearespindle/dotd)). It runs both on node.js and in the browser, has pretty awesome serialization options and has all batteries included in general.

</comment><comment><USER9> Check out LiterallyCanvas: [http://literallycanvas.com/](http://literallycanvas.com/)

<comment><AUTHOR> Excellent example, thanks! Looks like that has a dependency on React. I'm currently trying out Angular but I'll give this a shot too.

</comment></comment><comment><USER10> I've allways been a fan of kineticJS (now Konva). Seems the most extensible and can handle a lot of objects.

</comment><comment><USER11> How about [http://fabricjs.com](http://fabricjs.com)</comment>


Flashing FPGAs with Your Phone - <AUTHOR> https://www.kickstarter.com/projects/ryanmjacobs/webfpga-rapid-fpga-development-system/posts/2535494 <comment><USER2> Neat, but not sure how much I would want to rely on a cloud service</comment>


BMW and the GPL - <AUTHOR> https://shkspr.mobi/blog/2016/03/bmw-and-the-gpl/ <comment><USER2> As far as I know, the original suggestion that there was a possible GPL problem was raised by Duncan Bayne on Lobsters. After his story got attention, BMW got back to him.[1]

Without making a big show of this, it would have been much more difficult to get BMW's attention. Duncan tried to contact legal but was refused.

The point of GPL compliance isn't to sue or to shame, but just that: to bring people to compliance. Even in the beginning of the GPL rms said to Eben, "I have a rule. You must never let a request for damages interfere with a settlement for compliance."[2] Legal action is an absolute last resort, usually when years of friendly negotiations fail. All GPL lawsuits I know of only took place after _years_ of attempts to get compliance failed. Duncan just wanted compliance, not legal action.

\---

[1] [https://lobste.rs/s/uaa4db/bmw_refuses_to_abide_by_terms_of_...](https://lobste.rs/s/uaa4db/bmw_refuses_to_abide_by_terms_of_gnu_public_license/comments/hxkrtn#c_hxkrtn)

[2] [http://www.geof.net/research/2006/moglen- notes](http://www.geof.net/research/2006/moglen-notes)

<comment><USER3> "Duncan tried to contact legal but was refused."

That's a little bit of a stretch of the scenario.

If I want to contact the Legal department of a multinational firm on a -legal matter- related to contract law and software licensing, I (or my lawyers) send a -letter- or at least email to the legal department.

I -don't- call Tier 1 Customer Tech Support for the vehicle, demand to be put through to legal, run off to the web and talk about how BMW stonewalled me.

<comment><USER4> I can almost never find that info.

<comment><USER3> Without sounding snarky, I searched "BMW Australia Head Office" and got the address, pretty quickly. Alternatively, the Contact page of their website had a section for "corporate" matters.

</comment></comment></comment></comment><comment><USER5> > Here's the thing - contacting customer services like that was entirely the > wrong approach. Customer services aren't trained for the 0.001% of people > who might be interested in an esoteric matter of legal licensing. Crying > foul because a minimum wage rep didn't understand an obscure technical > reference is counter productive.

Damn straight. So provided email@example.com actually respond this should be sorted out: kudos for the author for being forthright about how this could have been handled better.

<comment><USER6> Or just push it on git hub once and be done with it for good.

</comment></comment><comment><USER7> > Customer services aren't trained for the 0.001% of people who might be > interested in an esoteric matter of legal licensing.

Here's where I'd like to disagree. Of course customer service doesn't have to know about those esoteric issues. But customer service should notice when a request comes that's not their department. And if that's the case they should redirect it to someone who knows better.

This is not the personal fault of the person sitting at the customer service, but the structure in a company. They should be able to handle that.

<comment><USER8> I think you're underestimating the volume of stupid-and-crazy shit that CS reps have to deal with every day. Sorting out stupid-and-crazy from legitimate-but-not-my-department would be several full time jobs in itself.

<comment><USER9> You've touched on a larger issue that occurs to me often. Though your point is valid, my response to a company making the argument would be, "too bad." /They're/ the ones making billions in revenue by voluntarily accepting a business relationship with millions of customers. If you want the revenue from those millions of relationships, it's also your responsibility to manage your side of the bargain with those millions of relationships, that includes your legal (and many other) responsibilities. Is scaling to keep up with your responsibilities to millions of customers easy? No. However that's not the customer's problem.

<comment><USER10> It would not be in the interest of 99.9% of your customer if you try to to satisfy those 0.1% of stupid-and-crazy customers. Because somebody would have to pay for it. And in this case it wasn't even a customer.

</comment></comment></comment></comment><comment><USER11> Whisper systems releases source code. BMW runs whisper systems OS. Where is the rub!?

</comment><comment><USER12> Besides all of that: As already said BMW only needs to give you the source code if you are a car owner. If the car owner then puts the source code online it's fine.

<comment><USER13> This is not right. If they put it online and point you at it, at the time they ship, that's fine. Otherwise, it's going to be looked at as a written offer. In this case, it's a 100% clear written offer.

Written offers must be valid to all third parties.

[http://www.gnu.org/licenses/gpl- faq.en.html#WhatDoesWrittenO...](http://www.gnu.org/licenses/gpl- faq.en.html#WhatDoesWrittenOfferValid)

<comment><USER14> > This means that people who did not get the binaries directly from you can > still receive copies of the source code, along with the written offer.

So you still need to be in possession of the binaries. it is not any 3rd party, it is any third party who has possession of the binaries.

<comment><USER13> No. I understand why you may think it can be read that way. But i assure you it means "that means people who did not get binaries can still receive copies of the source code".

Please read the GPL compliance guides as well, which cover this in some detail (i quoted it for you in the other comment).

What you write would be correct for GPLv3, which uses the phrase, "accompanied by a written offer ... to give anyone who possesses the object code "

This was specifically changed in the third discussion draft of GPLv3 (see [http://gplv3.fsf.org/gpl3-dd3-rationale.pdf](http://gplv3.fsf.org/gpl3-dd3-rationale.pdf)) In any case, i assure you: if you try to restrict it to people who have binaries, various parties will take you to court for non-compliance :)

</comment></comment></comment></comment><comment><USER15> Lesson learned - don't touch GPLed software even with a long stick. Time to make FreeBSD gain mindshare instead of accepting GPLed linux which does the same thing!</comment>


Joe Lieberman Emulates Chinese Dictators - <AUTHOR> http://www.salon.com/news/opinion/glenn_greenwald/2010/12/01/lieberman/index.html

<comment><USER2> I don't know about others, but the reason why I am firmly on Wikileaks' side can be clearly seen in that video. The media are a bunch of pliant, spineless, brain-dead, PR sound bite regurgitating pussies. Think about it, when was the last time you saw a media figure really dig into someone powerful and call them out on their bullshit? Everything the powerful do and say is so scripted and carefully managed that it loses any connection to reality.

<comment><USER3> Well, Jon Stewart for one, when he isn't being just a stand-up, does tend to call out major journalistic and political figures for their inadequacies in this regard.

<comment><USER4> With extreme irregularity (i.e. when it suits him) and a disingenuous tendency to hide behind "I'm just a comedian" as soon as anyone calls him on it.

<comment><USER3> Well, true, but I've always read that as him not wanting to become the same sort of political lighting-rod that he hates. He was very careful to avoid any overt political associations for his rally, for instance.

<comment><USER5> His long interview with Rachel Maddow shows his thoughts on this quite well. (link is to an article breakdown with full-video linked) [http://www.huffingtonpost.com/2010/11/11/rachel-maddow- jon-s...](http://www.huffingtonpost.com/2010/11/11/rachel-maddow-jon-stewart- interview_n_782538.html)

</comment></comment></comment></comment></comment><comment><USER6> "You've played right into my hands, Lieberman. Mwahahahaha... " .. ok he didn't quite say that. But Assange did just claim in a Guardian Q&A that choosing Amazon was a deliberate ploy to test/highlight the deficits in US commitment to free speech.

[http://www.guardian.co.uk/media/2010/dec/03/julian- assange-l...](http://www.guardian.co.uk/media/2010/dec/03/julian-assange-live- online-answers)

<comment><USER7> Free speech is not a blanket protection that allows you to say anything you want at anytime. Whether or not what Wikileaks is doing falls under the protection of the 1st Amendment is something I would love to see the Supreme Court decide, but it isn't as simple as crying foul on free speech b/c Amazon disabled their account.

<comment><USER8> I'm pretty sure the Supreme Court has decided that what wikileaks is doing falls under free speech in a number of cases.

For one, there's whistleblower protections.

For another, it's legal to advocate fascism or any other unpopular ideology.

This isn't shouting fire in a crowded theatre. Unless it falls under espionage, it should be free speech.

<comment><USER9> Exactly what whistleblower protections were you thinking applied here?

<comment><USER8> You're right, they're totally besides the point, because they apply to the whistleblower and not the media. It was generally assumed (until this week apparently) that it's always ok for the media to print things after they've been leaked. Nobody went after the NYT's hosting, for example.

There's some detail on the actual laws at <http://whistleblowerlaws.com/>

</comment></comment></comment></comment></comment><comment><USER10> Not meaning to be trite, but it's amazing how Al Gore's desire to move toward the right led him to select Lieberman as VP, and paved the way for the rise of one of the most backward politicians ever in US history.

Recall how influential Lieberman was in helping Bush sell the Iraq war, etc.

<comment><USER11> It is worth watching a documentary titled "The Power of Nightmares" which will give some insight into "why Iraq" and "why Israel." And the answers to "why Israel" will explain why the choice of Lieberman (who is frequently titled "the Senator for Israel") for Gore's running mate appeared to be the right choice at that time.

<http://www.amazon.com/Power-Nightmares-Various/dp/B001707D98>

If your local library has a copy, I strongly recommend watching it.

<comment><USER12> I also can't recommend the documentary enough. The Internet Archive has it available for download/streaming, however:

<http://www.archive.org/details/ThePowerOfNightmares>

</comment></comment></comment><comment><USER13> A little disappointed to see this behaviour from the American government.

Correct me if I am wrong but didn't Obama administration promise full transparency?

<comment><USER14> He also promised to take a principled stand against torture and to close Guantanomo, and restore due process; before being elected. Since being elected, none of those things have happened, and he has come out in favour of assassinating US Citizens living abroad without any judicial process whatsoever (The Al-Awliki case).

So the failure of Obama to publicly condemn Lieberman's petty campaign of censorship and crude threats against Amazon is not at all surprising.

<comment><USER15> Wait what? He standardized the Army field manual for interrogation [1] and has been attempting to close Guantanamo [2].

1: [http://articles.cnn.com/2009-01-22/politics/obama.interrogat...](http://articles.cnn.com/2009-01-22/politics/obama.interrogations_1_interrogation- rules-cia-director-michael-hayden-cia-custody?_s=PM:POLITICS)

2: [http://articles.cnn.com/2009-01-22/politics/guantanamo.order...](http://articles.cnn.com/2009-01-22/politics/guantanamo.order_1_detention- guantanamo-bay-torture?_s=PM:POLITICS)

<comment><USER16> There is a difference between words and actions.

<comment><USER15> Right, which is why they're executive orders :)

Guantanamo is in a half-state because Congress invoked NIMBY with the attempts to prosecute detainees in the US. No other country wants to take them in.

</comment></comment></comment></comment></comment><comment><USER17> What's the point of disabling wikileaks when anyone can access them from the biggest news sites?

What's the logic behind this decision?

<comment><USER18> I'm wondering the same thing. Liebermann probably knows too. It's all a big show right now. As the economist said in the past few days, things have changed. You can store on a USB key the equivalent of truck loads(Stevenson would be proud ;p) of documents. It's going to be harder and harder to keep this information secure.

I hope the Government accepts this and I think the current administration does. I wouldn't be surprised if they figure out a way to use it to their advantage.

In WW2 purposely leaked information was used to confuse the Germans about the location of the beach landing on D-Day.

<comment><USER19> _I'm wondering the same thing. Liebermann probably knows too._

People say this a lot about politicians and I wonder how true it is. Lieberman in particular has never shown himself to be particularly smart. He mostly repeats the conventional "centrist" line and seems to contradict himself fairly regularly. I seem to remember that he drove the Gore campaign nuts in 2000 by spouting off whatever popped into his head.

Most politicians are not following a grand plan but are rather following a guideline of "What will Rush Limbaugh like?" (Conservatives) or "What will the editorial page of the Washington Post like?" (Centrists) or "What will my donors like?" (Pretty much everybody)

</comment></comment></comment><comment><USER20> Joe Lieberman has been a pro-censorship force for years. I'm not surprised that he's continued here, though I'm still disappointed.</comment>


UK government calls out Whatsapp for enabling criminals to communicate in secret - <AUTHOR> https://techcrunch.com/2017/10/04/uk-gives-whatsapp-another-spanking-over-e2e-crypto/ <comment><USER2> I find it incredibly difficult to comprehend that any UK politician would use the phrase "protect people from pedophiles" with a straight face: This is a political class which has, for decades, protected its own pedophiles from prosecution.

It is highly troubling that this would be being used as a public button, when there is much evidence that UK politicians have no desire, whatever, to actually prosecute the biggest pedophiles in their state - those within their own ranks.

<comment><USER3> Those who are in power want to stay in power, no matter what.

</comment></comment><comment><USER4> There's a scary, completely secret communication method that bypasses almost all law enforcement surveillance technology we have, and worse, it's existed for a long time and is already in common use with pedophiles and terrorists alike.

It's called "talking to somebody behind closed doors."

<comment><USER5> Luckily, we have Internet of Things to remedy that unacceptable situation. With the advances of machine learning, we won't even need that. We will be able to tell if you are a criminal from the way you walk on the street which are full of surveillance cameras.

<comment><USER6> Not to mention cool new phones from Google with always-on microphones!

<comment><USER7> Every phone (even dumbphones!) is a phone with an always-on microphone.

</comment></comment></comment></comment><comment><USER8> Why aren't they also calling out ISPs, computer manufacturers, and the national grid for enabling criminals to communicate in secret?

If we want to stop criminals from being able to access neutral services, surely we should be starting with running water, supermarkets, restaurants, and anyone else who supplies food or drink. That would put a stop to the problem much more quickly.

<comment><USER9> The national grid? You think the electricity suppliers should, somehow, stop "terrorists" from using electricity to make toast?

<comment><USER10> Yes! Down with Terrorist Toast slathered in pedophile peanut butter! The true menace to society!

</comment></comment></comment><comment><USER11> The interesting thing about all these debates, that many here seem to forget is: these actions are awful, but in the grand scheme of things, they are actually good and a sign of progress.

The reason governments do this is that due to the Internet, for the first time in human history, humans can have access to truly secure telecommunications. I'm pretty sure that before they could just phone tap/bug their way to all the communications they wanted to follow and this is proving harder today. That's why they're making so much noise about it.

It will be a fight to keep the (favorable for individuals) status quo, but in my opinion the status quo is an evolution over what we had say, 40 years ago.

<comment><USER12> There's a fundamental difference to both the pre-phone and the pre-Internet age:

In the grand scheme of things phone tapping is a relatively new affair. Before the general availability of phones you needed actual human snitches to spy on dissidents and deviants.

Even once phones were widely used oppressive regimes still needed a huge number of human agents because not every conversation happened on phone.

Physically spying on others is both dangerous and expensive, which is why it's usually done selectively.

All of that changed with the general widespread use of digital means of communication: Not only do most dissident, potentially 'dangerous' conversations take place in digital media but those conversations are also easily available for governments to harvest and draw upon to whatever end.

</comment></comment><comment><USER13> They've done these things before WhatsApp and will continue to do it no matter what changes are made to the law. As long as there are bad people, they'll find a way. This is just another, hard-to-criticise vector to undermine privacy for the vast majority of people who are not criminals.

</comment><comment><USER14> WhatsApp enables _everyone_ to communicate in secret, including the >99% of people who are not criminals. This is an equally valid way to frame the debate.

<comment><USER15> Maybe the effects of the equifax breach or a successor will be widespread enough to make the general population appreciate end to end encryption and proper security...

<comment><USER16> I think the p2p keys generated for a WhatsApp chat should be sent to certified contractor such as Equifax for their secure mainframes to store, and their staff to monitor the communications under a 5yr non-revokable GCHQ contract...

<comment><USER17> Not sure if serious or Poe's law.

</comment></comment></comment></comment><comment><USER18> Everyone gets their apps from two places: the Apple app store and Google Play. To enforce a ban on whatsapp, all the government has to do is compel Google and Apple to pull them from the app store.

The common user is currently entrenched in two walled gardens for almost all of their activity, and banning encrypted communications for 95% of the population is now feasible, and perhaps quite likely. That sucks.

<comment><USER19> > all the government has to do is compel Google and Apple to pull them from > the app store.

I would honestly love to see UKGOV try that. There wouldn't be enough popcorn in the world for what a disaster that would be on every level.

<comment><USER18> I wouldn't, it's not like Google doesn't already comply with state censorship laws: [https://en.wikipedia.org/wiki/Censorship_by_Google](https://en.wikipedia.org/wiki/Censorship_by_Google)

Most people would switch to something that is compliant with government legislation, very quickly. Because most people don't know or care what encryption is, they just want to talk to their friends.

</comment></comment></comment><comment><USER20> We have accepted that you can curtail certain rights for criminals, so I can't see why we couldn't add "not using Whatsapp" to them.

All you have to do is prove a certain person is a criminal. Innocent until proven guilty, due process, the justice system - any of these minor details ring a bell to Amber Rudd?

</comment><comment><USER21> Whatsapp will add EULA "service cannot be used for criminal activity" ;-)

<comment><USER22> That would be just too succinct. They have got a whole paragraph on Legal and Acceptable Use. [https://www.whatsapp.com/legal/#terms-of- service](https://www.whatsapp.com/legal/#terms-of-service)

</comment></comment><comment><USER23> The UK is part of the international "five eyes" mass surveillance group. The NSA certainly has access to all Whatsapp messages. Therefor, the UK has it too.

Therefor, this article certainly is nothing but propaganda.

<comment><USER24> You are so full of shit it is hard to know where to begin. End to end encryption means that WhatsApp does not have access to the messages, so the NSA most certainly does not. What is most annoying about delusional paranoid comments like this is that you distract from where the real fight is.

</comment></comment><comment><USER25> Criminals also have access to fast automobiles and efficient dual carriageways that enable their escapes. Further, they are using a powerful radio network to communicate with ease. We must act now to remove these things for the good of the people!

</comment><comment><USER26> Genuine question, Are guns allowed in UK just in the same way as in US ? Also, is it so hard to come up with another way of secure communication if they ban whatsapp ?

edit: also, if i could have worded that better ?

<comment><USER11> There's probably many alternatives to Whatsapp, if you need them...

Regarding guns, no. Even police officers don't have them.

<comment><USER27> That's incorrect. There are over 5000 Authorised Firearms Officers (AFO's) in the UK.

<comment><USER28> Sure, but your local street-patrolling officer does not have a gun with them. There might be one locked in their car but your ordinary policemen don't carry weapons.

<comment><USER18> They don't have guns in the car. Only trained police officers are allowed to use firearms.

<comment><USER29> Why aren't all cops trained to use firearms?

<comment><USER30> Because armed response is rarely necessary.

<comment><USER26> That is if you ban guns.

<comment><USER30> Well, yes. Although they're not entirely banned, only handguns are banned. Shotgun licenses and hunting licenses are fairly readily available.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER31> I'd prefer to see a headline like "UK government calls out Apple, Facebook and Google for spying on their citizens"

</comment><comment><USER32> Whenever I lately read things the UK government says about human rights I am soo glad they are leaving the EU.

</comment><comment><USER33> In that case couldn't the government track their movements as they have a mobile phone on them.

for example, you could find out who associated with a terrorist by their location history.

<comment><USER34> Can you give an example of locations you'd look for when searching for terrorists?

<comment><USER35> This is just part of signals intelligence.

Once you have a known event, then you can use the information that you know about that to start asking more questions.

Proximity is an obvious one, who was near or in contact with the alleged terrorist in the hours, days, weeks beforehand. Were there recurrences of close proximity amongst those individuals previously not considered persons of interest.

This methodology is precisely the same as how fraud and money laundering risk is mitigated. Once you work back from a KE (known event) to build up the pattern of related activities you can use this as a signature on observed future behaviour to try and identify future activity that you'd like to investigate more closely or act on.

</comment></comment></comment><comment><USER36> Pedophiles, criminals and of course terrorists! If we can't read everything, encryption must be outlawed!

/s

</comment><comment><USER37> To be fair, whatsapp makes it super easy - far easier than it's ever really been - to communicate so easily and securely with so many people. It's never black and white - you cant ban crypto and you also cant give criminals carte blanche for uncrackable crypto. The middle ground is the very difficult thing.

<comment><USER7> It's impossible to ban crypto only for criminals. Either strong cryptography is generally available or nobody can communicate privately.

<comment><USER28> One-time-pad is so easy to use that a child could figure it out and is literally unbreakable. Even if you outlaw "hard encryption" this extremely easy encryption method will always be available and will always offer 100% secrecy for anyone needing it. This is just a smokescreen, as always.

<comment><USER38> OTP requires a meeting, dead drop, or other open communication though. That's a massive vulnerability over purely virtual communications.</comment></comment></comment></comment>


Growing a SaaS startup from $0 – $10K in MRR - <AUTHOR> http://blog.btmetrics.com/2015/02/growing-a-saas-startup-from-0-10k-in-mrr/

<comment><USER2> Really inspiring and look forward to hearing more!

<comment><AUTHOR> Thanks @gunsuparman! Make sure you subscribe and help us spread the word!

</comment></comment><comment><USER3> Interesting article. Thanks for sharing

</comment><comment><USER4> interesting to see how a SaaS company tracking MRR for your product will learn in their own journey to $10K MRR

<comment><AUTHOR> Cheers @jeremeykl. Should be a fun ride. I hope you'll join us! You can subscribe to our mailing list at the bottom of the post to get our updates.

</comment></comment><comment><USER5> so simple yet so useful

<comment><AUTHOR> Thanks @huukhoanguyen! Simple is good when it's also useful. :)</comment></comment>


Show HN: Octo Ring, the Webring for GitHub - <AUTHOR> https://octo-ring.com/ <comment><USER2> That widget is a bit over the top - I added the next/prev/random links in plain text instead. Anyway, I love the idea of reviving web rings, so of course I joined.</comment>


Signals of API Health and Performance in Cloud-Native Applications - <AUTHOR> https://blog.netsil.com/the-4-golden-signals-of-api-health-and-performance-in-cloud-native-applications-a6e87526e74#.rpo67ulw4 <comment><USER2> Looks cool. Instrumenting at the network layer is certainly a promising approach. Are you recording latency distributions, and not just averages? The screenshots only show mean and median latency, which isn't enough to spot many anomalies.

<comment><AUTHOR> Right now we maintain few select percentiles from the latency distribution over 1 min time-period. We plan to maintain latency histograms which will allow you to look at latency distribution on arbitrary time intervals.

<comment><USER3> Any information on pricing?

<comment><USER4> Netsil AOC is priced by the number of vCPUs or cores that you would be monitoring. You can reach out to us at email@example.com for the exact price quote based on your needs.

</comment></comment></comment></comment><comment><USER5> Big fan of the visual devOps paradigm. Also installation is painless and non- invasive</comment>


Researchers send message using neutrinos - <AUTHOR> http://www.rochester.edu/news/show.php?id=4022

<comment><AUTHOR> Ok, this was pretty cool. Granted its expensive to set up but imagine two stations on opposite sides of the planet sending a constant stream of neutrinos to the other. On that 'carrier' you modulate data.

Now compare that to running a transworld cable half way around the world. Not only do you get a latency improvement of 33% (going 8K miles instead of 12K) you don't have to worry about ship anchors or anything else screwing up your link.</comment>


That zero-G OK Go video taking over Facebook isn't on YouTube - <AUTHOR> https://www.youtube.com/watch?v=nFwW2v_-5ak <comment><AUTHOR> Notably, the bit.ly link directs you to Facebook.

Nice play, FB Video team.</comment>


Ask HN: Groupon for oil changes? - <AUTHOR>

I currently run a blog that aggregates the latest oil change coupons (http://tinmanoilchange.com).
But I want to do more with it.
As I understand it, oil changes are a loss leader for service/repair shops in the US. And local mom & pop shops would be hard-pressed to compete with the big boys on price. So, I'm thinking the smaller shops can benefit greatly by earning a customer's trust with a cheap oil change and then establishing a relationship with them.
The value for smaller shops:
I'm looking to add value to the smaller shops by bringing in business through their door thereby giving them an opportunity to up-sell and/or create a relationship with these cost-conscious consumers.
The value for cost-conscious consumers:
The more obvious benefit is a discounted price on oil changes in their area. But I also think that customers would benefit from finding a mechanic that they can trust.
I'd like your opinion (yes, yours) on this idea and, more importantly, suggestions on the execution.
Specifically, what would be the most effective way to approach these smaller shops? <comment><USER2> fyi- i have seen a number of auto shops on groupon now and living social live.

I think having an online reminder system might be good - instead of the sticker on the windshield - send the customer an email to let them know about time to get an oil change and perhaps offer other maintenance items as well

<comment><AUTHOR> The reminder system is a great suggestion. Reminders could come in via email or text (at the customer's discretion). This also highlights the potential for recurring revenue in this simple model.

<comment><USER3> I'd pay $5000 to see that idea happen. 50/50 ownership with the coder/designer. And i'll pay for PPC to market it.

</comment></comment></comment><comment><USER4> _But I want to do more with it._

Sounds like something with a lot of potential, actually. Imagine if you allowed people to register their vehicles and keep track of oil changes and what-not for warranty purposes as well. Maybe even have a feature to scan and upload receipts for oil-changes (and other repairs).

I can imagine a complete "auto maintenance tracker" type site, and I could see it as something I might sign up for.

Here's a thought... log tire changes, along with mileage, and brand, and allow the customer to see what brand of tire gets the best mileage. Maybe even ask the user for permission to use that data in aggregated format... I'm thinking you might be able to sell that or leverage it in some fashion.

Anyway just some off the cuff ideas that popped into mind.</comment>


Thomas Piketty is right: Income inequality is holding us back - <AUTHOR> http://www.salon.com/2014/11/27/thomas_piketty_is_right_income_inequality_is_holding_us_back_partner/ <comment><USER2> _todo_ : institute escalating deterents on the concentration of wealth.

if you're worth $5mm, that's great. you're rich. enjoy. if you're worth $10mm+, you've started to become a real liability to the social order.

politicians and economists can debate how best to implement such controls, but some often talked about ideas are

      * raising the capital gains tax rate
      * more progressive income tax with a higher maximum marginal rate
      * closing various inheritance tax loopholes
      * closing offshore tax loopholes
      * allowing the failure of investment banks

these may not be the best ideas, since they don't all intrinsically internalize the social and economic costs to the rest of society, but they provide a starting point for discussion. and my point is not to vilify the wealthy but to accurately account for the social and economic externalities they create by their concentration of capital.

<comment><AUTHOR> I think you forgot the most important potential fix out there - instituting a Living Wage in some form or another. The bulk of the 'burden' of which would fall on taxing corporations and the ultra rich.

</comment></comment><comment><USER3> In addition to the wealth concentration mentioned in the article, systemic changes are happening that destroy the jobs of the 95%. Automation displaces workers that now have nowhere to find work. At some point there just won't _be_ jobs for most people.</comment>


Chinese Cash Floods U.S. Real Estate Market - <AUTHOR> http://www.nytimes.com/2015/11/29/business/international/chinese-cash-floods-us-real-estate-market.html <comment><USER2> There's potential to destroy the fabric of a society when the residential real estate is sold off to foreign buyers.

The dream of most ordinary people is to own their own home. When prices are pushed out of the range of ordinary people then the citizens have just sold their home overseas and can only rent it back. That can't lead anywhere good.

It's the end game of greed in which we have sold everything including our homes.

Countries no longer need to invade other countries - they just buy everything. It's a strange thing that there is an obsession with the risk of terrorism but selling real estate to other countries is not seen as a threat to national security.

If the government cared about its citizens then selling residential real estate to non-citizens/permanent residents would be outlawed. But instead what we get is a clear illustration that in our society the only thing that matters is money - our country is no governed for the people, its governed for the dollar.

The disaster can't be undone because governments will see the flood of cash and tax it, becoming addicted to the revenue and if anything, try to make more of it happen.

This will end badly one day, when ordinary people realise that the rich sold their dreams and ambitions to other countries.

<comment><USER3> The same fears were expressed when the Japaneses were buying up prime real estate in U.S. cities (Rockefeller Center, etc.) in the late 80s.

The result of that was that the Japanese asset bubble collapsed, all the (generally heavily-leveraged) foreign buyers found they were broke, and Americans bought back the properties at fire-sale prices.

I wouldn't be surprised if the same thing happens again when the Chinese asset bubbles crash. Locals have a huge information advantage over absentee landlords; this is far more likely to end poorly for Chinese buyers than for American residents.

<comment><USER4> It can't happen again because the Chinese have paid the full price up front in cash. Also, many of them want to become American residents.

<comment><USER5> They borrow cash from China using assets there for collateral to pay for US housing with cash. If they need the cash back for margin calls they will still need to sell houses.

</comment></comment></comment></comment><comment><USER6> As someone living in a city where property prices and rent are sky high partly due to Chinese buyers, partly due to government incentives, lack of planning and a bunch of other reasons, I've given up on ever owning my own home in the city I grew up in. Economically it's all great, at least in the short term and for those who already own property, but for someone like me staying here is becoming less and less appealing, and this is the majority consensus of my social circle which consists mostly of young, educated professionals. We are all keeping our eyes open for greener pastures.

</comment><comment><USER7> Chinese Pull Back From U.S. Property Investments: [http://www.wsj.com/articles/chinese-pull-back-from-u-s- prope...](http://www.wsj.com/articles/chinese-pull-back-from-u-s-property- investments-1448649226)

<comment><USER8> One of the quoted Chinese said he was dissatisfied with Chinese air quality as a reason to buy in CA, wouldn't it be great if they fixed that themselves over there instead of just leaving...

<comment><USER9> Who actually lives up to this standard? If you lived in an area with bad schools, would you send your kids there instead of moving? If you were born in a third-world country, would you stay there instead of emigrating to make a living? Are all of the people who move to Silicon Valley from other parts of the US for the job opportunities wrong?

</comment></comment></comment><comment><USER10> Two decades of exporting the US dollar for low-cost Chinese goods. Now the Chinese has fistfuls of US 'paper coupons' and have to redeem them somewhere (US real estate). US home prices go up for everyone. It's tit for tat. No free lunch.

<comment><USER11> Agreed, this is much like the situation in the 80s, and generally a good thing.

The only question I would have is what happened to export controls of capital? Is all this money legit? Cash is king I guess.

</comment></comment><comment><USER12> If Chinese people just want to invest in the US real estate market, the win/win would be some kind of REIT which did rentals. SF tenant laws suck for landlords, but if you're in modern construction, rent control at least goes away, and if it's a REIT/pooled asset, you care less about individual ones.

What hurts SF from a jobs perspective is the lack of 1-2BR at the $1500-3000/mo price point, not the affordability of housing. If the "SF deal" were that you could rent for 5-10y at $1500-2000/mo and have a reasonable place, make 2-3x the prevailing wage in other markets, and then buy a house in SFBA (if your equity hits) or elsewhere (if it doesn't), then that's a pretty reasonable deal.

What I hate is the cost for a new person to move to SF and find reasonable housing, either solo or with a family, with time pressure, and without local connections for roommates, sublet of a rent controlled place (which happens...), etc.

If I'm paying fair rent, I don't care if the check goes to a management company who pays a Chinese investor, a REIT, an earlier tech person, or someone who has owned property in SFBA since 1980s.

Encouraging sale of property at market price from people who bought it in pre- boom period, to a REIT or Chinese investor directly, is also a huge win for CA on taxes (and thus for residents), due to prop 13. It also converts the asset of a nearing-retirement-age person into cash, which might be more productively deployed elsewhere (or, a late-90s buyer, who might instead choose to invest in startups).

The problem is owned property being left vacant.

</comment><comment><USER13> This article was written about Japanese buyers, verbatim, hundreds of times in the 1980s.

<comment><USER4> For the sake of a fair comparison, here is a New York Times article from June 1993: [http://www.nytimes.com/1993/06/02/business/headache-for- japa...](http://www.nytimes.com/1993/06/02/business/headache-for-japanese- investors.html?pagewanted=all)

> During the real estate boom of the 1980's, Japanese investors purchased or > financed tens of billions of dollars of American property

> the Japanese are now forced to consider the same unpleasant choices that > their American counterparts have already been confronting: foreclosing on > mortgages, writing down loans and thus acknowledging grave losses, or > selling the whole mess to someone else, almost certainly at a loss.

> The Mitsubishi Estate Company ... Rockefeller Center ... mortgage for $1.3 > billion

> The Shuwa Corporation of Tokyo ... ARCO Plaza complex in Los Angeles, the > U.S. News & World Report Building in Washington ... 18-story office building > at 551 Madison Avenue ... $10 billion in debt

> Mitsubishi Trading Company ... 1,400-room Westin Bonaventure hotel ... $75 > million mortgage.

In summary, Japanese companies bought commercial property via loans.

Today, Chinese individuals are buying residential property, paying full price in cash up front with the aim of settling down in America and sending their children to the local schools.

Doesn't appear to be the same situation at all.

</comment></comment><comment><USER14> Is this the recurrence of what happened when Japanese was buying USA? only this time it's at a much larger scale.

I saw rich people overseas buying real estates with cash, giving birth to kids for citizenship with tourism visa, sending their older kids to private schools here over the last few years, it's a trend getting stronger. While USA got some property tax in the pockets, the damage this does is more than any gains.

They come here simply because they have cash. The business of America is business, I guess that's the only thing matters.

</comment><comment><USER15> I don't personally own any "real" estate, but this is scary to me.

<comment><USER16> If you did own some, this would make you happy, as your investment would go up in value

<comment><USER2> Yep, it's easy to work out who is "for" selling real estate overseas and who is "against".

If you own, you make big cash - you're for it - sell it all!

If you don't own - you're against it - you'll never own a house.

Great way to fuck the basic happiness of a society. And for what? Money.

<comment><USER17> Not necessarily. Remember how cheap renting was right after the housing bubble burst ? All those speculative home/condo buyers wanted to rent their places out to avoid having to declare bankruptcy.

</comment></comment></comment></comment><comment><USER18> Welcome to London.

</comment><comment><USER19> Another reason why Chinese love coming here is to take advantage of government benefits, particularly with regard to medical care. There is effectively no social safety net over there, and Chinese who are well off enough to set themselves up over here find America to be an easy mark. I personally know of many recent immigrants talking about loopholes to hide their overseas assets to qualify for Medicare and section 8 vouchers, and how to avoid detection of their ties to the communist party.

A big difference between these immigrants and earlier waves is the ones coming now have already made it, often by being shrewd about playing the system. This also means they have no compulsion or desire to assimilate, unlike past immigrants who had to work within the system here to ultimately find success. I have been personally shocked by the level of contempt shown of American values - although this is something you will only see expressed to members of the same circle (I look like them and can talk like them, which gains me admittance).

All of my own grandparents and some of my own parents immigrated from china, and I have many other friends, acquaintances and family members who I would qualify as recent arrivals (my more negative statements apply to some of them) so I am not inherently anti Chinese immigrant. But I am not optimistic about the new arrivals being a positive thing in the long term.

<comment><USER20> > Another reason why Chinese love coming here is to take advantage of > government benefits, particularly with regard to medical care.

As an American living in Asia this is horrifying. How did you discover this group of Chinese people who were so successful that they have to hide their assets, yet so stupid that they seek public health care in one of the only first world countries which does not adequately provide it.

<comment><USER19> I have some family members who are going through the immigration process, and they and I have talked to many others who have gone through the same; acquaintances, coworkers, friends. I was saddened the first time I heard these stories. After hearing them a dozen times I was horrified. It really shattered my illusions that people who should ostensibly have a similar perspective to me could be so radically different. One part of me hates to share these stories as there are many people in this country who would look at me and associate me with them by dint of the obvious ethnic similarity. But I think it does my fellow citizens a great disservice not to be informed.</comment></comment></comment>


Stop comparing this to the 2000 bubble - <AUTHOR> http://harknesslabs.com/post/65899842923/ffs-stop-comparing-this-to-the-2000-bubble <comment><USER2> _The most important figure above is that we still have 70% more users to get online. The 'internet' can and will continue to grow exponentially, as more children are born and more kids start getting there first smartphone._

So in response to people pointing out that the industry is obsessed with user numbers and not profit (or even revenue) the author gives us an argument about how there are still a lot of potential new users. The exact same argument was widely used in 1999. And apparently this shows that things are different from 1999…

Is this meant to be satirical?

<comment><USER3> And even if you just go by numbers, it's not likely that technology will be available to the entire world population any time soon.

As of 2008, 22.4% of the world population was earning less than $1.25 per day[1]. 870 million people (one in eight) were suffering from chronic undernourishment in 2010-2012.[2] Even if they could afford smart phones or internet service, it's not likely that you could sell them a lot of stuff on the internet, or convince companies that they should pay to advertise to them.

Also, it's the poorest countries that have the highest birth rates. Some developed countries, like Japan or Italy, will soon have declining populations.

Companies like Facebook have already picked up all the low-hanging fruit -- the people in developed countries who can easily afford internet access and smartphones. Getting additional subscribers will only get harder once they have to start looking to lesser-developed countries for new subscribers. The era of exponential growth may have already passed.

[1] [https://en.wikipedia.org/wiki/Poverty#Absolute_poverty](https://en.wikipedia.org/wiki/Poverty#Absolute_poverty)

[2] [http://www.worldhunger.org/articles/Learn/world%20hunger%20f...](http://www.worldhunger.org/articles/Learn/world%20hunger%20facts%202002.htm)

<comment><USER4> You'd think that would be a capitalist incentive for corporations to act to better the living standards of the global poor, so they can become potential customers and consumers of their products.

<comment><USER5> There is. For example, the free market - to the extent it has been allowed to exist - has done a lot to move China forward in very short amount of time (and particularly given the disaster their country was coming out Mao's reign).

Several former Soviet countries that were exceptionally poor have made good progress after the fall of the USSR. Hong Kong was practically a banana republic at one time, and quantum leaped forward very fast courtesy of Capitalism. Singapore used to be an irrelevant back-water nation.

You'll find that in most of the worst countries today, there are structural impediments that make it nearly impossible for the free market to reach the poorest. Often it's extreme levels of corruption, backed with violence; other times it's very protracted regional warfare (eg in central Africa); and other times it's a mixture of cultural and bureaucratic as in parts of India.

[http://www.foreignpolicy.com/articles/2010/02/22/africas_for...](http://www.foreignpolicy.com/articles/2010/02/22/africas_forever_wars)

</comment></comment></comment></comment><comment><USER6> I agree the call for 'bubble' does get annoying, but I also note that you can be 'over valued.' The appetite for stock (or investments) in non-profitable companies (so called 'ground floor' opportunities) is (and perhaps always will be) insatiable.

But I think the bigger thing going on here is capital chasing something other than a 1% return. Consider you have $100M sitting around. You can take 2% of that ($2M) and 'angle invest' $75K into 24 different 'startups' and with one "winner" exit with a payback of $7.5M (100x return on 75K) and have your overall portfolio growth for that period be 5%.

</comment><comment><USER7> pretty weak argument. 'This isn't like the 2000 bubble, because we have more internet users now'?

If you really think there's nothing wrong with tech valuations, please show me ONE company in another industry that has no revenue and 16 employees, yet is worth $3-4 billion (Snapchat)

<comment><USER8> It's proto-singularity economics. We have no reference frame for what something is worth when a billion people use it and it only takes two people to run it. Even with no revenue, it's worth _something_ , right?

Imagine when one person can create a platform 90% of humanity relies on. What is that one person worth? What if that product has no revenue because the owner can extract all value on-demand by extorting/blackmailing The Man at will based on collected personal information?

<comment><USER7> This is the same argument that was used in the dotcom bubble -- profits don't matter because tech is different.

The fact that it's being trotted out again as justification should worry you.

<comment><USER8> But, tech is even different-er now.

Go back to 1999 and build a website supporting a million concurrent users. How much hardware do you need? What are your fixed costs? What are your engineering costs? How do you even market your thing?

Now do the same today.

What's different?

<comment><USER9> The hardware cost is low, as is the barrier to entrance. And the users' expectation is higher.

To attract today's users, you still have to be better than your competitor's website. The fact you can easily build a website for millions doesn't mean it will actually see millions of visitors.

</comment></comment></comment></comment></comment><comment><USER10> Of course there's a bubble. Of course it's not the same as the 2000 bubble.

Today online businesses are very different than in 2000, the sheer size of the market and the industry is vastly different. The cost tradeoffs are also very different. And, as always, bubbles are about psychology, and the psychology is different. But the idea that there aren't many vastly overvalued companies out there is difficult to swallow. There are many over hyped corners of the market (like social) and many valuations that only make sense if the companies are run by clairvoyant business ninjas (which, inevitably, few are).

Over the next 5 to 10 years we'll see plenty of highly valued companies crumble and be revealed as mostly hollow shells. And we'll see a few companies that don't seem to make sense succeed even so. All of which is fine. Nobody's forcing anyone to invest in any of these companies. And the good news is that the dot-com industry is big enough and diverse enough that, unlike 2000, it can survive plenty of big failures and still keep going.

</comment><comment><USER11> Yawn, is someone calling social networks "the tech sector" again? Yeah, right, because material science and industrial automation technology and others are obviously agriculture or something.

</comment><comment><USER12> When people start writing articles about how "This isn't a bubble" \- it probably is.

</comment><comment><USER13> The population of CA is about 80 times the population of Las Vegas. Therefore if Las Vegas had a real estate bubble in the past, California cannot be having one now, because its bigger. Or something like that.

Two diagnostic indicators for a bubble: Graph PE ratio and its friends, and is there any monetization strategy presented other than greater fool theory?

</comment><comment><USER14> I guess in 2007 everybody thought that the housing market will never ever collapse and the raise will continue forever. People, it won't.

And neither will this growth.

It has nothing to do with the size of the market or the number of potential users. Hey, if you say it like this, in 2000 were a lot more potential users than today, because of less people on the internet.

<comment><AUTHOR> Thats a pretty blind way to look at this. A shopping site launching in 2000 had a fixed potential audience of X and a MAXIMUM revenue of Y.

A shopping site launching today has more than 10x the audience. If you want to discount that, go ahead.

<comment><USER14> Even 10x is a finite number. Growth is not unlimited it never was and never will be. That is the point I was trying to make.

</comment></comment></comment><comment><USER15> I call this phenomenon "fishing for prophecy".

Post a couple of prophecies, with "evidence" of course! Maybe some contradicting ones under different pseudonyms. Then, when the fecal matter eventually hits the rotary impeller, you can say you foretold this.

Makes you look incredibly smart...

</comment><comment><USER16> I found'there first smartphone' and 'way to modern' to be too distracting to carry on reading.

Also the argument I did read appears to be weak, the number of potential users doesn't seem to matter if they don't bring you profits.

<comment><AUTHOR> I am sorry that my spelling/grammatical error caused you to discount my writing. That is entirely your choice of course, however I think you will find the internet a rather unpleasant place.

Regarding your second point: Tell that to instagram. Your valuation is /only/ defined by what someone else is willing to pay for it, revenue or not. If you do not agree, I have some houses in Detroit to sell you.

</comment></comment><comment><USER17> Weak argument, probably the right conclusion. Internet users number may be the most important metric, considering it spans continents now, including countries at different levels of economic development. There's more likelyhood of hedging. edit: I think the metric is important because users can become innovators and providers easier then ever, not just because they have disposable income.

</comment><comment><USER18> The current bubble isn't that malignant as 2000 bubble. However, it's still a bubble.

</comment><comment><USER19> The only way to underniably confirm its a bubble is if it "pops".

Is snapchat worth 4 billion? Only when some buys it or it goes public. Till then its speculation and we can be here till the "cows come home" debating if we are in a bubble.

I think the best people to ask are PG, Fred at AVC etc. The ones who do this for living who are making these decisions everyday and know the markets. I don't know enough to say for sure and wasn't here for the last bubble.

<comment><AUTHOR> Exactly right. Anyone telling you it is or is not going one way is crazy. Im simply refuting that "its just like 2000" and showing some strength points.

</comment></comment><comment><USER20> Terrible argument, and here's why. The only thing being said here is that the number of people (and devices) on the Internet is larger. That's true. However, until you turn someone into a paying customer, that's a cost, not profit. Premature eyeballs force premature scaling, which is expensive both in the short and long term. (Even proper scaling is costly and risky, insofar as it requires a management team to hire people with talents it cannot directly measure; improper scaling is even more expensive.)

As awful as age discrimination is, the good news (for people currently 25-45, who will be 35-55 in the next boom) is that the trend will probably go the other way when the "social" bubble collapses. Why? Because investors are about to get burned, hard, by a bunch of startups whose founders cared more about being popular than making money. In five years, that will be the age stereotype attached to young founders.

<comment><AUTHOR> I get where you are coming from, but its very incorrect.

There is no additional cost for supporting 1k customers a month vs 100k customers a month. However, your revenue will be 100x more.

Sure, there might be more incremental costs (bandwidth/storage) but it is NOT statically in line with profit.</comment></comment>


My best life hack - <AUTHOR> https://medium.com/life-hacks/1bfe5f86fb21

<comment><USER2> It's sad that things like remembering birthdays is considered a 'life hack'

<comment><USER3> That wasn't listed as a life hack.

| here's a list of strengths I've noticed in my team over the past few weeks (and how that strength helps our team do its best work):

| ...

| - Remembering to celebrate birthdays and other important life moments (makes our team feel connected)

| ...

His 'life hack' is to recognise and celebrate peoples' strengths in his community. One or more of those people, it seems, is great at remembering birthdays, and he recognised this.

Also, you may want to say that what he's doing isn't a life hack either, but remember who his audience is ;)

<comment><USER4> > _Remembering to celebrate birthdays and other important life moments (makes > our team feel connected)_

If you don't do it genuinely, then how is it anything else than hypocrisy?

I mean if you don't care enough for the guys at the team to remember their birthdays in the first place?

<comment><USER5> Hypocrisy is not inherently bad. Hypocrisy is the acknowledgement of the importance or relevance of a value without the discipline or will to act according to that value. That does not invalidate the value.

<comment><USER4> Hypocrisy can be good if the result is a better world. I.e a hypocritical politician tells people to reduce their carbon footprint, while he wastes as much energy as one man can. If people follow him, then the net result of the hypocrisy is good.

But this is not such a case IMHO. This is a case of using hypocrisy to achieve a personal goal. It might make the team feel better, but it's not because he/she genuinely likes the team, but because he merely wants the team to feel better for business purposes.

That's a kind of "leaky hypocrisy" (akin to "leaky abstractions"). If he/she doesn't genuinely care for the team, it will show in any occasion it can, i.e when under stress, when firing people, at chances of promotion etc.

</comment></comment></comment></comment></comment><comment><USER6> Forgive me, but I am watching a lot of 'The Office' recently and I cant resist - this looks like Michael's Scott blog entry ;)

</comment><comment><USER7> Then have a look at Sean Stephenson and his talk about power connecting.

<https://www.youtube.com/watch?v=gc0hoPfawuU>

</comment><comment><USER8> I have a similar mindset, but I see it less at being an apparently benevolent manifestation of selfishness, and more as a recognition that minor positive social interactions have a positive, cascading effect.

Discussion about "atmosphere" and "work environment" as contrast between employers is common, but the most effective way to transform the space is by acknowledging these basic human traits, and making an effort to promote a positive work (and social) environment.

You may be surprised how this can have a multiplying effect, and increase the perceived work dynamic overall.

</comment><comment><USER9> An interesting experiment. I wonder if pointing out the weakness (constructive criticism) might be helpful as well.</comment>


I need help with an open source app to keep Canadians in touch with Parliament - <AUTHOR> Android Source (https://github.com/sunnypurewal/epac-android)
Android App (https://play.google.com/store/apps/details?id=net.dinglebox.epac)
iOS Source (https://github.com/sunnypurewal/epac-ios/)
iOS App (https://itunes.apple.com/ca/app/epac/id1224459142?mt=8)
I recently released both iOS and Android versions of an app that turns Hansard into a chat bot. I am interested in vastly extending the features in this app to include all of the data available on http://www.parl.gc.ca/ A few immediate examples are creating a French version of the app and designing a new logo.
It is too easy these days to be uninformed about what's happening in the federal government. Following Parliamentary proceedings is an important aspect of keeping tabs on government but it is too often reduced to short sound bites in the news, or presented in an almost unwatchable format such as on CPAC. I want to take the trove of data made available by Parliament and present it in a way that is engaging using modern technology. All data provided by the government are made available under the Speaker's Permission (http://www.parl.gc.ca/SpeakerPermission.aspx?Language=E) and is prohibited from being used for financial gain, so the benefit of this project is purely a public service.
I originally planned to do this work individually but I realized I would not be able to deliver features quickly enough on my own. I believe this app is a valuable resource for staying informed and I am confident that people will use it given the feedback I have received already. I'm hoping that by making this app open source, that there will be others that share this belief and will want to contribute.
If you are interested, try out the app on your smartphone, and take a look at the data sources at http://www.parl.gc.ca/ParlBusiness.aspx?Language=E and the code linked at the top of the post. Send me a message if you want to help. <comment><USER2> I am curious which aspects of the application depend on a smartphone versus implementation as a website?

<comment><AUTHOR> The smartphone allows for the key feature of the current release which is a chat bot. Presenting parliamentary debates in this format makes it easy to consume in manageable chunks. There is currently no mobile friendly way to access any of Canada's parliamentary data, while the website does host lots of info in both html and xml format. The application depends on a smartphone in that the smartphone is the best way to present this information

<comment><USER2> I asked because the request for help suggests that the workload for mobile apps may be a problem for the development team.

Good luck.

<comment><AUTHOR> Yes, the development team is just me right now.</comment></comment></comment></comment>


Best Practices for Linq Enumerables and Queryables - <AUTHOR> http://code.jonwagner.com/2012/08/24/best-practices-for-linq-enumerables-and-queryables/ <comment><USER2> It is a terrible article.

1\. Why would the author recommend using extension method instead of using the 'query' syntax? The main purpose behind creating the query syntax was to make your code easier to read. Query syntax is not at all about 'pretty' or 'clever'. It's about readability. [And why call the query syntax as 'language extension'?]

2\. Why invent terms like 'seal' LINQ queries? By default, all LINQ querie execution is deferred. And yes, you have to understand this deferred execution and how it affects your code. But his code example is TERRIBLE.

var allCustomers = customers; var waCustomers = allCustomers.Where (c => c.Region == "WA"); var waCustomerIDs = waCustomers.Select (c => c.ID);

Why copy the variable to allCustomers? And if you need Id and name, you can write code like this:

var customerIdAndNames = from c in customers where c.Region.Equals("WA", StringComparison.OrdinalIgnoreCase) select new { ID = c.ID, Name = c.Name };

There was absolutely no reason to create two different IEnumerables for a scenario where you needed different properties.

3\. Again, one has to understand that result of a query is just that, a 'query'. And you don't have to call 'ToList' method to execute the query. In fact, if you want to iterate the query results only once, it's better to use foreach and enumerate over the query results instead of calling ToList method as you will be not have to consume memory to store the entire list.

4\. Horrible idea to suggest that you should always return List instead of IEnumerable. This choice should be left up to API caller in most cases.

This whole article is garbage. It is OPPOSITE of best practices in LINQ.

<comment><USER3> Absolutely. You saved me writing the same thing.

Regarding point 1, I would add there are also things that can be done using the query syntax that simply can't with the extension methods. For instance, I'm not sure how you would scope things in the same way as the 'let' clause when using extension methods.

Regarding the other points, I would only add that deferred execution and lazy evaluation are things to be embraced, not hidden away and overriden. Should we also not bother with the yield keyword?

Of course, there's always some occasion where you'll want to ToList your IEnumerable. I'd argue this should be of concern to the consumer of the IEnumerable though, not the producer.

Point 5 at least tries to allude to something useful. Given Linq's grounding in functional programming, of course you want to try to avoid side effects.

<comment><USER4> Regarding the let keyword; the following code:

      var x = from post in posts
              let keywords = post.split(' ')
              ...

Is compiled* into:

      var x = posts
              .Select(post => new { keywords = post.split(' '), post })
              ...

* If you didn't know already, the compiler transforms query syntax into extension method syntax.

<comment><USER3> Oh yes, I did actually realise that. Thank you though.

I worded it badly. I should have been clearer in that I was following on from solutionyogi's argument about readability.

The compiler example is a bit on the ugly side, wouldn't you say? To then access 'keywords', it becomes

      ...
      .Where(anon => anon.keywords[0] == "verybadexample")
      .Select(anon => anon.post);

What I should have said was that I'm not sure how you would scope things in the same way as the 'let' clause when using extension methods _with the same level of readability_.

<comment><USER5> Like this:

      var thing =
        from x in stuff
        let derp = x.herp
        select { x.name }

Equals this:

      var thing = stuff.Select( x => {
        var derp = x.herp;

        return new { x.name };
      } );

edit: formatting.

I think each have their place, but this absolutely enrages me:

      var things = ( from x in thingList select x ).ToList()

</comment></comment></comment></comment></comment><comment><USER6> Uhg. Always defer materializing the query until you need it. If you are using LINQ against something like EF it changes how the SQL is generated.

Consider var query = (from customer in context.Customers select customer).ToList().Where( c => c.Id == 3);

vs var query = (from customer in context.Customers where customer.Id == 3 select customer);

The first LINQ query results in "SELECT * FROM customer". The WHERE clause is applied after the result set is returned. The second generates a real WHERE clause. The result set is filter on the server before being sent to the client.

</comment><comment><AUTHOR> Thanks for the feedback. I've made some updates to the article to hopefully improve where my meaning was not as clear as I intended, and where I should have more strongly written "it depends on your situation".

My next controversial post will be titled "Proper Spacing Around Parentheses in C#" ;)

</comment><comment><USER7> "Sealing the chain" as you say, is indeed important for scenarios such as lookups within a loop. If you haven't .ToList()ed your lookup LINQ var, you will be requerying with every iteration. A simple change that can slow down code dramatically.

</comment><comment><USER8> The article does a good job of exposing common pitfalls to those new to deferred execution and offers some solid advice. However, I agree that it's overly defensive to recommend ToList'ing almost every IEnumerable to avoid having to think about it, but this seems like a decent idea for more "software conservative" developers.

</comment><comment><USER9> These are "Best Practices for Linq Enumerables and Queryables when You're Not Really Sure How Linq Works but Still Want to Use It".

</comment><comment><USER10> Good to see some C# on HN</comment>


Sea Urchins' Self-sharpening Teeth - <AUTHOR> http://www.sciencedaily.com/releases/2010/12/101222162404.htm

<comment><USER2> Does this sound to anyone like the blades on a snap-off knife - when one layer gets dull, it breaks off revealing a new sharp layer?</comment>