How to use Photoshop in a VM on Ubuntu - <AUTHOR> http://www.prtfl.io/muellerwolfram/blog/2013/1/23/how-to-use-photoshop-in-ubuntu <comment><USER2> It is mainly "How to use VirtualBox on Ubuntu to run Windows, then install Photoshop and use it."

I mean, come on!

<comment><USER3> It does provide detailed steps for a solution to a problem. I'm sure many people will appreciate that.

<comment><USER4> Many people... on Hacker News or eHow?

<comment><USER5> I've met more than a couple of programmers who are otherwise so computer illiterate that you pretty much have to walk them over and sit them down in front of a text editor.

Most people around here seem to have somewhat decent system-admin skills, but there's also lots of students and even professionals who just haven't messed around with virtualization very much.

I'm pretty good at using VMWare to set up Linux systems in Windows, but I haven't tried the opposite yet. Sure, I could probably figure it out, but it's nice to have this guide to fall back on if something goes wrong.

<comment><USER6> > I've met more than a couple of programmers who are otherwise so computer > illiterate

I have not witnessed this myself but I have heard countless stories from friends/colleagues in the same vein - there seems to be indeed a big gap between one's coding abilities and the overall computing knowledge.

</comment></comment></comment></comment></comment><comment><USER7> I was doing something similar but end it up ditching the whole thing since I'm running CS6 on Wine without any problems (except a buggy lasso tool): <https://gist.github.com/4610671>

It checks for the VM state and waits the system to be ready, so you can turn off the vm if you want. Feel free to adapt to your needs.

<comment><USER8> Do you have tablet pressure in CS6? Photoshop has run under Wine for years, although tablet pressure hasn't worked since CS2 AFAIK.

<comment><USER7> I don't own a drawing tablet, sorry. And yeah I know: [http://appdb.winehq.org/objectManager.php?sClass=application...](http://appdb.winehq.org/objectManager.php?sClass=application&iId=17)

</comment></comment></comment><comment><USER9> Thanks, muellerwolfram. This guide is excellent and dear to me as someone once stuck in the exact same position described in the opening paragraph. Indeed, flitting between operating systems was so natural that even now I instinctively want to take issue with your "dual boot sucks" but if I could use one OS for everything (and I do mean "everything", other OS emulation included) then I would, so quite simply: _you are right_.

For what it's worth, I chose a different route in solving my Photoshop dependence: I forced myself to learn alternatives. But I don't mean just that I learned GIMP (which I recommend, though completely sympathise with the "Regarding GIMP" section); I mean that I made it my goal to be someone who can take new software and ascertain how to do with it what I already know how to do in my "native" habitat, even if the method is convoluted or requires learning a new paradigm. This goes back to days of using elementary school computers with nothing more than MSPaint and enjoying that hit of satisfaction from performing a manual "crop": make a selection, copy it, minimise the canvas to a handful of pixels, ctrl+V, MSPaint automatically resizes the canvas to the pasted selection, BLAM it's a crop! (We've all been young, when figuring these things out for oneself is the next best thing to being a Jedi - and that said, if anyone has their own method for cropping in 2000-era MSPaint I'd love to hear it). Likewise in the "new paradigms" category, learning about Turing machines and formal data structures changed _everything_ for me as a BASIC-minded programmer.

Since adopting this generalised view I have found it's helpful as a core principle: I can't always count on the environments I know, so learning to adapt is crucial. This applies to programming, competitions, and even romantic partners. In the infinite indulgence of our field to give everything a "cool" name, I refer to this as the "Peter Petrelli" skill.

Quite apart from arguing against using Photoshop in Ubuntu, it returns to your piece. Sometimes short of coding something up from scratch there really _is_ only one program that does what we require to solve a specific problem, and sometimes the operating system _is_ fixed. Knowing how to solve the equation for these variables is part of being an adaptable and valuable agent. Great article.

</comment><comment><USER10> Is anyone running the opposite setup? That is, Windows as the primary OS and Linux in a VM. I'm looking to upgrade my laptop soon and don't want to pay Apple's high prices, so I'm looking at 1080p Windows laptops.

I'm considering Windows as the base OS and a Linux VM for development stuff. I do web development, including design work, so I would need the ability to run Photoshop and other tools. But for running my ruby stuff (Rails, Spork, etc), I think a Linux VM would be ideal.

Summed up: How do others live in the Rails dev world when not using Mac OS?

<comment><USER11> I did exactly this for many months, but then realized that I was spending 90% of my time in the VM and it just made more sense to run the linux install native.

My laptop is my development machine, so I usually have my desktop (Windows, since it doubles as a gaming rig) in reach if I need Windows for Photoshop or Visual Studio or something else briefly and don't feel like firing up a VM.

<comment><USER12> I don't see any advantage to running the install native. I've actually had more issues in native installs than through VMs.

As a side note, if anyone is interested in running an Ubuntu desktop VM, I highly recommend Lubuntu. It's extremely lightweight and fast, it's perfect for VMs.

<comment><USER5> How do you configure your VM once you install it? I seem to have a lot of performance issues unless I get a pre-configured VMWare image. The only image I've ever gotten to run as fast as a native install is the Official Backtrack VMware .iso.

I've installed several distributions, including Lubuntu, along with the VMware tools, but I always get really poor performance when I try to set up my own VMs.

<comment><USER12> 2 processor cores and 2G of memory is all mine needs to perform well. Perhaps my level of "fast enough" is much slower than yours, but my VM doesn't feel any slower than the host.

<comment><USER5> I have a 2nd gen i7 and 16gb on the host. I think I tried everything up to 8 cores and 4 gb, but it still seems like everything is slow.

So you don't do anything special to optimize it?

<comment><USER12> No, nothing at all. I have an ivy bridge i5, 8GB 1600, and two old nvidia geforce 8600 under sli. Perhaps the people at /r/techsupport could help. Full screen in my VM feels just like booting into Ubuntu - no lag at all.

</comment></comment></comment></comment></comment></comment></comment><comment><USER13> The requirement of 100% stable is somewhat irritating. As far as I know Photoshop isn't even 100% stable under Windows.

<comment><USER14> On the 100% meme, VirtualBox is apparently regarded as 'tainted crap' by kernel developers, re: [http://www.phoronix.com/scan.php?page=news_item&px=OTk5M...](http://www.phoronix.com/scan.php?page=news_item&px=OTk5Mw)

<comment><USER13> Personally I'm a big fan of KVM. However it has flaws too, unfortunately.

</comment></comment></comment><comment><USER15> Is Photoshop really 100% stable on Windows or OS X? Still, very nice guide.

<comment><USER16> On the Mac you can run it constantly and it won't ever crash. It's one of the most amazingly reliable pieces of software out there.

<comment><USER2> See: <http://log.maniacalrage.net/tagged/cscr>

It is not "one of the most amazingly reliable pieces of software out there" by any stretch of the imagination.

</comment></comment></comment><comment><USER17> This should rather be titled "How to make an application running in a vm look native on Ubuntu". The "seamless mode" was meant for just that.

</comment><comment><USER18> What about graphic card support? Photoshop uses it extensively and VirtualBox support was really poor last timeI checked.

</comment><comment><USER19> The main problem with using a VM is that you won't be able to open PSD files directly from your file browser. Having to switch to Photoshop and browse for the file would end up being a huge time sink in the long term.

<comment><USER20> Did you actually read the article? It seems he solved that too.

<comment><USER19> I'm talking about a native 'Click to open' function. The article only mentions sharing a folder to make it visible from the VM.

<comment><USER20> He implemented click to open too. He states that goal at the begining: "should be searchable and launchable from Ubuntu dash." If you read the rest you'll discover how he implemented that.

<comment><AUTHOR> gmq is probably talking about opening psd files in your Ubuntu file browser by right clicking them and selecting "open with Photoshop". That's not possible with the method i'm describing in the article. But it's something that's bugging me too and I'm working on a solution. I haven't quite figured it out yet though.

</comment></comment></comment></comment></comment><comment><USER21> This is a great guide. I've invested heavily in MacOS, so I'll probably need to figure out an alternate approach.

One thing struck me as odd: Why make a `photoshop` alias if you're going to have the shell script in `$HOME/bin`?

<comment><USER22> Well, on OSX, there's a much easier approach: just.... run the native version of Photoshop.

<comment><USER21> Right... The same could be said for this article too, but you missed the point.

I'd like to run Photoshop on my linux workstation but I don't have Windows.

</comment></comment></comment><comment><USER23> Photoshop in a VM?

is that not a horribly laggy experience?

I have a Core2 Quad Q6600 based computer and when I have run Windows inside a VM it is too laggy to use as a serious desktop beyond using a few basic apps. Doing 1080p video is choppy too.

Is there something about newer CPUs such as i7 that makes virtualisation hugely faster and more responsive?

<comment><USER24> >> Is there something about newer CPUs such as i7 that makes virtualisation hugely faster and more responsive?

Yes.

<http://ark.intel.com/Products/VirtualizationTechnology>

Running the Android Emulator on my i7-3770k is smooth as silk with Intel Virtualization turned on. Without IV it's like rubbing my face on sandpaper.

<comment><USER25> Sorry for hijacking the topic but I need to ask something.

I recently purchased a 3770k and all other parts arrived today. The documentation[1] says 3700k supports Vt-x but not Vt-d. Does that affect anything at all ?

1\. <http://ark.intel.com/products/65523>

<comment><USER24> VT-x is for hardware virtualisation. VT-d is allows direct pass through of device (PCI, etc).

VT-x is essential, VT-d is 'nice' because it lets you hook PCI devices directly into the VM (good for some servers) but in general you don't need it.

3770k is a very nice chip! I love mine. Easy to overclock too.

</comment></comment></comment></comment><comment><USER26> If you don't mind using Photoshop CS2, you can get it from here for free.

[http://www.techspot.com/downloads/3689-adobe-photoshop- cs2.h...](http://www.techspot.com/downloads/3689-adobe-photoshop-cs2.html)

CS2 runs perfectly with Wine (as far as I've seen).

</comment><comment><USER27> It's not "How to use Photoshop in Ubuntu", it's "How to use Photoshop in a VM"

</comment><comment><USER28> Care to do one for Arch Linux? I am currently learning Arch so I can make the switch and would really love it if you did an article on the subject. Thank you for your work by the way.

<comment><AUTHOR> the steps for arch would be almost identical. the desktop entry specification is a standard that is used by arch as well:

<https://wiki.archlinux.org/index.php/Desktop_Entries>

how much it integrates depends on what desktop environment you are using. gnome and kde are using the same desktop files as far as I know. So it should work. Haven't tested it though.

You could also use unity with arch: <https://wiki.archlinux.org/index.php/Unity>

</comment></comment><comment><USER29> Might as well just VirtualBox step and just install Windows instead of Ubuntu...

<comment><USER30> But what if for all the other applications, for example out of security and performance concerns and by desire of not having to reboot every patch- tuesday, he prefers to not run Windows?

<comment><USER29> Both of these things were addressed in Windows 8.</comment></comment></comment>


Adult Swim: Elastic Man - <AUTHOR> http://www.adultswim.com/etcetera/elastic-man/ <comment><USER2> how is this made??</comment>


Cooking Patterns - <AUTHOR> http://alexey.ch/cooking-patterns <comment><USER2> They aren't called patterns, they are called techniques.

There's tons of books about all the techniques you can use. When you understand some of the basic techniques, it's apparent what techniques are being used when you read a cook book. The problem is, even if you only got as technical as saying "make a velouté sauce" in half the cookbooks you see, then people would freak out if you didn't tell them how.

When you learn the fundamental techniques, you can easily extrapolate them and realize half the recipes you read in your cookbooks are (necessarily) overcomplicated and can be reduced (no pun intended) to a few techniques.

Jacque Pépin is an good resource for beginners and intermediate cooks to learn french techniques. You can find techniques online and in his book New Complete Techniques. The CIA book is good, but a big gripe with the CIA book and the FCI/ICC book (Fundamental Techniques of Classic Cooking) is that the portions are pretty huge because they are for professional chefs and caterers. That aside, they are still a good resource for learning that. IIRC the James Peterson "Cooking" book is pretty good at basic techniques.

The Joy of Cooking is still one of my favorites, because the recipes are basic (but delicious), and because it's a compendium of recipes, it builds on itself more than nearly every cookbook you can find. So the recipes include in the ingredients do say "2 cups béchamel (Page 400)", and you can backtrack to that recipe and learn.

One problem with these books people don't usually like is the basic recipe isn't often fancy enough to be novel. It's kind of up to the cook to understand "Oh Coca-Cola would be a good substitute for the acid and sugar here" or "maple syrup would be better than brown sugar here" or whatever.

For that, it's nice to have McGee's "On Food and Cooking", as it goes into details about ingredients you've never really thought about.

<comment><USER3> > They aren't called patterns, they are called techniques.

I totally agree. That's weird to see the n+1-th geek discovering something people have been doing since the dawn of humanity.

Damn, we're just talking about basic cooking. I understand many of us didn't learn the basics, but nonetheless, it's basic.

Imagine somebody saying he discovered "patterns to ride a bicycle" and explaining how to go from A to B with a regular bike in the most obvious fashion...

<comment><USER4> I think it's great that someone is trying to make cooking more approachable by using 'geek jargon'. Who cares that it's slapping a different label on an old thing?

<comment><USER5> Confusion when you meet a chef and try to learn something or at least commiserate about cooking and what he calls a béchamel you try to provide ... a functional programing lambda statement based on map and reduce statements applied to lecithin proteins using heat as an anonymous lambda function. Sorta.

Fooling around as a mental exercise is fun. Hey look at this, a floating point multiplier in BF! The problem is mis categorizing or mis titleing it as "learning floating point math". Describe Ops activity as a "insights from looking at cooking thru a programming lens" would sell a lot smoother than learn to cook using c++ design patterns.

There is a minor area of danger in that there are many ways to hurt yourself cooking but working slowly with common sense should prevent serious accidents (I hope?) Perhaps a good analogy to "don't write your own crypto" would be "don't invent your own canning recipes" or "don't invent your own deep fat frying procedures (unless you like burn wards)"

</comment></comment></comment></comment><comment><USER6> To those of you who got into cooking later in life, consider your experience if you [ever] have kids. You will enrich the rest of their lives if you involve them in the kitchen and teach them some of what you know.

I learned how to cook by helping my mother and father for as long as I can remember. I don't honestly know when I started but it was definitely before 10, and likely around 7 or 8 when I could make meaningful contributions and not just get in the way. It has benefited me greatly and I should really make a point of thanking them more often for it.

Sure, I might have groaned when being tasked with preparing my own school lunch, or being asked to help peel potatoes, but through the years I picked up lots of valuable experience without even realizing it. I learned these patterns that the author talks about, even if I didn't have a word for them.

Cooking is one of my greatest pleasures and, to be honest, I feel sad that some people see it as only a means to an end.

</comment><comment><USER7> This is the premise behind Ruhlman's books _Ratio_ and _Twenty_. Both are great.

Another interesting prism through which to look at cooking is the format used by the CIA's _New Pro Chef_, which covers technique, still focuses on recipe, but also introduces evaluation criteria for each dish: you're not simply following steps, but also judging the outcome carefully, which forces you to focus on what you're actually doing.

And then there are recipe books that use recipes as a vehicle for teaching a broader technique. A good example would be _Sauces_, which is compromised of recipes for sauces, but is a survey of the techniques involved in saucing a dish.

</comment><comment><USER8> I really like Mark Bittman's How to Cook Everything Series for this. It has a ton of recipes, but there is also a decent amount of discussion of the concepts behind recipes and multiple ways to alter most recipes, as well as tables that make this sort of concept explicit (e.g. There is a table for soups that has a list of well known soups with a column for the liquid base, protein and vegetable). I rarely pull recipes directly out of this book, but it has completely changed the way I think about cooking.

<comment><USER9> Second that advice for Mark Bittman's book. The main advantage (for me) is that it briefly discusses the basic recipe (and some of the reasoning behind it), and then mentions 10-20 variations w.r.t. ingredient alternatives that are worth a try.

</comment></comment><comment><USER10> That's funny you say that. I am a computer programmer and I also do a once a year pop up restaurant. I cook on the level of some very good chefs without the formal training so I'm more wasteful and slower but create great dishes just the same.

I started thinking of design patterns in cooking when I took a class on stocks, soups and sauces. In traditional French cooking you see the bones, shells and carcass of any animal you cook used to make a base liquid that can then be transformed (refined) further.

Take a chicken for example. I'll debone it and use the bones, feet, head and excess skin to make stock with it. I'll either grill it before dipping it in water to extract the flavour or do a "white" stock by dipping in water without browning. To this I'll add aromatic veggies and spices. Once you understand how to extracts taste from the carcass you can expand on that and concentrate the flavour by reducing it and then you have a liquid with many good properties. You can then apply the same technique to any mammal, bird, fish or seafood you can think of.

Perhaps my favorite "cooking pattern" is the demi-glace. This takes the (usually veal) stock, concentrates flavours further with tomatoes, mushrooms and a standard mirepoix but adds a roux to thicken it. You can then use any tasty liquid you can find to mix with it and you have an instant high quality sauce. I've made demi-glace that I've used for mushroom sauce, bordelaise (red wine), tarragon poultry sauce, porto and cherry sauce, etc...

The reality is that a lot of the idea of patterns have been codified by the late Auguste Escoffier [http://en.wikipedia.org/wiki/Auguste_Escoffier](http://en.wikipedia.org/wiki/Auguste_Escoffier). His influence is huge in the cooking world. Kitchens and cooking just wouldn't be the same without him.

<comment><AUTHOR> Sincerely saying, I have never made a demi-glace, although I should have. Will try after studying the process, thanks for sharing!

For me, Escoffier's book is probably comparable to Bjarne Stroustrup's "The C++ Programming Language", at least by complexity of the material, so I am somewhat afraid of using it. As far as I know, "Le Guide Culinaire" is used as a source of recipes for the Master Chef exam, for example.

Maybe I should try approaching it again with some patience. Cheers!

</comment></comment><comment><USER11> Michael Ruhlman's _Ratio_ espouses a similar philosophy: that recipes can be looked at as patterns which you can build on.

It's a great idea, especially because it encourages experimentation.

</comment><comment><USER12> I couldn't agree more. So much so that I wrote the O'Reilly book on the topic: [http://www.cookingforgeeks.com](http://www.cookingforgeeks.com)

<comment><USER13> It's a great book! I use it often.

</comment></comment><comment><USER14> As someone who's recently started cooking as well, thanks for putting into words something that I've been struggling to do myself.

Hoping to submit a pull request soon.

My go-to pattern is stir-fry:

\- Aromatics (ginger, garlic, onions)

\- Crispy vegetable (red/green/yellow Peppers, snow Peas)

\- Thin cuts of meat

\- Absorbent starch (Vermicelli, egg noodles, steamed rice)

\- Sauce (Cornstarch, soy sauce, oyster sauce, fish sauce)

</comment><comment><USER15> Nice article! I definitely think this is the right approach for absolute cooking novices who also happen to think like engineers. For those who haven't learned to think like engineers, this might seem... boring. I won't say that you're taking the discovery out of the equation, but I think you're distilling this process. Discovery is important as a novice because it inevitably helps build your palate.

Patterns, in this particular viewpoint, seem to have a limit with regards to becoming a better cook. Sure, you're going to learn how to cook, but you won't really know why things come out a certain way. Rather than use the analogy of a pattern, I think it would be more advantageous to break meals down into flavor profiles. These are the building blocks AND personas of food. By learning how to make something taste salty, sweet, sour, bitter, spicy, or even French-y, Chinese-y, Mexican-y, Mediterranean-y, etc, etc, you can take very foundational dishes and produce countless variants.

Anyways, I think it would be really helpful for you to check out how the French structure their mother sauces. They are very foundational and develop into so many different things. Not unlike what you're talking about, but allowing for unlimited creativity, engineering.

</comment><comment><USER16> I'm also a coder who has recently started attacking his kitchen incompetency! (but on the order of months ago, not years ago...) I prefer baking because I can rigorously follow directions in the worst case and get something acceptable, and because it feels a little alchemical and magical.

Something I wish recipes would discuss is "why do we do X?" or "what would happen if we did not do X here?" Like, say, the recipe calls for one teaspoon of salt. What if we added zero, or two? I think this is a little different from the pattern recognition discussed in the article.

These explanations would help beginners understand what is essential and what can be omitted (if necessary) or substituted. It would also foster creativity in the learning process. I don't want to experiment blindly and fail and have spent lots of time and effort on something inedible, especially given that I'm a novice who needs all the encouragement he can get. But if I understood the reasoning behind a particular step in the recipe, I'd be more willing to mess with it.

<comment><USER4> A friend of mine once remarked that I would probably love baking, and that I might want to start with that before I move on to cooking. Why? Because, at least according to him, baking is more like chemistry, where doing it right means doing things _exactly_ right, whereas cooking is generally more improvisational and free-form. For 'programmer types' he figured the former would be easier.

I took his advice, and baked a really good cheesecake. I would like to say I was hooked and kept going, but I didn't. But it was the first time I started to see the fun of making food, and I'm sure I'll pick it up again soon.

<comment><USER16> I agree with that distinction. Also, making food for many people is much more rewarding than making food for just yourself. (When I do the latter, it's lots of work for 5-10 minutes of payoff, and I often find myself wishing I'd ordered instead.)

Many baked goods are easy to toss in a box and bring to the office or to friends' places. You're not going to bring a tureen of polenta to work and tell your colleagues to dig in for a midday snack.

<comment><USER17> > Many baked goods are easy to toss in a box and bring to the office or to > friends' places. You're not going to bring a tureen of polenta to work and > tell your colleagues to dig in for a midday snack.

A nine-pound pork butt on the other hand...

</comment></comment></comment></comment><comment><USER18> I am a beginner cook and was moving countries. I had to start the kitchen setup from scratch. So, I got a Thermomix.

It's very expensive but was a great match for my use case. Usually, the target audience is mothers with multiple kids, especially when kids have allergies. But to me, it was a gadget that allowed to select temperature, time, and strength of pulverization/cutting/mincing. It also has built-in scales. And it came with recipes that were using absolute quantities for weight and all settings, so no guesswork required.

So I could follow the recipe/algorithm to the letter and get perfect result. Then, I could slowly learn _why_ that happened in the repeatable conditions. Then, I could start change things and see what happened. And adapting non- Thermomix recipes based on understanding the temperature/time/cutting axis.

So back in September 2014 I was looking up how to fry an egg (seriously! Not, apparently, at the highest heat). By now, I've made risottos, soups, breads, sweets, chocolate, smoothies, Indian Chai, some Russian specialties (hrenoder), etc.

I am feeling a lot more comfortable in the kitchen. And, since I eat at home most of the time now, Thermomix - nearly - paid for itself already.

So, the kitchen equipment is also about patterns, not just the ingredients/steps.

Bad news: Thermomix is not available in the USA. Not yet anyway, maybe in a year.

</comment><comment><USER19> I saw "Ratio" by Ruhlman mentioned below, but also wanted to mention "The Flavor Bible". Technique is half of the battle, and flavor combination is the other. The Flavor Bible is basically a encyclopedia for food combinations. Look up a food and see what goes well with it. Eg apples go well with cinnamon, pork, and nuts. It's based on interviews with chefs, but I've also built a version myself with recipe ingredient analysis.

There's scientific analysis that can be done on flavor compounds in foods as well to find complementary flavors, foodpairing.com is working on this.

<comment><USER7> The Flavor Bible is interesting (and so badly wants to be a web app). There are things it's _amazing_ at; for instance, if you have one or two base ingredients, The Flavor Bible will generate thousands of plausible soup ideas. I don't find that it informs my cooking all that much though; the most important combinations are also very well-known.

</comment></comment><comment><USER20> Julia Child built a career out of using recipes to teach reusable techniques, starting here [1] and culminating with [2]. In each of these books, she embeds what a software person would call a pattern in each 'master recipe', illustrates with a handful of variations, and offers suggestions of applications.

[1] 'Mastering the Art of French Cooking' [2] 'The Way to Cook'

</comment><comment><USER21> Agree 100% with the approach described in the post. The most useful cookbook I own is The Modern Cooks Handbook[1] which follows the pattern approach.

[1]: [http://www.amazon.co.uk/Modern-Cooks-Handbook-Lynda- Brown/dp...](http://www.amazon.co.uk/Modern-Cooks-Handbook-Lynda- Brown/dp/0718138155)

</comment><comment><USER22> Good to see coders getting excited about cooking but if we now call technique and process "pattern" then I wonder what else is a pattern. Pretty much any creative process would end up being a pattern of some sort so the term ends up being meaningless.

</comment><comment><USER23> I believe this is actually how professional cooks discuss food.

For example the various components of a soup all have their own names.

* Stock

* Mirepoix (flavour base eg. carrots, onion)

* Bouquet Garni (more flavourful herbs eg. basil, pepper)

* Protein

Replace the various ingredients in these component categories and you get different soups.

(I am not a professional cook)

</comment><comment><USER24> just putting it out there: this idea is not new. [http://www.huffingtonpost.com/linda-buzzell/pattern- recipes-...](http://www.huffingtonpost.com/linda-buzzell/pattern-recipes-the- cure-_b_811588.html)

</comment><comment><USER25> But the recipe is the solution, the finely crafted source code, that we have to deploy. Cooking may be more similar to DevOps than software engineering.

<comment><USER11> Throwing spaghetti code over the wall?

</comment></comment><comment><USER26> I would say the example with different kinds of fritters is more a demonstration different implementations on an interface than of cooking patterns

</comment><comment><USER27> Nice! Now we just need to be able to deploy lunch with `git push table`

<comment><USER28> And for that after dinner trick 'git pull tablecloth'.

<comment><USER9> Might try that once with "git checkout new-trick"

</comment></comment></comment><comment><USER29> Cooking is really simple. Lets take meat:

Tender - keep the juices inside. Heat to the minimum possible safe temperature on the inside.

Tough - nuke it till its gelatinized.

Brown generously because people love that taste.

Salt is your friend in 1-2% range.

Just by knowing these four things you will be able to convert any cut of meat into something edible with whatever equipment you have on hand.</comment>


Configurable Memristor-Based Finite Impulse Response Filter - <AUTHOR> https://arxiv.org/abs/1904.05279 <comment><USER2> I write FIR filters in software all the time, it's plenty fast for what I do. Why use analog circuit elements to emulate a fundamentally digital technique? Build an analog circuit with similar filtering characteristics. You can even design it digitally and convert it to analog using the bilinear transform.</comment>


Caring about things - <AUTHOR> http://romymisra.com/caring-about-things/

<comment><USER2> I'd like this to be true, but I think it's a very utopian ideal. If people care as much as the founders do about the company, they're going to get very disillusioned when the founders head in a different direction to the one they'd take the company _and they get no say in it_. Because although they're as invested in the company as the founders, they don't have the power.

I also wonder why (apart from the charity sector) employees would be that invested. They don't get the financial rewards or the kudos that the founders do, so why invest their soul in someone else's problem?

<comment><USER3> > why invest their soul in someone else's problem?

Depending on their age, they might not know better. Young developers are sold the ideal of changing the world through passion, but still end up as just employees. I still remember the first time a company offered me options instead of an annual raise, and a more experienced coworker quietly informed me why they did that. My enthusiasm was quickly brought down to earth.

<comment><USER4> Wait, why did they offer you options instead of a raise? I just want to hear why that reason tempered your enthusiasm. (I don't get excited about options since I have to buy them, but they can be more incentivizing, at least for me, than salary in the rare case that they are given on fair terms.)

</comment></comment></comment><comment><USER5> I agree with a lot of stuff said here - caring, or intrinsic motivation, is one of the most powerful attributes you can hire for. There are, however, a plethora of other attributes out there, and restricting your potential hires to the tiny subset of people that are as insanely motivated as yourself seems like a recipe for never hiring anyone and paradoxically never actually solving any problems.

Specifically I don't think points 3 and 4 are quite on the money - how much you care is often based on how much you perceive people care about you, and equity can be a pretty big signal of that. Additionally, I think people who care can be quite contentious.

Still, a good enough point to talk about. Apparent enthusiasm is one of the best things you can select for, when you see it, and it can make up for a lot of other things that might be lacking.

<comment><USER6> > Additionally, I think people who care can be quite contentious.

People who care will challenge the status quo. This is often deeply unpopular, especially in larger orgs. If you don't empower the people who care to make positive changes to the status quo, then those people will give up and stop caring. And then probably leave.

</comment></comment><comment><USER7> You can learn all the math in the 'verse, but you take a boat in the air that you don't love, she'll shake you off just as sure as the turning of the worlds. Love keeps her in the air when she oughta fall down, tells you she's hurtin' 'fore she keens. Makes her a home.

</comment><comment><USER8> Please place spaces after , : and - and reduce the width of the text. It's very hard to read this way.

<comment><USER9> Caring about typography :')

</comment></comment><comment><USER10> While this is a great thing, make sure you support these valuable team members by ensuring the rest of your team also care just as much.

I've had the pleasure to be a part of a team where I was given pretty much free license to do as I saw fit simply because I cared as much about the product as the founders.

But hiring just one or two champions and filling in the gaps with mere enthusiasm or brute force is going to put an enormous strain on your champions.

</comment><comment><USER11> I used to hate campaigns that would just "Raise Awareness" because I thought that raising awareness never fixed anything. After a while I realized it was the first step to getting people to care. Presenting a solution before anyone cares doesn't fix anything either. I'd put "Do what it takes to solve the problem" instead of a blurb about IQ, but otherwise I agree.

</comment><comment><USER9> This is well good. There is just one thing that can be an issue with people who care. Are they caring about the right things at the right time? Suppose that's the manager's role to help focus the team.</comment>


Learning from Wakemate - Smart announcements - <AUTHOR> http://danieltenner.com/posts/0014-learning-from-wakemate.html <comment><USER2> I'm a twenty-seven year old computer programmer. I mention this so that you don't think I'm biased when I say: twenty-something male techies are some of the worst customers on the face of the earth. I don't know why we spend so much time trying to sell to ourselves.

It is not my intention to criticize any person as an individual here, but let's review: pre-orderers of this product have _five dollars_ on the line. That will not even buy you a value meal at McDonalds these days, but people appear to have gone ballistic that the company they married (i.e. gave five dollars to) might -- wait for it, massive betrayal approaching -- _charge money_ for products they had not previously announced.

The people who cause me the most amount of difficulty are poorer customers (I get a few, mostly older folks on fixed incomes), because a) they assume everyone is out to cheat them and b) any difficulty they have with a $25 transaction represents a Catastrophic Life Event to them whereas people with a bit more in the bank account just put it on the checklist of minor things to address today.

Twenty something techies are a curious bunch, with the purchasing power of employed professionals and the money sensibility of peasants in the middle of a famine. It is madness: we spend our days talking about XYZ got a $N million round of funding and investment advice for the $20,000 made last month and, wait, WAIT, PAY MONTHLY?! I DON'T PAY MONTHLY! Except for my $600 iPhone ($100 a month), Internet access ($60 a month), $15 a month for WoW, $15 a month for Netflix, etc etc but you want me to PAY MONTHLY WTF BBQ.

<comment><USER3> I was once cheated out of $15 by a phone provider. I spent $500 and a lot of time and went to court to get the money back, which I did. I also got my costs recouped. I have spent more than $500 on karaoke in Asia without blinking. Money does not matter to me, but nobody fucks over Max. I'll chase it down till I get my money back. To quote Arnold: nobody gives me a raw deal.

It has never been about the money.

<comment><USER4> Story:

At one point, I realized I was fighting a lot of battles over principles that were taking time away from me that could've been used on objectively _much_ better pursuits.

Despite realizing this, I had a hard time cutting it out.

So, I put a post it note on the wall in front of my desk, with big letters - "WIN"

Anyone who came across it misunderstood. They thought it was something competitive. Nuh-uh, just the opposite. Whenever I saw the note, I was forced to ask myself, "Well, what _is_ winning? Is it winning an argument? Or is it spending my time building the best life possible for myself?"

So I got a particularly unjust parking ticket, total BS, for like $60 in Los Angeles. And I'm getting pictures, and all gearing up for a fight, and then I think - "What the fuck am I doing? I could make a couple hundred dollars in the time it takes me to fight this BS." And so I gritted my teeth, paid it, and went and made a couple hundred dollars instead, doing enjoyable work for good people, and then I had more money and less stress.

Yeah, the jerks get $60 of revenue they don't deserve, but my goal isn't to make them lose, it's for me to win. Spending three hours fighting California for $60 is not winning. I understand principles, I'll never let a betrayal or extortion attempt work, but making a fuss over $5 when presumably you could freelance yourself at $35+ per hour is... well, what is winning? Everyone answers the question differently. But it's worth some serious reflection on when there's actions that advance every conscious life goal you have more than whatever the petty nonsense du jour is.

<comment><USER5> my post-it says "what are you optimizing?"

Righteousness, while a virtue in Confucianism, is seen as performing an act of self-interest in Taoism.

</comment></comment></comment></comment><comment><USER6> I'm not sure why everyone is so up in arms about this. I was actually very pleased when I got the email. Yay, they haven't folded! Yay, I'm going to get my WakeMate! Yay, they're giving me a free month of their premium analytics (which implies that there's a standard analytics that's free, just as previously advertised). This seems like a tempest in a teapot to me.

<comment><USER7> Yeah, I really don't think there's a problem with the actual content. Their announcement was just very poorly worded. You'd think that, being a Y Combinator company, they would have access to resources that would help avoid such customer relations blunders.

Actually if you read the site, I don't think they ever advertise that any of the analytics will be free: "After a night's data is collected, it is automatically uploaded to our servers, analyzed, and made available on the WakeMate Analytics platform."

So although the data is analyzed, but that sentence only says that the data itself is made available.

However, the picture below those words shows your "sleep score" and a graph, which I presume is part of the basic analysis package.

See: <http://www.wakemate.com/tour/>

</comment></comment><comment><USER8> Well written. Just one more point, the form link seems to have been redacted. Asking customers to fill yet another form is painful. But then topping it off with "The next message we'll be sending out will include when you are getting your WakeMate and a link to finalize your purchase. _To stay on our list be sure to fill out and submit the above form!_ " is just awful.

That sounds like if I don't fill this form, I may not even get my order!

</comment><comment><USER9> Maybe there wouldn't be so big a shipping delay if WakeMate focused on shipping the product they promised, instead of cooking up premium features while everyone is waiting.

That's why people are mad... not the premium features, not the delay, but rather the implication that people pre-ordered a product and they have to wait for something they don't want (and didn't know was being built), while what they were promised is delayed as a result.

</comment><comment><USER10> Awesome post, this should be a must-read for everyone who ever has to give some kind of bad news to his oder her customers. Well done

</comment><comment><USER11> I haven't pre-ordered, but was planning to buy one once they _actually_ started shipping. I don't care at all about any advanced features -- just basic reporting and whether it will be able to wake me up at an opportune moment each morning.

It isn't entirely clear to me at this point whether I'll be able to do that without paying a monthly fee. It sounds likely that this may be possible, but I'd prefer to be sure before I buy.

Hopefully their website will clarify what is free and what is not before they begin shipping devices.

</comment><comment><USER12> pls iwanna learn to be a hacker any hacker seeing this message and wannab help should kindly mail me on email@example.com bros</comment>


"The Scream" and the secret of the white spots - <AUTHOR> http://www.desy.de/news/news_search/index_eng.html?openDirectAnchor=1090&two_columns=0 <comment><USER2> I'm no art guy, so today I learned (via this article) that there is in fact four versions of The Scream.

Comparison here: [http://i.imgur.com/0UN1I.jpg](http://i.imgur.com/0UN1I.jpg)</comment>


Would Paying for OS Updates Solve the Android Spreading Latency? - <AUTHOR> http://techpp.com/2012/10/05/would-paying-for-os-updates-solve-the-android-spreading-latency/

<comment><USER2> > "After two, or even one year, this device becomes too old in Google's eyes > and it refuses to make a newer Android version compatible for the gadget"

What? It's not Google but the carriers and the manufacturers who don't update. Google doesn't earn money (at least not much) from device sales. They make money from app sales and ads. So Google would benefit from updating the devices.

I haven't seen this site before but I'm definitely not going back if their writers are incompetent like that.

<comment><USER3> Haven't you realized that Google gets all the blame for problems created by the carriers? It's the same old blame game that happened with Microsoft for problems created by their vendors.

<comment><USER4> Microsoft got most of the grief because of security issues, which weren't dependent on specific hardware configurations ( at least, not always). Sure the BSOD was "normally" caused by a bad driver and Microsoft took flack for that, but on my single Windows machine that I have, I can't recall the last time I saw a BSOD.

</comment></comment></comment><comment><USER5> Most of the people I know who have Android phones don't care what version of the OS they're running. In fact, the UI changed so much between Donut and ICS, they might prefer their phones not to be updated.

The amount that people in our circles care about phone software is much, much higher than most people who go into Verizon every two years to get a new handset with a fresh battery.

<comment><USER6> I totally 100% agree with you, but the counterargument would be that people are very unhappy when they go to download a new game and it doesn't run on their phone or it runs badly.

</comment></comment><comment><USER7> Or... google could crack down and force the carriers to make their "customizations" add-ons which would be installed after an os update and could be removed if they were incompatible / the user didn't want them. This way every user could have the latest and greatest from google while still allowing the carrier to add their craptastic customizations on top of the standard OS.

<comment><USER8> I think the UI customizations are less of a problem than drivers.

<comment><USER9> Yeah, this. If it were just about the OS customization Google could release a PC/Mac tool which would flash the latest build of Android onto any phone with an unlocked bootloader (which is most of them these days). The user could choose to continue with the phone manufacture's default build or get the latest "pure" Android.

Where this idea falls apart quickly is drivers for custom hardware. There's just no way Google could take on the driver development for every phone (both because it is just too much work and also because lots of phones have proprietary drivers running against hardware that isn't publicly documented).

<comment><USER10> Absolutely. From what I understand, one of the big reasons ICS updates have been so much more difficult than Gingerbread ones is that the driver interfaces changed for a lot more things in that jump (exacerbated by the tablet-only Honeycomb in between).

</comment></comment></comment></comment><comment><USER11> I fear that, for most Android devices, that $5 per device or $20 lifetime upgrade cost would not make economical sense.

Reason: if paying for the upgrade is optional, few users will choose to pay that money ($20 for a $100 or 'free with your subscription' phone?), meaning that the cost of making the firmware update may be larger than the revenue. And no, releasing new firmware is not 'just compiling'; there likely is quite some extra work to make the updated OS, targeted at more powerful hardware, work even reasonably well on that 'old' phone.

Charging all your users that $20 only works if you are Apple, Microsoft, or Blackberry. If you sell cheap or midrange Android devices, your users would likely just run to your competitors (it may be possible to prevent that for high end Android devices, but it is harder if you cannot differentiate on your OS; Samsung may have cracked that's but I am not sure about that)

</comment><comment><USER12> I used to get really irritated with whatever phone manufacturer I bought from was holding out on updates. However, we now have enough data to have a good idea of the tendencies with each carrier/manufacturer. For example, if you choose Verizon, you know you're going to be waiting a while. My next phone will not be with Verizon.

I definitely understand that some people only get decent service from one or two carriers in their area (and don't have as much as a choice), so this is probably more aimed at those who have a few options to choose from: I really do think it's time to vote with our feet.

If updates are a priority for you, pick a manufacturer and carrier that have a decent update record (if you have the choice). If you don't have a choice, complain publicly and loudly about your carrier's update practices, and maybe someone will hear one of us.

</comment><comment><USER13> Updates as part of customer support _after_ you make the sale should really be common sense and something all manufacturers should do during the average time of owning a smartphone, which is probably around 2 years.

Unfortunately, since most manufacturers are used to releasing a new model every 2 weeks, they just don't care about stuff as much as they should. Paying money for upgrades might give them an extra incentive to do it, but I'm not sure it will work. Would they offer the upgrades for 2 years even if they sell 200,000 units of a certain model and only 2,000 people pay for those upgrades? But as I said, it shouldn't even be needed.

<comment><USER10> While I agree manufacturer ADD is a problem, I reject the idea that every phone should come with two years of support. Those of us who buy high-end phones on-contract forget that off-contract Android phones can get very, very cheap. Sub $100 isn't hard to find and I've heard of devices as cheap as $50. If not providing updates is what helps make what would have been a $100 phone into an $80 one, I think that is a reasonable tradeoff for a manufacturer and their customers to make.

Today that no-updates line is being drawn in the wrong place and it really shouldn't apply to phones sold on-contract, but that doesn't mean the possibility should be banned entirely.

<comment><USER14> That's fine if manufacturers state _upfront_ what you are getting when you purchase. If they won't push major software updates, just say so, so I can make an informed decision.

Edit: Strange use of personal pronouns.</comment></comment></comment>


Announcing: Circa - The best way to read the news on your phone - <AUTHOR> http://cir.ca/

<comment><USER2> Been waiting for this for awhile. Congrats on launching guys!</comment>


GitHub for Chimpanzees (and a short rant against scientists) - <AUTHOR> https://hackernoon.com/github-for-chimpanzees-and-a-short-rant-against-scientists-868fb04e5e4a#.ce2snfm3i <comment><USER2> first part is a rant. and it's true. scientific protectionism.</comment>


With Traction But Out Of Cash, 4chan Founder Kills Off Canvas/DrawQuest - <AUTHOR> http://techcrunch.com/2014/01/21/when-goods-not-good-enough/ <comment><USER2> In moot's own words: [http://chrishateswriting.com/post/74083032842/today-my- start...](http://chrishateswriting.com/post/74083032842/today-my-startup- failed)

I'm really sad to see this, because I saw myself that DrawQuest was gaining traction.

That said, I really appreciate what Everpix did, and I'm glad that moot seems to value that transparency as well.

Failure is a _really_ important part of the startup process - it happens over 90% of the time - and yet it accounts for less than 10% of the dialogue.

When startups and founders share post-mortem data like Everpix did, it's an incredible gift to the community. A startup may failed, but let it not have died in vain.

I know moot reads HN, so hopefully he sees this. Thanks for giving back to the community.

<comment><USER3> From the linked article:

>One thing I'll be doing more of is writing about my experience. Partially because it's therapeutic, but also because if there's a silver lining in all of this (and there is), it's that I can help educate others about a path fraught with hardship, but rewarding nonetheless.

I look forward to read more from moot. I find his down to earth style really engaging and I have great respect for how he's carried himself managing the (in)famous 4chan sites.

<comment><USER4> Let me laugh. If they'd be successful, how open would they have been about the way they make it a success ? Call me cynic, but saying "it's do educate" seem quite pretentious to me. Show me how to win, not how not to loose.

</comment></comment></comment><comment><USER5> I always thought Moot (as the founder of 4chan) was equipped to build a product far different than something tame like Canvas. It's never good when something fails, but I hope he gets in touch with his weird side and relishes the fact he created one of the most bizarre places on the internet.

<comment><USER6> You're right.

Moot needs to start exploiting his strength (heading the most unruly demographic on the internet). His name really does mean something to the users of 4chan, and that's a pretty big demographic.

That demographic could make his next project infamous. infamous is still famous.

<comment><USER7> eh, I don't know. I remember when he first announced Canvas and most of 4chan simply responded "so what?" moot does mean something to most 4chan users but mostly just because they get to post in a moot thread I'm not sure you can really capitalize on that userbase, at least not in a monetizable way.

<comment><USER6> Canvas was targeted at a separate demographic. I remember reading the introduction screens for canvas and cringing.

"Take this image and remix it with your creativity!" (to paraphrase) That line alone could of caused the mass rejection of canvas from the denizens of 4chan. Canvas was not targeted at 4chan's users.

</comment></comment></comment></comment><comment><USER8> >DrawQuest got some traction, but found that selling paint brushes in a drawing app is a lot harder than selling extra lives in Candy Crush.

Selling brushes in a drawing app makes it seem like you aren't taking your customers seriously. I know it worked for Paper, but they aren't going to get any of my money any time soon. I've purchased several IOS and Android drawing programs, and several significantly more expensive programs for PC. I wont, however, purchase a productivity program with in-app purchases. Just tell me how much money you want for your program and I'll buy it. Companies should quit coming up with idiotic monetization strategies designed for the sole purpose of tricking customers out of larger amounts of money.

<comment><USER9> That discounts the fact that in-app purchases works _phenomenally_ for many, many companies. You may personally not like it, but the fact that IAP drives billions of dollars a year in revenue probably makes it non-idiotic for companies deciding how to monetize.

No one cares about getting _your_ money. They care about the rate at which new users convert. Some segment of any new group of users will be violently and religiously against IAP. That's fine.

Some segment of users will also be violently and religiously against a credit card form, because they think software should be form. That's also fine. That segment just isn't going to have very much overlap with the segment of people that pay you money for services.

</comment></comment><comment><USER10> From moot's blog post, "Building any business is hard".

This statement could not be more true. I've had the fortune of founding a successful company. And yet, I still find that building new revenue streams is a royal pain. Building a business requires a herculean effort, and even then most fail.

First time founders often make the mistake of iterating various potential revenue streams. But the reality is you'll be lucky to create one substantial revenue stream.

"but you also fail your investors"

Not that this should make moot feel any better, but failing when it's your own money is no better. You'll spend time thinking about all of the stuff you could have bought that would have been a better use of that cash.

</comment><comment><USER11> The MAU for DrawQuest in relation to their total registered users is pretty good, as long as all those users were not acquired in the last month.

Their DAU/MAU (how many monthly actives come back daily) falls short of a highly engaging application. It is at ~6%. If that number were much higher, I think they would be singing a different tune.

<comment><USER12> This is focusing on the wrong metric.

What if you had 100 uniques / month with a DAU/MAU of 50%? Insanely successful retention, right? Except it's only 100 uniques! The more important number is the "top of the funnel," which is the ultimate driver of sustainability.

<comment><USER13> what is the point in optimizing the top of the funnel if no one is going to stick around?

aren't retention, engagement, and acquisition equally important? you optimize whichever is your bottleneck.

<comment><USER12> Agree completely, all aspects of the funnel need to be optimized, I was explaining that despite really good DAU/MAU numbers, it wasn't a metric that indicates sustainability in this instance.

</comment></comment></comment></comment><comment><USER14> Chris is a really smart guy, and while this hasn't worked out as well as hoped I look forward to seeing whatever he does in the future which I feel certain will be bright.

If you're seeing this Chris, and need anything at all (aside from a few Mil of investment, which I just don't personally have), hit me up and let me know.

</comment><comment><USER15> A good example of how the most successful, and innovative people can still fail. Sobering.

<comment><USER16> He's not _that_ innovative. He cloned 2chan. Just sayin.

The real achievement is not blinking in the face of the craziness he unleashed.

<comment><USER17> 4chan was based off Futaba Channel (2chan.net), which was in turn a based off 2channel (2ch.net).

So it's not like there wasn't a precedent.

If you check the footer on 4chan, you'll see it links back to Futaba Channel. I seem to remember Futaba linking back to 2channel as well at some point, but it doesn't look like it does now.

</comment></comment></comment><comment><USER18> > "People trivialize pivoting but it's truly a hail mary, and it's rare that > people can pull this off."

That's not what pivoting is..I think the real reason nobody really respects "lean" in this community is that all the concepts have been completely misinterpreted.

</comment><comment><USER19> Seems like his main mistake was raising $3.6M before getting any traction. Remember Color? Really, it shouldn't cost 3.6M to build a relatively simple ipad app.

0.5M MAU is a pretty decent user base, and would bring in a few thousand bucks a month in advertising. The problem is that once you've raised $3.6M you really need to have a plan for earning big bucks, and that never seemed likely with this app.

The other mistake is making it ipad-only. It would make more sense to have an html5 version.

Just out of curiosity: how much are the AWS server costs? You should be able to run this site for $50/month, but my gut tells me they might be paying a lot more.

</comment><comment><USER20> Sorry to hear this moot

</comment><comment><USER21> "To have audible" is startup speak for ... what?

"proving you're worth the valuation of a Series B upround requires incredible metrics that are tough to reach if you _have audible_ late in the game."

<comment><USER22> I think he meant they pivoted... Probably meant to say "call an audible" like in football.

<comment><USER23> For those not familiar with American football, an audible is when the team with the ball changes the play at the last second based on what they see the defenders doing.

</comment></comment></comment><comment><USER24> Find a buyer that can monetize. Killing something with traction is just throwing potential money, and future credibility, away.

</comment><comment><USER25> A moment of silence..someone's dream just died..wish you the best of luck for your next venture

</comment><comment><USER26> Cool product, but apparently rendered moot.

</comment><comment><USER27> How many employees total?

</comment><comment><USER28> I think building an app around a demographic that does not have a credit card or spending money might have been challenging from the start, it looks like a very fun app but at the end of the day, people put down their money because they think you are going to make money off the userbase. This is why I feel valuations centered around future profits is bound for major market correction.

<comment><USER29> I think the app attracts the same target demographic as games that have a casual drawing component to them so I don't know if I would say the demographic doesn't have spending power.

If Drawquest was focused on in-app purchases and didn't find enough traction, I think they should have considered sponsored contests and sell those sponsorships to agencies representing larger brands. Imagine if Nike had a post "Design our new shoe" and gave out a prize for the most upvoted variation or "How would you change the Honda Civic?" and used it as a market research tool.

These are the types of branded opportunities that get some marketers salivating and knowing how to engage their agencies and participate in the RFP process is critical. I hope they explored these options.</comment></comment>


India's central bank is shutting the door on Bitcoin and other crypto-currencies - <AUTHOR> https://qz.com/1121363/no-bitcoins-for-payments-and-settlements-says-the-reserve-bank-of-india/ <comment><USER2> I love the Indian govt. So shortsighted. Something like bitcoin cannot be killed by them singlehandedly. Similarly, with big players like Russia and USA potentially playing against each other, it becomes a game of prisoner's dilemma.

This kind of dilemma exists in despotic and dictatorial govts regarding the Internet. If they don't let their people have access to Internet, then they risk being left behind and potentially weakened against their enemies. If they let their people have the Internet then they risk getting their populace awakened.

</comment><comment><USER3> I guess India (and other countries) _could_ issue crypto-currencies, but wouldn't that kind of defeat the purpose? Of course, states would add features to make the transactions traceable. Would anyone use them?</comment>


Ruby Tips Part 1 - <AUTHOR> http://globaldev.co.uk/2013/09/ruby-tips-part-1/

<comment><USER2> Sorry, offtopic mini-rant coming: this site (and so many others) become much more readable if you disable the body text CSS. Actually this specific site does quite well when you disable all CSS.

What is with the trend of mid-range gray on white or light gray these days? Does _anyone_ find that easy to read?

<comment><USER3> Maybe it's old age but I find that annoying too. Looks pretty but is unreadable.

</comment></comment><comment><USER4> Is this:

        def fibonacci(max=Float::INFINITY)
        # ...
          while i < max
            # ...
          end
        end

better than this:

        def fibonacci(max=nil)
        # ...
          while max && i < max
            # ...
          end
        end

? (genuine question)

<comment><USER5> yes. The first one does what it's intended to, the second plain fails :)

        Voice-of-Evening:~ $ irb
        irb(main):001:0> max=Float::INFINITY
        => Infinity
        irb(main):002:0> i = 0
        => 0
        irb(main):003:0> i < max
        => true
        irb(main):004:0> max = nil
        => nil
        irb(main):005:0> max && i < max
        => nil

The second version will only provide any result when a specific max value was given, while the first one will loop into infinity.

<comment><USER4> Yes, I messed up. I meant `!max && i < max`.

<comment><USER5> Then the code is functionally equivalent, but the first version is much more readable. As pointed out on the parent comment, the first version does one test less, a minor performance benefit.

</comment></comment></comment></comment><comment><USER6> Ruby is neat! Except for this part:

        return nil unless other.is_a?(self.class)

<comment><USER7> Post conditions are odd if you're not used to them, but once you start to mentally allow for them, they're really quite nice.

<comment><USER6> Ah, seems everybody misunderstood my comment (not hard to see why). It's not the post conditions that bother me, its the dynamic typing! In my opinion, ruby's duck typing really only works until you actually need it.</comment></comment></comment>


Reddit Moves Into New Offices - <AUTHOR> http://blog.reddit.com/2011/07/its-time-for-us-to-pack-up-and-move-on.html

<comment><USER2> Usually I expect to see all types of excess in new dot com offices, so bravo reddit. That isn't much bigger than my apartment.

<comment><USER3> You obviously aren't aware of their plans with the new office: [http://1.bp.blogspot.com/-bxuVyoeXcVk/ThSWd0Svi7I/AAAAAAAAAD...](http://1.bp.blogspot.com/-bxuVyoeXcVk/ThSWd0Svi7I/AAAAAAAAADE/hByZS2aQ9l4/s1600/office.jpg)

I think the Paul Graham statue will tie the room together perfectly.</comment></comment>


Google removes Catalan referendum app from Google Play after court order - <AUTHOR> https://www.thespainreport.com/articles/1166-170929190146-google-removes-catalan-referendum-app-from-google-play-after-catalan-high-court-issues-take-down-order <comment><USER3> The spanish government is trying to ban everything related to the referendum: physical urns, ballot papers, websites and apps, violating the most basic human rights. However, for each ban, 10 new websites/apps/bots will pop up. I created a chatbot so that people can vote at referendumvirtual.cat and it went viral in the last 48h. People will always find ways to excercise freedom of expression and decide its own future in peace.

<comment><USER4> It's not the Spanish government, it's the Courts in Catalonia. These are orders from the judge in the Tribunal Superior de Justicia de Cataluña.

<comment><USER5> Who seems to be backing the Spanish government in suppressing the referendum.

<comment><USER4> The judge in Catalonia doesn't mind what it seems to you or anyone: her job is to interpret and apply the law. As the Supreme Court did, e.g., when they sent a Ministro del Interior to prison.

The law isn't written by the Spanish government either, it's written by Congress. A Congress in which nationalistic parties have more representation per number of voters than other parties with a higher number of total voters.

Insinuations that the judges in Catalonia are puppets of the Spanish government ignore the reality of Spain.

<comment><USER6> Are you implying that Congress isn't part of the Spanish government?

<comment><USER4> Oh my god of course it's not, unless by government you mean something broader than the executive branch, in which case you have to include the judiciary too. The three separate powers is the foundation of western democracies.

<comment><USER7> This is a US/Euro nomenclature difference I think. In the US "the government" refers to the entire apparatus- all three branches.

<comment><USER8> I think the US equivalent of the European sense of "government" is "administration", perhaps?

<comment><USER9> I would say "the executive branch"

<comment><USER7> The agencies in the executive branch are 99% civil service people, not political appointees, and they don't change over every four years. The administration is the President, the cabinet, and political appointees, so I think that's the equivalent term.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> Just a bit of feedback. This weekend there is a referendum in Cataluña, a province of Spain, about their independentism. This is not supported by the central government and it is consider illegal, and that is the reason the app was removed from the PlayStore, the court ordered it.

Nothing so see here unless you want to talk about politics.

EDIT: as you want to talk about politics, them you should have a bit of background. I think this is a good video (spanish): [https://www.youtube.com/watch?v=nbeyN2fuz_4](https://www.youtube.com/watch?v=nbeyN2fuz_4)

<comment><USER11> Would you say the same thing if Chinese or Venezuelan courts banned google apps that give information "considered illegal" there?

This is ridiculous. The app just gives a list of the schools to vote according to your address. Even if the referendum is "illegal" under spanish law, it is completely bananas to ban such an app.

<comment><USER12> No, because neither China or Venezuela are considered to be under the rule of law. Spain is, and it's constitution is pretty unambiguous on the matter:

 _Section 2. The Constitution is based on the indissoluble unity of the Spanish Nation, the common and indivisible homeland of all Spaniards_

[https://en.m.wikipedia.org/wiki/Spanish_Constitution_of_1978](https://en.m.wikipedia.org/wiki/Spanish_Constitution_of_1978)

Aiding and abetting a crime is also a crime. "Just" giving a list of addresses of, say, brothels is a crime in a jurisdiction where prostitution is illegal.

Yes, it's bananas that the central Spanish government has this reaction, but it's a perfectly correct and legal reaction, and this is part and parcel of the idea that Google should abide by the law in the countries where it operates.

From a distance it seems that it would have been preferable to let the referendum go ahead with as little fanfare as possible, but make clear that it's outcome has no legal status whatsoever, but then again, I'm not in the hot seat, representing a national constituency that's overwhelmingly against independence.

<comment><USER13> But it's a _vote_. Secession can be illegal in a democracy, but not voting.

Google would be right to let Spain threaten to ban them from the country.

<comment><USER14> Voting to take an illegal action is not legal or morally correct, according to common Western concepts of natural rights. Secession is an act of last resort after all other reasonable measures to resolve a conflict have been exhausted.

<comment><USER13> Let's leave the current issue aside and speak to your general statement - <USER2> voting for an illegal action is typically considered immmoral.

Do you mean to say this is basically universal?

I'm American. I would not expect many people here to say holding a vote can be a crime. Many people would say that secession itself may be a crime even if it was voted for (while others would say the vote establishes the right to secede).

But they would say holding a vote is a right that should be protected by killing the people trying to prevent the vote from happening, if necessary.

</comment></comment></comment></comment></comment></comment><comment><USER15> I often wonder at what point should we (as programmers) ignore a countries ruling if we disagree with it.

(Note I'm not arguing for or against here, I don't know enough about the situation but thought it may be an interesting conversation).

We (generally) have the knowledge to get around most restrictions, some of us can even bypass enforced walls.

I do wonder what it would take for a large subset of techs to say 'screw this, we're going to flood their airwaves, satlinks, reroute all out out traffic' etc. (Yes I know this is an impossibility, I'm theorizing here).

Edit(fat thumbs(

<comment><USER16> Sure if you are prepared to go to war. At some point, a company will have enough funds to purchase its own military (aka corporate security department) to go toe-to-toe with a nation state's military. At that point, it would be a return to an era, for example, when the British East India Company can trade opium and wage war on behalf of the English government because they disagree with a country's internal anti-drug laws.

<comment><USER17> In fact, Google purchased Boston Dynamics awhile back, although they sold to another tech giant, Softbank.

[https://www.engadget.com/2017/06/08/softbank-boston- dynamics...](https://www.engadget.com/2017/06/08/softbank-boston-dynamics- alphabet-google-robots-schaft/)

Cyberpunk speculating aside, I'm pretty sure Big Food companies (Coke, Monsonto, Kraft, etc) have private security contractors - due to the sheer amount of physical assets they control, it would be irresponsible to shareholders if they didn't.

<comment><USER18> Coca Cola's bottling partner in Colombia was, quite famously, accused of using mercenaries to murder labor organizers in the early 00s. [http://www.nytimes.com/2001/07/26/world/union-says-coca- cola...](http://www.nytimes.com/2001/07/26/world/union-says-coca-cola-in- colombia-uses-thugs.html)

Similar accusations were made against Coke's Guatemalan bottler a few years back. Of course, about a hundred years ago it wasn't uncommon for companies to use hired muscle to harass, beat, and even murder labor activists in the United States. [https://en.wikipedia.org/wiki/Ludlow_Massacre](https://en.wikipedia.org/wiki/Ludlow_Massacre)

</comment></comment></comment></comment><comment><USER11> notice that the app is still usable from elsewhere, it is only banned in the spanish market app (source: I have just downloaded it from france).

<comment><USER19> Confirmed from the UK.

</comment></comment><comment><USER20> This is one area in which Android is _morally_ superior to iOS.

Even if an app is pulled from Google's app store, you can still download and install the app from an APK.

Despite you being the nominal owner of your iOS device, Apple gives you no such option.

<comment><USER21> The developer kit lets you run anything you want. How do you think apps get written in the first place? Rooting Android phones may be more commonplace sure, but claiming Apple gives "no such option" is disingenuous.

<comment><USER22> You don't need to root your phone to install whatever apk you want on Android. Just download and install the app.

</comment></comment></comment><comment><USER23> Pretty sad to see this happening in a western country, in the EU no less.

<comment><USER24> You mean enforcing the rule of law? I hope the law is enforced everywhere otherwise why have it?

I am from Barca and this referendum shouldn't happen. We have other issues that are more important like housing. Not all people here are for the referendum. Far from it. Wasting public money and ressources when people spend half their salaries on rent. Disgusting!

<comment><USER25> You say you're from Barna but you call it Barça so I don't really know what to believe here.

<comment><USER4> Maybe he plays for Barça?

</comment></comment></comment></comment><comment><USER26> Do no evil indeed

</comment><comment><USER27> This is very bad, people should be able to install any app that they want as long as the app manufacturer / owner is ok with it. and they should be able to keep it on their own device for as long as they wish. Google or a government shouldn't have any say in this

<comment><USER28> Oh? Without going into whether this app in particular is good, should an app that allows set up of child pornography or murder be allowed "as long as the app manufacturer / owner is ok with it"?

</comment></comment><comment><USER29> Good. We should be striving for a more integrated world, not a world of separatism.

People are naturally tribal. But tribalism must always be rejected. People who hold onto tribal identities are excited by the prospect of political independence, but unless real conditions for that group are made genuinely intolerable, there is no excuse for separatism.

Catalan is one of the wealthiest parts of Spain. They are not being oppressed.

<comment><USER30> Nationalism is okay if the nation is being oppressed (and are somewhat non violent) see Scottish nationalism, Catalan nationalism, and later in this sub- thread about a Russian situation. Tribal and group identity is welcomed and defended if those in that group are at risk. I'm in agreement that tribal and group thinking is bad, and I'm also possibly in disagreement because I see that there is also oppression and marginalisation of groups by other groups. I'm not sure what the solution is apart from talking about this clearly.

<comment><USER31> _Nationalism is okay if the nation is being oppressed_

Define "is ok"

<comment><USER31> Downvoted... Can someone point me to the HN guideline that forbids requesting an OP to clarify what they are saying?

      - is ok legally
      - is ok morally
      - is ok politically
      - is ok strategically
      - is ok accord me
      - is ok according to most people
      - is ok according to the opposition

_Tribal and group identity is welcomed and defended if those in that group are at risk._

Welcomed by who?

      - welcomed by me
      - welcomed by everyone else in that group
      - welcomed by everyone outside of that group
      - welcomed by some people outside of that group

What are you even saying? Is this a personal manifesto? Is this alluding to some sociological principal, political philosophy, statistic poll?

For a forum geared towards engineers, the quality of thinking here on HN is depressingly low.

<comment><USER32> IMO, your original comment is too brief, reading as antagonistic. You weren't just politely asking for clarification along with an expression of your understanding.

And anyway, they're just internet points, who cares. I throw my account away when I get to 100, keeps me from getting worked up about it.</comment></comment></comment></comment></comment>


OpenBSD from a veteran Linux user perspective - <AUTHOR> http://cfenollosa.com/blog/openbsd-from-a-veteran-linux-user-perspective.html <comment><USER2> Thanks for taking the time to write this up.

Got a few CentOS 6.x boxes under my command at the moment. At the same time I've got a NetBSD/OpenBSD background. I ran NetBSD for years on Sun SPARC kit and thoroughly enjoyed it. This eventually rolled onto OpenBSD because TBH it just works (to a point) and everything is easy to find.

However I end up with CentOS every time when it comes to rolling out something professionally in production. Why is this?

1\. The amount of information on how to solve even the most complicated problems is a Google away every time. Sure I solve most problems from my head but when I've got a CIFS mount that dumps stack, there's an answer there in 30 seconds.

2\. I can just leave CentOS to it for a decade and yum update it as required. No PITA world changers every 6 months as a new release drops.

3\. The OS and the packages are considered as one singular concept. I wasn't a fan of this idea initially but the fact you can drag your kernel and any part of your userspace up from the same source is really cool. There's only one update mechanism to consider. This is stupidly convenient when you have Ansible in the picture for example.

4\. IO perf, particularly on SSDs is 2-3x better on Linux on the same kit (HP DL380 gen 8, Samsung 845 DC PRO).

As a side issue, both are crap on the desktop so I'm sitting here on Windows 8.1...

<comment><USER3> Is there any Linux or _BSD that is_ good* on the desktop for you? Just wondering!

PS: There appear to be a number of CentOS boxes that have been left for _more_ than a decade judging by the thread on CentOS Forums about patching a CentOS 4 server for Heartbleed...

<comment><USER4> Xubuntu is close to perfect for me, fast, stable, has everything I want, they don't stop the boat mid ocean to redesign it.

Used it for years and have basically no complaints.

<comment><USER5> Just wish Gnome would lighten up on their GTK chokehold.

<comment><USER4> Agreed, I wish GTK was isolated from Gnome like Qt is from KDE but I can't see it happening.

</comment></comment></comment></comment></comment><comment><USER6> Hi, OP here.

This is actually the second revision of the text; I got some awesome feedback from other OpenBSD users and tried to improve it. I'll be happy to hear your opinion and fix any errors that may still be on the text.

This is my first time with a BSD and its idiosyncrasies. The idea is to create a guide for former "GNU userland" admins and help them jump to BSD or, at least, have a more informed opinion before making the jump. The post will be further updated since I've been receiving more emails :)

<comment><USER7> I use FreeBSD instead of OpenBSD, but for your next revision, I'd recommend symlinks for your mount problems with build directories. Before I switched over to ZFS, I would always just create a /home/ports and symlink /usr/ports over to it, same with /usr/src and /usr/obj. Bit ugly, but it works.

<comment><USER8> This is a good suggestion. OP could also mount /usr/ports, /usr/obj, etc. via NFS from a dedicated build machine, and just pkg_add the built packages from /usr/ports/packages/, or 'make install' precompiled errata from /usr/src/. Having a dedicated build machine also keeps all the build dependency stuff contained elsewhere, and makes it easy to update multiple machines.

</comment></comment></comment><comment><USER9> The differences between GNU and UNIX behavior can be substantial. I used a SunOS system for a few terms in college; I used Debian to get work done, but for a few things we had to make sure our code compiled and ran on the SunOS system.

One of the first things I noticed in the short while before I put the GNU tools at the front of my path: the SunOS tools wanted all options before all other arguments. So if you have "ls something", and you hit up, space, -l, enter, (or "!! -l" if you prefer) then instead of the long listing you expected, you get the same short listing as before, along with an error like "-l, no such file or directory".

It's minor, but it's one of those things that adds up when you're used to more capable tools and find yourself in a less capable environment.

OpenBSD doesn't necessarily suffer from the same deficiencies (I certainly don't know if they have that one or not), but when you're used to coreutils, any other tools can be a shock, and not typically in a good way. The same goes for environments like busybox, but at least there it's for a good reason: size constraints.

I'd be curious to hear examples where the reverse is true: are there instances of the standard command-line tools available on other UNIXen being substantially _better_ than the GNU userspace tools?

<comment><USER10> That depends on how you define "substantially" and "better". Consider cat.c from gnu [0] and openbsd [1]. I'd say that openbsd's implementation is "substantially better", because:

1\. it does everything I need in 194 LOC (vs 488 LOC)

2\. the code is so understandable that it needs no commenting (and I'm not just saying that because it has no comments, it is braindead simple code)

3\. there are no ifdefs and the program state is much more shallow

Now obviously that is from the perspective of a programmer, but it has been my experience that if the code base sucks for programmers - then things suck for the users as well (surprising behavior, security issues, long lag in bug fix, etc). I once spent a day chasing a bug related to autotools and colorized output from grep... sometimes the bells and whistles get in the way of actually getting things done.

[0] [http://git.savannah.gnu.org/cgit/coreutils.git/plain/src/cat...](http://git.savannah.gnu.org/cgit/coreutils.git/plain/src/cat.c)

[1] [http://cvsweb.openbsd.org/cgi- bin/cvsweb/src/bin/cat/cat.c?r...](http://cvsweb.openbsd.org/cgi- bin/cvsweb/src/bin/cat/cat.c?rev=1.21&content-type=text/x-cvsweb-markup)

<comment><USER9> While I appreciate the value of a cleaner or simpler codebase, I can't place as much value on that as I do on usability, unless the code is utterly unmaintainable beyond all hope of redemption. And whatever you might think of the extra complexity of the GNU code, for good or ill, it certainly isn't _that_.

<comment><USER10> Again, a lot of words with definitions that intelligent people can disagree on. This is why there are so many different operating systems... and implementations of echo.c. So to answer your original question more directly : yes, there are many instances of the standard command-line tools available on other UNIXen being substantially better than the GNU userspace tools. In my opinion. You may disagree, but who is to say?

</comment></comment></comment></comment><comment><USER11> > The base system config files are properly centralized in /etc, but not the > ports.

OpenBSD generally stores ports configuration in /etc as well, however; some software has unique directory layout requirements and/or may be chrooted in /var. In that case they need access to their config files.

</comment><comment><USER12> > For example, ext4 is officially supported read-only but in my case it didn't > read some folders properly.

For some reason, I've thought ext4 is "pervasive" or "fundamental" until now. I assumed it to be readable by most systems. So it came as a surprise that OpenBSD could not correctly read a ext4 filesystem. But thinking again, last time I checked, Linux could not write to a HFS+ filesystem, either. OpenBSD's FFS might also not be not supported. So a BSD not supporting the Linux filesystem is very natural.

Probably one of the "greatest common divisor" filesystems, which are supported by all major operating systems, should be FAT32. Which is a shame, as it isn't neither an open standard nor a thing from the Unix culture. It also lacks journaling support, which I consider essential. Any alternatives?

<comment><USER13> FAT32 is an open standard AFAIK, however it's extensions (eg long file names) and forks (eg exFAT) are patented. But in fairness, FAT32 isn't much use without support for long file names.

Interestingly, some FAT32 forks do support journalling. Sadly those tend to be the patents Microsoft are the most proactive in upholding.

As for an alternative, ZFS is supported on FreeBSD, Linux, Solaris and OS X - so that's one option. Albeit it's not a great option in this specific criteria. ext2 receives pretty good support as well, even on Windows. However ext2 doesn't support journalling. Another option is to run ext3 as that gracefully downgrades to ext2 if no ext3 driver is available. Sadly NTFS is probably the most ubiquitous journalling file system. ntfs-3g - which are actually pretty decent drivers - has been ported to quite a few platforms.

<comment><USER14> The FAT32 long file name patents are expired. That's a big part of why exFAT exists.

</comment></comment></comment><comment><USER15> 2015 era command line Rosetta Stone, including OpenBSD and current Debian:

[https://certsimple.com/rosetta-stone](https://certsimple.com/rosetta-stone)

Also: SmartOS and FreeBSD.

</comment><comment><USER16> It's kinda strange that he spends so much time documenting his old-school linux admin rep, then really complains about building from source and not being able to just apt-get upgrade. Building from source is the way we used to do it.

<comment><USER6> But one does get used so quickly to the nice things... :) That's the main reason that put me off Slackware and Gentoo. Package managers are a great improvement.

Think about it: we also spent a lot of time configuring drivers, and I think we all agree that hardware autodetection is something to be desired in 2015, isn't it? That was my thought with compiling from source. Not that there is anything wrong with it, I just found it very weird because I didn't know that was the usual way to go on BSDs

<comment><USER13> That depends on the BSD. FreeBSD does have binary repositories and a pretty decent package manager (pkgng). PC-BSD is basically a distro of FreeBSD, so would also have the same; as does DragonflyBSD, which is a much older fork but these days a standalone BSD in it's own right.

NetBSD still uses pkgsrc which does support binary packages but the command line tools are a little less intuitive in my opinion. Incidentally, a few other UNIXes also support pkgsrc.

You may already be aware of this, but it's worth noting that the different BSD's are more like separate OS's, rather than distributions of the same OS like you see with Linux. eg DragonflyBSD, despite being a fork of FreeBSD, has some quite significant kernel changes (different schedulers, file systems, etc). And it's a similar story with NetBSD and OpenBSD too - though they're forked from other, much older, BSDs.

</comment></comment></comment><comment><USER17> > In a few years we've gone from _/ etc/init.d/sshd restart_ to _service sshd > restart_ to _systemctl start sshd_.

Aw man, I just got used to the second one!

<comment><USER18> OpenBSD grows and changes, and its rc.d(8) is no exception!

man 8 rcctl

</comment></comment><comment><USER19> "But this time I didn't want to use a Linux installation which wants me to reboot every 5 days because of some critical patch. I'm looking at you, Ubuntu."

Critical patch... I think you mean kernel update and you don't have to perform them. A critical kernel patch that requires you to restart every 5 days would be ridiculous.

</comment><comment><USER20> For anyone who reads this and is put off by the thought of having to update their system from source; there are binary patches available (both OS and packages) using the `openup' utility from [https://stable.mtier.org/](https://stable.mtier.org/)</comment>