256 DSP core at 28nm, 200 GFLOPs with 5 Watts, designed by KALRAY - <AUTHOR> http://blog.thinkteletronics.com/?p=399

<comment><USER2> The hardware is interesting, but it also looks like they've put a lot of effort into programming it. You can approach it from C, or they have a way for you to specify a dataflow and get it mapped onto the hardware. They also appear to have lots of performance analysis tools in their developer kit (which has no price, so I'll just assume 5 figures or vapor).

It isn't aimed at GPU work and it is strange enough not to be a general purpose computer. The obvious hacker markets are password cracking and bitcoin mining, the coins per joule might be a game changer. I'm sure someone on Wall Street can use them to harvest fractional pennies at astounding speed. Low power, high throughput, and big compute sounds about right for an NSA network sniffing appliance. The application will have to be big enough to get someone over the learning curve to justify the strangeness. "Hello World!" won't be hard, but optimizing will be. Something on the Google indexing or Siri scale would be an obvious market if the computation per watt justifies it.

• 16 clusters of 16 processors all tied together with a fast on chip network.

• 32MB of local memory for each cluster.

• Two DDR3 interfaces

• Two 40Gbps ethernet or eight 10Gbps (though I only see two on the diagram).

• Two eight lane PCI Express interfaces

</comment><comment><USER3> This little chip could be a significant boon to signal and image processing. A number of those applications, particularly surveillance radar, sesimic/hydrographic survey, and sensor fusion[1], have signficant data parallelism. Many have multiple independent data streams that must be processed and integrated in real time. With the proper algorithms, an architecture like this is much more efficient than a general-purpose multi- core or multi-machine system.

One of the key limits to these sensors is the data pipe between the various pieces that run the signal processing. This is especially true when one of the hops is over a relatively slow link, such as with an ROV/UAV. The size and weight of this chip would allow more of the signal processing to be embedded on the platform or in the sensor, thus reducing the volume of data passed over the slow link and allowing more information to be sent.

It does, of course, require a different programming paradigm to use effectively. Special applications like I have mentioned are worth the extra effort and reduced portability and so will see value in this device. No doubt some other applications mentioned so far (crypto, finance, etc) will also see value in it as well.

[1] I have a strong background in and knowledge of military sensors, and signficant exposure to seismic and hydrographic survey in the oil and gas industry.

<comment><USER4> Bitcoin.

</comment></comment><comment><USER5> That's cool.

Although in the hardware world, I have to say that there are a lot of cool things, and often the main thing is, can I actually buy it?

If you ordered one and had the chance to use it, I think that would give you the right to crap on the kickstarter project.

</comment><comment><USER6> Here's the tech specs <http://www.kalray.eu/products/mppa-manycore/mppa-256/>

</comment><comment><USER7> 1\. I don't see a price anywhere in the article. Adepteva plans to sell the 64-core version for $199 and that includes the board.

2\. Adepreva plans to open source the hardware and software, does KALRAY?

3\. Adepteva have actually built chips. The kickstarter project is to scale up manufacturing to bring down the cost. I think $99 for 16 cores is pretty good.

Still, if the price is right, more is better, so it's worth keeping an eye on.

</comment><comment><USER8> I get deja vu every time I see that Parallela schematic: [http://www.tilera.com/sites/default/files/productbriefs/PB01...](http://www.tilera.com/sites/default/files/productbriefs/PB010_TILE64_Processor_A_v4.pdf)

</comment><comment><USER9> Has there been any research into running neural networks on DSP architectures? I'd love to try my hand at programming a DSP. Are there any low-cost options for hobbyists?

<comment><USER10> Keep your eye for TI tech days. They have them in most major cities. Its a series of classes layered with tons of TI advertising. I usually walk out of them learning something.

The reason I bring them up is they usually give out 95% off anything under $500 coupons from their estore. I picked up a nice DSP dev board with one of them not too long ago.

</comment></comment><comment><USER11> it's a nice science experiment, but parallelization has its limit. there are very few examples of (non mathematical) algorithms that can be parallelized to 256 cores...

[http://en.wikipedia.org/w/index.php?title=File:AmdahlsLaw.sv...](http://en.wikipedia.org/w/index.php?title=File:AmdahlsLaw.svg&page=1)

<comment><USER12> And DPI and communication analysis is one of them.

The tech spec hints clearly that it is a DPI chip especially the 80Gbs ethernet. (And the company is funded by the french public sector)

<comment><USER13> What's DPI?

<comment><USER12> Deep packet inspection (network analysis).</comment></comment></comment></comment>


Autotune – Cloud Diagnostics and Performance Tuning - <AUTHOR> https://www.acksin.com/autotune/ <comment><USER2> > However, we found no tool to help tune servers so we decided to write one.

I actually looked for a tool similar to this a while ago after finding some larger than necessary servers in our infra not doing very much. Here are some of them:

Cloudyn Optimizer [https://www.cloudyn.com/products/](https://www.cloudyn.com/products/)

CloudCheckr [http://cloudcheckr.com/spend- optimization/](http://cloudcheckr.com/spend-optimization/)

BotMetric Cloud Cost Management [https://www.botmetric.com/aws-cloud-cost- management-cost-ana...](https://www.botmetric.com/aws-cloud-cost-management- cost-analytics/)

Most of these are aimed at cost reduction through many means (e.g, switch cloud providers, purchase reserved instances), not just improved server efficiency.

<comment><AUTHOR> Any tool that reduced the environmental footprint of servers is a tool I want people to use. :)

</comment></comment><comment><USER3> Naming your software after another high-profile piece of commercial software seems inadvisable.

<comment><AUTHOR> Good point... I actually thought the other Autotune was a piece of hardware...

<comment><USER4> Given that "Autotune the news" renamed itself to "Songify the news", it's highly likely that Autotune's owners are not shy about enforcing their trademark.

<comment><USER3> I figured that move was more about wanting to promote their own brand instead of someone else's. (They began selling Songify apps around the same time.)

</comment></comment></comment></comment><comment><USER5> It would be nice if a tool could dynamically tune based on server conditions, too much sequential io? Increase read ahead and swap out applications, too much random io, reduce read ahead, etc.

<comment><AUTHOR> That is the eventual goal of this tool. But we have to start somewhere right?

</comment></comment><comment><USER6> No idea how this will help my idle server! If it's idle, tuning won't really help heh

<comment><AUTHOR> Well the goal of the tool is to watch the entire cluster and notify you if any machine is idling or not doing its part.

Right now the tool is focused on making existing servers performant, but since it is already collecting diagnostic information it can eventually also notify if a machine is sitting idle.

For example, a company I worked at had a Redis slave machine which was quite powerful but we realized 2 years later that it wasn't actually doing anything. Whoops. All the monitoring metrics showed that it was performing well, but nothing actually notified us that by performing well it wasn't doing anything in the first place.

This seems to be a common theme when many machines are run. Some go unnoticed and idle away.

</comment></comment><comment><USER7> Excellent idea! Are there any benchmarks of how the changed sysctl values affect performance?

<comment><AUTHOR> I've used some of the settings at a previous company on an haproxy front end machine. Lead us to move from c4.8xlarge machines to m4.xlarge handling the same traffic. I'll do a future post on how it affects scaling.

</comment></comment><comment><USER8> My instance isn't reporting anything. Also compains the install.sh is wrong...

<comment><AUTHOR> Hey can you email me at firstname.lastname@example.com and I'll help you debug.

</comment></comment><comment><USER9> When is the server portion likely to be open sourced?

<comment><AUTHOR> Hopefully in the next 2 weeks. We are considering just being able to do it via AWS Lambda.

</comment></comment><comment><USER10> Really frustrating when websites just plaster me in the face with an email signup form before I even have a chance to read what the business / app is all about: [http://i.nick.sg/1e71733605744a9ba084737429cc694d.png](http://i.nick.sg/1e71733605744a9ba084737429cc694d.png)

I just closed the tab. It's not worth it.

<comment><AUTHOR> Sorry about that. Removed the form.</comment></comment>


CEO Flights Tip Off Investors on Mergers - <AUTHOR> http://online.wsj.com/article/SB10001424052702303499204576389923856575528.html

<comment><USER2> The title is pretty unrevealing (I mean, hey, way back when _Wall Street_ was filmed, this concept was featured in the film). What is interesting here is that the FAA has a privacy program that allows private aircraft owners "to keep their plane movements from public view." This program is now ending. Now people will be able to track where corporate jets are going and thereby, the article suggests, get insight into M&A discussions.</comment>


Runit – a Unix init scheme with service supervision - <AUTHOR> http://smarden.org/runit/ <comment><USER2> Runit is amazing. I've used it on several large scale websites with great success. Runit follows the unix philosophy of being stupid simple and doing one thing incredibly well. If you're starting up a new project, consider using Runit.

<comment><USER3> Not only is it simple and does the do-the-one-thing-well thing well, which is true, it's also _correct_. It's hard to overstate how valuable runit is in production because of that. It does the right thing with regard to clearing the environment, detaching from controlling terminal, logging, and many other subtle aspects of operating a service. I never worry about runit.

<comment><USER4> Back when I changed from supervisord to runit my life was substantially improved. That correctness means way fewer emergency maintenance ops issues in production.

<comment><USER5> What is wrong with supervisord?

<comment><USER4> First of all and mostly, we could never exactly figure it out what was going wrong.

This was a few years ago and I don't remember all the details. We just had occasional issues with stopping/starting and especially restarting processes when pushing a new version out or when a process crashed. I do remember it could occasionally report a successful restart and still leave the old process(es) running.

All my developers became very familiar with supervisord, and it was number 2 on the troubleshooting list (1. Did we introduce a bug in a recent commit? 2. Did supervisord do something weird again).

After we switched to runit, only devs that touched ops knew about it at all. And we all forgot it was there. That's what you want in an ops tool.

</comment></comment></comment></comment></comment><comment><USER6> I use GNU dmd instead. Simple and very extensible with Scheme. I use it as PID 1 on 2 of my machines, but I use another instance of it as a user service manager on all of my machines. I've also been meaning to replace runit with dmd in Phusion's passenger-docker image to get something more hackable.

[https://gnu.org/s/dmd](https://gnu.org/s/dmd)

<comment><USER7> Having dynamic memory allocation, let alone garbage collection, in my pid 1 doesn't sounds like a great idea.

(I know, as long as I'm using Linux, I'm stuck with dynamic memory allocation _in the fucking kernel_. I don't have a plan for how to fix that yet.)

(Also, thank you so much for all your help with Guix this last week!)

<comment><USER8> There's nothing wrong with dynamic allocation in a kernel. It is for example better than having fixed size process tables and all the crap that comes with that.

"holy crap I've got to recompile my kernel to get more processes" is so 1995...

<comment><USER7> You know what else is "so 1995"? 400-day uptimes.

<comment><USER8> Not really. I have centos boxes that have been up for over 3 years.

</comment></comment></comment></comment></comment><comment><USER9> If you run runit you can also take a look at runwhen: [http://code.dogmap.org/runwhen/](http://code.dogmap.org/runwhen/)

It's cron and at implemented in a quite elegant way.

Unfortunately there does not seem to be much love for it in distributions.

[http://code.dogmap.org/runwhen/overview/#rationale](http://code.dogmap.org/runwhen/overview/#rationale)

</comment><comment><USER10> There is a good comparison/documentation of what an init system like runit should do and why on the S6 site: [http://skarnet.org/software/s6/why.html](http://skarnet.org/software/s6/why.html) [http://skarnet.org/software/s6/overview.html](http://skarnet.org/software/s6/overview.html)

Runit has the advantage that it is packaged in Debian and you can start using it right away.

<comment><USER11> Do you have any experience with S6? Do you know how it compares to runit?

<comment><USER12> I've used s6 a lot, though not as an init replacement in any systems that matter. As a supervisor I think it's great. For basic stuff (root process supervising supervisors supervising daemons) the two are basically identical with some superficial differences. For wider ranging stuff s6 is really good since it has a bunch of ancillary programs that solve a lot of serious issues in full system supervision (readyness notification vs polling in a run script, ucspi socket handing, etc).

<comment><USER12> I missed actually answering the question about the difference between the two (plus, that comment is in dire need of editing and the edit window appears to have expired).

The superficial differences are things like: service to logger pipe holding happens at different levels of the supervision tree (the root `s6-svscan' holds them in s6, the per-service runsv holds it in runit), `s6-svc -CMD behavior cannot currently be overridden whereas you can with `sv CMD', `s6-svscan' will immediately re-scan its directory with SIGALRM whereas `runsvdir' only polls for changes on a 5 second timer.

For basic supervision tasksboth are great, with runit being the simpler of the two in terms of understanding what it gives out of the box. For larger tasks (full system supervision, inter-service ordering dependencies, etc) s6 has the tools to make that easy whereas with runit you're going to find yourself playing stupid tricks in run scripts to get similar behavior.

</comment></comment></comment></comment><comment><USER13> A genuine question, as it's not quite clear to me: can someone explain like I'm 5, what can I use runit for exactly? Is it a replacement for init.d or something more like monit? I always use monit to keep my Rails-related processes running and I've read somewhere that using monit combined with runit may be a better solution, but isn't it a bit redundant to have the two at the same time?

<comment><USER12> Essentially it's an alternative method for starting long running services (and restarting them if they fail).

The things all daemontools-inspired process supervisors do: Runs a scanner gainst a service directory containing a directory for each program you want supervised (classically these are symlinks to another part of the system). The scanner spawns a supervisor program for every directory it finds which then looks for a program called `run' inside that directory and runs it as a foreground child. If the supervisor's child stops, it runs an optional script in it's supervision directory called `finish', and then runs run again. If one of the scanner's child supervisors stops, the scanner spawns it again.

In runit's case, the scanner is called `runsvdir', the supervisors are called `runsv', and it also comes with a program called `runit' that can act as a replacement for your PID1 init whose sole job outside of boot and shutdown time is to resurrect runsvdir if it exits. Note that runsvdir is perfectly happy to be run via an entry in your /etc/inittab if you're running under sysvinit.

At their most simplistic, that's all process supervision is - a bomb-proof way of keeping services running. All supervisors in the daemontools family come with a control program to interact with the process supervisor, as well as a stdin-based logger that doesn't rely on syslog. The main benefits it brings over the classic init.d/ model are simplicity (the most complex run script I have is 14 lines of dead simple shell, most are 4-5) and automatic restartability which init.d/ daemonization doesn't have.

From what I understand from monit's manpage, it's a full-bore rule-basd system monitor. Generally speaking, process supervision is tacking one problem (keep daemons running), whereas monit is tacking another (system state monitoring). Yes monit can act as a process supervisor, but it does so by polling the system state and hooking into the existing daemonization infrastructure.

</comment></comment><comment><USER14> Runit is fantastic. If you are using Chef - the runit cookbook integrates very nicely. [https://supermarket.chef.io/cookbooks/runit](https://supermarket.chef.io/cookbooks/runit)

<comment><USER2> Now that I think of it, the chef cookbook for Runit is what made it so easy to deploy to production. The 'runit_service' resource was absolutely invaluable. Forget the complicated upstart stanzas or dealing with supervisord, just write a shell script to run your program in the proper environment and ba! You've got a service!

</comment></comment><comment><USER15> Nice to see daemontools-inspired work on HN in the past few days. I've been using runit for years, and as other comments have said, it's just not something I ever have to worry about. When I look around at other solutions it seems like I'd be taking a huge step back (making things more complex with arguably less usefulness).

I've been meaning to do some blog posts about runit, as it seems like it sits on the back-burner in general. Does anyone know how actively it's maintained, or has it just reached such stability that it doesn't need much maintenance? It would neat to see it on github with some real docs and such.

</comment><comment><USER16> And just a friendly reminder that I wrote a shell for runit (and other daemontools-based supervisors) called svsh at [https://ido50.github.io/Svsh](https://ido50.github.io/Svsh).

</comment><comment><USER17> Voidlinux uses runit by default. [http://www.voidlinux.eu](http://www.voidlinux.eu)

</comment><comment><USER18> runit is what the Phusion Docker base image [http://phusion.github.io/baseimage- docker/](http://phusion.github.io/baseimage-docker/) is using, and it's the perfect tool to start and supervise containerized apps. I also love the fact that it can wait for a service to run (in order to wait for dependencies), and that stuck services can be restarted in a more radical way than a single TERM signal.

<comment><USER19> I'm using this too (after suffering all the other supervisors), and I have no clue why runit isn't the standard tool in Linux. Can any Linux expert explain that?

<comment> vezzy-fnord Linux is a kernel. It has no standards for userspace, though some have been attempted for GNU/Linux in particular and there are _de facto_ conventions, but that's it.

</comment></comment></comment><comment> stephen-mw Runit is the default system daemon for Phusion's baseimage-docker Ubuntu image[0]. I've used it in a basic manner and have been very happy with it.

For containers it hits a real sweet spot: lightweight and easy to use within a limited scope of processes.

[0] [https://github.com/phusion/baseimage- docker](https://github.com/phusion/baseimage-docker)

</comment><comment><USER20> Given the other glowing comments, maybe this would be a place to ask: should I bother with Upstart, or Systemd? I see Shuttleworth announced the move to systemd, but it's not available on Ubuntu 14.04 servers right now. I'm writing provisioning for our production fleet, what should I use?

The vagaries of the OS wars make something like Runit tempting.

<comment><USER21> Depends heavily on what you need to provision, and whether you can select your provisioned environment based on what you want to support. Upstart is, at this point, effectively dead for any future distribution. However, if you want to support existing Ubuntu LTS distributions for the remainder of their lifetime, you'll need to handle it. Similarly, if you want to support the current rounds of enterprise distributions, you still need to support sysvinit. And if you have any non-Linux systems, you'll need to handle whatever they use as well.

On the other hand, if you can ensure that your production systems all run relatively recent Linux distributions, you can safely assume systemd. Which specific distributions you have in production will determine the oldest version of systemd you have to support; since new features get added regularly, you'll want to know the oldest version you can assume.

What are you trying to provision, and what requirements do you have?

<comment><USER20> I appreciate the detailed reply, and the others as well. To address your questions and some of the others:

We can generally pin our entire fleet against whatever we want -- until we can't. One particular (very large, very important) dependency currently requires CentOS 6.5. Go figure.

As much as possible, I want to treat infrastructure as a commodity, so catering to specific versions (even LTR versions) breaks that goal. As another reply notes, if we lock in at Ubuntu 12.04 and it's predictable, that's excellent.

As another mentions, Upstart was easy to get a handle of quickly. As an aside, it bugs me that the (otherwise excellent and detailed) Upstart docs don't seem to mention that all of Upstart is now deprecated. Hence the original confusion! In general I _don 't_ want flexibility (not first and foremost), I want simple and consistent.

<comment><USER21> > One particular (very large, very important) dependency currently requires > CentOS 6.5.

What dependency is that? And can you run it in a single-purpose virtual machine, rather than directly on real hardware, to make it easier to manage?

> As much as possible, I want to treat infrastructure as a commodity, so > catering to specific versions (even LTR versions) breaks that goal. As > another reply notes, if we lock in at Ubuntu 12.04 and it's predictable, > that's excellent.

You definitely don't want to cater to specific versions any more than you have to; ideally you want as few versions across your entire fleet as you can. If you could get it down to just CentOS and the latest version of some up-to-date distribution, that would help; if you could make CentOS a virtual machine under that same up-to-date distribution, that's even better, insofar as you can then manage all the physical machines identically.

> As another mentions, Upstart was easy to get a handle of quickly. As an > aside, it bugs me that the (otherwise excellent and detailed) Upstart docs > don't seem to mention that all of Upstart is now deprecated. Hence the > original confusion!

The Upstart docs aren't going to say that Upstart is deprecated. It's more a view of the Linux distribution ecosystem as a whole: the one distribution that primarily drove upstart usage and adoption is switching to systemd, so there won't be further momentum or resources behind upstart in the future. That doesn't make it instantly obsolete, but it does mean that starting a new project today around upstart is a bad idea.

(In fairness, there's one other notable distribution using upstart as well, namely Chrome OS; however, that's a bit of a special case in several ways, and in any case I hope to change that in the future.)

<comment><USER20> I'm wary of naming the dependency, because it's a vendor's solution and I'm not trying to call them out, but it's their ecosystem of tools and it has to run as the host OS, not virtualized. But all your comments are spot-on, and I appreciate it.

The Upstart thing is just somewhat odd, because it's a Canonical project, and Ubuntu is also Canonical's. At any rate, you're right that it's not immediately lost. But trying to pin against even the long-term releases of Ubuntu seems hopeless. I've been working on upgrading a 12.04 deployment to 14.04. There aren't any features that we're missing in the OS, so it's really only a concern from a security or support perspective. The shop I'm in was already using Ubuntu when I came on, but maybe the lesson here is to migrate to Debian, rather than bother upgrading to the newer Ubuntu release. (Migrating to CentOS would be somewhat more work.)

<comment><USER21> > The Upstart thing is just somewhat odd, because it's a Canonical project, > and Ubuntu is also Canonical's.

That's why they pushed so hard for Debian to use Upstart. Once Debian switched to systemd instead, Canonical announced that they would too.

> The shop I'm in was already using Ubuntu when I came on, but maybe the > lesson here is to migrate to Debian, rather than bother upgrading to the > newer Ubuntu release.

I'd certainly recommend that myself. Unless you have a hard requirement for an "Enterprise" distribution (RHEL or SLES), I tend to advocate Debian stable rather than Ubuntu LTS, _especially_ on a server.

</comment></comment></comment></comment></comment></comment><comment><USER7> I use runit. It's great. (Daemontools didn't have the ability to sleep for 30 seconds after my daemons crashed at startup because, like, some filesystem wasn't mounted or something.)

<comment><USER22> How did you manage that? We currently have a problem with crashing services using up all system resources trying to constantly restart. Or better yet, exponential backoff.

<comment><USER23> In the recent past I worked at a place that used daemontools extensively. We used a wrapper shell script which would do the restart loop detection, then exec the actual process to run. If it detected X restarts in Y seconds (by echoing the unix timestamp to a restart log and checking it) it would "svc -d $(dirname $0)" (or something like that) and exit.

We also had a monitoring service (nagios) that would check if any services "auto-downed" on any servers and alert us.

</comment></comment></comment><comment><USER24> Runit is / was awesome but how is this news?

<comment><USER25> Many people still think that it's a 3-way horse race between sysvinit, Upstart, and systemd (which systemd has all but won). The Debian technical committee certainly acted like that was the case last year.

<comment> vezzy-fnord A lot of people further neglect all the prior art in init replacements before those. The simpleinit dependency mechanism, depinit, initng, minit, daemond, Seth Nickell's GNOME experiments, eINIT, cinit and so forth.

Instead, the way it was presented in public is that the Linux distros had been battling with brittle sysvinit scripts (true, but also largely self-inflicted) for so long until systemd came in to heroically save the day.

It was pretty shocking to watch how the scene evolved from apathy to having an urgent problem that must be solved now.

<comment><USER26> What apathy? Ubuntu and Fedora had already switched to Upstart, and Gentoo to OpenRC, due to the problems identified with sysvinit.

<comment> vezzy-fnord OpenRC isn't an init daemon. It's only a process management framework, hence the name. It's usually used in conjunction with sysvinit as PID1. OpenRC was originally motivated by replacing the older baselayout scripts, from what I recall.

Upstart didn't come about until later from many of the alternatives I listed, and its origins were mostly in response to launchd. It was quite rudimentary initially. [1]

[1] [https://wiki.ubuntu.com/ReplacementInit](https://wiki.ubuntu.com/ReplacementInit)

<comment><USER26> I never said or meant that Upstart wasn't younger than those alternatives. What I disagree with was the idea that there was much apathy and then a sudden crisis when systemd appeared. The development and adoption of Upstart and OpenRC (even if the latter isn't an init daemon, it's still an alternative to the init _system_ ) by some of the biggest distros contradicts that claim.

<comment><USER27> And i don't think many would have noticed the existence of systemd, as was the case with upstart, if the projects devs had not started lumping all manner of non-init projects into the systemd bucket.

My first encounter with the existence of systemd was while keeping half an eye on the whole consolekit+polkit+udisk rigamarole i apparently needed to get thunar (or more correctly gvfs) to automount stuff.

This when i learned that consolekit was to be replaced with logind, and logind required systemd as init.

That, to me, was a very WTF moment. It basically made a file manager dependent on a specific init being used.</comment></comment></comment></comment></comment></comment></comment>


Ask HN: Why didn't Python-Webkit take off like Electron or NW.js? - <AUTHOR> The Python Webkit DOM Bindings Project made python a full peer of javascript when it came to accessing and manipulating Webkit including HTML5 features. In essence, it could completely replace Javascript to help one build faster, more capable web applications using Python and HTML5.
With the limitations (and also the contempt that many programmers, including me, have for javascript) one would have thought that we would have seen a mushrooming of apps built with Python-Webkit. Rather the project seems dead now.
What went wrong with it?
(Python Webkit DOM Bindings - https://www.gnu.org/software/pythonwebkit/ ). <comment><USER2> I imagine it's because JavaScript has the lowest barrier of entry. Think tutorials, setup time, and where people generally start their journey into building websites and web apps.

Same thing for backend developers learning the front end the first time. Ecosystem and community matter for adoption

<comment><AUTHOR> That still doesn't explain why it didn't gain momentum with Python developers?</comment></comment>


Games are fine but the business isn't - <AUTHOR> http://www.gamesindustry.biz/articles/2015-02-02-games-are-fine-but-the-business-isnt-rami-ismail

<comment><USER2> Why not just link to the original post rather than a series of extracted quotes?

[http://ramiismail.com/2015/02/everything-is-not-fine-and- tha...](http://ramiismail.com/2015/02/everything-is-not-fine-and-thats-fine/)</comment>


Fake (Malicious) Mobile Banking App Discovered in Android Marketplace - <AUTHOR> http://www.phonenews.com/fake-mobile-banking-app-discovered-in-android-marketplace-9949/

<comment><USER2> Dammit. Stuff like this is exactly what is going to destroy the app market for the Android.

Who's going to download anything if they hear this can even happen?

Most developers complain about the Apple iPhone approval process, but they don't realize how much it really HELPS them.

Consumer confidence keeps people buying mobile apps, and with the iPhone, nobody even thinks twice about it because we have the added comfort of knowing Apple stomps out the bad stuff - usually before we ever see it.

<comment><USER3> How is that different from desktop apps, from web apps, from an OS even? Any program you trust in whatever way can do bad, bad things with your banking details, private data, list of contacts, etc.

<comment><USER4> That isn't what happened here. Someone submitted an app purporting to be _from the bank_.

I'm presuming that Apple will at least perform the diligence of making sure the app author is who they say they are.

<comment><USER5> Having just gone through this with Apple for a major name organization, I can assure you they take the identity of developers very seriously. You have to be who you say you are.

</comment></comment></comment></comment><comment><USER6> This scenario was discussed in the most recent Cringely post, I guess someone got inspired to start hunting.

[http://www.cringely.com/2010/01/when-is-your-bank-not- your-b...](http://www.cringely.com/2010/01/when-is-your-bank-not-your-bank/)

</comment><comment><USER7> Someone at Apple is feeling vindicated right now.

<comment><USER8> How in-depth is the iPhone app review process? Would they catch something trojaned into an otherwise legitimate app?

<comment><USER9> Perhaps somebody could submit one and report back.

Well... I'm sure somebody has submitted one. We just need for them to kindly report back.

</comment></comment></comment><comment><USER10> Please correct me if I'm wrong, but wouldn't it be fairly trivial to create a phishing iPhone application (even one that got accepted to the App Store?) My understanding is that nobody is combing through your code line by line, so you could sneak something in there that wasn't activated until after the app was accepted, right?

<comment><USER11> The app would have to be signed by someone who presumably would have paid the $99 to get the developer account with Apple and thus there would be a way to trace (somehow) the app to some real person. Now, the identity used to get the account could be faked, but that's no longer trivial, assuming Apple has done things properly.

I don't quite understand however why this does not also apply to the Android app market - surely whoever put this up there has a known identity. If not, the whole point of the market place is undermined. All this has no bearing on the "evilness" factor - Apple's market place is evil because it is a self- enforced monopoly. The Android market place could have policies controlling their apps ten times as fascist as Apple's and they would not be as evil, because we can always go elsewhere (and maybe will, if this continues to be an issue).

</comment></comment><comment><USER12> "I disapprove of what you submitted to the Android Market, but I will defend to the death your right to submit it."

<comment><USER13> That's fine, but what mechanisms are in place for the consumer to ensure that what they are being shown is from who the app says it's from? I haven't submitted an app to the Android app store, so I'm unsure.</comment></comment>


There is no correlation between having a college degree and coding ability - <AUTHOR> http://www.wsj.com/articles/heres-a-thing-coders-can-skip-college-1427985222

<comment><USER2> This is far from "profound" insight. Learning write some code is not so much more difficult than learning to speak and write new foreign language. However ability to debug to find the cause of the problem and write sleek elegant maintanable code is whole another game. Solving a problem by applying computational methods is yet completely different thing. For example, ask a person who can "code" to write a program to find median of large set of given numbers as fast as possible and they would falter.</comment>


Google Covid-19 Community Mobility Reports - <AUTHOR> https://www.google.com/covid19/mobility/?ref=briefingday.com&utm_source=briefingday.com&utm_medium=email <comment><USER2> "Insights in these reports are created with aggregated, anonymized sets of data from users who have turned on the Location History setting, which is off by default. People who have Location History turned on can choose to turn it off at any time from their Google Account and can always delete Location History data directly from their Timeline." Hmm Interesting

</comment><comment><USER3> This is awesome! I can get my rural Iowa country stats with a click!

As expected, travel work and retail is down a third.</comment>


Ask HN: Why Are YC Stock Plans by Clerky So Employee-Hostile? - <AUTHOR> I was reading the standard stock plans and agreements commonly adopted by YC companies which use Clerky, and I was surprised to read how employee-hostile they were.
Docs: https://www.clerky.com/yc-stock-plan-forms
1. On page 12 of the Stock Plan, there is a "Repurchase Option" that allows the startup to repurchase "at a purchase price for Shares equal to the original purchase price paid by the purchaser to the Company for such Shares".
This original grant price is likely to be far lower than any price paid by an acquirer.
2. On page 14 of the Stock Plan, there is a section on "Corporate Transactions". In the event of an asset sale, merger or acquisition, the company may can perform the "(E) the cancellation of any outstanding Options or an outstanding right to purchase Restricted Stock, in either case, for no consideration."
In other words, they can simply cancel your options.
Do employees regularly negotiate these terms out? They seem to give a startup incredible leverage in nullifying any stock option value you may have accrued during your tenure. <comment><USER2> The Clerky plan is actually quite typical and aligns with the stock plans used by most major Silicon Valley law firms. Some additional context may be helpful:

1\. [Page 12 / Section 8(b) allows for the company to exercise a repurchase option on restricted stock at the original purchase price. You'll note that at the end of the paragraph it provides that "The repurchase option shall lapse at such rate as the Administrator may determine." The restricted stock purchase agreement that the employee actually signs in connection with their stock will set out the terms of the repurchase option (aka _vesting_ ), and it will allow the company to repurchase the unvested shares at the original purchase price. Switching this to a repurchase option at the then-current FMV isn't advisable because it results in de facto severance to the employee and would require the company to pay significant amounts of money to repurchase unvested shares if the FMV is high, even if the company doesn't have much liquid cash.

2\. The full paragraph is below. The reason it's drafted this way is because company can't know at the time of stock plan adoption how options/restricted stock will be treated at the time of acquisition, so the stock plan has to allow for the full range of outcomes to preserve maximum flexibility. It's not atypical for unvested options/restricted stock to get no consideration in a deal, and those employees may just get a cash bonus (and in some cases, nothing).

Corporate Transactions. In the event of (i) a transfer of all or substantially all of the Company's assets, (ii) a merger, consolidation or other capital reorganization or business combination transaction of the Company with or into another corporation, entity or person, or (iii) the consummation of a transaction, or series of related transactions, in which any "person" (as such term is used in Sections 13(d) and 14(d) of the Exchange Act) becomes the "beneficial owner" (as defined in Rule 13d-3 of the Exchange Act), directly or indirectly, of more than 50% of the Company's then outstanding capital stock (a "Corporate Transaction"), each outstanding Award (vested or unvested) will be treated as the Administrator determines, which determination may be made without the consent of any Participant and need not treat all outstanding Awards (or portion thereof) in an identical manner. Such determination, without the consent of any Participant, may provide (without limitation) for ONE OR MORE OF THE FOLLOWING in the event of a Corporate Transaction: (A) the continuation of such outstanding Awards by the Company (if the Company is the surviving corporation); (B) the assumption of such outstanding Awards by the surviving corporation or its parent; (C) the substitution by the surviving corporation or its parent of new options or equity awards for such Awards; (D) the cancellation of such Awards in exchange for a payment to the Participants equal to the excess of (1) the Fair Market Value of the Shares subject to such Awards as of the closing date of such Corporate Transaction over (2) the exercise price or purchase price paid or to be paid for the Shares subject to the Awards; or (E) the cancellation of any outstanding Options or an outstanding right to purchase Restricted Stock, in either case, for no consideration.

<comment><AUTHOR> Thanks for the detailed answer. In both (1) and (2), you mentioned "unvested" stock. However, according to the language of the agreements, doesn't it apply to vested stock as well?

In other words, a company can wipe you out (repurchase/cancel) for your vested/unvested shares because it gives them flexibility in case of an acquisition.

I understand why this is, and why it is quite typical, but it doesn't change my opinion that it's employee-hostile.</comment></comment>


Please Do Not Leave a Message: Why Millennials Hate Voice Mail - <AUTHOR> http://www.npr.org/blogs/alltechconsidered/2014/10/23/358301467/please-do-not-leave-a-message-why-millennials-hate-voice-mail

<comment><USER2> Honestly, I'm doing this, and I'm a Gen-Xer.

Have been moving that way for a while, with the notification that voice mails do not get priority response.

It's only a tiny step from that to, "just don't do it."

People can call in, hear the greeting, which tells them how to send a text via e-mail, which I will see and respond quickly to, send ordinary e-mail, or contact me via various message systems.

All of these work better than voice mail does for nearly everything.

I've already abandoned having a desk phone. Technically, one is there, but I make sure the number isn't known. I don't even know it.

My own move away from VM happened in the late 00's As cell phones were becoming solidified as the norm and I noticed younger people basically avoiding that kind of interaction, I shifted to where the action was, and that's text, Internet Messages, e-mail.

All of those can result in a voice call, and that's fine. Once it's needed, no worries. Same goes for web screen sharing and teleconferences of various kinds. A ton of stuff can get done quick with those.

Exchanging voice mails is probably the worst, save for ordinary mail.

</comment><comment><USER3> "The fact that we have four generations in the workplace, and they're going to be there for some time, the younger generations — the millennials, the Y generation — they're going to need to adapt," Napier-Fitzpatrick says.

That seems like an odd thing to say, given that they arguably are used to using a superior medium of message leaving.

<comment><USER2> I think it will go the reverse way. Did for me. Any of us, who see the trends and can understand the overall efficiency and effectiveness in modes of communication won't take long to center on what works well.

</comment></comment><comment><USER4> tl;dr:

"I guess I usually just assume that it's probably not that important if you didn't text me, and you didn't send me a message on Facebook"

"So for them if a voice mail isn't practical — which most of the time it isn't — and there's a more practical way of delivering the same information, they're gonna go for that."

This is pretty much the whole ballgame. And a textbook-sounding example of Darwinism. A person can only do a maximum of N things in time t. There are an ever-growing (probably exponentially growing) number of way to communicate. Spending an outsize amount of time on a low-information-dense medium makes increasingly little sense. There are almost certainly other ways to accomplish whatever the allure is.

</comment><comment><USER5> I'd rather you leave a message, but that's because I can access my business voicemail from a computer (and read an approximate summary). My other voicemail inbox, the personal one that I have to call and listen to? I haven't checked it in years.</comment>


Why the name "dynamic programming"? - <AUTHOR> http://arcanesentiment.blogspot.com/2010/04/why-dynamic-programming.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+ArcaneSentiment+%28Arcane+Sentiment%29 <comment><USER3> "Dynamic programming" may not be the best name, but it's well-established, and there's always a cost to proposing another name: fragmentation of understanding. It's better that everybody continue to use the same non-optimal name than having different groups of people using different names for the same concept, and not realizing they're talking about the same thing.

Therefore, I think it's best to adhere to the rule, which is in fact generally followed by scientists, that only researchers who publish something new should propose new names.

In fact, "dynamic programming" already does already have a lot of other names. For example, certain versions of the "belief propagation" algorithm might be considered to be a form of dynamic programming, and the "belief propagation" algorithm itself has versions that are called the "forward backward algorithm" for Hidden Markov Models, the "Viterbi algorithm," the "sum-product algorithm," the "turbo-decoding" algorithm, the "Kalman filter," and the "transfer matrix." The reason there are so many names is that the "belief propagation" algorithm is a great algorithm that is often optimal, so it kept being reinvented.

It's not as bad as it seems though; an important advance that has occurred over the last decade is that researchers from very different communities have all started to describe these essentially similar algorithms using the same visual language of "graphical models." To learn more about that, see the book on "Information, Physics, and Computation," by Mezard and Montanari, the book on "Probabilistic Graphical Models," by Koller and Friedman, or my own articles ;-).

</comment><comment><USER4> It seems that the author has confused memoization with dynamic programming. You can use memoization in DP but need not use it always (using it is just more efficient). DP is much more than memoization. DP lets you solve a certain class of problems. For example problems see <http://people.csail.mit.edu/bdean/6.046/dp/>. The chapter on DP from Kleinberg's book (<http://www.aw-bc.com/info/kleinberg/index.html>) is free

<http://www.aw-bc.com/info/kleinberg/assets/downloads/ch6.pdf>

</comment><comment><USER5> Memoization is a form of dynamic programming, but dynamic programming is not just memoization.

<comment><USER6> Memoization actually is not a form of dynamic programming, it's just a technique used in dynamic programming to avoid recomputation.

<comment><USER7> You could argue that what dynamic programming does isn't even really memoization in the sense that it's used in the Lisp/FP world.

Dynamic programming algorithms usually work from the bottom-up: you fill a table with the first stage of the algorithm, and then compute subsequent stages until you've converged on a solution. Memoization almost always works from the top-down: you start with a naive recursive algorithm, and then store function call results in a hashtable or other data structure to avoid recomputing them.

They both involve avoiding recomputation by storing intermediate results in memory. But saying that this makes them the same is sorta like saying that recursion and iteration are the same because they both use the program counter.

<comment><USER8> Recursion with a tail call and iteration are the same, though. The difference between tail recursion and iteration is whether or not the target of a jump happens to be the start of a function or not.

<comment><USER7> They're the same in terms of what the machine is doing, assuming your compiler does tail-call optimization. That's not the same as being "the same" - <USER2> present a very different abstraction to the programmer. That was the point of my analogy.

You can see this difference by looking at one of the ways this abstraction leaks. Consider stack traces. In a sane language, you expect an error to give you a stack trace of functions that have been called. If you treat recursion as iteration, then either you'll have to omit some function calls from the stack, or your algorithm won't work in constant space anymore. Either violates some expectations of the programmer.

I also said "recursion" and not "tail recursion". There are some algorithms that are impossible to implement without an external stack under iteration (eg. tree traversal), and others where you _need_ to use iteration because a stack is not appropriate (eg. breadth-first search).

</comment></comment></comment></comment></comment><comment><USER9> The way I think about it, in the simplest form, dynamic programming essentially boils down to a way of solving a problem with overlapping subproblems and an optimal substructure. Memoization is a technique that can achieve similarly efficient results, but is more of an "addendum" to traditional recursive formulations to avoid the cost of solving overlapping subproblems. The two are related, but not quite the same.

</comment><comment><USER10> I had a friend describe it to me as a class of algorithms that involve "filling a table." Not 100% correct, and certainly not catchy, but it's definitely help guide my understanding of the practice.

<comment><USER11> _Not 100% correct, and certainly not catchy, but it's definitely help guide my understanding of the practice._

I had the opposite experience with this description. I could see that there was a table being filled in, but it didn't give me any understanding of what the table gets filled with and why. My capability with it remained cargo- cultish until I had seen memoization isolated and discussed explicitly.

<comment><USER10> Interesting! I always thought the table metaphor really appealed to a "pencil and paper" mentality, which would be all about computing "more and more pieces of the table" until it was full.

<comment><USER11> It does. The problem is that it doesn't really explain why what you're filling in on the table is correct. Learning algorithms by rote was possible, but devising them for problems I hadn't seen before was not. Now, I don't need to memorize -- reconstruction is easier.

</comment></comment></comment></comment><comment><USER12> That's it - there's definitely a phenomenon of earnestly linking to Wikipedia while belittling it at the same time.

</comment><comment><USER13> I find that dynamic programming sounds less threatening than memoization. When I learned dynamic programming, my first thought was, "damn, that sounds cool. It's dynamic!" Memoization would have been a foreign, and confusing, word at that point.

<comment><USER6> That article is just wrong, forget everything it said, memoization is not dynamic programming.

</comment></comment><comment><USER14> I always thought of it as equivalent to late binding. I'm not sure what it has to do with memoization.

<comment><USER15> You are mixing dynamic programming with dynamic typing.

<comment><USER16> The situation is even worse with lambda calculus. Lambda calculus should have been named function theory, but that term was already used by an interesting part of analysis, that should have been named complex analysis.

<comment><USER17> I don't know why you think that; it's really, really important that lambda terms are not functions. Bertrand Russell would explode if I tried to write f(f) for any function f.

<comment><USER16> Just used typed lambda calculus if you want to avoid that.

</comment></comment></comment></comment></comment><comment><USER18> for the meaning: [http://en.wikipedia.org/wiki/Dynamic_programming#Dynamic_pro...](http://en.wikipedia.org/wiki/Dynamic_programming#Dynamic_programming_in_computer_programming)

</comment><comment><USER19> I wonder what "static programming" would be.</comment>


Microsoft says yes to future encrypted DNS requests in Windows - <AUTHOR> https://arstechnica.com/information-technology/2019/11/microsoft-announces-plans-to-support-encrypted-dns-requests-eventually/#p3 <comment><USER2> Comments moved to [https://news.ycombinator.com/item?id=21562295](https://news.ycombinator.com/item?id=21562295).</comment>


Basic Income, Not Basic Jobs: Against Hijacking Utopia - <AUTHOR> http://slatestarcodex.com/2018/05/16/basic-income-not-basic-jobs-against-hijacking-utopia/ <comment><USER2> Good article. Money quote: "Basic income is unlimited runway. Entrepreneurs can feel free to try out crazy ideas without the constant pressure of losing their shirt; people in between jobs can feel free to spend time looking for options they can tolerate. Basic jobs solves none of these problems, and maintains the time pressures that prevent people from exploring interesting ideas or realizing their full potential."

<comment><USER3> These things could also be achieved with government spending into things like: better unemployment guarantees, grants for entrepreneurs, or low-interest no- nonsense business loans.

How does basic income solve the problem? If the income just covers expenses, where do you get the money on top of your BI to be an entrepreneur?

<comment><USER2> > better unemployment guarantees

I don't know what you mean here.

> grants for entrepreneurs

You have to apply for grants, with a business idea that someone else has to consider sound. Not that good for trying out "crazy ideas" as the article mentioned.

> low-interest no-nonsense business loans

A loan is still a loan and doesn't abolish the "constant pressure of losing their shirt" the article mentioned.

Free money without strings attached gives you more freedom than non-free money with strings attached, I'm not sure why we're even arguing about that.

> If the income just covers expenses, where do you get the money on top of > your BI to be an entrepreneur?

Well, you won't be able to build a semiconductor factory in your bedroom on the UBI, but neither will you get a grant or no-nonsense business loan for that. The UBI can help entrepreneurs in industries with low capital requirements, like software development. A few people with laptops getting together and developing the next Angry Birds or Facebook or whatnot.

As for how you get _more_ money to have _more_ starting capital, there can still be grants and loans and stuff, why wouldn't there be? Banks will continue to exist and will need to loan their money out. But also, you could get a job and earn money, like today, and save up. Or get a part-time job or whatever.

</comment></comment></comment><comment><USER4> I've been somewhat blessed that my first interaction with government income didn't happen until last year, when the company I was working for shut down unexpectedly (I came in to work on Tuesday morning, joined a conference call where they announced that we were all terminated, effective immediately). Although I didn't expect to be out of work long, this was right before Thanksgiving, so I didn't expect to find anything until January at the earliest, and filed for unemployment - after all, that's what it's there for, right? Of course, the application process was ridiculously complicated and poorly documented, but I got through it and started collecting, I think, something like $500/week (which I still owed income tax on). Well, better than nothing, I guess. There's a seemingly perfectly reasonable requirement, though, that while you're collecting unemployment, you have to make 5 job- search contacts per week. Of course, it's entirely unclear what constitutes a job-search contact or how you're supposed to report them. Or what, exactly, happens if you fall short. Well, I got a job offer not too long afterward, but there was a two-week waiting period while they completed a background check on me. But I was stil collecting unemployment during that two weeks, as I was, after all, still unemployed. So, am I supposed to keep making job-search contacts? Of course, nobody could give me a straight answer (and you'll be on hold for hours trying to get in touch with somebody). So, to be on the safe side, I kept sending out resumes to companies that I had no intention of following through with just to comply with what seemed to be a legal requirement. This sort of well-intentioned, but one-size-fits-all sort of hidden regulation is exactly what concerns me about any government income program... they can't make the rules too clear because if they did, clever people would have an easier time taking advantage.

<comment><USER5> > This sort of well-intentioned, but one-size-fits-all sort of hidden > regulation is exactly what concerns me about any government income > program... they can't make the rules too clear because if they did, clever > people would have an easier time taking advantage.

That problem seems to be an aspect of the broader problem with _conditional_ government income programs that _unconditional_ basic income is aimed right at the heart of.

It's very hard to game a rule of, e.g., "If you are a citizen or lawful permanent resident, you get exactly $X/month" doesn't have a lot of room for manipulation, despite being quite clear.

<comment><USER4> > If you are a citizen or lawful permanent resident

I see a flaw right there...

<comment><USER6> What's the flaw?

</comment></comment></comment></comment><comment><USER7> FYI China has had a similar concept for a while now [https://en.m.wikipedia.org/wiki/Iron_rice_bowl](https://en.m.wikipedia.org/wiki/Iron_rice_bowl)

</comment><comment><USER8> Basic Income is a technology problem, it will come one day. But not now.

<comment><USER9> You have this completely backwards. Technology is making the lack of strong UBI a potentially bad situation. UBI is simply redistribution of surplus, this would consist of say bread and water in the middle ages, to healthcare today. The lack of UBI does not indicate a lack of technology but a lack collective social conscience.

<comment><USER10> I have not seen anyone else mention it, but I think there is a significant factor in the resistance of elites to UBI that they will not admit, but is important to think about. I don't think the cost of UBI is at issue per se, but the social consequences. They may well consider that UBI would lead to a significant increase in the number of idle people, and idle people are more likely to become restive. Not being hungry may prevent riots, but so does having something to do all day. From the point of view of a billionaire, it may not be all about whether they have $10 billion or $11 billion, but rather what maintains the social order.

</comment></comment></comment><comment><USER11> We do not need government involved in basic income. We only need capital. See [https://www.mannabase.com/](https://www.mannabase.com/)

Universal income should be universal, not contingent on creating state slavery as a precursor to full out socialism.

<comment><USER2> Full out socialism is and has always been based on earning wages by _working_. The UBI is very much the opposite of socialism in this regard.

</comment></comment><comment><USER12> I wrote the article he is responding to. My reply is here: [http://slatestarcodex.com/2018/05/16/basic-income-not- basic-...](http://slatestarcodex.com/2018/05/16/basic-income-not-basic-jobs- against-hijacking-utopia/#comment-629475)

<comment><USER2> In the other article you'd like to see refuted, you're mostly attacking windmills. I've led many UBI discussions, and _never ever_ have I met a UBI proponent who said that people with medical needs should have their health insurance taken away and replaced by the same UBI amount healthy people get.

For other things you point out the solution yourself, like conservatorship, which exists.

Yet another point is the old "they will just drink booze all day and sit in front of the TV". Which is certainly true for some people, and empirically known to be false for others. Lots of people are rich enough to drop their job and switch to drinking and TV all day... yet we know that they don't.

<comment><USER2> > you're mostly attacking windmills

Or strawmen, rather. (Too late to edit.)</comment></comment></comment>


Ask HN: What are soft skills? - <AUTHOR> <comment><USER2> Being able to communicate well, being an effective time manager, being a solid leader, etc. Some of the intangibles. Also, the google link that kelukelugames posted probably has some good info.

</comment><comment><USER3> [https://www.google.com/search?q=soft+skills&oq=soft+skills&a...](https://www.google.com/search?q=soft+skills&oq=soft+skills&aqs=chrome.0.0l6.1798j0j7&sourceid=chrome&es_sm=91&ie=UTF-8)

</comment><comment><USER4> They're the skills that allow you to effectively and pleasantly interact with other humans (as opposed to the technical skills that you use for interacting with machines).

</comment><comment><USER5> In the context of a programming job, everything else.</comment>


How Badoo built a billion-pound social network... on sex - <AUTHOR> http://www.wired.co.uk/magazine/archive/2011/05/features/sexual-network

<comment><USER2> crappiest looking billion $ project Ive seen ...interesting though</comment>


Apple crushes one-man repair shop in Norway's Supreme Court - <AUTHOR> https://repair.eu/news/apple-crushes-one-man-repair-shop/ <comment><USER2> From what I hear, this isn't only about repairing iPhones. In a previous court proceedings the man was ordered to remove the logos from Apple because he imported the parts from China to refurbish iPhones. These were not genuine parts and they were being sold as refurbished iPhones.

This court case bas brought on by Apple because he did not properly remove the Apple logos. He used a permanent marker to "remove" them from the parts. Apple did not agree that this was a proper way to do it.

As much as I am for the rights to repair. I would say that Apple has some grounds here.

<comment><USER3> The issue here is that you cannot buy spare parts from apple, imagine if it was the same for cars and you could only go to s main dealer to replace a windscreen and if you got a guy in a van to replace it with one from a car no longer in use that guy gets sued. Ludicrous situation, the availability of spare parts should be mandatory, especially for high value and high environmental impact items like the iphone.

<comment><USER4> I believe that car manufacturers in the US are required by law to produce spare parts for 10 years after a model rolls off the assembly line. A similar law for electronics would be useful, but where do you draw the line? Maybe the FCC could be setting those guidelines for mobile phones.

<comment><USER5> > A similar law for electronics would be useful, but where do you draw the > line?

Does there need to be a line? Arguably small custom electronics manufacturers may not be able to do that, but surely something similar would apply to custom car makers.

Arguably small electronics manufacturers would have an easier job fulfilling this since they usually use off-the-shelf parts anyways.

<comment><USER6> I'm pretty sure that Apple doesn't just use off the shelf parts in the iPhone etc.

<comment><USER7> "but then where do you draw the line?" wasn't asked out of concern for Apple or anyone like Apple. They obviously _can_ afford to make their parts available. You can't draw a line anywhere that would be unsustainable for them.

The question was asked out of worry that some agressive rule targeted at a big guy, might have unintended consequences that hurt the little guys.

To which question I agree with "doesn't matter, draw it anywhere and adjust as needed" because there are easily identifiable reasonable ranges, and not knowing the final perfect answer is not a good enough excuse for not doing anything at all, and what we have now is already worse than a line that was drawn a bit off the mark. Waht we have now is a defacto line drawn 100% off the MAP.

</comment></comment></comment></comment></comment></comment><comment><USER8> > As Huseby puts it, Apple uses copyright law as a "weapon" by putting > multiple logos and QR-codes on each component part of its screens, knowing > that the Chinese grey market will not specifically cater to repairers in > other countries that zealously enforce copyright.

It seems to me that something like the exhaustion doctrine[1] should be made to apply here (but presumably doesn't in Norway). Once a part is legally sold, even if as part of a bigger product, IP law should not be able to be used to prevent the buyer from doing what they want with the part, including using it in a different product that is then sold as a refurbishment part. The only exception should be to prevent others from being misled about the origin of the product; that doesn't appear to have been happening here.

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

<comment><USER9> This is a trademark issue and not copyright. Replacement parts passing themselves off as genuine OEM shouldn't be tolerated. Markings aren't required for the electronics to work. They're just there to deceive the consumer.

<comment><USER8> This isn't passing off. The logo was placed on the part by Apple. The consumer isn't being deceived; the consumer never even sees the logo! This is discussed elsewhere here already.

<comment><USER10> How do you know that?

The part was imported into the country.

The customer is 100% being deceived.

<comment><USER8> Because the article says "...the Oslo District Court ruled in 2018 that Huseby did not violate Apple's trademark, because Huseby never claimed to be using unused original spare parts".

A court found that the customer wasn't being deceived, and this specific finding has not been overturned on appeal. The issue is about IP rights unrelated to customer deception.

</comment></comment></comment></comment></comment><comment><USER11> These were counterfeit parts.

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

You may remember Louis Rossmann testifying in this case. To his credit, he published this video about the different ways he was wrong. Unfortunately, you probably didn't see the retraction bc the original testimony got 13x the views. Not through any fault of Louis, simply due to how things spread online.

<comment><USER5> How is this different of someone fixing a brand name stereo amplifier by replacing the capacitors or op-amp with some other similarly specced parts?

<comment><USER12> These parts have Apple logos printed on them

<comment><USER13> ..and if you fix a Bose amplifier then sell it, it's still going to have a Bose logo printed on it too.

</comment></comment></comment></comment><comment><USER14> If you're in the US and agree with Right to Repair, consider joining Repair.org with an individual membership, or asking your company to join:

[http://repair.org/join](http://repair.org/join)

<comment><USER15> Absolutely! iFixit is a member and it's amazing how much progress we've made over the last few years.

</comment></comment><comment><USER16> It's crazy to me that the EU is wasting their time making Apple use the same ports as other smartphones ([https://appleinsider.com/articles/20/02/02/what- the-eu-manda...](https://appleinsider.com/articles/20/02/02/what-the-eu- mandate-for-a-common-smartphone-charger-means)) when they could make it easier to replace _any_ Apple component with an equivalent. I see the other comments saying that this guy deserved to lose this specific case since he was calling the parts "refurbished" but it's not clear that there's any way for him to use aftermarket parts legally.

<comment><USER17> The parts _are_ refurbished. There are very few iPhone components you can replace with something not made by Apple.

</comment></comment><comment><USER18> Can someone explain to me what's in this for Apple? Surely the money that they get from forcing people to go the authorized way isn't that significant to their bottom line? And it's not like they risk impacting their quality reputation either since the repair shops don't advertise that they provide genuine Apple part. So why risk people's goodwill on things like this?

<comment><USER19> Because they don't want devices to be repaired, they want devices to become obsolete or irreparable within 5 years so that consumers can buy a new device.

<comment><USER20> I'm not an Apple apologist by any measure, but I don't think that's really true. At least last time I looked into it, Apple supported their devices with software updates for longer than the majority of other vendors in the market (for the majority of their devices at least).

Of course Apple is a company that likes to keep a tight control of their market and their image, and you could maybe say they go to the point of control freakiness in that regard. Any potential loss in image regarding the quality of their products is a significant cost to them; being able to charge a premium for replacement parts probably doesn't hurt either. If independent repair shops and consumers lose something in repair costs and freedom, that probably doesn't tip Apple's scale in any way. For the rest of the society it could, and if needed, Apple (or any company) needs to be able to be criticized for that, and legislation needs to cater to that and not to the needs of any single corporation.

Edit: It might be worth pointing out that while yes, Apple would probably like you to buy a new phone within five years, e.g. many Android devices aren't supported for more than a couple of years. I agree you shouldn't necessarily be forced to buy a new device even every _five_ years, but most other vendors aren't any better in that regard.

<comment><USER21> >Apple supported their devices with software updates for longer than the majority of other vendors

The situation is exactly the opposite when it comes to computers/laptops. I can still have latest version of Windows on my father's 2011 laptop.

Secondly, this whole 'loss is image' is a giant smoke screen. Consider that you can repair a BMW in a random garage with unauthorised parts and incompetent repairmen - and you might even die as a result. Does BMW's image suffer? Is their brand worth nothing?

The consumer can comprehend the consequences of repairing his device where he chooses, this is not medical equipment. Using copyright to restrict repairs is a bastardisation of copyright law - it's intended purpose is wholly different.

<comment><USER20> I didn't say I agree with preventing unauthorized repairs. I don't, and my comment wasn't meant as apologetics.

I was merely speculating on why it might make sense for Apple to want that kind of control _even if it isn 't in the best interests of anybody else_. The costs to everybody else just have no weight to them, as long as their customers keep paying, and thus even a small potential matter of image could weigh more to them. That doesn't mean you, me or anybody else should support that line of though.

BMW might not mind having that kind of control either if their customers and the legislation were to put up with it.

Your point about computers is valid.

<comment><USER21> Apolliges, i see what you are saying now

</comment></comment></comment></comment></comment></comment><comment><USER22> > Apple claimed that Huseby was allegedly importing "counterfeit" iPhone > screens. Huseby denied this, saying that he simply used refurbished iPhone > screens that he never advertised to the public as "genuine" parts from > Apple.

I'm no fan of Apple's crackdown on repairers in general, but this sure sounds like he had third-party screens that he called "refurbished iPhone screens," which sounds pretty misleading to me. If someone told me something was a "refurbished iPhone screen," my assumption would be that it was originally a genuine Apple part, and it doesn't sound like that's what he was using.

Just leaving out the word "genuine" doesn't make it not-misleading.

<comment><USER8> > ...this sure sounds like he had third-party screens that he called > "refurbished iPhone screens,"

It doesn't sound like that to me at all. From the article I get the impression he was selling "refurbished iPhones" or offering to "repair your iPhone". In both of those cases I don't think using non-Apple parts is misleading - because as the article says "he simply used refurbished iPhone screens that he never advertised to the public as "genuine" parts from Apple".

</comment></comment><comment><USER23> >> _After having paid fees for his appeals, he now faces severe financial consequences, which include paying his own legal team and €23,000 to Apple._

I guess €23,000 passes for severe in Norway. He's lucky he's not in USA.

The court might have just done its job, as the laws stands Apple wins. The politicians should pass laws forcing Apple to allow repairs, if they want to sell iPhones.

</comment><comment><USER24> For the past 5 years, I've been relying on cheap Android mid tier phones. I currently use a Redmi Note 8 Pro (I bought the first one shipped to my country) for a little over $250, and I wouldn't feel bad about buying a new phone if this one breaks. These phones are often made to not be repaired in the first place. The spare parts are quite difficult to come by because nobody bothers to even make them. The manufacturer in fact sends a plastic case for the phone because customers are u likely to find one elsewhere.

Most of the repair shops here (I'm in East Asia now), get broken iPhones, or higher and lower end Samsung phones. I can understand Apple being constantly hostile towards the repair shops can easily put customers out of option to repair their own devices from cheaper places, and the repair shop lot of business because they simply can't source spare parts.

I think Louis Rossman was very vocal about the issue (a New York based YouTuber and a repair shop owner), that is probably worth a look.

</comment><comment><USER25> The article mentions

> We are now holding the European Commission to its commitment to "a Right to > Repair" in the Circular Economy Action Plan, to ensure universal access to > affordable genuine spare parts for all electronics for both repair > professionals and consumers.

Does that mean there's a European Citizens Initiative? A petition? Or what is this referencing ?

<comment><USER20> [https://ec.europa.eu/environment/circular- economy/index_en.h...](https://ec.europa.eu/environment/circular- economy/index_en.htm)

I don't really know how EU policymaking works (although I guess I should, as I'm a EU citizen), but it seems to be more of a broad but approved plan than just an initiative or a petition.

</comment></comment><comment><USER26> seems like he didn't get the support he needed. [https://repair.eu/de/news/support-henrik-huseby-in-his- battl...](https://repair.eu/de/news/support-henrik-huseby-in-his-battle-with- apple/)

</comment><comment><USER27> Apple, like Disney, are evil (geniuses?)

</comment><comment><USER28> Been at the broken Apple-Glass(tm) enough to know how insane their prices are. This alone is enough for me to stay away from Apple devices. I used to own some but now have switched to different bands for every piece of hardware (Android, Linux and Windows PC's etc). I can't for the life of me understand how people can support this but I guess it is me living in my hacker/geek bubble.

<comment><USER29> I imagine you are also confused about why people buy BMWs and Mercedes or shop at Whole Foods when Walmart has cheaper food.

<comment><USER30> But Apple is not a luxury, high performance manufacturer like BMW or Mercedes.

<comment><USER31> But people think they are. Why is that? Maybe their devices do have some genuine selling points?

</comment></comment></comment></comment><comment><USER32> Counterfeit is 1984 speak for unprofitable.

</comment><comment><USER33> Thank G--gle for Android.

<comment><USER34> Aye so you can suffer through shitty half arsed third party repairers who either write your phone off as water damaged even though it wasn't (thanks Motorola) or glue it back together because they broke all the clips opening it (thanks dude down the local repair shop).

<comment><USER33> Well I suppose I was thinking more of the fact that my phone cost me about a third the price of an iphone. A year ago I cracked the screen, I'd driven several miles when I realised I'd forgotten it, it was when I swung the car round to go back that I heard it come off the roof. Works fine still. (Little adhesive card wallet had kept it on the roof) To paraphrase Apple I typed this message on my Moto g6

<comment><USER35> I you have some time, try replacing the screen yourself. There are tons of instruction videos (probably also for your model) and a new screen is surprisingly cheap (for an Android phone).

<comment><USER33> I might do, I'm a bit of a bodger though. :) I wrecked our kid's iPhone 5 trying to fix it.

</comment></comment></comment></comment></comment><comment><USER36> This is the #1 story on Hacker News? At this moment in time?

Unsure if I should be glad people have a place to escape to and talk about the banal, or be concerned.

<comment><USER20> Do you mean that everything in the news should be dominated by a single topic?

Not only is it somewhat nearsighted (if perhaps sometimes tempting) to suggest that _everything_ and everyone should put their focus on a single matter and stop focusing on anything else, it also leads to people getting weary really fast.

<comment><USER36> Depends on the topic and the circumstances of the time, doesn't it?

<comment><USER20> I was assuming you might have referred to the covid-19 epidemic. And if that were the case then yes, I definitely do think there should also be other topics at the top. It's not like we're starving for news, or like feeding ourselves more is going to do much good after a certain point. Too much of it just becomes noise.

Of course you might be referring to the issues of racism and police brutality. While those -- especially racism -- are significant matters on the global scale, the current events are mostly a U.S. thing, and not everyone is American.

I agree those topics should be getting high visibility regardless, but I don't necessarily agree with the idea that we should just drop everything else we were doing and are interested in, or that it would be automatically sad if the top posts on a tech-oriented international forum don't happen to revolve around the current hot topic in the U.S.

<comment><USER36> We could talk about systemic racism in the tech industry ...

And, that's, just like, your opinion, man. Clearly a lot of people all around the world agree with me that systemic racism is worth discussing, based on the various protests in Paris, etc.

I certainly am not arguing anyone has to agree with me.

But to deny the validity of the discussion?

<comment><USER20> I'd like you to point out where I denied the validity of "the" discussion, or any discussion.

I disagreed with the idea that a single topic needs to be always at the top, or that it's somehow a bad thing if it isn't, or that it should be to the exclusion of other things. That's not at all the same as denying the validity of discussion about anything else unless you live in a black and white world.

I literally said "I agree those topics should be getting high visibility regardless", and now I'm apparently "denying the validity of the discussion".

</comment></comment></comment></comment></comment></comment><comment><USER37> Loved my Apple IIc.

Not so much liking the scissors MB Pro keyboard. Enjoying Android. Appreciate being able to add an sdcard. I think Lenovo will be my next laptop.

<comment><USER38> Yeah, this is the rational reaction to Apple's customer hostility. Just stop being a customer. Problem solved!

<comment><USER39> If it brings you any delight, I screenshotted that comment along with the article title and sent it to a friend as "hacker news dot png" since picking a keyword from the article title and posting a prepared comment about it is such a quintessential Hacker News quirk.</comment></comment></comment>


Driving, and the art of running a business - <AUTHOR> http://swombat.com/2011/10/31/art-of-running-a-business <comment><USER2> This is a good analogy. I think it would do many newcomers to the business world a lot of good to first get a mentor as suggested or (if possible) run a simulated business before attempting to dive into their own business blindly. Very few businesses succeed if the founders have no idea how to run a business. Facebook is an obvious exception.

Young people tend to see business today with more of a recreational view than a career choice. With that approach, the likelihood of making more mistakes in managing the business is higher.

To add one more analogy, running a business is like playing a sport. You should practice as much as possible and learn the rules extensively before going out on the field, otherwise you'll lose the game.

<comment><USER3> I beg to disagree, I think it's a really bad analogy. First, businesses are unique in many areas. Opening a restaurant is different than opening a book store. Second, in business, there are people involved. In sales, in production, in customer support and people are unique. While in driving, every car in the world feels and looks the same.

<comment><USER4> But opening a restaurant is similar to opening a restaurant. Given that there are many people who have opened restaurants before, it is obviously reasonable to get some advice from them before opening your first restaurant (though I'm sure many restaurant owners fail to do that).

Startups are no doubt more varied and unpredictable, but there are still a lot of commonalities. Unlike driving, a startup mentor won't sit in the driving seat and do it for you, but their advice can prove invaluable, because once you're experienced enough, many aspects of business do look the same across all or most businesses.</comment></comment></comment>


Show HN: Throne Room, my iOS 7 shuffler app for all you Dominion players - <AUTHOR> http://www.throneroomapp.com/

<comment><USER2> This is cool. I love Dominion. The home page doesn't give me any reasons why it is the best, only the statement that it is. Work in progress?

<comment><AUTHOR> Thanks for the feedback. To be honest, I've put far more work into the app than I have the website.

But to answer your question, it's stable and fully functioning, although there are plenty of features I have planned for future versions.

Basically, I wanted a shuffler app that was minimalistic and dead simple to use, yet something like a Swiss Army Knife for setting up and running a game. For example, Throne Room will generate a Black Market deck for you if needed, and "draw" three random cards for purchase when needed.

I couldn't find anything like this on the App Store, so decided to make one myself.

<comment><USER3> It'd be good to even just put a line on the homepage that says what a shuffler app actually is/does. I've played dominion but wasn't really sure what the point of this was. (as covered by other comments in this thread)

<comment><AUTHOR> Thanks again for the feedback. I've updated the site with some blurbs that hopefully explain things a little more.

</comment></comment></comment></comment><comment><USER4> I play dominion, but not sure what a shuffler app is.

<comment><AUTHOR> Basically, you can use this app to specify which cards you have (or don't want to use), specify special conditions (like no attack cards, for example), and this app will randomly generate a set of 10 Kingdom Cards for you to play.</comment></comment>


Ask HN: What's a good subreddit equivalent to HN? - <AUTHOR> <comment><USER2> 2010 HN had more content like r/haskell and r/clojure, can't speak to older than that, or for non-programming subjects

2017 HN is still king for advanced/theoretical topics like distrubted web and VC startup theory, i dont know of any other place for this. The wide reach of HN means cutting edge ideas that nobody understands will draw comments from the ten people in the world who do understand.

HN is really rough for popular topics where the kitchen sink feels qualified to comment, like bitcoin and javascript. pseudo-identities hurt HN badly here, you don't know if a comment is by the author of the framework, or a 22yo with two years of javascript. Would be so easy to invest some of their billions to improve HN here :(

<comment><USER3> > pseudo-identities hurt HN badly here, you don't know if a comment is by the > author of the framework, or a 22yo with two years of javascript

If it is the author of the framework, usually someone will mention it if they don't do so themselves. Especially if an invocation of Cunningham's Law is at work.

</comment></comment><comment><USER4> While not a direct equivalent, /r/programming has a lot of overlap with here.

</comment><comment><USER5> I go on this collection of subreddits (I think I found it on HN, can't remember). However, a lot of it seems to be the same content!

[https://www.reddit.com/user/ashish2199/m/cs_student_subs/](https://www.reddit.com/user/ashish2199/m/cs_student_subs/)

</comment><comment><USER6> r/hackernews</comment>