Mozilla's Connected Devices Innovation Process: Four Projects Move Forward - <AUTHOR> https://blog.mozilla.org/futurereleases/2016/03/01/update-on-connected-devices/ <comment><USER2> I participated in Gnome and Linux kernel development in 2002-2008, that was an amazing time. Those days open source systems were successfully competing with commercial software, Firefox was on edge, Linux desktop was really promising, Linux kernel was widely used everywhere. Drivers for various devices were created by hackers. I left once I saw that corporations are taking over. Redhat and Novel decisions started to set the direction, I felt I can not contribute anything.

Mozilla foundation attitude has been changed since then, it is simply a corporation, not an open source community, I really doubt it will come up with something significant.

Just few days ago I spent half of the day cleaning bloatware from an Acer desktop, Sony Tablet and a Samsung phone, this is really crazy how every small company wants to catch you with a push button daemon that will in parallel store all information about you and sell it later. We desperately need some alternative - an open source phone at least where you can control all the components. However, I see that things like voice input or good navigation would be very hard to create for the open source community.

<comment><USER3> > I left once I saw that corporations are taking over. Redhat and Novel > decisions started to set the direction, I felt I can not contribute > anything.

I sought refuge in BSD land as a consequence of this. I got sick of the whole drama around Gnome, systemd and everything else precluding me from properly using my computer. Everything is perpetually half-broken, bug reports and user demands are ignored if they don't fit their world domination agenda and so on.

I still develop for Linux because they pay me to do it at $work, but it's increasingly unpleasant. Things are still fairly sane in the kernel (barring the occasional rushed device drivers or the whole ARM clusterfuck, but there are limits to how much that can be helped). Userland, on the other hand, is full of 0pointer-branded narcissism and nearly unworkable for anything that has to run for more than three months without constant attention. Great for devops, brain aneurysm-inducing for anything else.

<comment><USER4> > 0pointer-branded narcissism

It _is_ possible to avoid that crap. Older - and much saner - software still works. Just ignore the "desktops" and run the specific tools you need in a saner windowmanager of your choice.

# e16 - from my cold, dead hands

<comment><USER3> I think the only desktop I didn't stay away from was KDE, back in its 2.x and 3.x days. Then things like Nepomuk happened and sent me back to WindowMaker, which will be pried from my equally cold, dead hands.

But it's getting pretty hard to avoid the octopuses. I managed to avoid e.g. systemd (not because unix philosophy something something but because they keep doing shit like [1]) by staying with Gentoo for a while. But the useflags gymnastics required to keep half-baked things out of my system became too time-consuming to be worth it.

Some of the problems do remain (e.g. my desktop looks like it's 1996 and everyone has their own favourite toolkit again because GTK3) but at least I'm not debugging non-booting systems and strange things happening with USB sticks on a daily basis.

1: [https://bugs.debian.org/cgi- bin/bugreport.cgi?bug=815586](https://bugs.debian.org/cgi- bin/bugreport.cgi?bug=815586)

<comment><USER4> > WindowMaker

That's my 2nd choice. It's simple, lightning-fast, with almost no memory footprint.

> bug=815586

That's a perfect example of the problem with the 0pointer monoculture. I works great, until you do something slightly more complicated. Of course, the suggested fix is to update to a newer version of systemd. I guess you're out of luck if that newer version has compatibility issues.

> their own favourite toolkit again

I guess I never cared much about looks. Looks and feel is important, but "working" and "not crashing" are far more important.

One of the problems we're seeing is that the concept of the "distro" is largely dead. The damage done by systemd/etc wasn't just the bugs like your [1]. The forced monoculture killed the _idea_ of different distros.

<comment><USER5> > _Of course, the suggested fix is to update to a newer version of systemd._

That's actually a boilerplate Debian bug closure message, mail-merged with the bug number, the maintainer's contact information, and the package's changelog. One can find it at the bottom of many Debian bug logs. The suggestion really comes from Debian.

Moreover, the bug was in the "unstable" version of Debian, i.e. a version of the package (229-1) that had not even progressed to the "testing" version of Debian (which is currently at systemd version 228). Debian's policy on bugs in "unstable" can be read on Debian's WWW site at [https://wiki.debian.org/DebianUnstable](https://wiki.debian.org/DebianUnstable) and [https://www.debian.org/releases/sid/](https://www.debian.org/releases/sid/) .

The Debian message is, as mentioned, simply robotic Debian bug-tracking-system boilerplate. The underlying systemd bug reports have stuff written by actual human beings:

* [https://github.com/systemd/systemd/issues/2572](https://github.com/systemd/systemd/issues/2572)

* [https://github.com/systemd/systemd/issues/1866](https://github.com/systemd/systemd/issues/1866)

</comment></comment></comment></comment></comment></comment><comment><USER6> Facepalm. Another doomed attempt from Mozilla, when they should be focused on getting their core competitive advantage, their browser, much better faster...

Edit: (One could argue that those are different teams. But even if so, those failed attempts, and there have been enough already, dilute their brand and send the wrong message. Besides, why spend money on such a project when you can give it to the browser team instead? Now, Rust et co I understand, because it might provide the future of the browser engine with Servo, being secure, parallel, etc. Asm.js and other browser related initiatives are fine too).

<comment><USER7> Competitive advantage? I think you mean core competency.

Being a browser maker isn't really an advantage unless you leverage that in some other business like a website, web development solutions or (with enough market share) locking people into your ecosystem.

The real competitive advantage goes to Google. They control the most popular search engine and mobile platform. They can make or break just about any app or website. Their browser just fortifies their dominance.

<comment><USER6> > _Competitive advantage? I think you mean core competency._

Yeah, the latter.

That said, they should work on their competitive advantage too -- the fact that they are open source and pro-web which matters to a lot of users.

<comment><USER7> Mozilla is hardly unique there. Webkit and Chromium are also open source and Google is pro-Web as well.

The only real advantage Mozilla had was the technical advantage of having one of the few popular and mature browser engines available of which only their programmers knew well enough to work on. Since Webkit though, that advantage has disappeared.

You could say their image as a non-profit out to do good is a advantage. Maybe that is something they should work on.

</comment></comment></comment></comment><comment><USER8> > A smart home powered by Mozilla would be open and accessible to everyone - > financially, technically, and creatively. No one else can do all of these.

I think it is a mistake for Mozilla to try this. Firstly, someone else _can_ already do that - IoTivity. AllJoyn have recently abandoned their efforts and joined IoTivity too, so it is really the only open IoT protocol in town. That is a good thing - adding another competitor is just going to make people wait (again) until it is clear who is going to win.

Secondly, consumers don't really care that much about openness, and Google and Apple have a _huge_ advantage in this space due to being able to build support into their mobile OSes. It's not just a matter of bundling a default app either - they can do things like access your wifi passwords for provisining. I don't think Apple will do that will with HomeKit, as long as it is iOS-only, but Weave is cross-platform, sort-of-open, fairly complete and seems pretty well designed.

Finally...

> A few small players are beginning to enter this gap, though their proposals > are still not complete enough to solve the problems we've identified

Yes that's putting it mildly. AllJoyn never supported out-of-the-home control, and IoTivity is very much a work in progress. But I think Mozilla are _hugely_ underestimating the amount of work involved. And given how much work is involved, why not join forces with IoTivity?

<comment><USER9> I just looked at the IoTivity website, but it looks awfully "enterprise-y"/"design-by-committee". Are you involved with it and can report otherwise? Any "real-world" examples?

</comment></comment><comment><USER10> It's hard not to feel angry about this. Not only do I not personally want the things described in this post, I want them specifically _not_ to make things like this. Until we have more fundamentally secure systems and laws that actually punish negligent companies for gross violations of security and privacy, IoT is not a domain to promote. There are so many other important issues with the web and the Internet right now that Mozilla could help with. This is such a waste of time and resources. Is there really some target audience that wants this stuff?

<comment><USER11> For the moment, it looks like IoT is happening, whether you want it or not. I live far, far away from the Silicon Valley and last week, when visiting the supermarket, I realized that they are already selling IoT-enabled devices.

So the question is now: how do you want your IoT? A number of companies have already answered: silos, low quality, little-to-no hackability, little-to-no privacy. Mozilla wants the IoT to go in the right direction: open standards, open source, high quality, and the user in control.

Caveat: I'm part of Mozilla's Project Link. And I'm having fun coding it :)

</comment></comment><comment><USER12> Huh? They just dropped Firefox OS and Persona, their authentication system, and now they want to get into the "Internet of Things"? It would have made more sense if they'd used their authentication technology to allow devices to link up in a mutually mistrustful way.

<comment><USER13> This is mistaken. Firefox OS wasn't dropped, it was pivoted from phones to connected devices: [https://blog.mozilla.org/blog/2015/12/09/firefox-os-pivot- to...](https://blog.mozilla.org/blog/2015/12/09/firefox-os-pivot-to-connected- devices/)

I've also seen rumors that Mozilla is working on a successor to Persona, but absolutely no substantive evidence as of yet.

<comment><USER14> No. The team was repurposed, not really Firefox OS though. Have got some insider knowledge on this one.

I mean come on. Firefox OS on embedded devices, the thing could barely run on cheap smartphones.

<comment><USER15> Having used the one of their special SPARC dev phones, the OS is actually very very good. Like every device it had limits but it just cruised along like a champion for 90% of tasks and had freakishly good call quality.

</comment></comment></comment></comment><comment><USER16> Project Link: What's that? And what problem does it solve? No one will understand, no one will use.

Project Sensor Web: Yeah, let's add another solution to this problem that has been solved ten times over. w(

Project Smart Home: Also crowdsourced? After Mozillas previous handling of hardware (like ffos dev-phones that were deprecated in record speed) i can only say: Dont.

Project Vasomething: ANOTHER IoT framework that is used and needed by no one?

We are about 2 years past peak Mozilla.

</comment><comment><USER13> I'm excited to see Mozilla's experiments in the IoT space, but I'm a bit unclear on the exact nature of the projects being undertaken here. For example, is the software here intended to act as a proxy between connected devices and your access point, possibly via flashing your router?

I'm also curious if Mozilla is building in automatic updates in all of this software from the ground-up, seeing as how that appears to be the fundamental weakness of everything related to the IoT.

<comment><USER17> Project Link appears to be designed to run on a raspberry pi and uses rust.

<comment><USER11> Note that we are still at a very early stage of exploration, so anything I write might change a dozen times before there is a first official prototype.

The current prototypes of Project Link are developed in Rust and tested on a RPi. However, we have not decided of a specific hardware platform and there are even chances that this will remain cross-platform – I'm currently running prototypes on my laptop.

In the current state of things, yes, the software is designed to act as a proxy between connected devices and connected devices and your access point.

I can't speak for other projects, but we definitely intend to have an update mechanism. This is very much not finalized yet, so any suggestion you have (currently, as a detailed blog post – once we are better organized, as a RFC) would be useful.

</comment></comment></comment><comment><USER18> Why are they working on mostly useless ventures?

How about some really captivating features like:

        Tor integration/awareness
        I2P integration/awareness
        ZeroNet functionality
        IPFS functionality

Start working on hard features that will make the internet better, and also more distributed. It's one thing to have throw-away garbage that nobody will use. It's another thing entirely to support new protocols that make Firefox a go-to tool.

<comment><USER19> There is one MoCo employee helping with getting changes from the Tor browser upstreamed. It's not happening overnight, but progress is being made.

Things like IPFS, while very promising, are not mature enough to justify the effort of adding them in the core of gecko yet.

Also, I dispute the fact that supporting IPFS would "make Firefox a go-to tool" in the grand scheme of internet users, unfortunately.

<comment><USER18> I sure hope so, regarding Tor and Mozilla. Aside my scripts that make .onion resolution on a Linux machine work, it would be nicer to have a simple and clean interface here.

I certainly understand the hesitancy with IPFS. It is still too new. And they're still ironing out features and implementations. However, what gets me is that it's live right now, and I'm using it for quite a few things.

Right now, I'm getting some VM stuff up and running. My idea is that jor1k linux in JS can be run on IPFS.. Still playing around with it, but it seems very stable and fast.

Also, regarding your 3rd point: I've attributed many network effects to the 85/15 principle. The 15% is your tech userbase. They're the ones that drag everyone else into a platform or technology. The rest (85%) follow because the early adopters knew that it was where to go. Gmail was like this, as was Facebook, as was Firefox, as was Napster, etc. Adding in something like IPFS as a base support adds in "Cloud Storage" where nothing really existed like this before, well, aside 'cloud' meaning other peoples' servers.

Maybe I'm completely wrong. Time will certainly tell, but one thing I know, is that I am indeed impressed with what I'm seeing already.

</comment></comment></comment><comment><USER20> I really wonder what should be the difference between those Link and Smart Home projects and something like OpenHAB, besides that is newly started by Mozilla. I think the current adaption of DIY or build-something-through existing frameworks shows that most people don't really care about such solutions, they want something that works out of the box - even if all parts come from a single manufacturer.

From an engineering perspective implementing lots of proprietary protocols in a single gateway device is lots of work and will never work 100% fine. Most people that worked on such solutions will confirm you that, and I can also do that (in a somewhat different domain). You can sink lots of money is these projects, and they still might not work for some customers at all - just like universal remotes - only more complex.

One way forward could be pushing the creation of devices (gateways, sensors, actors) that are based solely on standardized and accessible protocols. I'm not the biggest fan of CoAP (because I think it's hardly possible to implement it correctly), but I would still prefer this to reimplementing Z-Wave or Hue protocols. HTTP/2 could also be a good fit. But even if you have at least the protocol layer standardized, there possibilities for API design are endless. Standardizing IoT APIs throughout the whole stack in a backwards compatible fashion could really be something worthwhile, but the effort will be big, and it's questionable if other parties are actually interested in standardization.

And just a side node: I don't think Rust is the best choice for building a prototype for a mostly event based system. EventLoop semantics are hard to implement because of ownership/borrowing issues, the necessary dependencies (websocket libraries, etc.) are all in their in infancy, and it might also not be something that allows to move as much forward in speed as you want for a prototype (where you as a tradeoff can live with lower performance). Yes - I'm sure the Rust commmunity will disagree with me on the last point ;)

<comment><USER21> I would disagree with you on the first point more; Rust is actually perfect for event loop based semantics (we use this in Servo, it's very clean). Ownership fits perfectly with message passing.

You should _avoid_ sharing state when you're using a message passing-based system. The cross-thread communication is handled by the messaging, sharing the messages itself just muddles things further. So the borrow checker disallowing that isn't a bad thing.

> the necessary dependencies (websocket libraries, etc.)

I agree; though the websocket library Servo uses is pretty good (still, not battle-tested, so it's a very valid point).

> it might also not be something that allows to move as much forward in speed > as you want for a prototype

Again, with the prototyping thing, sure, it's harder to prototype in Rust, but that's not the whole story -- you spend less time writing tests and debugging.

(Also, I'm not sure how much harder it is; I've never had trouble with doing it and before Rust I was mostly programming in Python/JS)

> Yes - I'm sure the Rust commmunity will disagree with me on the last point

Which sort of indicates that it's probably inaccurate? :)

A lot of the perceived problems with Rust (e.g. fighting the borrow checker) go away after a month or two of actively using the language.

<comment><USER20> Just for the reference: I'm building similar systems professionally (and have done that with most mainstream programming languages on the market), and I was probably the first one who explored async IO and eventloops in Rust ([https://github.com/Matthias247/revbio](https://github.com/Matthias247/revbio) \- but I'm not really proud of it) - so I think I'm at least halfway qualified to talk about this.

And unfortunatly by experimenting with these things I really got the fealing that these problems don't expose the best side of Rust. Wrapping lots of types into stuff like Rc<RefCell<T>> wasn't the greatest experience, and the problem that this didn't work with trait objects back then did not increase that either (might have changed).

Message passing is a low level primitive, and it's probably a decent solution for communication __between __threads. However there is also a need asynchronous communication inside a thread (the eventloop thing), for which they are not really useful. Futures /Promises/Observables are great for both use cases (and imho even greater in a singlethreaded environment). These are definitly harder to implement in Rust - and if you don't believe me just check out how many good implementations are currently available in Rust vs. other languages.

How does the eventloop design in Servo look like? Wasn't that some integration with Spidermonkey?

I agree that in Rust you will spend less time on writing tests and debugging - but this applies also for a lot of other statically typed languages which bring in a better ecosystem for that task.

<comment><USER13>
      > this didn't work with trait objects back then did not
      > increase that either (might have changed)

I believe the feature that you're referring to is called "DST coercions", which has been available in stable Rust since 1.2. See an example here: [https://play.rust- lang.org/?gist=ff8bed62730d54c329f2&versio...](https://play.rust- lang.org/?gist=ff8bed62730d54c329f2&version=stable)

<comment><USER20> Yes, that was missing back then. But also including the ability to do checked upcast/downcasts in the results, do change between Rc<RefCell<Base>> and Rc<RefCell<Derived>>. Is this now possible?

</comment></comment></comment></comment></comment><comment><USER22> I recently uninstalled Firefox browser on Windows because it loads at least 10x slower than Chrome, even with no plugins. Mozilla should fix that first. It'd give users (like me) more confidence in other projects they do, like connected devices.

</comment><comment><USER23> What happened to Shumway by the way? A few bugs I filed for it are now marked as referencing "Mozilla graveyard" product. It doesn't sound encouraging...

<comment> ygjb-dupe [http://www.ghacks.net/2016/02/23/flash-replacement- shumway-i...](http://www.ghacks.net/2016/02/23/flash-replacement-shumway-is- as-good-as-dead/)

<comment><USER23> Thanks, that's what I've suspected.</comment></comment></comment>


The Efficiency Is Everything Cookbook [pdf] - <AUTHOR> https://efficiencyiseverything.com/The-Cookbook-v-1.4.pdf <comment><AUTHOR> Some notes- At base, the recipes eat for ~21$/week/person. After I lost my job, I definitely got below 20$/week, less protein, more rice.

I have seen HN dispute 19k/yr living, so I also wanted to share with HN, the 3 things that allowed 2 people to live on $19,000/year. We lived like this for 3 years as my wife got her Doctorate.

>Health Insurance- Don't pick the wrong one. Too often I hear people choosing 'a good plan', but the reality is, the Payments(preimums) + Max Out Of Pocket exceed the cost of a Bronze plan.

>Used cars are better than new. Nothing quite like not caring if your car gets a ding. Nothing quite like not having a car payment.

>Stop eating out, the 6$ meal is 6x the cost of the meals in the cookbook. Doing a Calorie Per Dollar comparison is a wakeup call for value.

Thought this is useful for everyone. I'm planning to study another round of Calorie, Protein, and Nutrient Per Dollar data. Any requests?

<comment><USER2> The whole used car thing is just flat out wrong. If you are a mechanic and you know how to asses the health of a car perfectly and you are able to actually find a car that she not unreliable then maybe buying a used car would make sense. But even then you are giving up backup cameras, good mileage/hybrid tech and most importantly you are giving up the HUGE amount of progress that has been made in safety that is designed into the structure of the car. And on top of that you have to drive around an old beater that you aren't proud to be seen in. Just buy a new Toyota Corolla. It's guarnteed to be as reliable as possible, has a backup camera and modern safety features. And it looks good. But if you pay in cash it's only 17k so you won't be worried about dings anyway. In my opinion thats worth ~8k.

But for the average person buying a used car will result in huge reliability problems, being stranded on the side of the road multiple times and you'll end up paying thousands for repairs anyway. Yes, we all know that one guy who bought a used Toyota and never had problems. There's a reason why it's an anecdote about "that one guy I know."

<comment><USER3> In Europe, the situation is different (cars and gasoline is a lot more expensive here, and salary in tech is a lot lower), and your argument doesn't make much sense. A new Toyota Corolla is 25k euro, which is more than 28k dollar. That is more than my gross year income and about 8 years of rent (and I work as an IT consultant, which is not a particularly bad job), and I still completely neglected recurring costs (taxes, gasoline).

If you buy a new car, you're paying for the fact that it is new, even if you can't see it. I did a quick search, and found a gorgeous Audi A8 that looks like it's new for 6k. You can buy a crappy old car for about 1k. So anything in between should get you something modest. Most people I know buy used cars, and I rarely have heard anyone having troubles with them (IDK, are American cars less reliable?). If you buy a relatively new used car, you get all of the advantages you list, and none of the disadvantages.

<comment><USER4> Where are you working that your gross yearly income as an IT Consultant is below 25.000 euro? Did you mean net income?

<comment><USER3> Netherlands. I am a starter and work part-time (4 days). I'll make more than 25k next year, don't worry ;)

</comment></comment></comment></comment></comment><comment><USER3> A couple of thoughts: The recipes are nice, but contain a lot of meat. This is very expensive. Where I live (the Netherlands), it would be closer to $10 per day (only counting dinners). Just the meat will be something like $4 for a single portion. Besides, I would first save money on bigger things like modest housing and not having a car before trying to save on food.

I usually make combinations with: 1\. Vegetables (for vitamins): beans, broccoli, cauliflower, spinach, tomatoes, bell peppers 2\. Meat-like (for proteins): Ground beef, chicken, meat replacements 2\. Filler (for carbs): Potatoes, pasta, rice 3\. Optional extra's: Sauce, cream, cheese (cheese is expensive though!)

This allows me to cook fairly quick and cheap.

</comment><comment><USER5> Skimming through the recipes, it seems to be mostly meat-based dishes. I would like to see a similar cookbook with plant based alternatives.

<comment><USER6> Open a bag of Fritos. Dump in a cup of melted Velveeta, some pickled jalapeños, half a can of black beans. Mix it up and eat it out of the bag. Then, loathe yourself and wonder how it came to this.

<comment><USER7> Most of the loathing probably comes from the month's RDA of sodium described in your proposal.

Substitute some sort of more traditional cheese and some roasted unsalted peanuts in the above recipe and you'll probably enjoy it about as much and feel better afterwards.

<comment><USER8> Substitute Fritos for not Fritos to make the dish even better.

</comment></comment></comment></comment><comment><USER9> I find the highest cost item required for living is real-estate (both rent or mortgage).

Cutting food costs barely matters when 40% of your weekly cost is actually paying for a roof over your head. But living in a nice place, in a good neighbourhood, etc, can't really be substituted.

<comment><USER10> Estate agents in the UK will tell you the best value is to buy a cheap house in the best neighborhood. That may make financial sense in that you can gain some economic benefit by bringing the standard of your house up. The downside is every day you will feel like the poorest person in the area. Doing the opposite might give you a better sense of well-being.

<comment><USER11> > _The downside is every day you will feel like the poorest person in the > area._

You can offset some of that though by being able to brag about in which neighborhood you live.

This line of thinking reminds me of a tip on gift giving: if you have fixed amount of money to spend, go for the category of items in which you can afford the best item (vs. spending the exact same amount on a cheap item from a more expensive category). E.g. an expensive scarf instead of cheap coffee machine. The reasoning is that the recipient will look at your gift relative to the category it belongs to, and not evaluate what else could be bought with the same amount of money.

</comment></comment></comment><comment><USER12> Some dishes I regularly make:

Hamburger mush - 1 lb ground beef, beef bouillon (enough to make ~2 cups of broth), 2 tbsp flour, water

Cook and drain ground beef, add bouillon + flour + enough water to be liquidy, let it cook on low until paste like consistency. Serve over rice with vegetables (mushrooms, broccoli, cabbage, zucchini, bokchoy in any combination are good)

\</comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>-----

Chocolate quinoa - 1 cup quinoa, 1/4 cup cocoa powder, 1/4 cup chocolate protein powder, honey

Cook quinoa. Mix cocoa powder and chocolate protein powder with some hot water, enough to make a sauce. Add honey to taste, mix with cooked quinoa

\</comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>-----

Greek yogurt alfredo - 2 tsp butter, 1 tsp garlic powder, 3/4 cup greek yogurt, 1/2 cup grated parm

Melt butter in small pot or pan, add garlic powder, mix in yogurt. Set heat to low and stir in parm until it's melted. Serve over pasta and vegetables

<comment><USER13> > Greek yogurt alfredo

I hate to come off as a snarky purist, but there isn't need to go to weird italofusion combinations if you want variable, vegetable heavy diet based around rice, pasta, or legumes. In South Italy we cook vegetable and olive oil based sauces in the time it takes to boil water and cook the pasta. Then you mix these together while finishing the cooking of the drained pasta. Every single vegetable is fair game. You just need a good source of fat, which is served by olive oil. The pasta or lentil base gives you protein enough that you only seek meat or heavier protein sources every fourth meal or so.

<comment><USER12> Those sauces sound good. The alfredo sauce is actually really delicious though, it's become one of my favourite meals.

</comment></comment></comment><comment><USER14> It would be nice to see a version of this using the metric system, otherwise international users will have to keep converting ingredients servings between systems all the time. That's boring and time consuming.

<comment><AUTHOR> Thank you, will do.

</comment></comment><comment><USER15> No mention of chickpeas/garbanzo for protein? Ahhhh.

</comment><comment><USER16> I like to optimise for 3 things: speed, cost, and health. In this case I have found recipe books to be generally pointless since they're not able to meet those specific requirements.

Speed: If I have to spend more than about 15-30 seconds in preparation, then it's out. Somewhat longer cooking time is ok if it's mostly unattended. I buy ingredients pre-cut/tinned and this tends to be location dependent.

Cost: This is entirely location dependent. I start meal design with what is cheap/good/suitable at my local supermarket. It has to be a regular item because I'm not going to waste time looking for deals each week. My average meal cost is less than 2 euros and that's with ingredients that are not the cheapest.

Health: This is dependent on what you want to believe, but I've gotten exceptional results from merely avoiding sugar and processed carbs of any sort. It's not extreme in any way but it ends up limiting your choices broadly because vendors sneak sugar and processed carbs into everything.

<comment><USER17> What are your go to foods Health wise?

<comment><USER18> Lentils pack a huge nutritional bang for the buck and are very easy to cook. One of my favorite one pot meals is to toss some lentils and brown rice in a pot and simmer for 40 minutes. Just add your own choice of seasonings and some leafy greens on the side and a handful of nuts and you have a very cheap and healthy meal.

<comment><USER19> If you're in the US and the rice is from a former cotton state (not California), you could be getting a high dose of arsenic by using brown rice as a staple. A sane government would set limits on arsenic at least on par with China's, but that would be costly to American agriculture, and it's easy to ignore chronic arsenic poisoning because it causes cancer or heart disease, not an identifiable syndrome that would generate bad publicity for politicians. My favorite alternatives are millet (cheap, has flavor if you toast it) and quinoa (price on par with rice if you can find it not packaged for yuppies).

<comment><USER20> Maybe it's because I'm Slavic, but buckwheat is where it's at. Cheap, packed with protein, has a pleasant nutty flavour.

</comment></comment></comment></comment></comment><comment><USER21> I did a quick glance at the recipes and the majority I would not consider to be very healthy. If you don't have a choice, you can survive on these but it would not be my first choice.

<comment><AUTHOR> I'm curious what you consider a healthy meal.

Do you have any recipes or expectations?

<comment><USER21> In recent history, I am seeing more and more research pointing to excessive carbohydrates and not fat as being a problem in the diet.

I would consider something along the lines of a Paleo or Mediterranean diet to be a healthy choice.

</comment></comment></comment><comment><USER22> After reading couples of recepies, I rather use this book who is more "factory"/"cheap"/"delicious" in other word, "more efficient" to me. "Five Ingredients, Ten Minutes" by Jules Clancy.

[https://www.amazon.com/Five-Ingredients-Minutes-Jules- Clancy...](https://www.amazon.com/Five-Ingredients-Minutes-Jules- Clancy/dp/0718158741)

</comment><comment><USER23> Not a bad document, but not very researched either. I skimmed and noticed that for example, it is quick to assert that olive oil will smoke, even though it's hard to reach a temperature where even extra virgin olive oil will start smoking.

 _Edit_ : Wait no actually it's even worse, it implies extra virgin olive oil will not smoke?

> Vegetable oil – as mentioned, can be replaced with other high heat oils like > peanut oil. Butter will burn, olive oil will smoke. Extra virgin olive oil > costs pennies more, I always get it over olive oil.

</comment><comment><USER24> A lot of these recipes make sense to me, even if I wouldn't necessarily add them to my own tool belt. When my mom taught me and my brothers to cook, she wrote down her recipes for us, and I still have them. Most of them are of this nature, refined over years of feeding three hungry boys on a middle class wage. Also, she's a scientist by training.

There were quite a few recipes that started with browning hamburger and onions.

And I suspect that during my generation, families that still cooked had a lot of these kinds of meals, usually prepared from memory.

So the cookbook is hardly a shock to my sensibilities.

</comment><comment><USER25> My wife and I spent a year not working and we got our grocery budget to about 30 dollars per day for a family of 3 without sacrificing anything. In fact that's not quite the right characterization, we actually _improved our diet_ compared to what it was before. More veggies, more meat, less sugar, less processed. And it doesn't even take that much time. About an hour a day is more than enough. Before this exercise we'd easily spend $2k+ per month for the same family.

<comment><USER26> $USD30? My goodness that is a lot!

<comment><USER25> Which is why it's hard for me to believe that someone could be spending less than one third that per day and eating well.

</comment></comment></comment><comment><USER27> I notice that sometimes non-tech people think that cooking eqipment is relatively unimportant, but having the right equipment on hand makes cooking so much easier and more enjoyable. It's also an investment that dramatically improves the quality of your life if you cook every day.

<comment><USER16> I'd say that is a matter of choice and preference though. I'm totally minimalist because I hate washing things up and that is a big quality of life factor. I'm close to zero wash-up because I use a single wok so often it's not required.

<comment><USER17> Care to share your favorite wok recipes?

</comment></comment></comment><comment><USER28> A few winters ago I played so much of _The Long Dark_ that I began cozying up with chicken and beef broth prepared and consumed like it was tea.

</comment><comment><USER29> I got as far as this:

"1 (10½oz) can of cream of chicken soup"

and quit.

<comment> yjftsjthsd-h Any special reason? Do you not like the taste/texture, or do you have lifestyle/ethical/financial/efficiency/health objections?

<comment><USER29> I think mostly flavor. Canned soup is some nasty stuff.

Here's my entry into the efficiency menu:

Take a crockpot/slow cooker, throw in stew meat, frozen peas/corn/green beans, a lemon, an onion, garlic, sriracha, cut up a few potatoes and carrots, a can of chopped organic tomatoes. Cook for hours. Done. Probably 5 minutes of prep.

You could probably live exclusively on that. Low salt.</comment></comment></comment>


Java Memory Model Examples: Good, Bad and Ugly (2007) [pdf] - <AUTHOR> http://groups.inf.ed.ac.uk/request/jmmexamples.pdf <comment><AUTHOR> The section with the "ugly" examples demonstrates some unintended consequences of the memory model. In particular it demonstrates a counterexample to the first theorem of the original JMM paper [1] which sought to establish that independent statements can be reordered without changing program behavior under the memory model. This got me worried since the theorem provides justification for some of the optimizations actually employed by the JVM.

I dug a bit deeper and found a pending JEP that calls for the update to the JMM to fix these issues: JPE-188 [2]. This links directly to the "Good, Bad and Ugly" paper.

I also found a presentation from one of the authors of "Good, Bad and Ugly" that may make some of this more accessible: [3].

[1] [http://rsim.cs.uiuc.edu/Pubs/popl05.pdf](http://rsim.cs.uiuc.edu/Pubs/popl05.pdf)

[2] [http://openjdk.java.net/jeps/188](http://openjdk.java.net/jeps/188)

[3] [http://pan.vmars.tuwien.ac.at/jtres2009/slides/jmm2.pdf](http://pan.vmars.tuwien.ac.at/jtres2009/slides/jmm2.pdf)

</comment><comment><USER2> This really needs 2007 attached. Things have changed a lot in the last 9 years

<comment><USER3> Do you have a link to or example of (major) changes that have happened since 2007? I understand that JSR-133/Java 5 updated/fixed the JMM considerably but was not aware of big changes since then. Thanks.

<comment><USER2> To be honest I was thinking 2007 predated Java 5. It's been a busy old decade...</comment></comment></comment>


How to judge the candidate you are interviewing - <AUTHOR> http://www.makinggoodsoftware.com/2009/07/16/3-tips-to-know-how-good-is-the-candidate-you-are-interviewing/

<comment><USER2> Some interesting and good ideas. However, I don't think there is a recipe for finding good software engineers. If you always use the same method you're going to end up with a team of people with the same strengths. Know your teams strengths and weaknesses and find candidates that balance things out.

<comment><USER3> I think this is very important to take into consideration. I've heard a lot of stories about like-hiring-like and ending up with an imbalanced team. Part of that is the interview process, part of it is the interviewers.

Good interviewers should be able to recognize strengths in the candidate that they lack.

</comment></comment><comment><USER4> #1: Definitely agree, I'm surprised I don't hear this more often.

#2: ... _Make him code using the same tools he would use in the position he is applying for._...

What sort of tools is he referring to? I've always been given free reign on my work box, and I put what I want on it. It has to be interoperable, of course.

#3: Good idea, but why leave and come back? Why not just have them talk you through it? I much prefer interactive interviews.

#4: Make sure their personal website doesn't have a link to their Google Apps verification page.

[http://www.makinggoodsoftware.com/google50f905a7cdbdd588html...](http://www.makinggoodsoftware.com/google50f905a7cdbdd588html/)

<comment><USER5> >> What sort of tools is he referring to?

I assumed he meant languages, frameworks and other things in a project that can't be swapped out as easily as, say, text editors.

<comment><USER3> It has to be pretty basic, as you obviously can't give him all your production frameworks and libraries to work with.

A reasonably competent program will be able to create reasonable code without the perfect environment. You probably don't need a full IDE and heavily customized desktop with test and development staging grounds and SCM just to write fizzbuzz.

<comment><USER5> Depends on your environment. I'm often asked if I'm familiar with Joomla | Wordpress | <insert PHP framework here>.

For a lot companies, their entire infrastructure is a stack open source software and I don't think it's unreasonable to ask if someone is fluent in, say, LAMP.

</comment></comment></comment></comment><comment><USER6> I prefer "make the candidate estimate some reasonably complex project" to "make the candidate design something". Design is fuzzier than estimation.

<comment><USER7> I've always thought the opposite, which is estimation is fuzzier than design. I mean, who here hasn't been off on an estimate in the last month or so? Developers are notorious for making bad estimates. See <http://www.codinghorror.com/blog/archives/001284.html>.

<comment><USER4> URLs automatically become links, no need for tags.

<comment><USER7> Ah, thanks for the tip.

</comment></comment></comment></comment><comment><USER8> While I can't really argue with the points made (though perhaps the exhaustiveness of the list is debatable), the quality of the English significantly diminishes my opinion of the article.

Incorrect use of or failure to use indefinite articles; run on sentences or comma splicing (e.g. in point #3); subject-verb agreement...

I might have overlooked these things in another context, but the article is trying to present tips on "how to judge how good a candidate is", and even talks about communication skills.

</comment><comment><USER9> These are good. One of my favorite questions is "what have you done in the past when you had conflicting requirements?"

If you say it never happened and have more than a year or two of experience, I'll be very surprised.

In our interviewing process we divide up the type of questions to ask the applicant with some overlap. So one guy will ask mostly process-oriented questions (what kind of unit testing do you do), another will ask CS/programming related questions (what are common problems in multithreaded apps and what are some solutions), and another will ask team-oriented and "soft-skills" stuff like the one I mentioned above.

It gives us a more rounded view of the candidate than whether or not he can code.

</comment><comment><USER10> My problem with the first point - Make them Design Something - is that design is a lot harder to grade than the second two. It's easy to see if someone can write fizzbuzz, or find the bug, but it's significantly harder to grade a design.

Good design operates in the face of real world constraints, unlike typical interview questsions (see the article on Apple design about Real Artists Ship).

As an interview question, I used to ask people to design the DB schema for Netflix. Almost everyone could get something that would kind-of sort-of work. Of course there was a gradient of bad to good answers, but a passing or better grade on the question did not help predict whether the candidate would get an offer. Asking FizzBuzz was a better predictor of whether they would pass the interview process.

</comment><comment><USER11> I might sound a bit hypersensitive here, but couldn't the author easily avoid using "he" and "him" when referring to potential candidates for software programming positions?

<comment><USER12> I now see the opposite effect: everyone is scared to look sexist so everyone ends up putting "she". Maybe we should call programmers "it"?

<comment><USER13> 'they' is a natural sounding gender neutral term.

<comment><USER3> Except the interviewee is not plural. We lack a singular gender-neutral pronoun in English that it is acceptable to apply to people, and appropriating "they" doesn't seem like the right fix.

Personally, I vote we either appropriate "he" to be gender neutral or realize that stereotypes influence language more than language influences stereotypes.

<comment><USER14> Singular "they" isn't an appropriation - it's a reversion to pre-1850 usage. See <http://www.crossmyt.com/hc/linghebr/sgtheirl.html> for details.

</comment></comment></comment></comment></comment><comment><USER15> "Leave him alone in a room with a computer..."

I prefer to leave them alone in a room with only pencil and paper. I want to see every piece of paper when I return, including diagrams, notes, and most of all, the entire audit trail of what they did (cross outs, revisions, etc.) I don't care how it looks or how well it compiles or runs. What I really care about is the thought process they went through. Pencil and paper shows me that much better.

<comment><USER16> Am I the only person who gets insane cramp when having to write a lot on paper? Unless i've only got to write one short function i'm gonna be screwed up by your test.

<comment><USER15> "...i'm gonna be screwed up by your test..."

That's _exactly_ what I want to see. I don't care how well you type or how well you navigate an IDE. I care how well you think and approach an unstructured problem under pressure in an unfamiliar environment.

(FWIW, I would never give a problem whose solution would require more than 30 to 50 lines of code. Lots of people would put in one line for the function and then explain the function to me later. No one has ever complained about cramping. You're the first.)

<comment><USER13> He's talking about being screwed up by the manual writing process.

</comment></comment></comment></comment><comment><USER17> These are all excellent suggestions.

Potential interviewers please note that leaving the candidate in a conference room with blank paper and pencil potentially filters excellent developers who are just not used to literally writing code on paper.

<comment><USER18> We used to call the code writing section of the interview a typing test. You could literally tell if the person was going to make it by listening to them type. Someone who is comfortable writing code types confidently and with long bursts. We saw plenty of applicants who talked a big game, but clearly couldn't put together even the simplest program without resorting to cut and paste.

<comment><USER3> I still find it hard to believe that someone would apply for a programming job without being able to write fizzbuzz in the language of the position.

<comment><USER18> I found it hard to believe also, but it happened plenty. I think it's more common once you get outside of silicon valley startups. For the startups I worked at, we were almost always able to hire from within the community and most people we interviewed already had public demonstrations of code. They weren't all perfect candidates, but they could at least write fizzbuzz.

<comment><USER16> When I took the interview for my current place the first question I was asked is "what is the difference between the public and private keywords". After I responded with the obvious answer the interviewer sighed with relief and told me I was the first candidate that day (out of 5) that managed to answer the question correctly.

Be VERY afraid. :D</comment></comment></comment></comment></comment>


Ask HN: What apps make your time on a smartphone feel productive? - <AUTHOR>

... other than email. I wonder if there's a correlation between this productivity feeling and actual price that the app can withstand. <comment><USER2> Note writing apps that works with Dropbox. I have both Notesy and WriteRoom. They help me keep track of ideas or draft posts.

iPhoto. I never get around to touching up my photos once I'm on my laptop. Now I can do it on my phone.

I don't think price matters for my choices (so far). I was one of the first to buy OmniFocus ($20 or was it more?), haven't been using it for years.

</comment><comment><USER3> i installed TED and itunesU on my iphone, when ever i get free time i watch a TED talk or a lecture in iTuensU</comment>


Big Three: Clean up your dealerships - <AUTHOR> http://www.37signals.com/svn/posts/1446-big-three-clean-up-your-dealerships <comment><USER2> I didn't think this was a strong 37s article, for two reasons:

* It's hard to make the point that the dealerships are a major problem for the Big Three when the article revolves around an anecdote that ends with you buying a car from a Big Three dealership.

* The Big Three have almost no control over the dealerships, which are franchised and protected by state laws that prevent auto manufacturers from opening their own dealerships or closing down underperforming dealerships. Unlike import OEMs, whose dealerships are coveted, the market is flooded with Big Three dealerships, many of whom are threatening class-action lawsuits against the OEMs for things like cutting unprofitable product lines. Ford has little leverage to impose standards on Ford dealerships.</comment>


Ask HN: What is good enough C/C++ benchmark suite for sorting algorithms? - <AUTHOR> Of course, this is a very broad topic. Nevertheless, is there a ready-made set of tests that shows the advantages and flaws of well-known sorting algorithms in the context where the std::sort or qsort() are used?<p>Actually I created some improvements to a quicksort-based algorithm and it work pretty for target scenarios (i.e. faster than std::sort, that based on introsort). So I want to check/estimate these improvements on a good suite of test datasets to get a better picture of the pros and cons. <comment><AUTHOR> For now I found the Christopher Swenson's collection ([https://github.com/swenson/sort](https://github.com/swenson/sort)) . This is more than nothing, but it is clearly not enough.</comment>


Ask HN: Is IT security a good career? - <AUTHOR>

Is IT security a good career in general and how its market is compared to the software development market , I'm graduating this year  and i'm confused which way to take , can someone give me any information about that
 . <comment><USER2> Smart Money sees huge growth opportunities in Cyber Security> [http://www.thestreet.com/story/12995194/1/how-investors- can-...](http://www.thestreet.com/story/12995194/1/how-investors-can-profit- from-the-growing-cyber-security-industry.html)</comment>


A Pirate's Take on Strategy vs. Tactics - <AUTHOR> https://diogomonica.com/2018/10/07/a-pirates-take-on-strategy-vs-tactics/ <comment><USER2> Most of my career has been under the title of "strategist". I've had to steer many client organizations away from jumping the gun on tactical thinking by convincing them strategy is qualitatively different and important.

My experience is that strategic planning is about the "what". What should we even be doing? As important, what should we NOT be doing? Given our limited time and resources, what is an efficient approach to winning the game we are playing (or do we even need to identify the game and define winning first)? Question everything. Challenge assumptions.

Mostly ask "what" and "why", sometimes "who" and "where".

Tactical planning is about "how". How can we effectively implement the strategy? Without challenging the assumptions that got us here, and assuming we're already stuck with the game and the rules our strategy selected, how do we win? No more resources are coming. Too late to ask hard questions (except to use as input for next time we do strategy). Execute to maximize effectiveness; worry about efficiency only secondarily.

Mostly ask "how", sometimes ask "where" and "who".

<comment><USER3> > As important, what should we NOT be doing?

Exactly this. The most common 'cause of death' for a good strategy is when too many bad ideas are tacked onto it. Most organizations have a good plan somewhere. The problem is that they also have bad plans and inadequate means to prune them off.

</comment></comment><comment><USER4> This explanation doesn't separate the terms "tactic" and "strategy". In fact it mixes them together, he even says a tactic is basically a substrategy.

If you're using recursion, that should be clear. Just call everything a strategy, or everything a tactic.

Fact is this distinction between these terms has never been real in any sense. People vaguely use strategy to mean "big picture" and tactic to mean "particular action", but if you decompose it you'll see more little strategies inside.

This is true in many game-like situations.

<comment><USER5> The following definitions make sense to me: it's a tactical game if the outcome merely determines how many resources the player will have in the next round, and it's a strategic game if failure means there won't be a next round.

More generally, the problem with defining "tactic" and "strategy" smells like a case of false assumptions: they're orthogonal, not opposite.

<comment><USER6> I tend to see it used like this: a tactical game is about the movement of the pieces/units and about winning this match without particular consideration for the next one, or considerations of logistics or use of resources. A strategic game is concerned with the overall campaign (did I win in such a way it favors the next match? Was it even a good idea to play this match? Did I use too many resources?)

Indeed it's about high level vs zoomed-in detail.

<comment><USER7> In other words, tactics are about how to win the fight. Strategy is about which fights to engage in to accomplish an overall goal.

<comment><USER6> I can agree with this definition, though I'd say there is some degree of overlap; they are not completely separate. The Russians (and then, the rest of the world) defined an intermediate level and called it "operational". I suspect one could refine it even further.

</comment></comment></comment></comment></comment><comment><USER8> All these words to say a few simple things...

Tactics are smaller-scale than strategy. Tactics is the implementation details and strategy is the big picture. Tactics are the movements of chess pieces and strategy is the intent of those movements.

<comment><USER9> A tactic is slightly higher level concept than a mechanical movement, or firing a trigger. A tactic would be how you lay an ambush, or how a small engagement is fought.

<comment><USER10> Indeed. In RTS games like StarCraft or Age of Empires, that lowest level is referred to as mechanics, control or "micro"* (depending on the context of the finer action).

In order of scale: Strategy > Tactics > mechanics/micro/control

*micro as in micromanagement, of individual units in your army,

This is often contrasted with "macro", which refers to overall strategy + consistency of your "mechanics" for other actions besides micro-ing army units (training harvesters, building bases, having enough houses, sending out well- timed scouts, etc).

</comment></comment></comment><comment><USER11> From Wiki: On 30 January 1698, Kidd raised French colours and took his greatest prize, the 400-ton Quedagh Merchant,[18][19] an Indian ship hired by Armenian merchants that was loaded with satins, muslins, gold, silver, an incredible variety of East Indian merchandise, as well as extremely valuable silks. The captain of Quedagh Merchant was an Englishman named Wright, who had purchased passes from the French East India Company promising him the protection of the French Crown. After realising the captain of the taken vessel was an Englishman, Kidd tried to persuade his crew to return the ship to its owners,[citation needed] but they refused, claiming that their prey was perfectly legal, as Kidd was commissioned to take French ships, and that an Armenian ship counted as French, if it had French passes. In an attempt to maintain his tenuous control over his crew, Kidd relented and kept the prize. When this news reached England, it confirmed Kidd's reputation as a pirate, and various naval commanders were ordered to "pursue and seize the said Kidd and his accomplices" for the "notorious piracies" they had committed.[20]

Kidd kept the French sea passes of the Quedagh Merchant, as well as the vessel itself. While the passes were at best a dubious defence of his capture, British admiralty and vice-admiralty courts (especially in North America) heretofore had often winked at privateers' excesses into piracy, and Kidd may have been hoping that the passes would provide the legal fig leaf that would allow him to keep Quedagh Merchant and her cargo. Renaming the seized merchantman Adventure Prize, he set sail for Madagascar.

</comment><comment><USER12> This is an unfortunately terrible article.

It's overly long, convoluted, and the central pirate anecdote works only to obscure the core principles.

There is an attempt here to 'ape' the style of similar, more enlightening pieces, but they've really gotten lost along the way.

<comment><USER13> I found this article quite the opposite of terrible, but maybe I just don't know enough yet. Could you share these similar, more enlightening pieces?

<comment><USER12> Perhaps this is a question of taste.

The style of piece I mean is 'aped' by the article is "What X can teach us about Y". I've read some really good pieces by The Economist in this tradition, that examine historical case studies for modern insights.

Some other examples from HN in that style. I don't think these are particularly brilliant, but I don't think they're fatally flawed. I found that their analogy explained rather than obfuscated.

[http://alexkudlick.com/blog/what-the-four-color-theorem- can-...](http://alexkudlick.com/blog/what-the-four-color-theorem-can-teach-us- about-writing-software/)

[https://spectrum.ieee.org/tech-talk/telecom/security/what- th...](https://spectrum.ieee.org/tech-talk/telecom/security/what-the-count-of- monte-cristo-can-teach-us-about-cybersecurity)

</comment></comment></comment><comment><USER14> I've learned the difference between strategy and tactics through agile development.

During our pre-planning and sprint planning sessions, our PO usually lays out a plan of our priorities (strategy) occasionally he will suggest implementation plans (tactics) as one is want to do for an engineer turned product owner, but I always try to take a step back and ask him "what sort of system do you want".

It's been a few years since he was a day to day developer, he's not as well versed in the new modules and functionality (tactics) that are now built into the system, often times he'll go into tactical discussion but it'll be off base because the resources we'd use to execute those tactics have changed. By trying to understand his intent and strategy I've been able to deliver what he wants but have the freedom to implement it in my own way.

</comment><comment><USER15> For me, the first of the two most interesting points in this account was largely missing: Why exactly did Lord Bellomont turn against Captain Kidd?

The 2nd most interesting point: From Captain Kidd's point of view, and looked at objectively, Captain Kidd was an innocent man! He was carrying out a legitimate privateer commission! He had documents supporting this, but the facts and those documents were suppressed by rich and powerful people. In a way, Captain Kidd was killed by fake news, and his reputation to this day is still affected.

</comment><comment><USER16> Here are some rules of thumb that have helped me design strategies and tactics for my clients:

1) The already mentioned "what" and "how" distinction

2) Phrase the strategy as an already-completed state of being, that is false now but will be true when met

3) Each strategy can have only ONE supporting tactic (which can be a verby action statement)

4) Each tactic can have 2:n multiple sub-strategies.

5) A sub-strategy can support multiple tactics.

You end up with a DAG.

In engineering in particular, the biggest impediment is that technicians tend to describe tactics when trying to describe strategies. I'm often asking, "Yes, but what objective does that meet?" or some such in response. And sometimes their answer is circular - the objective that it meets is that it eliminates the absence of their favored solution. Some people honestly never understand past that point. You have to pick your battles.

</comment><comment><USER17> Can you _feel_ the thoughtleadership?

<comment><USER18> Oh I feel it. But, you know, lately I've gotten much more positive about these types. They are at least trying to be great, in a time were I feel many people don't even try anymore.

<comment><USER19> Are they trying to be great or are they trying to be perceived as great?

<comment><USER18> I think in the head of moste of them this distinction is yet to be discovered. This will hopefully happen with increasing maturity.

</comment></comment></comment></comment><comment><USER20> From the information gathered in the article and from other comments to me the distinction seems: tactic is a granular method for a problem that does not depend on previous tactic. Strategy is the conjuction of methods, tactics or substrategies however high-level your top-most strategy is, that depend on the previous outcome.

Strategy is like markov chain where each state is a subpart of the problem, and each state transfer to other state a tactic with varying success probability. But since the exact definition is not mathematical it will always be a little ambiguous.

</comment><comment><USER21> Threadjack: if this sort of thing interest you, and want to hear other opines about strategy, tactics and their use through history, plus some modern anecdotes: I've been listening to and enjoying _Strategy: A History_ by Lawrence Freedman on my commutes to work the last few weeks.

[https://www.amazon.com/Strategy-History-Lawrence- Freedman/dp...](https://www.amazon.com/Strategy-History-Lawrence- Freedman/dp/1501227726)

</comment><comment><USER22> I would have liked more discussion about how the available tactics shape the strategy. It seems there is generally some circularity that needs to be navigated when constructing a plan to meet a non-trivial goal.

It is also important to acknowledge the higher-level concept above strategy -- e.g the vision, mission, or end-goal. Alternatively, this higher level can be framed as a specific, tangible problem that needs to be solved.

</comment><comment><USER23> Pretty cool pirate story ! But I prefer chess to comprehend strategy vs. tactics.

Tactics:

[https://chesstempo.com/tactical-motifs.html](https://chesstempo.com/tactical- motifs.html)

Strategies: [https://chesstempo.com/positional- motifs.html](https://chesstempo.com/positional-motifs.html)

<comment><USER24> I am decent at chess, as in, I will generally beat any casual player and lose to any professional player. I have no feeling of "strategy" in chess. The only "strategical" difference is that I brute-force pressure newer players by moving pawns up in a diagonal and forcing them into a corner. Whereas vs good players I just do the "right" thing all the time and try to force dilemmas. At that point its just tactics the whole game.

<comment><USER23> So probably will loose against any club player.

</comment></comment></comment><comment><USER25> My old MBA boss would use them interchangeable, saying things like "tactics can be strategic" and "strategy can be tactical." In the dictionary it says Strategy is long term plans, and tactics are short term plans.

Strategy is where you want go / do / be and tactics are how you get there.

</comment><comment><USER26> Ghengis Khan victories and successful conquest was due to the fact his faith in his Generals. He would give them the overall strategy, "flank the opposing army", and expect his Generals to figure out the tactics to achieve the overall goal of winning the battle.

</comment><comment><USER27> I'm not sure there was much ambiguity in defining strategy versus tactics in the first place. This article's convoluted use of "end states" and "actions" was not very helpful in solving this non-issue.

</comment><comment><USER28> Savielly Tartakower's take on the distinction:

"Tactics is knowing what to do, when there is something to do. Strategy is knowing what to do, when there is nothing to do."

</comment><comment><USER29> Anyone notice that the Strategic map has a spell check underline for "Yorks's"?

</comment><comment><USER30> Strategy is what officers and generals do. Tactics are what NCOs do.

<comment><USER31> Who does the logistics?

<comment><USER30> The Platoon Sergeant =)

</comment></comment></comment><comment><USER32> Oh. ACTUAL pirate.</comment>


Ask HN: Will my comments/topics on HN be deletable under the GDPR law? - <AUTHOR> Right now we can't delete anything. <comment><USER2> I think the more interesting question is: Will my comments on HN be deletable _on archive.org_ under the GDPR law?

<comment><USER3> > _I think the more interesting question is: Will my comments on HN be > deletable on archive.org under the GDPR law?_

And what happens if someone quotes my comment?

</comment></comment><comment><USER4> Questions I've had about this:

How does the allowance of comment/submission deletion affect HN being perceived as a "permanent record"? I've always found this aspect of HN to be important to me.

If comments can be deleted selectively, what effect does that have on the permanent record? How many users would be tempted to write something they don't want recorded permanently simply to judge responses before they delete the comment later? (As opposed to requiring that all comments for a user be deleted together, which would likely discourage deletion to remove specific comments.)

Would this give rise to third-party "comment recovery" services that scrape something like archive.org (assuming it is less affected by the GDPR) or maintain their own records to piece together comment threads with deleted comments? Similar to services that archive tweets that might get deleted.

<comment><USER5> >How does the allowance of comment/submission deletion affect HN being perceived as a "permanent record"?

Has Hacker News ever presented itself as a service that maintains permanent records for archival sake, or merely one that chooses not to delete comments? I don't think they have an obligation to serve a purpose they never intended to serve.

>How many users would be tempted to write something they don't want recorded permanently simply to judge responses before they delete the comment later?

Users do that now - there is an edit and delete window for comments, it just has a limit.

>Would this give rise to third-party "comment recovery" services that scrape something like archive.org (assuming it is less affected by the GDPR) or maintain their own records to piece together comment threads with deleted comments?

Probably, such services exist for imageboards.

</comment></comment><comment><USER6> I'd be happy with just being able to redact my username (not this one). I was stupid and registered originally with my real name in my username and I would love to fix.

Alas, I'm not a EU citizen so even sites that do afford GDPR protection probably won't respond to requests from me. Like Facebook [1].

[1] [https://techcrunch.com/2018/04/04/facebook-gdpr-wont-be- univ...](https://techcrunch.com/2018/04/04/facebook-gdpr-wont-be-universal/)

</comment><comment><USER7> It may depend heavily on the content of the comment, but I would guess it wouldn't constitute data _about_ you. Even your username is anonimisable _by_ you.

<comment><USER6> Username is only anonymized on initial signup. There is no way to anonymize a username that already was set that I know of.

<comment><USER7> ability to change username would be a nice feature

</comment></comment></comment><comment><USER8> The right to erasure is not absolute, it only applies in certain circumstances. Here's the UK ICO's advice on it: [https://ico.org.uk/for- organisations/guide-to-the-general-da...](https://ico.org.uk/for- organisations/guide-to-the-general-data-protection-regulation-gdpr/individual- rights/right-to-erasure/)

In the list of "When does the right to erasure apply?", I'm not sure which one you would argue if you wanted to have your HN comments deleted.

1\. The data is still necessary for the original purpose

2\. HN doesn't rely on consent for this data (I don't think?)

3\. I think HN are using legitimate interests, so you could try to object to the processing. I think HN could argue that their legitimate interests override the objection?

4+ Don't apply

So the only one that might work would be point 3. IANAL but it is in HN legitimate interests to keep the comment.

I'm not certain, it seems a bit woolly now I've written it down. It might depend on the seriousness of your objection.

Overall though I think it's important to remember that the right isn't absolute, you can't just have all your data deleted whenever you like. That's not the point of the law.

</comment><comment><USER9> Maybe third time will be the charm. Most respondents here (including me) would like GDPR applied to all companies as it protects end users.

However, US companies with no legal/corporate presence in the EU are ONLY bound by US law.

Take the case of EFF vs Australian patent troll [1]. Though EFF was sued in Australian court under Australian law, it didn't matter because EFF was an American company.

This holds true, otherwise China could sue US media under Chinese law on the pretext of said media being available within China via the Internet.

Similarly, for the EU to go after non EU corporate/legal entities, it'll need to implement a GDPR firewall, much like China's great firewall. It simply cannot push the onus of GDPR compliance on non EU entities with laws that it can't apply on them

[1]: [https://www.eff.org/deeplinks/2017/11/court-rules-effs- stupi...](https://www.eff.org/deeplinks/2017/11/court-rules-effs-stupid- patent-month-post-protected-speech)

</comment><comment><USER9> All those confidently stating that GDPR applies to YC despite it not being a EU registered corporation are guessing at best. None of this has been tested in litigation by US courts.

If US companies (without a EU legal/corporate presence) are beholden to EU law, then US companies are beholden the Chinese censorship laws

<comment><AUTHOR> I have to repeat the same response I already gave you:

Makes no sense at all and the analogy with the Chinese censorship laws is really bad (not sure why I'm reading this analogy again and again on HN). GDPR holds on US businesses only for the EU users. If they don't have EU users they don't have to care about the GDPR. US businesses can have different set of rules for the US and EU market (that's what Facebook plans to do about the GDPR). The GDPR doesn't apply for the US market and the US users. Also US companies can limit their service to the US market if they don't agree with the GDPR.

<comment><USER9> I don't know why you confidently state these things as fact without presedence in litigation in US courts. US companies today that do not differentiate and demarcate their users based on location needn't start doing this, because the internet has no boundaries, and EU laws on EU citizens do not hold or apply to US companies that do not care for the location of the user within their service.

Again - your opinions are just as valid as mine because there isn't a precedent in US (federal) courts. Stop pretending like your 'opinion' is fact

<comment><USER10> Why do you think that US (federal) courts have anything to say about this?

It's an EU law governing companies holding data about EU citizens. It means that EU courts can rule over the activity of such companies, whether the companies come from the USA or elsewhere. Do you anticipate the EU wanting to test the GDPR in a US court? That would be as strange as the US choosing to test a US law in an EU court.

<comment><USER9> Because US companies with no legal/corporate presence in the EU are ONLY bound by US law.

Take the case of EFF vs Australian patent troll [1]. Though EFF was sued in Australian court under Australian law, it didn't matter because EFF was an American company.

[1]: [https://www.eff.org/deeplinks/2017/11/court-rules-effs- stupi...](https://www.eff.org/deeplinks/2017/11/court-rules-effs-stupid- patent-month-post-protected-speech)

<comment><USER11> You can't extrapolate from one court case.

We all agree that GDPR applies to companies that operate in the EU.

Beyond that, there's a big uncertainty. Time will tell how the GDPR will be enforced with regard to companies that don't have a presence in the EU.

My guess is that smaller ventures (like HN) are going to fly under the Radar, while bigger companies are going to comply.

</comment></comment></comment></comment></comment></comment><comment><USER12> HN may cite legitimate business interest and not oblige in deletion.

A more extreme example can be that when you perform a deletion, do you also deep delete from logs and backups of logs? What if you need to keep them for audit and forensic purposes?

Edit: citing legitimate business interest does not necessarily mean it will succeed. Courts will have the final say. EU likely will not enforce smaller entities so soon. We may need to see a few court decisions or better guidelines before we get a better idea how to navigate through GDPR.

<comment><USER9> GDPR rules do not apply to YC - a US company.

<comment><USER12> I thought the legal side would work in a similar fashion as EU-US Privacy Shield?

<comment><USER9> "While joining the Privacy Shield is voluntary, once an eligible organization makes the public commitment to comply with the Framework's requirements, the commitment will become enforceable under U.S. law" from [1].

I'm not a lawyer, but it's fairly obvious that web services built in accordance with the jurisdiction of incorporation take precedence, especially when the software/service makes no customization to appeal to the EU. Maybe one runs a blog with content critical of China, but since they're running said blog as a US corp on US soil, China cannot apply it's laws on the said blog.

[1]: [https://www.privacyshield.gov/Program- Overview](https://www.privacyshield.gov/Program-Overview)

</comment></comment></comment></comment><comment><USER13> The law isn't in effect yet.

But when it is, being able to delete comments by emailing the admins and asking for them to be deleted sounds like it would be in compliance with the law.

I don't know any specifics, but I expect they would probably do that for you anyway, before the law, too.

<comment><USER14> > The law isn't in effect yet.

Sort of, kind of.

[http://dbsdata.co.uk/blog/gdpr-2018-deadline-red- herring/](http://dbsdata.co.uk/blog/gdpr-2018-deadline-red-herring/)

</comment></comment><comment><USER15> So what's the deal with jurisdiction? YC is a US entity and GDPR is an EU law.

<comment><USER16> It applies to all EU citizens, no matter where your operations are based. It would make sense though for most companies to just treat everybody as an EU citizen for GDPR. Unless apparently you're Facebook and don't want to...

<comment><USER15> Ok, so I'm a US entity without EU presence and I violate EU law. Explain how this would impact me?

<comment><USER13> Maybe they can't enforce against you now, but maybe you have investors and they balk at an EU judgement against you, or maybe you plan to one day expand to the EU and now you can't.

</comment></comment></comment></comment><comment><USER17> I sense a lot of misplaced patriotism here, with many comments reeking of almost outrage: "how dare the EU tell us what to do on _our_ soil! We are Americans damnit, this makes us better than other people and allows us to selectively ignore other laws!"

Well, the USA has been doing this to other countries for decades. Your failure to self regulate the protection of the huge volumes of personal data you like to collect plus your governments love to hoover this up has led to this. Deal with it, and be glad that at least _someone_ is legislating this crazy situation we find ourselves in.

<comment><USER18> There's a spectrum and being on either extreme of it isn't good. We're going to simultaneously find ourselves on both extremes and not central at all.

</comment></comment><comment><USER9> Unless some subsidiary of YC is incorporated in the EU, none of the GDPR rules affect YC (a US company).

Additionally, for emerging Saas companies it would be wise to avoid an EU subsidiary, to lower the cost of GDPR compliance

<comment><USER19> Categorily false. GDPR applies based on your users location, not the website/buisness.

Please consider not stating things as facts that you havnt bothered to research.

<comment><USER9> And you are stating theories as facts. If GDPR holds on American businesses with no legal presence in the EU, then Chinese censorship laws apply to us companies outside China. Or do they?

<comment><AUTHOR> Makes no sense at all and the analogy is really bad. GDPR holds on US businesses only for the EU users. If they don't have EU users they don't have to care about the GDPR. US businesses can have different set of rules for the US and EU market (that's what Facebook plans to do about the GDPR). The GDPR doesn't apply for the US market and the US users. Also US companies can limit their service to the US market if they don't agree with the GDPR.</comment></comment></comment></comment>


Ask HN: How do you divide up the work when assigned to a group project at work? - <AUTHOR> <comment><USER2> I would like to propose something with a hint of Agile:

1\. Make all of the work visible by writing out the major thinks to be done (Stories) 2\. Split the stories to as small isolated stories as possible. 3\. Find stories that have dependencies to other stories. 4\. Put Stories in priority order. What story would benefit the project the most? 5\. Add tasks to the stories how to complete the story. 6\. Call out what stories people in your group are interested. People should voluntarily pick something to do (Self organizing team). 7\. Have multiple members working with the same story to get the stories done as fast as possible (Through out put). 8\. Make team communication easy (WhatsApp group, facebook group, etc. Pick your favourite tool) 9\. Daily or weekly checkpoints, depending on the deadline. (Communication) 10\. Agree on what you are going to do before next meeting. (Commitment) 11\. Make positive pressure by calling out I completed task X or I completed the story Y when you actually complete it. (Communication) 12\. Focus on communication and getting shit done.

</comment><comment><USER3> By calling out

1\. Break the work in to logical isolated components 2\. Divide and conquer. Assigning Drivers for each logical component 3\. Mapping the dependencies between these components 4\. Weekly checkpoint mechanism to track the status 5\. Finally plan for execution with clear dates</comment>


JQuery WormHole - <AUTHOR> http://opensource.rotify.com/wormhole/ <comment><USER2> Interesting, but when I saw the two regions I immediately wanted to drag an object from one region directly to the other, rather than out the bottom of one into the top of the other. The wormhole seems interesting for cases similar to the stated use case (scheduling across day boundaries), but for the common case of moving items between different regions, some mechanism for dragging directly between the two regions would make the interaction more smooth.

</comment><comment><USER3> When I drag the red rectangle around in the left container, bits of it sometimes get "stuck" in the right container. I'm doing this in Chrome 11.0.696.71 on Ubuntu 10.04, if that helps.

<comment><USER4> Also, there's a bug in which the order of objects (z-index) on the left container doesn't exactly match the order on the right.

Example: <http://www.cl.ly/2B062I2t2k210i0W1m0f>

Sonic is over Einstein on the left, but under on the right.

</comment></comment><comment><USER5> I'm mildly annoyed when I see parts of a portmanteau capitalized. It's _wormhole_ , not _worm hole_ , so the CamelCase would be _Wormhole_ , not _WormHole_.

A really neat idea, though!

<comment><USER6> Also, the title of this post should read "jQuery," not "JQuery."

<comment><USER7> Except the first letter of a post on HN is automatically capitalized for you.

</comment></comment></comment><comment><AUTHOR> I have no idea how I would use this but it is so cool

</comment><comment><USER8> Cool. Would be nice to be able to specify the edges that "connect" between the two containers... would definitely be useful in either education apps or a more visual way to do multi selection+order lists (aka List Builder).

</comment><comment><USER9> Looks cool, but it doesn't work at all on an iPad. Just something to keep in mind if you use this as an integral part of your UI.

</comment><comment><USER10> Sad that I can't make it work with my iPad.

<comment><USER11> It works perfectly on my 'Galaxy'.

</comment></comment><comment><USER12> > (c) Copyright John M. Hope 2011. Released under the Don't be a Dick (DD) > license.

</comment><comment><USER11> That is cool.</comment>