Germany plans to remove owner liability for piracy on open Wi-Fi hotspots–report - <AUTHOR> http://arstechnica.co.uk/tech-policy/2016/05/german-open-wi-fi-storehaftung-law-repealed/ <comment><USER2> The article doesn't mention that the case was fought in court by German Pirate Party activist Tobias McFadden.

[http://piratetimes.net/german-pirates-went-to-the- european-c...](http://piratetimes.net/german-pirates-went-to-the-european- court-for-free-wi-fi/)

In addition, there is a Freifunk - a non commercial initiative to provide free public WiFi.

[https://freifunk.net/en/](https://freifunk.net/en/)

</comment><comment><USER3> The wording of the proposed law is not published yet and there are good reasons (including statements by the involved ministries) to believe that it does not really have the effect they claim.

<comment><USER4> Just politically it doesn't make any sense to me to believe the change will have that effect.

Why would after such a long time the CDU suddenly drop the pro-Störerhaftung position? It seems much more likely that SPD and CDU have reached a compromise that eliminates the Störerhaftung only partially.

I expect the outcome will just create legal uncertainty. So that there won't be any positive effect.

<comment><USER2> > Why would after such a long time the CDU suddenly drop the pro-Störerhaftung > position?

That's because the Advocate General (AG) to the Court of Justice of the European Union (CJEU) has decided it to be so [0]. According to the AG, there has to be balance between "freedom to conduct business" and "protection of IP". So, the requirement to make WiFi networks secure via passwords is an unfair balance.

The AG's counsel is not binding on the CJEU but it gives you fair direction on which side the CJEU would rule.

[0] [http://curia.europa.eu/jcms/upload/docs/application/pdf/2016...](http://curia.europa.eu/jcms/upload/docs/application/pdf/2016-03/cp160028en.pdf)

<comment><USER4> That's a very good reason. I don't think it truly explains the shift, considering the larger context. They suffered similar and larger legal setbacks on data retention and they didn't change their position on that, they pursued it further.

Why are they willing to drop this so much more quickly? Is the legal argument stronger here? Are the law and order people just that much more powerful than the intellectual property people? Is there a larger compromise at play, where the CDU compromises on this issue and the SPD on another?

<comment><USER5> The black helecopter conspiracy theorist in me whispers: As a mass surveillance strategy it makes much more sense to have a national tap on all the free wifi than to require passwords/id, which would send potential terrorists underground with something harder to tap. The threat of an effective security culture of "undesirable" cells around, say, one-time pads, is the end-game that any state security apparatus is trying to avoid.

<comment><USER6> Especially with the Freifunk community threatening to provide a free, secure, public WiFi system anyway.

</comment></comment></comment></comment></comment></comment><comment><USER7> The situation is similar in France, with the HADOPI(3-strike law) adding a "neglect" infraction for lack of securing your Internet access. So you're indirectly responsible of piracy, but won't pay fines for it, only for negligence of securing your wireless network (ie running an open network). It's pretty comical and hard to apply, and only one person has been sentenced in the 7 years of this law.

Luckily, there's always onionpi ([https://learn.adafruit.com/onion- pi/](https://learn.adafruit.com/onion-pi/) ) should you need to run an open wifi network.

<comment><USER8> >only one person has been sentenced in the 7 years of this law.

That's not true. At the end of 2015, about 31 people were found guilty.

[https://nextinpact.com/news/96525-hadopi-plusieurs- abonnes-c...](https://nextinpact.com/news/96525-hadopi-plusieurs-abonnes- condamnes-a-300-et-500-euros-d-amende.htm)

<comment><USER7> But how many were condemned _specifically_ for "neglect" ? I'm guessing it's not that many. Anyway, even if it's 31 people, it's still a very low number considering the money spent there.

</comment></comment></comment><comment><USER9> Is this a common practice in Europe /US? It seems ridiculous that the WiFi provider would be held liable for such a thing. Why stop there, should make the ISP liable too!

<comment><USER10> No, it's just Germany that has this stupid rule. Yes, it's ridiculous but has that ever kept politicians from implementing legislation?

Germany is particularly notorious when it comes to useless, ridiculous and downright detrimental laws regarding anything that has to do with the Internet, notable examples being the so-called 'Leistungsschutzrecht' ([https://en.wikipedia.org/wiki/Leistungsschutzrecht](https://en.wikipedia.org/wiki/Leistungsschutzrecht) ) and the 'Impressumspflicht' (legal notice requirements for websites)

<comment><USER11> The Impressumpflicht that is applied to websites now, is based on a law from 1530[1]

[1]: [https://de.wikipedia.org/wiki/Impressumspflicht#Geschichte](https://de.wikipedia.org/wiki/Impressumspflicht#Geschichte)

<comment><USER3> The idea is old but the law now applied to websites was deliberately extended to the internet.

</comment></comment></comment></comment><comment><USER12> It's just common sense... Can a ISP be liable for what it's user do? An open Wi-Fi hotspot is basically an ISP....

<comment><USER13> That's the core of the legal issue. ISPs are protected, it's not clearly regulated what/who an ISP actually is, and the courts generally haven't granted the status to private/on-the-side providers.

</comment></comment><comment><USER14> It's safe to speculate that the final wording will have limitations and still require identification of users to pursue "pirates", online bullies, online vandals, etc.

</comment><comment><USER15> Years too late. Many years really.

<comment><USER16> Why? Here's my current POV: 1. Internet is not really a public resource, it's rather a gigantic alliance of p2p connections, mostly organized by private entities who can make whatever contracts they want. 2. On this alliance, if one actor wreaks havoc (spam, DOS, scam, piracy), the victim can only turn back to the node which transmitted the connection; 3. It's up to this node to keep logs and forward the pursuit upstream to the attacker; 4. It's the only way it can decently work, because we may lack proofs or the chain of responsibility to attack the upstream node directly; 5. Legal problems will happen if we treat the Internet as a public resource, where politics have a say, where access is not authenticated, and where no-one bears responsibility for crimes.

Now it appears that you don't follow this opinion, you think we should let criminals access the internet anonymously?

<comment><USER17> > you think we should let criminals access the internet anonymously?

Of course we should, because that is unavoidable. Making anonymity harder will make it so that _only_ criminals have anonymity, because they are the ones who can justify extraordinary measures and are willing to break laws in order to get it. All laws against anonymity do is harm honest people who need it for anonymous speech and privacy.

And somehow all of your premises are wrong, even though only one has to be for your argument to fail:

> Internet is not really a public resource, it's rather a gigantic alliance of > p2p connections, mostly organized by private entities who can make whatever > contracts they want.

This is like saying transportation isn't a public resource because buses and taxis and airplanes are provided by lots of different people under privately negotiated terms. You don't have to show ID to ride in a taxi, nor should you.

> On this alliance, if one actor wreaks havoc (spam, DOS, scam, piracy), the > victim can only turn back to the node which transmitted the connection

Victims of scams can follow the money or flow of goods. Spam and denial of service can be algorithmically identified and rate limited. Undetectable piracy is not a problem your proposal would solve; see also direct download sites, foreign VPN services, I2P, sneakernet, LAN parties, etc.

It is also possible for endpoints to choose to require that the opposite endpoint authenticate cryptographically before accepting any other data from it, which will always be significantly more reliable then relying on every carrier and endpoint on the internet to remain uncompromised in its ability to assert the origin of traffic it forwards.

> It's up to this node to keep logs and forward the pursuit upstream to the > attacker

This isn't a premise at all, it's just an unsupportable conculsory normative assertion.

> It's the only way it can decently work, because we may lack proofs or the > chain of responsibility to attack the upstream node directly

So block it until the attack stops then. Or require users to register using some collateral or proof of work.

> Legal problems will happen if we treat the Internet as a public resource, > where politics have a say, where access is not authenticated, and where no- > one bears responsibility for crimes.

Just because an IP address doesn't map to a person doesn't mean "no-one bears responsibility for crimes." It just means investigations are more expensive. Which is _good_ , because it means serious crimes can still be prosecuted but mass surveillance and petty crusades are impeded.

<comment><USER16> Good points, thank you for developing. You might even have changed my mund, it was worth it.

</comment></comment></comment></comment><comment><USER18> To be perfectly honest- everyone ignored it. That seems to be the role of the lawmakers lately. Make some law to comfort the elderly and ignorant- then don't enforce it and clear up the mess and damages created by the chilling effect. Ironically it wont even save those ISPs it was made to protect for, which paid ridiculosis amounts of money for smartphone frequency's.

</comment><comment> blubb-fish The infamous CP card is usually played by backwards-minded conservatives but it was, is and keeps being a potential big problem when you open your Wifi to the public. Also other criminal online activities.

<comment><USER19> This is still a problem even if the Störerhaftung (WIFI-owner being liable for misuse) is removed: When the police comes looking for someone distributing CP, they go by the IP address and take everything that remotely looks like a computer for forensic examination.

So, having an open WIFI is like painting a huge target on your back, albeit a somewhat smaller one when media companies are removed from the list of potential trouble makers.

(See also: [http://www.lawblog.de/index.php/archives/2016/05/12/dein- wla...](http://www.lawblog.de/index.php/archives/2016/05/12/dein-wlan-dein- risiko/) (in German), for a defense lawyer's perspective)

<comment><USER20> Well, no, if the law says "anyone can run open wifi, and any suspicious use there should be investigated, and not just taken as read that the person who owns the wifi is the user of it" then the moment permission is sought to raid the place it should be denied immediately until there's some evidence the person running the wifi also committed the crime. If that's written into the law; if at the point a warrant is sought, or if at the start of a court case the defence can just say "this case should be tossed out; you aren't allowed to go after people running free wifi" then there would be no point in going after the people providing free wifi. After all, no-one goes after the ISPs.

<comment><USER21> Except that there is evidence to show that the specific equipment was used to commit a crime. You'd be hard-pressed to provide a legal standard that prevented police from obtaining permission from a court to seize that evidence as part of their investigation, even if the owner isn't implicated.

It's not too dissimilar from a shop owner being forced to give up security camera footage -- the owner is not being targeted in the investigation, and there's plenty of unrelated footage, but there is a high likelihood of relevant evidence existing.

</comment></comment></comment></comment><comment><USER22> I think there should be a law that would disallow passwords for public wifi.

passwords are soooo annoying (is that a 1, l, or I?) & if everyone had open wifi, then it could be utilized much more, lowering everyone's wireless carrier usage. also, you wouldn't need to worry about someone using too much bandwidth -- it would happen, but i doubt more frequently than with the passwords. Well, wifi could be throttled if it were really a problem.

<comment><USER23> If it's got a password, it's not really _public_ wifi. Isn't it usually complementary wifi for patrons of a particular business?

<comment><USER24> I think he might be referring to "public" but not public wifi, like coffee shops etc.

I've long thought that if your business is using public unlicensed spectrum then you should be required to let the public in.

A very large national phone carrier in my country is blanketing the cities with wifi reserved for their customers - using a public resource and clogging up the unlicensed spectrum for private gain. They've already bought a lot of spectrum licenses, but clearly using public spectrum is a cost-effective way to add capacity.

<comment><USER25> Large scale public wifi generally doesn't have passwords, that clearly doesn't scale, they have fancy enterprise auth things or captive portals. Shared password only works for small places like coffee shops.

Anecdotes: 1: on London Underground, my phone authenticates using the SIM somehow (it still shows a captive portal screen, just with an ad, yay). 2: in the Turkish lounge in Istanbul airport, the shared password was clearly a marketing channel, InvestInTK2016 or some such. It struck me as pretty clever.

> if your business is using public unlicensed spectrum then you should be > required to let the public in

"Unlicensed" isn't really "unlicensed", as much as specifically licensed for anyone to do with as they please. But to take your idea just one step further, once you've opened up all wifi for the general publics consumption (what a renaissance for wired networking!), would people using it be allowed to use it for private gain? Why is it wrong to use unlicensed spectrum for private gain, but not to use a service provided over the same spectrum for private gain? Also, as a business, under this doctrine, are you allowed to enable wifi access to a closed non-internet LAN, with only locked-down non-public servers on it?

<comment><USER24> > But to take your idea just one step further, once you've opened up all wifi > for the general publics consumption (what a renaissance for wired > networking!)

I think this requires clarification - I don't mean no business should ever use wifi. I mean businesses like telephone companies shouldn't be using to augment their networks. Obviously offices and the like need secure wireless networking that normal hardware can connect to.

> Why is it wrong to use unlicensed spectrum for private gain

Maybe with my above correction this isn't needed, but in cities the 2.4ghz channel is loaded to death and in a few years the 5ghz channel will be the same. All I'm objecting to are these closed commercial networks from people who should be paying for the spectrum bunging up the open one the rest of us use. My city is _soaked_ with a wifi network that is closed to everyone except the customers of a telco. If your primary business is providing network connectivity, perhaps you should pay for the finite resource you use.

<comment><USER25> So you're speaking of a specific problem in a specific place - this is kind of hard to know when it was phrased as a general principle.

Also, it's hard to discuss the issue when there are no details about the specific issue available.

But two points: First, where I am, 2.4Ghz is perfectly swamped with normal residential access points. It seems unlikely that this telco in your city did much more than move up the point where the spectrum is swamped, rather than causing it directly (also, if their use is affecting everyone else, they themselves are affected, too, rendering their investment pretty pointless, which leads me to wonder just how bad the situation actually is). Second, if you do want to regulate, in a rule-of-law-compatible way, well, it's going to be hard to distinguish a Starbucks access point operated for the benefit of customers of Starbucks from a telco access point operated for the benefit of customers of that telco. (If you want to use spectrum ownership as the metric, consider that many telcos cover both spectrum-owning mobile and commercial and residential broadband (ie wifi-providing) subsidiaries). To further muddy the waters, the telco is very likely to be selling access to their wifi network to non-subscribers.

<comment><USER26> >it's going to be hard to distinguish a Starbucks access point operated for the benefit of customers of Starbucks from a telco access point operated for the benefit of customers of that telco

Not really. Usually there is an actual Starbucks where there is Starbucks WiFi and it doesn't extend much beyond the coffee shop. In this case and the case of Comcast in the US, the company is using other people's property for broadcasting wireless.

</comment></comment></comment></comment></comment></comment></comment><comment><USER27> You guys surprise me, how is this news? Western societies are supposed to be liberal, how exactly would one be responsible of what other guys do? How about open Wifi in hotels or restaurants?

I am not surprised provided what I hear you say, that Bulgaria (where I live in) has the best internet connection in the world. If you think I am joking - Google it. What the title says is sheer stupidity and makes absolutely no sense - and insult to intelligence.

<comment><USER2> > How about open Wifi in hotels or restaurants?

This the primary reason why Germany has very few open WiFi spots.

<comment><USER27> Well, I am glad they are moving over. Technically, it would be very hard to find people responsible for open Wifi in, for example, a hotel. Who would be responsible if Osama Bin Laden browsed something that is illegal? The hotel owner, the staff, the internet provider? And how about if the hotel is owned by a public company? The shareholders?

Just bullshit.

<comment><USER28> That's why the wifi isn't open in German hotels, instead you get a login specific to your room.

<comment><USER27> And that is why this is bullshit, because, if I want, I switch to mobile roaming for the price of one beer. You cannot stop me with bullshit like that, if I want to do something that they think is illegal.

And not only that, I can buy an anonymous SIM card, if I want. What exactly are you saying, you are defending this stupidity? What else are you defending, if someone uses Facebook or Whatsapp for terrorism, you gonna shut them down.

Please.

<comment><USER29> I think you will not be surprised to read that they are trying to outlaw anonymous SIM cards ...

[http://www.spiegel.de/netzwelt/netzpolitik/prepaid-sim- regie...](http://www.spiegel.de/netzwelt/netzpolitik/prepaid-sim-regierung- will-anonyme-handy-karten-verbieten-a-1087295.html)</comment></comment></comment></comment></comment></comment>


Ramses – A distributed system for rendering 3D content - <AUTHOR> https://github.com/GENIVI/ramses <comment><USER2> I dont see a demo on their github page. Anyone find any?

Nothing here: [https://www.youtube.com/results?search_query=bmw+ramses](https://www.youtube.com/results?search_query=bmw+ramses)

[https://at.projects.genivi.org/wiki/display/DIRO/RAMSES](https://at.projects.genivi.org/wiki/display/DIRO/RAMSES)

<comment><USER3> I couldn't find anything either. A distributed 3d rendering system isn't very useful if it doesn't produce nice looking pictures. They should really add some sample renderings to the their wiki.

<comment><USER4> Golem Project has dozens of engineers working on distributed computing and have rendering capability today. GitHub: [https://github.com/golemfactory](https://github.com/golemfactory) and website is [https://golem.network/](https://golem.network/)

<comment><USER5> I do not mean to be harsh, but this sounds exactly like an ad for golem which, IMHO, is not the right place nor time for.

<comment><USER4> You're right--I could have made my point differently. I just pulled up the Ramses Github and didn't see much activity whereas I knew of a different repository with thousands of lines of working code.

</comment></comment></comment></comment></comment><comment><USER6> Thanks, BMW! From the docs:

        # Example

        In a very simplified example, a client instance (e.g. the Navigation process) will create a 3D scene and "publish" it within the connected RAMSES applications (e.g. the renderer of each HMI).

        These renderers will "subscribe" to the published scene and show it on the screen.

So not just for the giant grids you see at CES. But also applicable to thin clients, LAN party play, art gallery installations, etc.

<comment><USER7> My suspicion, particularly with that example, is that this is something they use in their cars to present various interfaces.

<comment><USER8> Any guess as to what type of network layer they use there?

I thought cables are short enough in a car that they can attached the displays directly to rendering hardware. Are there other advantages? Provide a fallback in case one render process fails?

<comment><USER7> Not really, but car manufacturers have actively used network based electronics for easily twenty years or more. (In the early 2000's, I did some work on CAN interfaces for PC's that were often used to connect them to car hardware.)

The network simplifies the wiring and reduces the amount of wire used. Material cost reductions across the life of the car (from design to use).

</comment></comment></comment></comment><comment><USER8> Slightly off topic, I remember another distributed UI system that was posted to HN or mentioned in the comments not that long ago. I think it supported normal 2d widgets and maybe 3d as well. It was nothing web/js based but had native clients. Anyone remember this? I tried searching for it to no avail.

I am fascinated by such systems. In the best case you get screen/tmux re- attachment features for GUIs, down to the application level, not desktop level (x11/xpra does some of this). And you do not just stream pixels across a network (like x11) but have at least some of the render logic locally. If you can then use local graphics hardware that seems like an unbeatable combination.

Maybe some websockets/webgl/webassemly which does all that will become the de- facto platform agnostic GUI platform in the future.

<comment><USER9> was it vvvv?

[https://vvvv.org/](https://vvvv.org/)

[https://vvvv.org/propaganda](https://vvvv.org/propaganda)

<comment><USER8> No, I think it was not windows only, and not as "fancy" or versatile, just something like gtk or Qt with built-in networking.

But this looks neat as well, I did not know that one nor found it during my search.

<comment><USER10> GTK3 has had an HTML5 rendering backend for a while now, but it does fall under the "streaming pixels" category: [https://blogs.gnome.org/alexl/2010/11/23/gtk3-vs- html5/](https://blogs.gnome.org/alexl/2010/11/23/gtk3-vs-html5/)

</comment></comment></comment></comment><comment><USER11> Off-topic: At that point do we run out of software names? At least "Ramses" is an acronym for something reasonable, it feels like a lot of them intentionally make no sense.

<comment><USER12> They just get recycled. I've worked on projects with the same code name at different companies.

By the way, if your company is in desperate financial difficulty, circling the drain with increasing speed, and the management cobbles up a "save the company" project and they name it "Falcon" it is WELL past time to polish your resume and bug out. I've seen _that_ code name several times, and it's spelled utter doom (two bankruptcies and one buyout that was worse than going bankrupt).

In my head the conversation goes something like this:

\----

[Int. meeting of High Management]

MARKETING HONCHO: "This is it. We're going to save the company with this new product. We're calling it Project Phoenix. Rise from the ashes! When can engineering start?"

ENGINEERING DIRECTOR: "Uh, don't Phoenixes burn themselves to death? Isn't that kind of a negative thing? The teams are a little burned out from the last save-the-company death march."

"You have a point. Let's call it something like . . . Fee-- no, um, Fun--, no . . . um, Falcon. That's it. Project Falcon."

"I _guess_ that's better."

"Go save the company."

"Right. I'll just pop down to engineering and cancel all the vacations. When can you tell us about the product?"

"Later, when we decide what color it should be."

\----

I have insufficient data, so it's possible that any project named after a large bird is bad juju. Stay safe :-)

</comment></comment><comment><USER13> The first time I have seen any code from the trillion dollar automobile sector make it into the Open Source world, not that I go looking. What else could there be?

Let's try General Motors:

[https://github.com/GeneralMotors](https://github.com/GeneralMotors)

Yep, that is empty.

<comment><USER14> Actually this is General Motors too:

"The GENIVI Alliance is a non-profit automotive industry alliance committed to driving the broad adoption of open source, In-Vehicle Infotainment (IVI) software and providing open technology for the connected car. The GENIVI Alliance was founded on March 2, 2009 by BMW Group, Delphi, GM, Intel, Magneti-Marelli, PSA Peugeot Citroen, Visteon, and Wind River Systems"</comment></comment>


Show HN: Build a sales funnel and sale digital products without using SaaS - <AUTHOR> https://medium.com/hackernoon/how-to-make-a-sales-funnel-without-monthly-fees-64a532e97640 <comment><AUTHOR> What do you use to build a sales funnel?</comment>


Want to start Magento 2 but I am totally lost - <AUTHOR> Hi Guys,
    I don't have any magento experience either 1 or  2, tough I have extensive experience in PHP and related frameworks. I see that magento 2 has been recently launched. But its documentation seems incomplete. I also bought Magento 2 Developer's Guide but it also seems very high level overview of magento. Seems like the author assumes that the reader knows everything. Does anyone has magento 2 experience here? Can you tell me how can I get started?<p>Regards, <comment><USER2> I have multiple clients on magneto 1 asking me to upgrade them to the next version . My answer so far is: no! Wait few months. The switch is painful and most of the extensions are not Magento 2 ready. I have also new clients coming and wanting a site on Magento 2, unfortunately many bugs in this version and very little extensions and themes available for M2 make me delaying those developments and simply choosing the older M1 even for new projects. I would love to hear how other web agencies are dealing with it.

<comment><USER3> We would not recommend it to any client, at least not until Magento 1 support becomes an issue.

This kind of sums up how bad Magento 2 is at the moment:

[https://blog.amasty.com/magento-1-vs- magento-2-performance-c...](https://blog.amasty.com/magento-1-vs- magento-2-performance-comparison-speed-test-results)

</comment></comment><comment><USER4> The documentation is definitely incomplete but improving every few weeks. If you just need a basic overview [http://docs.magento.com/m2/ce/user_guide/getting- started/int...](http://docs.magento.com/m2/ce/user_guide/getting- started/introduction.html) looks good. If you want to do development, keep in mind that the framework was built to be plugin based. If you need new functionality you're building custom modules. If you want to change the appearance, you're working on themes. For debugging you may want to take a look at Z-Ray, a profiling tool built by the magento team.</comment>


Passion requires that you hate something - <AUTHOR> http://brookeallen.com/pages/archives/1353

<comment><AUTHOR> This is about passion for work, not love or sex. It explains what is missing from many people's work lives.</comment>


Generating World Maps for Unexplored 2 - <AUTHOR> https://www.ludomotion.com/blogs/generating-world-maps/index.html <comment><USER2> The first half is the clearest, most concise map generation algorithm I've seen.

The visual map generation is not as clear to me, but the results are gorgeous.</comment>


How Intellectual Property Destroyed Men's Shaving (2012) - <AUTHOR> http://makkai.com/2012/04/how-intellectual-property-destroyed-mens-shaving/ <comment><USER2> Fail on history: It wasn't the Sensor in 1990 that introduced the 2 blade cartridge, it was the TRACII in 1973, followed by Atra, and then Sensor. Meanwhile, Shick had their own inventions, such as the Tracer.

Further, IP was such an issue that it caused King Camp Gillette to lose control of the company because his competitor held the patent to his newly invented blades. It was going to be settled by buying the competitor and giving the competitor's founder non-voting shares, but it came out in due diligence that Gillette had been over reporting profits. American Safety Razor executed a reverse takeover and kicked Gillette out... and it all began with an IP failure over blades.

</comment><comment><USER3> I've been using DE razors for 5 years or so. I have a very thick beard, the DE razors are so much nicer on my face. Buying blades bulk on Amazon, they're about 2 cents apiece.</comment>


A product idea that I don't know how to realize - <AUTHOR>

Hello HN'ers,
The other day there was a call for 3 things that irritate you, I missed the re-run at the end of the day because of the time difference but I did come up with something only I haven't the foggiest on how to make it work, only the feeling that it should be possible. It is not at all computer related though.
Almost everything that you consume has a 'best before date'.
You're buying a pack of fruit juice, milk, pickles, jam or whatever else that is somewhat perishable after opening it, even if you keep it refrigerated.
Then, after a day you go to the fridge and you stare at the carton... when did I open that thing ?
Especially with more than one person in the house you could be looking at something that was opened yesterday or it has been sitting in the fridge for longer than is good for it (and you).
So, the idea is this: something that gets activated on opening the container, and when a chemical timer expires it will change colour to warn you that the contents are no longer safe for consumption.
For me this matters because my stomach gets upset very easily and it takes a long time to get back to normal (past medical condition), so I end up erring on the side of caution and tossing out stuff that is quite probably still ok for me to eat.
Of course, this is just a convenience, I could slap a post-it or something like that on the containers when they were opened, but I'm a lazy person and wouldn't mind having this automated.
It's definitely not a world-class problem but maybe it is worth solving for enough people that someone could make a bundle on it.
Criticism welcome! <comment><USER2> First, it would be 'use by', not 'best before'.

But you don't really mean 'use by' either, you mean: 'consume within _n_ days of opening'.

How about a simple, lo-tech solution: when you open it, write the date on the label -- then check how many days have passed when you want to eat it. No blue-sky RD, or complex industrial production needed!

<comment><AUTHOR> > I could slap a post-it or something like that on the containers when they > were opened, but I'm a lazy person and wouldn't mind having this automated.

I knew someone was going to say that :)

It's just that I'm aware that I can do that, but in practice it doesn't happen.

<comment><USER3> I think you'd have the same trouble with the automated way.

The doohicky that does it would have to be programmed to be catered to you, I should think - particularly if you have a sensitive stomach. I've known a few people in your situation, and they prefer to throw things out well before their "best before" date.

This means it's a personal preference and as the first commenter states: a "use by" date.

Wouldn't that end up being the same as a sticky note?

</comment></comment></comment><comment><USER4> I think there's a genuine need for this kind of solution for medicine, which can have much more serious consequences than an upset stomach. The economics would make more sense too, as it would be much easier to justify adding a few cents to a $50 antibiotic than to a $1 yogurt bottle. Alas, I don't have a technical solution, although I suspect a very simple electronic circuit might do the trick.

</comment><comment><USER5> Announcing the Agar-Pack!

This a clear plastic bubble containing a sample of bacteria and a quantity of agar.

Squeeze the bubble gently and the internal membrane separating the bacteria from the agar is broken, but the outer bubble remains intact. Now stick the bubble onto the packaging of any food product you've just opened. You now have a visual indication of the state of the food inside.

<comment><USER6> That won't work. The rate at which different foods spoil after they're opened varies dramatically. Foods with a lot of salt in them, for example, stay good for a long time, while my carrot juice spoils within days of opening it. Not to mention, until you break the seal, what are those bacteria using for food?

I just write the date on things with a sharpie when I open them. A technological solution here seems to me to be more likely to complicate than simplify.

</comment></comment><comment><USER7> Cheap barcode scanner + Atmel AVR + strong refrigerator magnet.

The first time you scan your product, it memorizes the date. Every time after, it indicates the product age with leds, sound, or an LCD. You keep it stuck to your fridge, scan groceries going in/being opened, scan anything questionable again before use to check the age.

You'd have to keep a sheet of one-off barcodes for stuff like restaurant leftovers, fruit, etc.

As the userbase grows, you could support downloadable tables of expiration dates for various foods(barcodes) so you wouldn't have to even think about that.

Somebody could probably make "a bundle" by mass-marketing a gadget like this, but that would make me angry. Thinking like a user rather than an entrepreneur here, I'd prefer to see it as a cheap, hackable, perhaps Arduino compatible electronics kit on Sparkfun.com or the like.

</comment><comment><USER8> I can imagine seeing some sort of label maker where you can select n days, n weeks, from now and having it spit out a use-by date.

Not high tech, but something you could sell with a convincing enough infomercial and a Billy Mays look-alike

</comment><comment><USER9> what about a solution that relies on cameras in the fridge/kitchen area and AI that can tell you are opening a bottle of something? The code would have to detect the various bottles maybe do OCR on the labels and build a db of what is in your kitchen. Maybe the packaging could be made more easier to scan but maybe not.You could even "show" your new groceries to the system or it could ask you what certain things are that it couldn't ID.

The point is that this system would be something you could install and not impact the supply chain with a lot of new requirements on the packaging.</comment>


Google Says It's Achieved Quantum Supremacy, a World-First: Report - <AUTHOR> https://gizmodo.com/google-says-its-achieved-quantum-supremacy-a-world-fir-1838299829/ <comment><USER2> Please note, original discussion is here: [https://news.ycombinator.com/item?id=21029598](https://news.ycombinator.com/item?id=21029598)</comment>


Show HN: Nudj – One Touch iPhone Messaging App - <AUTHOR> http://nudjapp.com <comment><AUTHOR> My friends and I created a new iPhone messaging app focused on speed and simplicity. You can send or respond to a request for a picture, location, yes/no, or quantity in as little as one touch. We'd love the community's feedback on the landing page or app itself. BTW, this app was also an experiment for serverless architecture, and utilizes AWS Lambda for the entire backend.</comment>


Trade Schools Are No Panacea - <AUTHOR> https://fredrikdeboer.com/2017/06/09/study-of-the-week-trade-schools-are-no-panacea/ <comment><USER2> > _by age 49, on average, individuals completing a general education are more > likely to be employed than individuals completing a vocational education_

18 to 21-year olds commit crime at over 15 times the frequency of 65+ year olds [1]. "Borrowing" unemployment from a voter's later days could be a savvy move if the costs of crime and law enforcement are considered.

[1] [https://www.bjs.gov/content/pub/pdf/apvsvc.pdf](https://www.bjs.gov/content/pub/pdf/apvsvc.pdf)</comment>


Apply HN: Grid –  a Decentralized AI Assistant - <AUTHOR> Problem: The internet allows you to know a lot of things but what it doesn't tell is the nitty-gritty details you want to know. And to give you that information, the app/web needs to know about you, a lot. And we all know how much we can trust  someone with our data. This gap prevents us from having the connected experience we deserve, from knowing more about our vicinity and often forces us to make uninformed decisions.
Solution: A mobile application which creates a decentralized network using Bluetooth and WiFi and uses this network to power the AI assistant. The AI learns from your activities, preferences and routine and gives you suitable notifications when you need it. All your personal information and everything the AI learns is kept on your phone only. And if someone on the Grid makes a query that needs your data then it is properly anonymized first.
Extra feature: Just like any network, Grid also supports running applications over it. Anyone can make simple plugins for the network!
Status: The app can create a network and has been tested(It sometimes crashes on Android 5+ devices :p but me and my team are close to fixing that). The plugin framework is also complete and just the documentation is left. We are now focused on the AI part, and we believe we can have an alpha by the mid of may.
Background: We are a team of 6 and are practically in our final year of college. We are classmates and have know each other for more than 2 years and we have been working on this idea for the past 11 months.
The idea could sound quirky or boring, and I really really would like to know your opinion, your remarks, your rant. I am all ears to what you have to say.
Looking forward to your comments :D <comment><USER2> Building an AI Assistant is a very hard problem, in and of itself. Making your service decentralized seems like it will add a lot of complexity and present some limitations. Why can't you just follow good security practices? As evidenced by Google, most people are willing to let a company know a _lot_ about them in order to use a valuable service.

<comment><AUTHOR> It has been just 3 years since I got my internet connection. And thus I am aware of what it means to be disconnected. Our initial idea wasn't even remotely about AI. I just wanted to make something which could act as a backup network, something which people with no internet(we have quite a share of this type in my city) could also use.

You see, its not just about privacy. A decentralized network helps you connect to people around you. And about the AI part being difficult, well, good stuff is always difficult ;)

<comment><USER2> Solving a hard problem can indeed be a good strategy. Trying to solve two hard problems at once can prevent a startup from solving either one. Since both of these have their own independent value, I would suggest that you focus on one first.

<comment><AUTHOR> I agree. The AI part of the idea is relatively new with respect to the network part. To be specific, we have been working on AI since January and to put things in perspective, we started working in December 2014. All this time, we just worked on the decentralization aspect and the plugin framework.

And regarding the implementation of these two separate ideas, well, Grid is both of them at the same time and how we present it depends on what demographic are we dealing with.

So, yes, it's one thing at a time for us :)

</comment></comment></comment></comment><comment><USER3> Can you talk a bit more on "And if someone on the Grid makes a query that needs your data then it is properly anonymized first."

<comment><AUTHOR> "Notify me when the crowd outside [this] stall is below 50"

This situation demands the location of your device. Now, the app would hide your identity by using a hash in place of your name or MAC. This is our initial solution and if something better comes up or if a more complex situation arises then we would implement something better.

</comment></comment><comment><USER4> Could you give a specific example of what this would do?

<comment><AUTHOR> Sure! You could make a query like "Coffeehouses around me with with at least 2 charging points.", and it would give you a list which satisfies your criteria but would also filter based on what it learnt. In case it learnt that you hate crowded places then it would reflect that in the results.

It can also give you personalized notifications. In my particular case, I have to wait for my bus to go to college and it usually is quite packed when it arrives, so I go to the depot and take the bus directly from there. Now, this assistant of mine could tell me that the next bus is packed and I should go straight to the depot or I could just wait for 2 minutes and take a seat in the coming bus.

<comment><USER5> How will the system acquire relevant data about coffee shop electrical outlets, bus time tables, and a person's personal space requirements?

What local markets will be targeted first for data acquisition?

What data sets will be targeted first?

<comment><AUTHOR> The system is all about crowd sourcing information. Android can tell when a phone is charging or not and phones using our app could tell the grid. So, that gives us electrical outlets in the coffeehouse. We won't be accessing some public bus time table. Rather, the grid users riding the vehicle could give us real time and reliable data about the same. And, a person's personal space requirements, well, honestly, that's a tough one, and it needs more thought than what we have given to our current flow.

Since, Grid is all about optimizing daily lives, we would target grocery shops, local general stores and weekly markets, initially.

We are relying heavily on the sensors provided with the phones, along with the most important, location data. We believe we could have at least an alpha if we start with these streams of data.

<comment><USER5> Without a bus schedule, how will the grid determine that one bus is the one the user wants and another bus is not?

With the data being crowd sourced, what is the strategy for addressing the "chicken and egg" problem inherent when depending on network effects?

<comment><AUTHOR> A bus schedule would have been of great help if the system was pretty organized. But, in my city, it's a circus show. Multiple buses and jams on bus stops. To curb this issue, initially, users would have to mark the buses. This is something like the bitcoin community, where the users of the system help in operating it and in return get its services.

Chicken egg problem. My archenemy. Our solution for now, is to rely on our "Extra feature" ie Plugins. Existing startups and businesses can extend their own functionality by making their plugins. For example, there are tons of anti-rape apps on the market but almost zero which work offline. This would convert their users into Grid users. We could also get businesses to create exclusive content or offers in return for our Ad platform/Analytics.

Just in case you are thinking that marketers/businesses will get your personal data and profile, then let me say this again, your data stays on your phone. The app in turn will filter out all the ads based on your preferences.</comment></comment></comment></comment></comment></comment>


Ask HN: What's our generation's "Whole Earth Catalog"? - <AUTHOR>

Like everyone else here, I've been reading a lot about the life of Steve Jobs lately. I feel like I had a pretty good idea of his life and his work since I'm a long time Mac user and Apple fan, but scrounging for the details makes him feel still present.<p>Anyway, one of the coolest things about him that I'm re-discovering is his motivation from the Whole Earth Catalog. He said in his 2005 Stanford speech that it was his generation's "bible." That got me thinking - what is our generation's "Whole Earth Catalog"? <comment><USER2> That's very easy for me to answer -- but I'm a bit older than most of you folks. As funny as it may seem the book that changed my life and opened my eyes was "The Media Lab" (1988). and the author of the book was Stewart Brand. What's interesting is that many of the things being talked about in the book are now very much a part of the real world. It's also interesting to note that Brand was also the author of the Whole Earth Catalog. <http://en.wikipedia.org/wiki/Stewart_Brand>

The closest thing today to the "Whole Earth Catalog" today is really the net — especially sites that explore underground culture...

<comment><USER3> His "How Buildings Learn" is an excellent read as well. In it he argues for construction design, materials and techniques that allow for a building to be adaptable and habitable over the long term, by different tenants with different needs.

The book is empirical in nature: it examines buildings that have been capable of adapting to new uses and demands and those that haven't been. From that catalog of buildings he explores the qualities that make for an adaptable building.

For anyone interested in "user interface," this is an insightful work on designing the built environment.

</comment></comment><comment><USER4> I actually had a couple late issues of "Whole Earth Catalog", but my real inspiration came from "Popular Electronics" (my first "computer" was a COSMAC ELF based on the RCA 1802 uProcessor) and "Radio Electronics". Later Jack Crenshaw's column in "Embedded Systems Programming" was instrumental in teaching me about powerful but efficient algorithms ... something I still practice today.

I suspect you're asking about the current generation ... I don't want to put words in the "youngsters" mouths but I'm happy to see that the DIY spirit is alive and well. It's something we can all agree on!

</comment><comment><USER5> I heard that speech, more than once, but I didn't understand what this "Whole Earth Catalog" was, other than being a popular book among nerds.

Is there any single book that can be said to be popular among nerds these days?

</comment><comment><USER6> Wikipedia

<comment><AUTHOR> Wikipedia is definitely a great resource, but it doesn't provide a common context to listed works like the Whole Earth Catalog did. I mean, the Whole Earth Catalog had a whole intro about the spirit of their generation and why they listed what they listed, in addition to explanations and comments about the listed works.

<comment><USER6> My first inclination was "the web" it is not a good analog due to its lack of curation.

And while the cynical part of me wants to point out that Pepsi co-opted the spirit of a generation idea a generation ago, Wikipedia's editorial convictions are no less obvious even if they are necessarily less personal both due to the scale upon which information is available and the fact that today's hippies often have computer savvy.

</comment></comment></comment><comment><USER7> The internet.</comment>


Resolve simple merge conflicts on GitHub - <AUTHOR> https://github.com/blog/2293-resolve-simple-merge-conflicts-on-github <comment><USER2> On my team I've found that it's incredibly useful to _commit_ the merge conflicts and conflict markers, then immediately resolve the conflicts in the next commit. This gives you one commit that shows exactly how the two branches merged together, followed by a commit that shows exactly how the conflicts were resolved. The resolution commit can then be code reviewed independently for a nice clean view of the conflicts introduced in the merge. It also allows you to easily reset to the merge commit and resolve the conflicts differently.

The standard git workflow (and this github feature) seems to promote resolving the conflicts alongside all of the other changes in the merge working copy. This make me nervous, as there's no way to differentiate the _new_ lines that were introduced to resolve merge conflicts from the thousands of lines of (previously reviewed) code from the feature branch.

If you're not careful, completely unrelated working-copy code and behavior can be introduced in a "merge commit" and neither you or any of your reviewers will notice. "Looks good to me."

<comment><USER3> Yes, that is a problem.

On the other hand, with your approach you are going to have revisions that won't even build/compile.

If you have automatic builds or/and unit/integration tests, then you'll have failed builds every time you have a merge conflict.

Also, you are kind of 'polluting a well': what if meanwhile someone merges that revision into his/her branch? Or what if you have automatic merges configured?

<comment><USER4> And you just lost git bisect

<comment><USER5> You can get it back by making your bisect test function return "good" whenever it sees a commit with merge conflicts.

<comment><USER6> I don't think that would work, but correct me if I'm wrong.

As far as I know, git bisect does a binary search along the commits; `good` tells it to look at the latter half, `bad` to look at the former.

So suppose you have five commits (1,2,3,4,5), where 1 is the working state, and 3 is a conflict commit. It will start by asking about the middle commit (3), automatically choose `good`, and determine that 3 was the latest working commit (after checking 4, which says `bad`).

\----

EDIT: Obviously this is simplified to explain the issue with marking "good" those commits.

<comment><USER7> This is resolved if you skip the commits with a conflict instead of marking as good.

</comment></comment></comment></comment></comment></comment><comment><USER8> So simple, so useful, I wonder if this feature wasn't already in Gitlab since it seems to be more full featured

<comment><USER9> GitLab does have it already: [https://docs.gitlab.com/ce/user/project/merge_requests/resol...](https://docs.gitlab.com/ce/user/project/merge_requests/resolve_conflicts.html)

<comment><USER10> That's flipping awesome. Does it already have code review too?

<comment><USER11> Yes, with versions.

</comment></comment></comment></comment><comment><USER12> diff3 conflict style display would be considerably more useful.

<comment><USER13> Agreed.

It can be a bit noisier at first but once you learn to read it, I find it makes resolving conflicts so much easier.

For those of you who haven't used it, try switching it on and/or read [https://psung.blogspot.com.au/2011/02/reducing-merge- headach...](https://psung.blogspot.com.au/2011/02/reducing-merge-headaches- git-meets.html) for more details.

tl;dr it shows

<comment><USER14> That's great, thanks for sharing.

FYI: If anyone is interested in the section about git rerere (reuse recorded resolution), the link at the bottom of that article leads to a 503; a repost can be found here: [https://git-scm.com/2010/03/08/rerere.html](https://git- scm.com/2010/03/08/rerere.html)

</comment></comment></comment><comment><USER15> Finally! This is excellent news.

<comment><USER16> Yeah this is quite a great update.

</comment></comment><comment><USER17> To me this feels like making a commit without unit testing first. When I find a conflict I like to be able to resolve it and then do some unit testing to make sure that my revision didn't miss anything.

<comment><USER18> I suspect the use-case they have in mind are folks who have CI hooked up to Github (so using this feature will automatically trigger tests).

<comment><USER19> Sure, but that's a much slower cycle than running your unit tests locally.

</comment></comment></comment><comment><USER20> I didn't know I could merge on github.com in the first place... where is their merge function, by the way?

<comment><USER21> It's literally the hallmark of GitHub... How else would pull requests work? (well, there _is_ the rebase option now...)

<comment><USER20> Hmm. I usually do merges locally as serious stuff should be built and tested before pushing anyway, so probably why never used GitHub's hosted functions.

<comment><USER22> > serious stuff should be built and tested before pushing anyway

Yes and no. Build in your CI server that's set up to mirror your prod environment after pushing, but before merging. That's what the whole industry of CI providers and integrations built into and around GitHub and GitLab is for.

<comment><USER23> To be fair, one of the annoying things about how PRs work is that they don't test the merge, they test the commit relative to its original base. Your tests may pass in the PR, but fail once applied to later changes in the main line.

<comment><USER24> Most CI solutions will take care of that; they'll pull in the PR, merge it locally with master, and run tests on _that_.

<comment><USER25> I can't speak to the "merge-and-run" behavior of CI, but in my experience, most of these merge conflicts arise because of a time delay between making the PR (at which point CI is run) and merging the PR. It would be quite resource intensive to re-build every PR against every new branch in master.

<comment><USER24> > _It would be quite resource intensive to re-build every PR against every new > branch in master._

Depends on just how resource intensive a build is, and how often commits are made to master.

Here at work, we don't do that, but it wouldn't be a complete clusterfuck if we were to.</comment></comment></comment></comment></comment></comment></comment></comment>


"So...what do you do?" - <AUTHOR> http://www.liveandcode.com/2009/09/03/so-what-do-you-do/

<comment><USER2> To some extent this will always be a problem with fields that require in-depth knowledge or expertise.

 _"What do you do?"_

 _"I'm a mechanic / plumber / electrician / etc."_

 _"Oh."_

The problem is, that's not a useful answer, unless the person knows at least something about the field. "I make websites" picks the most general and vague answer possible, and therefore the least interesting.

Compare

 _"I fix mechanical devices"_

with

 _"I fix and restore vintage American cars from the 60's."_

Or

 _"I make websites"_

with

 _"You know all those stupid quiz apps on Facebook/fart apps on iPhone? Well, I don't make those, but I try to make more useful stuff on Facebook/iPhone, like X, Y and Z"._

Of course, "I make payroll software" will probably never be interesting, but "I make payroll software for this media giant you must've heard about, you know their shows A and B?", or "for this financial company, man last year was tough", or "for this small company you've never heard of, they're working on interesting trend foo".

The point of the question - other than to fit you in a stereotype - is to find some common ground to talk about. Work with the question, not against it.

<comment><USER3> >"You know all those stupid quiz apps on Facebook/fart apps on iPhone? Well, I don't make those, but I try to make more useful stuff on Facebook/iPhone, like X, Y and Z".

Hey...I like that! Let's see if it works for me...

Me: "You know all those bickering nerds who draw the same webcomic about two roommates obsessed with video games, a talking appliance and/or robot, a pet who wants to take over the world, and slacker/stoner Jesus? Yeah. I don't make those comics."

Whoa. It works! Thanks. :)

</comment></comment><comment><USER4> Keep in mind that most people don't really care much about what you exactly do. They are starting a conversation. They are being friendly. Don't get all existential on them and feel like you have to justify your life. You are only going to come off as an insecure whiny neurotic if you go off on a monologue.

<comment><USER5> Exactly.

Social exchanges aren't graded test questions. You don't need to be perfectly accurate or precise. Best to keep things high level so the conversation only goes to the level of depth in a topic that the participants are _all_ interested in.

As a stereotypical socially stunted geek, I was late in figuring that out. And it still takes effort to practice.

E.g. Initially I had my whole 'conversation is a pathfinding problem through a social graph of interests' theory typed out in this comment. And that's far too much, too fast.

</comment></comment><comment><USER6> I actually love having this question at my current job.

 _"So, what do you do?"_

 _"Well, have you seen 'Terminator'?_

 _"Yeah, of course."_

 _"Well, I'm helping to write SkyNet"_

It's actually not too far from accurate since one of my contracts is for AI defense of space assets :-D

</comment><comment><USER7> I often encounter not-so-technical folks and usually go with "I do computer stuff". The response is usually, "Oh, cool. something else blaa blaa"

<comment><USER8> > The response is usually, "Oh, cool. my computer has been doing this funny > thing for the past month and I can't figure it out, would you mind taking a > look at it?"

Fixed your response.

<comment><USER9> Is there a tactful way of saying, "No, I do my computer stuff _for a living_ , and these are my rates"?

<comment><USER10> A doctor and a lawyer are at a party and someone comes up to the doctor saying "I have this small problem that ..."

The doctor answers curtly, tactfully, as politely as possible, finally getting rid of them, then turns back to the lawyer and says "I hate that. Do you have the same problem with people constantly harrassing you?"

"Yes," said the lawyer. The doctor replied "What do you do?"

"I give them short, simple but accurate advice, and then the following day I send them a bill for my time charged at my usual rates."

"Fantastic!" said the doctor. "I'll try that."

The next day the doctor gets an invoice from the lawyer ...

</comment></comment></comment></comment><comment><USER11> I spin electrons into a shimmering digital tapestry of logic.

I build stories of circumstances and choreograph virtual states.

I contrast cohesion and coupling against a binary backdrop.

I weave algorithms into patterns of recursive fancy.

I am a programmer, I am an artist. I create.

So... What do you do?

<comment><USER12> I just tell people "I make stuff", and then if they're interested in details I tell them.

I much prefer lazy evaluation.

</comment></comment><comment><USER13> total shocker, but I have a sense of pride being a programmer, ESPECIALLY in social circumstances.

When asked what I do, I say "I'm a programmer and do freelance web development on the side" - Most of the time that's followed up with "Oh, so you know computers? Can you fix mine?"

But I've never felt like a social outcast, and to my knowledge have not been treated like one. That part comes when people find out I'm not interested in sports, hunting or nascar.

<comment><USER14> Where do you live that not being into hunting marks you as an outcast? That sounds so alien and interesting to a SoCal resident like myself...

<comment><USER13> Texas, even in the DFW Metroplex it's a pretty common activity for the good ol' boys.

On that note, I know a lot of people who do seasonal hunting as a means of very inexpensively keep meat in the freezer for an entire year, the amount of money it saves is amazing.

</comment></comment></comment><comment><USER15> I really love getting this question. I'm pretty young so I've only had a couple jobs and am now a student, but answers I've given to this:

\- "I keep our analysts from investing in evil companies by making sure all the info from NGOs/ratings are at their fingertips. When they're gonna buy evil, the screen turns RED." Go on to say why it's awesome because investing in The Good _actually_ gives decent returns, etc.

\- "I build a crazy anime fusion of Facebook and Zelda on cellphones for Japanese kids." Go on to explain why it's awesome because you make tools for these kids and they go nuts building themselves characters and really it's all a way for shy people to meet each other in a culture that makes it hard.

\- "I'm trying to figure out what the cells in your brain say to each other, and how we can talk to them." Whip out iPhone to show picture of Brainbow mouse. Talk about the guys curing blindness with CCD cameras and electrodes.

(And try not to burst out laughing when they start talking about The Secret or how they can control the future because of -gasp!- Quantum Physics)

The point is that ... if you really like what you're doing, it's because there's _something_ cool about it. And probably not just a little cool, but seriously, deeply cool. If you believe in it (and don't feel bored by the question) then that'll come across, and people will be genuinely interested.

Also - I try to make up a slightly new variation of the answer every time. It's a fun game for me, and it keeps me from looking/feeling like I'm giving out a canned line.

</comment><comment><USER16> Really, it's all about confidence in the delivery. When people ask "what do you do?" they're looking for a stereotype to fit you into. Take the opportunity to show them how they might be wrong.

</comment><comment><USER10> I tie shoelaces ...

<http://www.fieggen.com/shoelace/ianknot.htm>

... fold T-shirts...

[http://www.videojug.com/film/how-to-fold-a-t-shirt- in-2-seco...](http://www.videojug.com/film/how-to-fold-a-t-shirt-in-2-seconds)

... and when I've got their attention, explain to kids why there's useful math in there.

</comment><comment><USER17> I don't have this problem actually - I can always explain well enough what I do and (in most cases) get people a little interested or at least impressed.

For example, when I get asked that, I first say I do web development and tell them what that actually us. Something like "You know how there are some websites that are just text and don't do anything, but some websites are like facebook where there's stuff you can do, like make friends, post comments etc? Well, I just write websites that "do stuff".

Then, if I'm talking about work I would mention I work for a derivatives broker (if they are not interested at least they'll be impressed), while if I'm talking about my hobby work (<http://phonalyzr.com>) I tell them all the cool stuff your call log can tell them. And everybody understands a history of calls, top callers etc.

Anyway, I don't do this quite on purpose. I guess it helps I genuinely like what I do and get a bit excited about it.

</comment><comment><USER18> This is a basic "elevator pitch" problem. Distill the core of what you find exciting in what you do down to a one or two line explanation that others can relate to.

If you can't do that, perhaps question whether you're really all that excited about what you're doing? :)

</comment><comment><USER19> "I make computers go fast."

If they bite, I'm happy to talk about it. If not, conversation moves on.

<comment><USER20> My tried-and-true variation on that is "I make computers dance."

</comment></comment><comment><USER21> Yep, I never look forward to being asked that question.

"I work for a social services startup that indexes mental health service providers into an easy to find format for end users."

 _Blank stare_

"It's like an online directory."

 _Oh Ok_

<comment><USER22> Try an explanation that doesn't make you sound like a marketing drone.

"social services startup" -> "company" "end users" -> "people" "indexes into an easy to find format" -> "helps find"

"I work for a company that helps people find mental health service providers"

Then a couple sentences about how the existing tools fail and how you're trying to improve them.

<comment><USER21> Thanks, that's helpful.

</comment></comment></comment><comment><USER23> There is nothing wrong with saying, "I make websites."

If the person you are talking to is interested, they will ask for more detail. If not, nothing you could possibly embellish it with would matter to them anyway.

</comment><comment><USER24> me -- "I work with engineering applications for company X." them -- "So you work with computers?" me -- " _sigh_ Yes." them -- "I'm having a problem with my computer/application/phone/iPod, can you fix it for me?"

This happens all the time. If I elaborate any further their eyes glaze over. If I just say computers, the assume I'm driving the Geek Squad VW.

No one is propositioning my other friends for their services (accountant, doctor, etc). I've contemplated just telling people I assemble prosthetic limbs.

</comment><comment><USER25> "(And by the way, if you're making money doing something you have absolutely no passion for, you might want to try and fix that. Just sayin'.)"

What if making money is your passion?

<comment><USER26> If making money is your passion, the you are making money doing your passion, then you seem to be doing alright...

</comment></comment><comment><USER26> Basically, believe in yourself and others will. If not, who cares.

</comment><comment><USER27> "I'm a massive nerd, basically – I program computers and make websites for people"

I think the problem is the way he says it not necessarily what he does. I mean why start with "I'm a massive nerd, basically". Some guy with and MBA isn't going to start out by saying "I'm a dumb jock" and then continue to describe their work as "I sit on my ass all day and micro manage my employees". With this guys social skills I suspect he could make him self look like a boring tool no matter what his job was.

</comment><comment><USER28> "I'm a computer guy"

Anything more specific causes eye glaze.

</comment><comment><AUTHOR> Every time I come up with something that seems clever, about 6 minutes later it just seems stupid. Some of my answers:

      "I turn data into dollars."  (sounds like a bad infomercial)
      "I turn data into value." (sounds like bad corporatespeak)
      "I move ones and zeros."  (sounds like pointless nerdism)
      "I shlep ones and zeros."  (sounds like pointless New York nerdism)
      "I convert chocolate and soda into software." (getting a little closer)
      "I'm a computer programmer."  (Oh)

<comment><USER17> What do you actually do? Some kind of data mining? There's far better ways to get that across.

</comment></comment><comment><USER29> "I believe that what I do is interesting, important, and valuable." "[M]y job description becomes distilled to 'I make websites.'"

I'm fairly sure an accountant who goes bouldering in British Columbia will introduce him/herself as an outdoor sportsman before mentioning that they have the dullest job in the world.

Just sayin'.

</comment><comment><USER30> Back when I worked as a programmer at a hedge fund, I would reply:

 _"I teach computers how to steal money within the law."_

It's accurate. Sounds badass. And the ladies get enticed by the aura of mystery around it.</comment>


Ask HN: How do I evaluate a recruitment agency? - <AUTHOR> I've been receiving messages from recruitment agencies through e-mail/linkedin. Usually, I dismiss them because doesn't fit my profile or the ad looks too generic for me to look into.
Sometimes, though, I can find some job description that catches my attention. At first, the company doesn't list their client or says something generic like "such as Google, Facebook and Twitter".
How can I check if the company is "telling the truth", or if it's credible enough that I can waste my time looking into it? Thanks. <comment><USER2> That's a good question, it's tough. There are definitely fake jobs out there. Some lazy recruiters will cut/paste real job descriptions straight from the client, but change the city to one nearby to throw off competition or applicants. Others will have fake jobs to collect resumes.

I started doing recruiting last year (my background is dev/mgmt), and in my ads I make it clear who I am with a link to my company site and LinkedIn profile. I say what groups I run, so they can verify on Meetup if they wanted, as well.

When I get your application, I'll email you requesting a phone call (or a cup of coffee if you prefer), so your investment is very little and you can always hang up if it's not for you.

On a phone call, I'll tell you exactly who the company is, because I need to know if you applied before. Most candidates do a quick email search if they can't remember. Submitting you when you've already applied, and maybe even interviewed, makes me look bad and you look worse, and I don't want either. If the recruiter won't tell you the client, just walk away.

If I reach out to you directly, I'll tell you up front who the client is and give details about the position.

A number of devs come to me by referral because I've been active in the local dev community for 15 years. I hit a lot of meetups and code camps. If you ask friends, they may have a recruiter they recommend.</comment>


Cerebras's giant chip will smash deep learning's speed barrier - <AUTHOR> https://spectrum.ieee.org/semiconductors/processors/cerebrass-giant-chip-will-smash-deep-learnings-speed-barrier <comment><USER2> The article talks about a few things that they call inventions, like making interconnections across what would normally be scribe lines. But I personally worked on wafer scale integration about 25 years ago and we were already doing that. We called it inter-reticle stitching. The technology was ancient back then - 0.5 micron feature size on 4 inch wafers - but the wafer scale techniques are applicable to modern technologies. In particular, developing a yield model that informs your on-chip redundancy choices and designing built- in self test and selection circuitry so that you can yield large chips. The chip we developed was so large that only two would fit on a wafer. We got 50% yield on a line that was far from mature at the time. The company lacked the vision to do anything with what they had developed. To them it was just a chip for which there were few customers. The suits didn't know how to make bank with this methodology that could yield nearly arbitrarily complex chips in nearly any target process.

Edit: There were a number of papers and conference proceedings published back then but not much shows up when searching Google. Here's one discussing the issues and results of field stitching [https://fdocuments.in/document/ieee- comput-soc-press-1992-in...](https://fdocuments.in/document/ieee-comput-soc- press-1992-international-conference-on-wafer-scale- integration-589dfe172703a.html)

From 1992, so yeah, field stitching is not a recent invention.

<comment><USER3> Great post, but I would like to add that the critical question for whether an _invention_ because a useful _innovation_ is usually not "is this novel" but rather "is there a currently viable project here with people who care about the thing and genuine motivation and persistence and adequate resources."

In other words, "how is this effort new to the universe?"

I would say it's certainly at a different scale and a different time. And we should be super thankful that the commercial interest is such that we can try out new chip designs in a different domain now; you can really imagine a rethink for the kinds of things that are possible once you're really at scale here.

</comment></comment><comment><USER4> I don't know if this mega-chip will be successful, but I like the idea. Before I retired I managed a deep learning team that had a very cool internal product for running distributed TensorFlow. Now in retirement I get by with a single 1070 GPU for experiments - not bad but having something much cheaper, much more memory, and much faster would help so much.

I tend to be optimistic, so take my prediction with a grain of salt: I bet within 7 or 8 years there will be an inexpensive device that will blow away what we have now. There are so many applications for much larger end to end models that will but pressure on the market for something much better than what we have now. BTW, the ability to efficiently run models on my new iPhone 11 Pro is impressive and I have to wonder if the market for super fast hardware for training models might match the smartphone market. For this to happen, we need a deep learning rules the world shift. BTW, off topic, but I don't think deep learning gets us to AGI.

<comment><USER5> It's also my impression - from my modest exposure to DL over the past two years as a student taking courses - that deep learning must be overcome to reach AGI.

Specifically gradient descent is a post hoc approach to network tuning, while human neural connections are reinforced simultaneously as they fire together. The post hoc approach restricts the scope of the latent representations a network learns because such representations must serve a specific purpose (descending the gradient), while the human mind works by generating representations spontaneously at multiple levels of abstraction without any specific or immediate purpose in mind.

I believe the brain's ability to spontaneously generate latent representations capable of interacting with one another in a shared latent space is functionally enabled by the paradigm of neurons 'firing and wiring' together. I also believe it is the brain's ability to spontaneously generate hierarchically abstract representations in a shared space that is the key to AGI. We must therefore move away from gradient descent.

<comment><USER6> Don't forget the human brain takes about 7 to 8 hours off every day to rejiggle itself, to use a scientific term. The brain's architecture is better than having a training stage but it's by no means able to continually learn without stops and starts.

<comment><USER7> You see this in young puppies (3-6 month old) a lot as well. They get irritable/exhausted after 15-30 minutes of training, and usually dont seem to learn anything at all during the training activity itself. Then they pass out ("nap") for 30 minutes and when they wake up they do the trick/skill perfectly.

Same thing as humans, just more obvious/visible.

</comment></comment></comment></comment><comment><USER8> I am far more excited by the underlying Wafer Scale Integration moonshot than I am by any AI benchmarks here. I know it's trendy to think there can only be one w/r to the AI Iron Throne but nope, not the case, everyone is writing bespoke code in production where the money is made. Well, almost everyone, Amazon seems to be the odd duck but they're a bunch of cheapskate thought leaders anyway (except for their offers to junior engineers in their desperate hail mary attempt to catch up with FAIR and DeepMind, but... I... digress...).

Which is to say that graphs written to run specifically on Cerebras's giant chip will smash deep learning's speed barrier for graphs written to run best on Cerebras's giant chip. And that's great, but it won't be every graph, there is no free lunch. Hear me now, believe me later(tm).

But if we can cut the cost of interconnect by putting a figurative datacenter's worth of processors on a chip, that's genuinely interesting, and it has applications far beyond the multiplies and adds of AI. But be very wary of anyone wielding the term "sparse" for it is a massively overloaded definition and every single one of those definitions is a beautiful and unique snowflake w/r to efficient execution on bespoke HW.

<comment><USER9> I just wonder about the reliability of a system that large. Sure, it's mostly used for machine learning where we don't seem to care as much, but what is the average MTBF of a chip this large? How many chips actually make it out of production?

Also, is this something that will likely scale up, or will this style of design hit a wall(power dissipation?) faster than, say, silicon-interconnect fabric?

Time will tell if this is the new path forward or just a curious footnote in the history of semiconductors.

<comment><USER10> They built the chip specifically so that it can tolerate failures in some of the cores. I wonder if it can do that adaptation only once or if it can automatically detect it and route around it.

</comment></comment></comment><comment><USER11> A chip that size, imagine the yield. Equally, cooling - has to be water based as a heatsink that size would be on par to a small anvil and the weight factor would be some serious issues. Though unsure as no pictures of it in-play alas and all they say is - "20 kilowatts being consumed by each blew out into the Silicon Valley streets through a hole cut into the wall", which does somewhat beg for a picture as just raises more questions.

Why would they make a chip this big with AMD showing a chiplet design approach is cheaper and more scalable on so many levels. Let alone, yields.

Equally, arms approach to utilising the back of the chip as a power delivery :- [https://spectrum.ieee.org/nanoclast/semiconductors/design/ar...](https://spectrum.ieee.org/nanoclast/semiconductors/design/arm- shows-backside-power-delivery-as-path-to-further-moores-law)

Then a wafer scale chip like this, using that approach, would save so much power. But again, yeilds will be a factor and can imagine this is not the cutting edge process node as you find as nodes mature, the yields improve. So an older node size would have a better yield and be more suitable for such wafer scale chips. But again, no mention of what is used. I have read in the past that it would use Intel's 10nm, but this article mentions TSMC. Another article I read that they used a 16nm node ( [https://fuse.wikichip.org/news/3010/a-look-at-cerebras- wafer...](https://fuse.wikichip.org/news/3010/a-look-at-cerebras-wafer-scale- engine-half-square-foot-silicon-chip/) ), which as mentioned above about node maturity, understandable.

<comment><USER12> I'm really curious about the benefits of their implementation. It's far beyond my grasp to make any serious criticisms and I don't really want to doubt them, it just seems a pretty radical departure from even the direction of innovation.

The way they paint it sounds like they're putting in redundant cores to account for failure of what seems like what I would call the 'first line' cores, i.e. there's cores that are only used if some primary ones aren't working?

But sort of intuitively that doesn't make a whole lot of sense given the parallel nature. Maybe they are just putting in 101% of specified cores, and if there's a ~1% hopefully uniform-ish core failure rate then it's all gucci?

I guess my question is probably similar to yours, what are you giving up with yield-enhancing redundancy of a behemoth die vs integrating a bunch of confirmed working chiplets together?

<comment><USER13> The CEO says 1-1.5%.

"Cerebras approached the problem using redundancy by adding extra cores throughout the chip that would be used as backup in the event that an error appeared in that core's neighborhood on the wafer. "You have to hold only 1%, 1.5% of these guys aside," Feldman explained to me. Leaving extra cores allows the chip to essentially self-heal, routing around the lithography error and making a whole-wafer silicon chip viable."

[https://techcrunch.com/2019/08/19/the-five-technical- challen...](https://techcrunch.com/2019/08/19/the-five-technical-challenges- cerebras-overcame-in-building-the-first-trillion-transistor-chip/)

</comment></comment></comment><comment><USER14> Reminds me of that other great prediction of a GPU killer from IEEE Spectrum back in 2009:

[https://spectrum.ieee.org/computing/software/winner- multicor...](https://spectrum.ieee.org/computing/software/winner-multicore- made-simple)

<comment><USER15> What did go wrong with Intel's MIC (Xeon Phi) project? I can't find a compressive account of this from HPC people. The idea seemed pretty sound: large die, simpler circuit, and much more parallelism, in the x86 line..

<comment><USER16> I vaguely remember that at the dawn of the deep learning (2013 to 2014), there were talks and hopes that Xeon Phi would smash the performance of Nvidia GPUs. However, the sample people got are too late (I believe it is at the end of 2014) and the performance figures are disappointing. It might be just the software was simply not there yet unfortunately. But then the wheels moved forward and everyone started to buy Nvidia chips in their datacenters.

</comment></comment></comment><comment><USER17> From the perspective of an outsider, I can't see how a company like this could survive. They claim on the one hand to have done something really amazing and are at the stage where they are looking for customers. Normally, you'd expect them to be touting performance figures to secure such investment. Instead, they've decided to keep the performance secret. And they've managed to find some "expert" who says this is normal.

Does anyone here have expertise in this area? Is this the model for a successful company in this area?

<comment><USER18> As someone who works for another startup in this area, building the chip is only half the battle. The other half is tooling for compiling benchmark networks onto the chip in a performant manner. With 400k cores and their 'duplicate and re-route' defect strategy, this might literally be the most challenging compilation target ever made. It probably stacks up absolutely terribly in every metric right now. That's not to say it will necessarily get better, most of the people I've talked to don't think the megachip will ultimately amount to much more than a clever marketing ploy.

<comment><USER19> A bit baffled by this because on every axis I look this seems like a dream of a compilation target.

* No DRAM or caches, everything is in SRAM, and all local SRAM loads are 1 cycle.

* Model parallel alone is full performance, no need for data parallel if you size to fit.

* Defects are handled in hardware; any latency differences are hidden & not in load path anyway.

* Fully asynchronous/dataflow by default, only need minimal synchronization between forward/backward passes.

I genuinely don't know how you'd build a simpler system than this.

<comment><USER20> Having worked on compilers for pretty weird architectures, it's generally the case that the less like a regular CPU your architecture is, the more difficult it is to compile.

In particular, when you change the system from having to worry about how to optimally schedule a single state machine to having to place operations on a fixed routing grid (à la FPGA), the problem becomes radically different, and any looping control flow becomes an absolute nail-biter of an issue.

<comment><USER19> Remember that you aren't compiling arbitrary programs. Neural nets don't really have any local looping control flow, in the sense that data goes in one end and comes out the other. You'll have large-scale loops over the whole network, and each core might have a loop over small, local arrays of data, but you shouldn't have any sort of internal looping involving different parts of the model.

<comment><USER21> It's pretty common to have neural networks that have both recurrent nets processing text input and convolutional layers. A classic example would be visual question answering (is there a duck in this picture?). That would be a simple example involving looping over one part of the model. Ideally you want that looping to be done as locally as possible to avoid wasting time having a program on a CPU dispatching, waiting for results and controlling data flow.

Having talked to someone at Cerebras, I also know that they don't just want to do inference with this, they want to accelerate training as well. That can involve much more complex control flow than you think. Start reading about automatic differentiation and you will soon realize that it's complex enough to basically be its own subfield of compiler design. There have been multiple entire books written on the topic, and I can guarantee you there can be control-flow driven optimizations in there (eg: if x == 0 then don't compute this large subgraph).

<comment><USER19> I would be surprised if Cerebras was trying to handle any recurrence inside the overall forward/backward passes. It seems like a lot of difficulty (as mentioned) for peanuts.

I don't get your point about training. Yes, it's backwards rather than forwards, and yes it often has fancy stuff intermixed (dropout, Adam, ...), but these are CPUs, they can do that as long as it fits the memory model.

</comment></comment></comment></comment></comment></comment></comment><comment><USER22> The members of the GraphBLAS forum have discussed this chip a couple of times. There's a lot of research on making deep neural networks more sparse, not just by pruning a dense matrix, but by starting with a sparse matrix structure de novo. Lincoln Laboratory's Dr. Jeremy Kepner has a good paper on Radix-Net mixed radix topologies that achieve good learning ability but with far fewer neurons and memory requirements. Cited in the paper was a network constructed with these techniques that simulated the size and sparsity of the human brain:

[https://arxiv.org/pdf/1905.00416.pdf](https://arxiv.org/pdf/1905.00416.pdf)

It would be cool to see the GraphBLAS API ported to this chip, which from what I can tell comes with sparse matrix processing units. As networks become bigger, deeper, but sparser, a chip like this will have some demonstrable advantages over dense numeric processors like GPUs.

</comment><comment><USER23> I've wrote about the challenges that Cerebras went through and what is next: [https://towardsdatascience.com/why-cerebras-announcement- is-...](https://towardsdatascience.com/why-cerebras-announcement-is-a-big- deal-6c8633ffc49c)

</comment><comment><USER24> This fits perfectly into the narrative of yesterday's discussion on HN [1].

Deep Neural Nets are somewhat of a brute force approach to machine learning. Training efficiency is horrible as compared with other ML approaches, but hey, as long as we can trade +5% of classification performance for +500% of NN complexity and throw more money at the problem, who cares?

I see a dystopian future where much better and much more efficient approaches to ML exist, but nobody's paying attention because we have Deep Neural Nets in hardware and decades of infrastructure supporting it.

[1] [https://news.ycombinator.com/item?id=21929709](https://news.ycombinator.com/item?id=21929709)

<comment><USER25> Well, if a better algorithm cannot beat DNN in a realistic product setting, then how can you say its better after all?

If the algorithm is indeed better, how can DNN dominates and turn into a dystonia...

<comment><USER26> What economists call path dependence.

The alternative algorithm would be better than DNN if the same amount of effort was put into creating special-purpose hardware, libraries, and so on; but in the dystopia, it's not fully refined DNN vs fully refined alternative algorithm, but fully refined DNN vs alternative algorithm with hardware and software optimized for DNN.

The alternative algorithm always looks unappealing because the playing field historically favors DNN, and so doesn't take off in the dystopia.

<comment><USER25> You are referring back to OP's own reasoning fallacy...

DNN emerges out from being an underdog. Its superiority was proven by technology and economy.

What you said is of course not wrong, but they can never be proven right. As immediately you switch the role, your argument then favors the other one.

</comment></comment></comment></comment><comment><USER27> They did build some valuable tech, no question there, but be sure to account for the typical startup hyperbole. By the time you can get your hands on this (if that ever happens), the hyperbole will converge a bit closer to reality, the tradeoffs will become apparent, etc, and you'll discover that it is not, in fact, going to "smash" barriers of any kind in any practical sense.

From TFA: "Cerebras hasn't released MLPerf results or any other independently verifiable apples-to-apples comparisons."

That's all you really need to know.

</comment><comment><USER28> Them shunning benchmarks is pretty lame.

<comment><USER29> The guy who runs Cerebas has history of quick selling companies that then went nowhere. He bets all on wow-effect, and sells to trend chasing suckers.

Less than stellar benchmarks will ruin the "magic"

</comment></comment><comment> green-eclipse The Cerebras chip really stands out in terms of the chip industry's relationship to Moore's law. Look at the graphs in this article for reference:

[https://medium.com/predict/cerebras-trounces-moores-law- with...](https://medium.com/predict/cerebras-trounces-moores-law-with-first- working-wafer-scale-chip-70b712d676d0)

<comment><USER30> That article is hogwash. Sure, the Cerebras "chip" is impressive. But the idea that it will _accelerate_ Moore's law and usher in the singularity is just nonsense. Nobody has even made serious efforts to use deep learning for physical design, and its scope for improving designs is limited at best even in theory.

If this was trying to aim at solid state physics and materials research, then _maybe_ one could be carefully optimistic about a genuine breakthrough via something like room temperature, standard pressure super-conducting. As it stands, I call blind hype.

<comment><USER31> Yah, it's BS. But it may be teaching TSMC a whole lot about making larger chips with good yield, and the across-reticle interconnect technology is impressive too and may find some general applicability (e.g. it sounds like something AMD might like).

<comment><USER30> Oh, for sure there are things to be learned from this. The responsibility for yield doesn't lie with TSMC though, but with the logic design: to make this kind of integration work, your design has to be able to tolerate a fault essentially anywhere on the wafer surface.

This isn't magic, of course: keep in mind that we already have SRAM with extra capacity for fault tolerance, and multi-core chips which are binned based on the number of functioning cores has been standard for a long time.

<comment><USER31> Design to tolerate failures is only one variable in yields. Wafer-scale integration exercises to the limit both our ability to tolerate defects and our ability to minimize them.

</comment></comment></comment></comment></comment><comment><USER32> I'm a know-nothing when it comes to this area, but I shouted expletives at least twice when I read this article. This is crazy.</comment>


Echo Linux : a social news site dedicated to Linux and related topics - <AUTHOR> http://www.echolinux.com

<comment><AUTHOR> For your information, the site is using the 8x16 BIOS format font (also referred as IBM PC Code page 437) in order to mimic the look of textmode terminals.</comment>


Ask HN: How do you GTD with text files only (no software)? - <AUTHOR> <comment><USER2> Have you thought about using Org Mode?

Technically it's just using your editor on plain text files, with a little help to enforce some notation.

Even if you dislike Emacs, you can probably draw some inspiration from it.

</comment><comment><USER3> After reading GTD, I came up with the way-oversimplified system I've been using the last decade:

One text file, 'CurrentTasks', where I keep my To Do list, writing down notes on everything that I need to do or remember, sorted by urgency/priority. The top of the file has stuff that needs to happen in the very near term, scrolling down brings in to view longer term things. As I finish something, the task and any associated notes gets copied into the Logbook file, see next.

I keep a second file, Logbook<YYYY>, e.g. 'Logbook2018', where I keep notes, by day, on everything I did.

I keep the files in a Dropbox folder. The system has worked reasonably well across a PhD dissertation, two jobs, three continents, four internships, a number of hard drive failures, and half a dozen moves.

</comment><comment><USER4> I wrote my own software, mostly scripts. Does that count?

I have a "todo" folder. It contains a subfolder "contexts", with one text file for each context. There are also "icebox", "inbox", and "projects" files.

I use vim to edit, and I've written a little command that lets me mark lines in my todo files with a "target context/file" and use the command to send them there.

I also have a command to let me add items to the inbox from the command line, they just get appended to the "inbox" file.

Say my inbox file looks like this: buy milk buy food clean garage send email to bob

I will then mark the lines in the file like so: buy milk @buy buy food @buy clean garage :projects send email to bob @laptop

Now I'll invoke my command, and it'll send all the lines ending in @x to contexts/x, and all the :y ones to y (i.e. icebox, inbox, projects).

I also have a little script that counts how many tasks are in my various contexts, so I can an overview. When invoked, it currently says this:

home:3 room:2 reflect:5 laptop:9 garage:3 (22)

Overall I'm pretty happy with it. I can add any functionality I want, and most of the time it just takes a few lines of shell or Ruby. It's extremely personalized because I'm the only user.

There are a few things that are missing because of the text file structure. For example, I can't easily reference back how many tasks belong to a given project, because I'd have to store references and introduce IDs, which would look terrible in a text file. At that point I should probably just switch to Sqlite. But that tradeoff isn't so bad - and working with text files is so much easier.

A few of the add-ons I've added with a few lines each include: \- Recurring tasks: recurring/wednesday or recurring/01 contains tasks that will be slurped in every Wednesday or every 1st day of the month, respectively. I just loop through all the files in the recurring folder and try to match them to weekdays or #s. \- integration with "calendar" file. I also wrote a clone of the UNIX calendar that takes my calendar file as an optional argument, highlighting days on which I have things scheduled and shows the appointments for today.

Calendar file has the following format:

Sunday, July 15th: Do thing Do other thing 3pm: Meet Bob

Monday, July 16th: Call Alice

The whole system has evolved over ~5 years or so, starting with a single flat text file I edited in vim. There are various pieces I added over time that I ended up never using, for example I have a stateful command to "choose" a context and then pop the list one at a time, that also lets me complete them. But I find I rarely feel like actually finishing random tasks off a context, I like to scan and refactor/reorganize the context before choosing what to do.

It's interesting how similar refactoring my todo list is to refactoring code. Refactoring gives me a lot of clarity on my tasks, and I typically refactor almost every task, some multiple times.

<comment><USER4> can't seem to format - is the HN edit function just broken completely?</comment></comment>


500 Lines or Less – A Template Engine - <AUTHOR> http://aosabook.org/en/500L/a-template-engine.html <comment><USER2> For what it's worth, the excellent Python micro-framework Bottle includes a simple template engine taking about 150 lines over two classes: [https://github.com/bottlepy/bottle/blob/master/bottle.py#L34...](https://github.com/bottlepy/bottle/blob/master/bottle.py#L3487)

<comment><USER3> Bottle is indeed an excellent tiny framework (although I usually use it with Jinja2 when it's being used for html generation).

</comment></comment><comment><USER4> Plenty of micro-frameworks out there: [http://microjs.com/#templating](http://microjs.com/#templating)</comment>


Fambam: A Social Network Just for Your Family - <AUTHOR> http://fambam.family <comment><USER2> Most of the comments here are green accounts as old as or younger than the submission. This thread looks like it's being astroturfed. If so, that's likely to get you banned.

</comment><comment><USER3> Finally a social network that respects privacy and security. I will most definitely sign up my family as soon as this goes live. I want to be able to share on social but I also want my data and privacy to be handled with respect!

</comment><comment><USER4> So excited to try this. I just moved to a new state and there are so many different family members to keep up to date. This is a great way to connect with everyone all at once. Would love to join the beta!!

</comment><comment><USER5> We built this kind of thing in 2006-2008 (Kinzin) but we were too early (and frankly got a lot of the experience wrong). It will be interesting to see how it works.

<comment><AUTHOR> We would love to have you join the beta! If you're interested in offering up some feedback, it's always welcome. You can sign up and submit to join on our site: fambam.family

<comment><USER5> Already done :)

<comment><AUTHOR> Awesome, welcome aboard!

</comment></comment></comment></comment><comment><USER6> Sounds like a great solution to an ever-growing problem. I think that this is the kind of thing people will gravitate to over time.

<comment><AUTHOR> Definitely! Would love for you to join our beta and share any feedback. If you submit your email on fambam.family then we'll reach out when the product is in the app store!

</comment></comment><comment><USER7> also interested to see how this pans out

</comment><comment><AUTHOR> Remember when social networks were just about connecting with those that you care about most? No Ads, no brands and no spam? That was pretty neat, right? Our goal is to connect families in a new, meaningful and impactful way by giving them a dedicated space to engage with one another without the fear or hesitation of data misuse and intrusion.

Give your family a home that you own and control.

Available on Android, iOS and Web! Join the beta today! :)

<comment><USER3> Can't wait! Does the form on the website put me on the beta list?

<comment><AUTHOR> Yes! Just fill out the subscription form at top of the page, Looking forward to your thoughts and feedback :)

<comment><USER3> Great!!!

</comment></comment></comment></comment><comment><USER8> Finally a safe place for my family photos! Sign me up!

</comment><comment><USER9> a breath of fresh air compared to the existing networks on the market. psyched for this!

<comment><AUTHOR> Yes! If you haven't already, be sure to sign up for our beta on fambam.family!</comment></comment>