Bringing the best of open source to Google Cloud customers - <AUTHOR> https://cloud.google.com/blog/products/open-source/bringing-the-best-of-open-source-to-google-cloud-customers <comment><USER3> Great move on Google's part marketing-wise with all the discussions about Amazon using other tools' api layers and then doing whatever they please underneath without upstreaming. Sure, yes yes, they might just be solving very specific hardware/network issues for the most part only relevant to their data centers but still.

Google, please don't let this announcement be marketing fluff alone!

That said, I hope Google/GCP partners with the Postgres team sometime in the near future as well!

And lastly a sidenote (kind of unrelated): there are enough big players in Chromium now with Microsoft and their Edge wrapper that just like how V8 is now, Chromium at el. (the whole "bundle") needs to try and remain as democratic as possible moving forward. Thinking of [1].

[1]: [https://bugs.chromium.org/p/chromium/issues/detail?id=896897...](https://bugs.chromium.org/p/chromium/issues/detail?id=896897&desc=2#c23)

<comment><USER4> > That said, I hope Google/GCP partners with the Postgres team sometime in the > near future as well!

I had the same thought. Cloud SQL Postgres _still_ does not offer point-in- time-recovery, which makes it a non-starter for many use-cases.

I'm not sure "the Postgres team" is a commercial entity you can do business with, and probably one of the best commercial entities, Citus Data - <USER2> recently acquired by Microsoft but there are others I'm sure, but maybe not any as close to the core team as the companies they announced today.

<comment><USER5> Some other companies that specialize in Postgres support/hosting/commercial tooling:

\- [https://www.crunchydata.com/](https://www.crunchydata.com/)

\- [https://www.enterprisedb.com/](https://www.enterprisedb.com/)

</comment></comment></comment><comment><USER6> definitely interesting that google is taking a friendly approach to partners while AWS is simply forking their code and selling it themselves. It'll be interesting to see which strategy pays off. Still a decent gap between # of AWS and GCP customers, but this could help them catch up.

also shameless plug (about as shameless as it gets), but my company is offering free 90 day database migrations to Google Cloud for customers actively looking to move their ops to GCP.

[https://www.striim.com/google-cloud-database-migration- servi...](https://www.striim.com/google-cloud-database-migration-service/)

<comment><USER7> Somewhat bold because it seems now harder for Google to reverse their stance than for AWS to reverse theirs.

<comment><USER8> But it now gives Google cloud integrated services that will always have the newest features whereas the other cloud providers will have to pay to maintain their in house solutions themselves due to the recent changes in many popular open source license's.

That leapfrogs AWS and azure in feature parity on those services while also funding said services further because they get a cut.

Brilliant move IMO and I think it'll be a boom for improving open source software and increasing competition between the clouds.

<comment><USER7> Sure, I wasn't saying it was a bad idea, just a bold one. Hard to pull back with the strong statements in the post... _" equal collaborators, and not simply a resource to be mined"_

</comment></comment></comment></comment><comment> rob-olmos It looks like this is only for the paid/enterprise versions of the open-source software, which is a nice start. However, AWS has had their marketplace as well with additional hourly charges.

I understand Google has had their own contributions to certain projects, but I wonder if Google will do anything to differentiate from that and AWS. For example, add MariaDB to their SQL product and contribute some of the income back the MariaDB Foundation.

</comment><comment><USER9> This is such a great move on part of Google. Gets them good PR and helps the companies behind these open source projects. I hope Azure also follows through and does something like this so it forces AWS's hand eventually.

</comment><comment><USER10> I am glad they are partnering with these open source projects and companies, but they mention Mongo in their list of open source partners. It is my understanding that MongoDB is no longer Open Source, and therefore no longer qualifies to be in such a list of Open Source Open Source centric partners.

</comment><comment><USER11> Seems like the license brouhaha spurred some changes and new relationships. Probably not a bad thing.

</comment><comment><USER12> I still don't like Google benefits from all these opensource projects and having at the same time an extremely non transparant pricing models which can change anytime. Plus the fact that they have shady ways of adding your business to their vendor lock in trickery, is reason enough that I would never use gcp for our businesses.

<comment><USER3> I wish these cloud providers would "open source" their pricing models. I know some people were probably abusing the hell out of the matrix api but the price hike is quite insane tbh. Maybe this sounds dumb but it's for this reason that I go with Digital Ocean for my personal stuff.

For example, something like: compute time + availability + hardware + ?

At least with lambdas you can average out time through individual function blocks and scope it to hopefully know what pieces of the users code are the most intensive. Maybe lambda get us closer to this transparency model by showing us down to the functional block what is costing what.

<comment><USER13> The Cloud Billing Catalog API offers programmatic access to all GCP pricing.

[https://cloud.google.com/blog/products/gcp/introducing- cloud...](https://cloud.google.com/blog/products/gcp/introducing-cloud- billing-catalog-api-gcp-pricing-in-real-time)

Re: pricing changes, I presume you're referring to the Distance Matrix API under Maps? That's rather separate from Cloud, but at the end of the day doing a lookup of _all_ routes between M places and N places is going to cost Google M*N more than a single lookup.

Disclaimer: I work at GCP and used to work at Maps (but before the pricing change, which I was not involved in).</comment></comment></comment>


Analytics Showdown: KISSmetrics vs Mixpanel (YC S09) - <AUTHOR> http://sachagreif.com/analytics-showdown-kissmetrics-vs-mixpanel/ <comment><USER2> If you'd like to try out KISSmetrics or Mixpanel, note that the article includes a discount at the end for both sites.</comment>


It's 2016 already, how are websites still screwing up these user experiences? - <AUTHOR> http://www.troyhunt.com/2016/01/its-2016-already-how-are-websites-still.html?m=1 <comment><USER2> The entire answer is "We can only pay for Web Services with advertising so we do all these crappy things to the user experience to keep the lights on."

You want free web pages, organizations want to eat and sleep. 2016 is the probably the first year where the Ad Warz have gone really really hot. I predict that by 2017 or 2018 at the latest many of these sites wont even talk to you unless you pay them money directly. The only "free" content you will get will be re-hashed (perhaps algorithimically) stuff which has no actual value but all the keywords you searched for.

</comment><comment><AUTHOR> Pretty sure I wrote this in my sleep or something. This guy says everything that I say! Sent it to a coworker and he said he's heard me say everything on the list lol</comment>


The US already has the technology to test millions of people a day - <AUTHOR> https://www.technologyreview.com/2020/04/28/1000671/covid-tests-millions-per-day-crispr-biotechnology-advances/ <comment><AUTHOR> Hey all; wrote this with Feng Zhang, Jason Kelly, and Jay Shendure. The argument largely is already technology in place that will scale for mass screenings for bringing people back to work. To make it happen, we believe it will require separating clinical testing from mass screenings, allowing us to clear many of the logistical and regulatory barriers standing in the way.</comment>


Joel Spolsky video – Simplicity is a way of avoiding looking like you lack value - <AUTHOR> http://thebln.com/2011/11/joel-spolsky-at-business-of-software-2009-simplicity-is-a-way-of-avoiding-looking-like-you-lack-value/ <comment><USER2> Joel has said in the past that nothing has increased sales more than adding new features. I've always wondered how he reached that conclusion and what data he used to arrive at that. (it doesn't necessarily follow that if subsequent releases generated more sales and had more features, then it's because of those features that sales were made).

Generally I've found that simplicity may not create marketing buzz for your product but will result in more people actually using it (sadly people using != more sales all the time). That's why people still use excel instead of the enterprise crm/erp system that their COO bought.

<comment><USER3> Features don't necessarily translate into more complexity.

<comment><USER4> Actually, they do by default. It takes extra work to maintain simplicity while adding features.

<comment><USER3> Sorry about my mangling of the english language!

From the end user's perspective, features often reduce complexity, sometimes dramatically so. Before "mail merge" was a common MS Word feature, collating form letters was a tedious job.

Good engineering and design integrates features into the application in a way that avoids complexity.

<comment><USER5> Yet even something as straightforward as mail merge is a hurdle many MS Word users cannot clear, at least not without out a call to the help desk.

</comment></comment></comment></comment></comment><comment><USER6> I have found the recent trend of lets "simplify" everything cause Apple did it at times annoying. Take for example the Gnome 3 shell. Most Linux users want "options" and don't mind complexity otherwise they would buy a Mac.

I find it ironic that Apple has prided itself with "Think Different" and break away from big brother (for those that remember the "1984" commercial) when apparently Apple prefers homogeneity instead of uniqueness.

<comment><USER7> > I find it ironic that Apple has prided itself with "Think Different" and > break away from big brother (for those that remember the "1984" commercial) > when apparently Apple prefers homogeneity instead of uniqueness.

The 1984 commercial wasn't intended to state that every individual computer should be different, but that you should be able to do different things with your computer than just the business applications that were prevalent.

<comment><USER6> Actually I wasn't really focusing on their software but their hardware (my wife wants the iPhone in gray to match her coach pocketbook). You can actually customize Mac OSX far more than you can customize gnome shell.

I was merely making fun of Apple's crazy licensing for the App Store, their lack of respecting privacy, the fervent fanatic love for them, and that a majority of the users that use Apple products are of a particular demographic all of which to me is very very 1984ish.

Just ask Bret Victor: <http://worrydream.com/#!/Apple>

Hey I will say that the MacBook Air kicks ass!

</comment></comment></comment><comment><USER8> I _almost_ completely disagree. To be fair, I don't doubt that there are companies use simplicity as an excuse for not adding value. At the same time, there are at least as many companies out there that pack feature after feature into their products, then find themselves asking "Why is no one using my product? It can do so many things!"

The fact of the matter is that simplicity _is_ a value. I suppose one could argue that it's a somewhat overrated value. But for startups, it's the most important value. Startups simply don't have the time or resources to create complex products, at least starting out.

<comment><USER9> I think what Joel argues that you can keep things simple but keep adding features. Granted that's really hard to keep the balance but it's doable. Simplicity is hard, keeping it simple while adding new features is even harder.

> Startups simply don't have the time or resources to create complex products, > at least starting out.

Completely agree. It's one of the easiest things that a startup can provide (assuming there's talent within the company who can deliver that simplicity. All developers know by now delivering simple and usable software can be really hard)

</comment></comment><comment><USER10> I think it depends on the market. There are some markets where complexity is really a pain. There are other markets where existing products are already simple enough for the given users that this is not the main concern.

Unfortunatelly in markets where complexity is a huge pain nowadays it is very hard to find or build the relatively simple solutions. Otherwise others would have found/built it already.

So yes, yet another bug tracker will not win in the market just by being even more simple than the other simple bug trackers.

But in a market where users are actually fustrated of the complexity they have to deal with - it can hit big. For example in case of programming languages, frameworks it is a big selling point to be simple: programming can become fustratingly complex if the tool is not designed with simplicity in mind (see enterprise Java). That's why things like Ruby on Rails are successful.

</comment><comment><USER11> A better title might be "simplicity is used as an excuse for creating worthless software."

But anyway, Spolksy basically advocates finding the "elegant" solution, which is the one that incorporates useful features in an easy-to-use way. Hardly a controversial position. However his use of the word "simple" consistently conflates feature-poorness (lack of features) with ease-of-use. So when he says focusing on simplicity results in worthless software (as indicated by actual sales), he appears to attack ease-of-use. He's not. He's only attack feature-poorness. Cue confusion and controversy.

</comment><comment><USER12> This is [2009] add it to title.

</comment><comment><USER13> Simplicity and features are related, but they aren't opposite ends of a spectrum. I tell my design and product team that as the core feature set grows, more development time and design effort must be invested in keeping the software simple to use. Similar to the way your test suite must grow more powerful to cope with increasing code complexity. There's probably a cool metaphor like technical debt lurking around here somewhere.

As an example, think of Facebook - one of their ideas was to simplify the standard classes & permissions system down to concept everyone would understand and use: Friends. Friends is basically permissions without the classes, wrapped around a familiar mental model. This was very successful, but over time users demanded the ability to grant different permissions to different users. For example, family vs. applications or close friends vs. co- workers.

So Facebook re-introduced the concept of classes to their permissions systems. They called them lists. And they ran into the same problem that has bedeviled permissions systems from the dawn of Unix. It's a PITA to understand and manage the additional complexity.

So Facebook invested a lot of time in simplifying class management. Namely, they used social signals, some basic heuristics (everyone has a class called "applications" and another called "family") and probably some other information to auto-assign friends to classes for you.

While the new, class-aware permissions system is more complex than what Facebook started with, it's simple enough that users seem to be adopting it just fine.

This is just one example, but this sequence is repeated everywhere good software is made. And it's pretty easy to understand: stop adding features when they add too much UI complexity for your target audience to successfully use. Assuming you're not doing monolithic releases and are capturing lost of user feedback, you'll know when you're about to cross the line.

<comment><USER14> > While the new, class-aware permissions system is more complex than what > Facebook started with, it's simple enough that users seem to be adopting it > just fine.

Do you have a reference for this? In my personal experience, very few people are using the new list feature.

</comment></comment><comment><USER15> Actually, the most important thing to increases sales is "it must not suck".

It seems like we are parsing "simplicity" too much lately. It is not "simplicity"; it is "it works".

Starbucks is not successful primary because their coffee does not give you diarrhea.

Oracle DB is not successful because they were the fastest or more features: it actually worked better than other RDBMS on the market.

I can also mention SAP (super complex - but it works), etc.

Please don't think your customers are stupid. They can handle complexity if your thing does the job well.

</comment><comment><USER16> It's a cycle.

1) Someone builds a product

2) Feature creep

3) Next gen comes along and builds a simple variant with only critical features

4) Feature creep

5) back to 3

It's human nature to want to 'improve' something. With software that invariably means more features. New managers/owners of any project usually arrive with a shopping list of improvements - because more features = happier customers right?

</comment><comment><USER17> I'm not sure I'd want advice on the value (or lack) of simplicity, from someone who is in part responsible for Visual Basic, and has two main products that are far from either top notch or tremendous financial successes and which are coded in a monstrous ad-hoc compiler that spits out PHP and/from ASP.

That said, he has written several good project management essays --if you skim though all his bullshit UI and interview advice. I mean, UI advice from the man responsible for CityDesk??!

Well, at least you can't fault his very good mercurial tutorial, or Stack Overflow.

<comment><USER18> It may be popular to hate VB, but it was certainly much simpler to develop with than the C++ Windows SDK was at that time. Surprisingly powerful too. I remember building both a point/click adventure game , a poker game and an organizer app from scratch without any formal CS education.

From what I remember Joel was responsible for VBA, which brought programming to people who had no idea what a pointer was. Of course this spawned some of the most badly written business apps out there, but that's hardly his fault.

Are they still using their own compiler? Never really understood the reasoning behind that , I believe it was to make it compatible with Windows and Unix, but surely they could have simply written the app in php and bundled it with apache all statically linked together?

Pherhaps CityDesk was not the best thing ever, but nobody gets it right every time.

<comment><USER5> IIRC they wanted to make an existing ASP app (FogBugz?) and be able to sell it to Unix shops, ergo a cross-compiler that spit out PHP from ASP. They did not want to maintain two distinct codebases. From that, it evolved into an in- house bespoke development language.

Also IIRC, in its day CityDesk _was_ a fair bit simpler than other website management systems.

</comment></comment></comment><comment><USER19> I don't even like the grammer.

'to avoid looking like'

Would be better.</comment>


Build yourself a private self-hosted full stack personal cloud system - <AUTHOR> https://github.com/technomada/cloud-from-scratch <comment><USER2> I have and continue to build this exact thing but with kubernetes as a base.

If you have enough docker container that you feel youd like to use docker swarm, you can use already kubernetes.

\- either gitlab or github (now both have free private repos) \- Ubuntu with microk8s \- argocd for sync between git and your k8s \- argocd to manage your application \- argocd has a declartive setup, you can configure argocd through argocd! [https://argoproj.github.io/argo-cd/operator- manual/declarati...](https://argoproj.github.io/argo-cd/operator- manual/declarative-setup/) \- your application with a simple docker container + a litte bit of yaml \- traefik + lets encrypt -> dns out of the box / with little effort

Now you can use your host to store your data and backup only that folder where you have all your storage needs, or you go with longhorn or openebs. With that setup you have all of your setup as code in your git (automatically backedup) and all configs in your storage system or storage path.

If you then would like to have a ltitle bit of high availability, take a raspi, install ubuntu with microk8s and join your single node cluster.

You can then either use tekton inside your already existing cluster to have your own small build pipeline for your images or you connect gitlab.com with your private k8s cluster so that you have your own gitlab runner. Which you don't need as gitlab is allowing free builds.

prometheus operator (promethus + grafana) is already available as an addon in microk8s. Its just one line to enable it -> monitoring done.

You can continue with this by buying yourself a small server, install microk8s on that, join it to your cluster and now you can deploy automagically to the internet.

</comment><comment><USER3> What is the reason for requiring a cloudflare account?

> For this setup you'll need...

> Cloudflare Account

That defeats the point of self hosting in my opinion. If traffic is flowing through cloudflare then I'm no longer in charge of some key bits of metadata.

<comment><USER4> Hey, repo poster here. The requirements are if one wishes to be able to follow all the directions completely. Depending on your drivers you may or may not want Cloudflare. Some advantages of Cloudflare are privacy (hiding your actual server IP (if you proxy all the addresses,)) caching (if you expect a lot of traffic,) nice API control of name server functions, and it's free. But, you trade that for unencrypted man in the middle, certainly an understandable deal-breaker for certain situations. Cloudflare can be skipped and your domain mapped directly to your edge server IP using your registrar dns panel.

<comment><USER3> Good to know and that part should be clarified in the readme so that upon skimming it's clear that cloudflare is optional.

<comment><USER4> Good idea. Done.

</comment></comment></comment></comment><comment><USER5> How does the caddy instances on the home network side get certificates for accessing directly from the LAN?

<comment><USER4> Currently all access goes out to the net and returns via the edge node. Works, but we can improve this. The ability to go LAN to LAN is an advantage of home hosting and some (many of the newer) web api services require https to work. One possible approach, on todo, adds a name server service on the LAN which maps your domains locally when you're LAN side, and a mechanism added which forwards certs generated on the edge node Caddy instance to be used on the LAN Caddy instance.</comment></comment>


Understanding Git - <AUTHOR> http://www.eecs.harvard.edu/~cduan/technical/git/ <comment><USER2> That is actually one of the better intros I have seen, which surprised me some-what (there are quite a lot of introductions to git now!). Possibly I've just used git enough by now -- albeit not intensively -- that it was easy to follow, but I completely agree with his contention that you have to understand the repository format to understand git, and he does a good job of of covering that in context.

Scott Chacon's gitcasts included a keynote he gave which also has a good explanation of the repository and how it works: <http://www.gitcasts.com/posts/railsconf-git-talk>. He has a peepcode book covering the same material, which I bought out of appreciation for gitcasts at the time.

<comment><USER3> I was going to say that at first glance this writeup resembles Scott Chacon's general approach in his Peepcode book, which is good.

</comment></comment><comment><USER4> Good tutorial. I think this is a more meaningful approach than e.g. trying to explain git in terms of SVN, because that reminds the reader of too much conceptual baggage, only to note later that it's largely irrelevant now.

It's actually a relatively simple model, when you focus primarily on the data structures.

</comment><comment><USER5> If you're interested in the Git internals, I'd highly suggest reading John Wiegley's "Git from the bottom up":

[http://www.scribd.com/doc/6377254/Git-from-the-bottom-up- by-...](http://www.scribd.com/doc/6377254/Git-from-the-bottom-up-by-John- Wiegley)

<comment><USER6> Here is the unencumbered and original link for that:

[http://www.newartisans.com/2008/04/git-from-the-bottom- up.ht...](http://www.newartisans.com/2008/04/git-from-the-bottom-up.html)

</comment></comment><comment><USER7> I really appreciated your write up as a primer on git. Thanks for writing it. One issue I have with it, though, is that the part focusing on Pushing and Fast Forward Merges is either vague or incorrect and led me down some confusing paths. I'm specifically referring to the part where you claim "one common problem is when you do development on a branch and the branch changes on the remote repository as well... if you pull master from the remote repository, you will get a warning, and if you force the pull to go through, you will lose commit "

First off, a fetch will never result in a fast forward, since it is just modifying remote references, not merging local references. If you fetch in this scenario, it will not cause an error or you to lose your commit. It just updates the remote reference. You can then merge, resolve any conflicts and you're set. Doing a pull is just doing these two steps as one -- i.e. a pull = fetch + merge. After merging, you can push back.

<comment><AUTHOR> Thanks for pointing this out--this is either a new feature since I wrote the tutorial, or I didn't get it right the first time around. I think it is correct now.

</comment></comment><comment><USER8> This is a good guide for someone getting started with git, but does not really explain why you might want to use git instead of some other version control system, such as svn. The title of this work implies it's something more than an introductory tutorial, but that's really all it is.

<comment><AUTHOR> I appreciate the comment. To be fair, this was intended to be an introductory tutorial--it was written to teach Git to a friend of mine. Its purpose was to introduce Git in terms of underlying concepts rather than as recipes of commands, as most tutorials only provide. I'm not particularly of the view that "understanding" is the province of experts; novices are perfectly capable of grokking a system, given proper instruction.

<comment><USER9> I struggled with svn when I first started out with version control for this reason. I often found things explained as "this is how you do it" or "What if you want this? Type this!" which doesn't tell me anything unless I'm asking the correct question. I found that understanding branching was extremely important to understanding how the system works as a whole, but perhaps that's just when everything clicked.

<comment><USER10> I think many developer tools - and perhaps Unix-style tools in particular - suffer from this problem of skipping past concepts to syntax. There's an inherent expectation that you aren't a user who wants just the "shallow" common-case uses, but instead are going to go through a rite of passage where you learn the ins and outs of all the concepts the tool uses, make it part of your daily life, and piece it together with the other small powerful tools into some conglomeration that solves your problem.

This is great for developers, but bad for end-users, as a lot of users will run away before learning new concepts(they're busy enough already), while others will take a macho posturing attitude towards it and look down on the people who ran away. The community gets polarized. Git exemplifies this kind of thing, for better or for worse.

It's not a huge surprise that so many developers have switched from Linux to OSX, since the latter has made many more provisions towards the newbie end- user; it indicates that most developers don't want to take on this kind of burden, at least not all the time.

</comment></comment></comment></comment><comment><USER11> Small correction, `git add -a` adds untracked files, too. `git add -u` does not.</comment>


Something in the air kills flu virus - <AUTHOR> http://news.cnet.com/8301-13639_3-10239293-42.html?part=rss&subj=news&tag=2547-1_3-0-5 <comment><USER2> You don't want to breath a continuous stream of hydroxyl radicals. Its hard on your lungs.</comment>


Discovery: Taste receptors found in lungs - <AUTHOR> http://www.physorg.com/news/2010-10-discovery-receptors-lungs-people-asthma.html

<comment><USER2> This doesn't surprise me. I'm pretty sure I have taste receptors on the outside of my throat (ie, the front of my neck).

I first noticed it when I tasted blood after cutting myself shaving. I've done a few experiments on myself with sugar vs salt solutions, and I could identify the sugar solution pretty well.

Apparently this is uncommon, because when I tell people they look at me weirdly (although I guess that could be because they think I'm some kind of odd mutant and might sprout metal talons or something).

</comment><comment><USER3> I have asthma. When I was a kid, and if I had an attack, my mom would have me hold my head over the sink running hot water and then put a towel over my head to keep the steam in.

Anyone have an ideas for some liquids or foods which are bitter and could be easily made into an aerosol? I'd be halfway interested in seeing if the theory works. Asthma sucks.

</comment><comment><USER4> I wonder what could have caused these to evolve.

After all, our ancestors spent the vast majority of their time outside in the open air. Air quality really shouldn't have been an issue almost all the time, and on the odd occasions when it was (eg you somehow get into a cave where the air is bad) this wouldn't help much.

</comment><comment><USER5> Makes a lot of sense. People talk about tasting the air.

I've always kind of felt like fully inhaling stuff through the mouth gives you more than just the smell. This was always just a very subjective experience though.

<comment><USER6> From the article:

 _The researchers say that in the lung, the taste receptors are not clustered in buds and do not send signals to the brain, yet they respond to substances that have a bitter taste._

The bitter-sensing cells in your lungs aren't connected to the brain, so you can't get any sensory information from them. They just cause passageways in the lungs to dilate.

<comment><USER5> I did read that.

My thought was that, if your lungs have bitterness receptors and you experience physiological change based on them, then inhaling certain kinds of air that lack the bitterness may flush out the bitter taste and produce physiological change that corresponds to a lack of bitterness.

It's hard to separate out the effects of oxygenation and heat and focusing on the specific point when the air enters your lungs though.

So yeah I'm being unscientific.</comment></comment></comment>


IncPy: Automatic memoization for Python - <AUTHOR> http://www.stanford.edu/~pgbovine/incpy.html <comment><USER2> My favorite parts of python are the parts more oriented to functional programming (ie. list comprehensions). As I got more of an appetite for functional programming, I have drifted, because it seems at odds with the direction python is headed (ie. Guido wanting to remove map/reduce).

There have been a few libraries posted here on HN recently about adding functional elements to python, so apparently it's not just me. Maybe it's time for a "functional fork" of python?

<comment><USER3> It's a weird synthesis, but I wouldn't frame it as hostile. A functional programming style has always been at odds in the Python world. OTOH, you have functools and itertools, et al. On the other, classes and a preference for explicit loops.

Yet even in Python3 where reduce has been moved around, there's still the spirit of functional programming present. The map, filter, reduce functions all return generators. This is a pretty good improvement as you can now use them on (theoretically) infinite sequences.

Yes, lambda is the lame, dead horse. It's just a syntactic issue. I'm sure most people in the Python world would be happy to receive a multi-line lambda that can return more than just an expression. It's just that no one has been happy with any of the syntax proposals to make it happen.

However, there are other things about lambda in Python that make it difficult to implement as well. But I think baby steps are important.

Is a fork necessary? Well... it would be nice to see some people experimenting with getting lambda to work. However I don't think a fork of the interpreter is necessary just to support a _style_ of programming. Indeed Python prefers one way to do things, but functional programming has proven practical enough I think to be an exception to the rule and so it lives on. Sort of. :)

</comment></comment><comment><USER4> In this context it's worth noting that writing a memoizing decorator in Python is ridiculously easy:

      class memoized(object):
         def __init__(self, func):
            self.func = func
            self.cache = {}
         def __call__(self, *args):
            try:
               return self.cache[args]
            except KeyError:
               value = self.func(*args)
               self.cache[args] = value
               return value

<comment><USER5> (IncPy author here ...)

yup agreed, but the programmer needs to figure out:

1.) when it's safe to memoize

2.) when it's worthwhile to memoize

also, your memoization decorator doesn't save data to disk. if you wrote a persistent memoizer, then you would need to also track all dependencies for the data you memoized, so that you can know when it's safe to invalidate on- disk cache entries.

IncPy takes care of all of this automatically ;)

<comment><USER6> I have a question. How does IncPy keep track of data dependency coming from IO layer e.g. sockets. Say I want to write a simple web crawler. The function crawls a website, spits out the HTML in raw string, sleeps for 5 seconds and then crawls the site again. Will IncPy not memoize the function at all, knows that the data coming from the network layer has not changed and return the memoized string immediately, and/or smart enough to detect when input (the website) has changed and expires the cache automatically?

<comment><USER7> incPy need checks the functions it caches to be pure and determinstic. determinstic function is a function that when given the same input , always returns the same output. incPy tests for a few options of non-determinism , and will allow in the future to define non determinstic sources in a config file.

</comment></comment></comment></comment><comment><USER8> I like it, but isn't the approach a little overkill?

If you'd design a declarative systems where you declare your datasets and how they transform into each other, then you could analyze the dependency chain and do the same thing as a library instead of a separate interpreter.

Sprinkle some transparent pickling, hashing and timestamping in there and you get all of the benefits but much more reusable.

Am I underestimating the problem?

<comment><USER9> _If you'd design a declarative systems where you declare your datasets and how they transform into each other, then you could analyze the dependency chain and do the same thing as a library instead of a separate interpreter._

That sounds like a lot of effort on the part of the programmer. The author's approach - which I like - is to require as little intervention from the programmer as possible.

Don't confuse the author's research implementation with how it should look in practice. I imagine the author implemented a light-weight interpreter that does the memoization on top of CPython. That's far easier than hacking CPython itself, which gives him a faster path to proof-of-concept implementation and publishing evaluations of the idea. If the research gives good results, then maybe this approach could get implemented as a VM optimization - you wouldn't know it's happening, your programs just run faster.</comment></comment>


Direct Multipixel Imaging of an Exoplanet with a Solar Gravitational Lens - <AUTHOR> https://www.nasa.gov/directorates/spacetech/niac/2020_Phase_I_Phase_II/Direct_Multipixel_Imaging_and_Spectroscopy_of_an_Exoplanet/ <comment><AUTHOR> H/t the excellent Orbital Index newsletter.

This is the third ever NIAC Phase III grant, which is $2M over two years to transition the most promising advanced concepts to other parts of NASA.

The mission would fly a swarm of imaging satellites to 550 AU (11x Pluto's maximum orbital radius) using solar sails and ultimately image an exoplanet directly with a surface resolution of 25 km per pixel (!).

NIAC also funded a phase 2 grant for a new high performance solar sail which could reach the imaging point in just 8.5 years.</comment>


Long division for integers: theory and alternative methods - <AUTHOR> https://mathvault.ca/long-division/ <comment><USER2> So reduce division to SMT solving and QED.</comment>


Ask HN: So Marissa failed to revive Yahoo what would YOU have done different? - <AUTHOR> If you were the CEO what would you have done to revive the grand old dame of the Internet? <comment><USER2> Define 2-3 things Yahoo! can excel at, and sell/spin off everything else. For anything not sellable/spinnable, reassign staff where possible and layoff otherwise. Do it once and in the beginning when you have the honeymoon with wall street and the employees. Explain it is painful but necessary for the health of the company. Then pour all the resources into being great in the top 2-3 things at most.

Doing that sounds cold, but it would buy you more time to right the ship generally. Small layoffs over 2-3 years causes way more moral issues. Like making significant changes to long standing working environments/policies. If you have to, do it early and once, don't keep ripping off band-aids or morale will be shit.

Acquire only a company that is either #1 or #2 in their market and can help extend the 2-3 things you defined up front. If the company/product isn't related then don't make the acquisition.

She should also have not gotten so involved with micro managing every group and detail. Hire the right team on the executive staff that sees the vision and can get their staff on board and lead them not manage them. Help support your staff in any way they ask but do not interfere by getting involved with developer interviews or other processes like that, it will only serve to slow down the process and cause failure not prevent it. Not to mention it screams out that you do not trust even the people you brought in, so then why should their direct reports trust them.

</comment><comment><USER3> I would have done exactly what Ms Mayer did which is take the cash and run. What a scam.

</comment><comment><USER4> Revenue and profit buys time. If both decline you'll end up exactly where Yahoo is now. Marissa focused heavily on her product strategy without understanding the dynamics of running a public company under the scrutiny of Wall Street. In the first 6 months she should have made deep cuts in staff to reduce costs, eliminate flailing products and double down on those driving top line revenue. All of this would have bought her more time to then focus on product strategy. There's a reason why Google can do whatever they want. Ads was producing 90%+ of the revenue back in the day and is still the biggest cash cow, nobody gave a crap as long as they kept pulling out ridiculous top line growth like that.

As much as you may want to take a 5 year approach you just can't do that in a public company. You have to nail the quarter or they'll lynch you.

</comment><comment><USER5> There's a scene in COAL MINER'S DAUGHTER where the producer halts the recording session after Loretta Lynn starts singing and says "We need to get some more pickers."

"What do you mean more?" her husband says. "I can't afford more."

"I mean more better," the producer replies.

The problem isn't so much WHAT Mayer did, but how badly she did it. She wanted to boost Yahoo's video division, for example, so she (a) paid Katie Couric (someone my Mom really liked) more money than God, (b) licensed the streaming rights to SATURDAY NIGHT LIVE (which needs to be put out of its misery) and (c) decided to fund a season of COMMUNITY (which nobody ever watched). Now THERE'S a compelling product offering. WhoTF would watch that?

She redesigned the site to make it mobile-friendly-- which made it almost unreadable for desktop users. Apparently no one told her that browsers send information about what type of device is reading the site. I liked the tech news, but it became so painful that I just gave up.

(She also killed a lot of the personalization features, which is what had attracted people.)

She bought a lot of tiny companies, most of which made products that were never integrated-- and whose employees left as soon as their employment agreements expired.

She bought Tumblr... then had absolutely no idea what to do with it, and ended up not doing anything. Shut down their sales force to integrate it with the Yahoo sales force (which didn't want to sell Tumblr)-- and then realized they'd have to restart the Tumblr sales force to monetize at all.

She inherited an email system that was a hot mess and made it a different type of hot mess-- with enough glitches that people couldn't rely on it for their email.

A lot of the ideas were reasonable, but the execution was so horrific that there was never any value-add.

<comment><USER6> The only thing I use Yahoo! for is for fantasy sports. They recently started trying to compete with sites like DraftKings by using obnoxious pop-up ads for it all the time. Very poor execution with that as well.

</comment></comment><comment><USER7> [http://www.design.caltech.edu/erik/Misc/Prepare_3_Envelopes....](http://www.design.caltech.edu/erik/Misc/Prepare_3_Envelopes.html)

Why is Yahoo so politicized and who cares? I think Yahoo is no different from any other large corporation. It's just that the players are engaging and using the media a lot more for their stupid rich asshole power struggles that 99% of earth doesn't care about.

</comment><comment><USER8> Turnarounds are especially tough when you are in a business where people are your best asset. You can't just make changes, because you have rot in the system _. Doubly worse when you are a micro-manager, rather than a charismatic leader. IMO, Yahoo needed more than a strategist.

_ Even the good Yahoo products, like Finance, as ridiculously bloated and buggy.

</comment><comment><USER9> Yahoo ruined tumblr by putting loads of ads on the website. I would take the cash and invest in tumblr rather than making it look trash

<comment><USER10> Tumblr honestly looks like livejournal 2.0. What is their competitive advantage? Network effects? I see it deteriorating within 5 years

</comment></comment><comment><USER11> Quite honestly I couldn't have handled it at all and would have had to quit within a few months.

</comment><comment><USER12> Make the website minimalist. Change the colors, focus on journalism. Compete with Huffington Post and AOL.</comment>


Ask HN: Strategy for "winning" powerball (and passing stats) - <AUTHOR> Everyone is calculating the expected winnings of powerball incorrectly because no one includes that you'll probably have to share the prize since people pick the roughly the same numbers (birthdays, odd, prime numbers) making a collision likely.<p>So:<p>- what is the expected value of a random ticket, given that certain combinations are likely to be shared?<p>- Given deep pockets, what are the numbers to play and when is the time to play them? <comment><USER2> If you assume numbers are picked uniformly, and you know the distribution of the numbers people pick, you can just apply the double expectation theorem to find the expected value of a random ticket.

Without the latter distribution, it's hard to answer the second question, but I'm going to hazard a guess that the optimal strategy is to put the money in the bank instead ;)</comment>


Show HN: isEven API – tell if a number is even SaaS - <AUTHOR> https://isevenapi.xyz/ <comment><USER2> This would be much easier to adopt if there was an NPM package or Rubygem to simplify our company's integration with their platform.

</comment><comment><USER3> I'd rather pay with with utility isEvenCoins, rather than with USD.

Also, our entire stack is GraphQL-based, so we must have a GraphQL API according to this schema:

        schema {
          query: Query
          mutation: Mutation
          subscription: Subscription
        }

        type Query {
          balance: Int!
          isEven(input: isEvenInput!): isEvenPayload!
        }

        type Mutation {
          depositCoins(amount: Int!): DepositPayload!
          withdrawCoins(amount: Int!): WithdrawPayload!
        }

        type Subscription {
          coinsDeposited: Int!
          coinsWithdrawn: Int!
          coinsSpent: Int!
        }

        input isEvenInput {
          number: Int!
          gas: Int!
        }

        type isEvenPayload {
          result: bool
          balanceLeft: Int!
          isError: bool!
          errMsg: String
        }

        type DepositPayload {
          newBalance: Int!
          isError: bool!
          errMsg: String
        }

        type WithdrawPayload {
          newBalance: Int!
          isError: bool!
          errMsg: String
        }

<comment><AUTHOR> Beautiful! We'll begin work on this as soon as we finish planetzero's idea, the isBool API.

</comment></comment><comment><USER4> I think you need a dashboard with animated graphs (preferably in bright colors on a dark background with thin text that has just enough color contrast to indicate that there's text there at all) to help track KPIs. With push notifications if even/odd distributions veer outside of a user-defined threshold, which is cunningly defined as an index value with a more impressive sounding name and handy three letter abbreviation.

That should really help distinguish yourself in this hotly contested market space.

<comment><AUTHOR> Excellent idea, this will be our first milestone after we raise our seed round!

</comment></comment><comment><AUTHOR> I got tired of seeing programmers struggle to tell if a given number is even, so I built this solution.

You can see an example here: [https://github.com/BraydonKains/is- even/blob/master/python.m...](https://github.com/BraydonKains/is- even/blob/master/python.md#iseven-api)

I'll be around for questions!

<comment><USER5> They were being fired for not knowing it so your contribution to society is legit.

</comment></comment><comment><USER6> It's scary how convincing this is, kind of like an SNL skit which is too real...

</comment><comment><USER7> It appears that the API is unversioned, which concerns me as my company is very future-looking and will need to support numbers as they modernize. How will you handle version migrations?

</comment><comment><USER8> This is much more practical than learning maths.

Hopefully, it has support for imperial numbers one day

</comment><comment><USER9> I am fine as long as the ads in api response are not personalized.

</comment><comment><USER10> Joke or not. This will look great on a resume. :)

</comment><comment><USER11> productization of everything

</comment><comment><USER12> I will be looking forward to your next project: isBool</comment>


Show HN: Netflix Rate Chrome Extension - <AUTHOR> https://chrome.google.com/webstore/detail/netflix-rate/ecaaapiecdienibfgolcopgnicppkmhn?hl=en

<comment><USER2> What I want is a way to sort my instant queue without having to futz manually. A simple sort by rating would be nice, and way more useful than the order I added items to the queue.

<comment><USER3> There is a way to sort Netflix content by rating: Watch instantly / Subtitles and captions, and then 'all languages' (by default) and then sort by rating.

Direct link (?): [http://movies1.netflix.com/Subtitles?st=rt&so=1](http://movies1.netflix.com/Subtitles?st=rt&so=1)

I believe this sorts all streamable content (or maybe only content that contain subtitles?), based on your Netflix rating (that is, either the one you gave because you watched it, or the one Netflix estimates for you for shows you haven't yet watched/rated).

I find Netflix rating estimates are very accurate and I tend to simply go down that list in order to find what to watch next.

<comment><USER2> Unfortunately this doesn't appear to let me save the reordered list. I primarily watch on Roku and Android, neither of which provide this interface.

</comment></comment></comment><comment><USER4> Just out of curiosity, does anyone know if a tool like this exists on the imdb/rotten tomatoes side to see if a listing is available for Instant Viewing on Netflix?

</comment><comment><USER5> Very nice, although I would like it if ratings were added to the actual movie pages as well, rather than just on the index page with the list of movies. (Maybe it is on the movie pages in the US, I'm using Netflix UK; if so I guess I'll just do without)

<comment><AUTHOR> I never added it to the movie pages since I thought that most people browsed via the index page. The code is public here: <https://github.com/joshblum/netflix-rate-chrome-ext> if you're interested in adding it.

I may add ratings to the search page in the future.

</comment></comment><comment><USER6> Great idea, but I don't like that it added an icon to the toolbar.

<comment><AUTHOR> just right click and hide the button

</comment></comment><comment><USER7> This is exactly what I was looking for since around a month now.

</comment><comment><USER8> Brilliant. I'll probably be using this on a daily basis now.</comment>


With Hackathons Taking Center Stage, The Coming Transformation - <AUTHOR> http://techcrunch.com/2014/02/15/with-hackathons-taking-center-stage-the-coming-transformation-of-the-computer-scientist/

<comment><USER2> The MHacks crew has really changed the conversation for the better in Michigan. This state has really been slow to realize the potential of any industries other than manufacturing, tourism or agriculture.

Dave and his crew have done a really phenomenal job of organizing an event this large.</comment>


UltraViolet DRM will close on July 31, 2019 - <AUTHOR> https://www.myuv.com/ <comment><USER2> The term DRM usually evokes keyservers, but in that sense UltraViolet is meta- DRM, because it has no content-decrypting keyservers of its own. Instead, it's basically a big list of content you currently have rights for, designed solely for interop. You get these rights by using UV unlock codes, or pairing a "retailer service" which then imports its unlocked items into your UV one, and vice versa.

The linked 'retailer service' is the one that has the actual content, and that service runs its own content-decrypting keyservers.

With UV shutting down, the ongoing library interop between the UV partners will go away and further gains to any of those libraries will not be propagated to others.

The concerns about DRM keyservers going away is a real one, but that's not what's happening (this time).

<comment><AUTHOR> This is correct, but then what happens when the UV partner closes up too?

The whole point of UV was to de-risk committing to a specific streaming service because your purchases were portable, like being able to put a DVD you own in a different brand of DVD player.

<comment><USER2> Yeah, you're right. But in some sense that never materialized, because sometimes the place where UV synced your rights doesn't itself have rights from the studio to stream the movie [1]. It's a tangle of voluntary bilateral agreements among competitors whose gaps result in a landscape that's user- hostile, but UV rationalized some of it. Disney didn't join UV, and eventually pivoted their own digital locker storefront 'Movies Anywhere' into a US-only UV competitor that lured some studios and content sellers away.

Since the news about UV is fresh, it remains to be seen whether the remaining studios migrate too, and whether the negotiations between the competing rights databases, the studios, and content sellers can result in a user-fair migration. As for non-US users -- shame on all players in this game -- they're always an afterthought to where piracy offers a superior UX, but other video platforms are proving this need not be the case.

The DVD comparison is illustrative, and proves that decent UX with DRM can be achieved despite a dizzying array of rights, but the permissions are materialized into hardware and frozen in time. Online, the industry has been using malleable rights for both 'rent' and 'own' semantics, but for the latter case it's user-hostile. This is why more and more content platforms are missing the 'own' option entirely: you can stream whatever is available, but the selection may change at any time.

For now, Vudu and FandangoNOW are two services that supports both UV and Movies Anywhere. If one pairs one these to both of UV and MA, the maximum amount of entitlements will sync across.

[1] [https://forum.vudu.com/forum/movie-and-tv-talk/movie- talk/61...](https://forum.vudu.com/forum/movie-and-tv-talk/movie-talk/61295-)

</comment></comment></comment><comment><USER3> This is why I only buy disks and rip them. My Plex server will never close down or tell me I can't watch a movie anymore.

<comment><USER4> While my eBook library is pretty something, the storage costs to rip my movie library onto hard drives would be cost prohibitive. I do keep physical discs of the movies I really enjoy, and generally only buy digital during sales. Most of the "value" in my digital movie collection comes from digital copy redeems.

Vudu does $5 sales all the time, and the way I see it, that's less than a movie ticket. So if I see it once, it was like going to see a movie, but with the theoretical hope of long-term persistence. The fact that MA insulates the risk of losing your titles across every major tech company adds to the comfort level now too, and as noted, nobody is losing their UV library when UV shuts down.

<comment><USER5> How many movies do you have? A 5TB hard drive is slightly over $100 and will hold a minimum of 100 Blu-ray rips, assuming they use the entire disk capacity and you don't reencode them to something smaller.

<comment><USER4> Well, for one, hard drives also fail. So I need backups, unless I want to have to sit and re-rip everything when it happens. I'm a big fan of RAID 1 since I don't have horrific rebuilds, and I offsite my data as well. (Most of my data is stored on five hard drives currently.) So take your estimate drive costs and start multiplying.

Second, my Vudu library contains over 600 movies and significantly more television shows than that. And before you calculate the cost of the storage, bear in mind there's another, secondary cost: The much higher cost I'd have spent to have built that library solely on ripped discs. I never paid full price for a digital purchase. (And specifically, never more than it would've cost to acquire it via disc.)

Third, time. I'm also significantly backlogged in organizing my ebooks, which I do store on drives. Blu-ray ripping time just isn't something I want to dedicate a big chunk of my life to.

<comment><USER6> I totally feel your pain. I have been slowly building a local search engine for navigating the ebooks, PDFs, and other documents I've got stored on my NAS device.

I ended up replacing my NetApp StorVault (6TB (4TB usable), RAID6) with a FreeNAS box from iXSystems (24TB (20TB usable), RAID6) which cost me a bit more than $2500. (it is also much quieter than the StorVault was :-)). And on that 20TB I've stored a bit more than 200 book volumes that I had digitized at 1DollarScan, probably close to 1000 magazines (scanned generally manually with my ScanSnap 1500), and perhaps as many PDF documents that were never printed to begin with (like data sheets). I also have my music collection, and I have recently looked at putting movies on there as well since the streaming services are letting me down here as well.

At the end of the day it is the 21st century version of one's personal library.

<comment><USER4> Currently I can only really do metadata search, but I'd really love to set up fulltext at some point. I have this dream where someday I can do things when the Internet is down.

The other thing I'm interested in, and wonder if you have thoughts on: When you pass, your personal library is inherited. Will people know what to do with your digital library? Will it be useful? Will people want it?

<comment><USER6> My goal is exactly that, usability without me present :-).

The tools for processing PDFs into searchable text have a lot of warts. For a while IBM was offering a free Watson service to do this (now its part of Watson Discovery) which has some warts. I did manage a set of perl scripts that would post process the statements that I downloaded from the bank into CSV files, but I would still like to pull tabular data out of PDF book scans to make the data they provide more useful.

I have a simple frontend based on the perl Mojolicious module which Blekko had developed as part of another project but my indexing tools are still quite primitive. Simple bi-gram and tri-grams, and a growing synonym index. I don't give it enough queries to use my own traffic for ranking feedback. So basically everything is nearly equal rank. Basically I am about to the AltaVista level of search capability :-).

The vision is it just runs as a server and anyone on the same network can access it like a web service an pull up documents (and in the future media) of interest.

<comment><USER7> Did you get very far with other enterprise stuff like Sharepoint?

<comment><USER6> I didn't try Sharepoint, although I looked at Elastic Search on AWS briefly. The goal though was to have all of this stuff on premises both for latency reasons and to maintain a credible defense should someone come after me for copyright infringement.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER4> I am pretty sad to see UV go because of the far more liberal policies it had regarding membership and sharing. UltraViolet supported a ton of smaller studios, television shows, etc. and their sharing system allowed you to share your library with up to five friends, who each had their own logins and ability to link all of their various retailers.

MoviesAnywhere is far more restrictive. Only five major studios are participating, and smaller studios have actually so far been shut out. (STX has tried to get onto MA with no luck.) And obviously it doesn't yet support TV either. Their view on sharing is that you should use the sharing features of a retailer, but all of the retailers have the same, heavy-handed requirement for sharing: Apple, Google, and Amazon video library sharing requires sharing a single credit card for purchasing across linked accounts, which prevents their sharing methods from being used for casual/friend use.

That being said, with studios gradually pulling out of UV anyways, the number of titles you could get new UV rights on was really diminishing anyways, and if each linked Vudu account is going to get permanent copies of our shared UV library when UV shuts down, it'll be good to have confidence that we aren't going to lose those titles.

<comment><USER8> I was having trouble figuring out what UltraViolet did (even after reading the faq).. They seem to a rights management for video but didn't store them?

From there faq: UltraViolet is a free, cloud-based digital rights library for the movies and TV shows that you purchase or redeem at participating retailers. When you buy a movie or TV show that comes with an UltraViolet right from a retailer that you have linked to your UltraViolet Library, it's automatically added to your UltraViolet Library and you have options to stream it over the Internet and/or download it for offline viewing to a variety of devices.

<comment><USER9> Movies would come with UltraViolet codes, which you would enter into the website, and then you would be able to watch the movies on linked retailers (mainly Vudu). It's largely been replaced by Movies Anywhere, which Disney spearheaded and has much larger participation than UltraViolet.

<comment> crooked-v Movies Anywhere also makes the basic idea a lot more trustworthy, because it's effectively a full cross-redeeming of licenses between a number of services rather than just a single service. To lose any of the purchases linked with it, every involved company would need to shutter their video services.

<comment><USER10> "Keychest" was always the better tech. It's been fascinating to see it actually win out over the "worse is better" first mover advantage UV quickly staked out. It's also fascinating that for the most part there isn't any scorched earth from the consumer side of this war; several key retailers seem to have made it a mission that most users wouldn't even notice the transition of all their old UV keys to MA unlocks. Things have mostly just worked out.

</comment></comment></comment></comment></comment><comment><USER11> Once again, having a massive personal archive drive (with backups) proves to be the better strategy.

<comment><USER12> All purchased and UV-synced movies remain in users' accounts. The end of UV simply means they can't sync their purchases to other vendors.

<comment><USER13> Odd. Under the "After the shutdown date:" section:

"Your UltraViolet Library will automatically close and, in the majority of cases, your movies and TV shows will remain accessible at previously-linked retailers."

I wonder what is a minority case?

<comment><USER12> We're referring to the same thing. By user, I don't mean a UV user, I mean a (for example) Vudu user.

</comment></comment></comment></comment><comment><USER14> I'm curious if anyone here thinks it would be morally or ethically wrong to download all the movies that you've already paid for via bittorrent? I can't think of a convincing argument against it, other than being technically illegal.

<comment><USER15> i dont see any issues with it (unless you're also seeding a lot) but my ISP might.

i usually rent from a local library and use DVDFab & Handbrake/x264 to encode from scratch with excellent settings. Most of the stuff on torrent is lousy quality that's optimized for size first. The way I see it, i already pay huge property taxes that more than covers the few select movies i rip. sometimes i already own the DVD (720p) version but not the blu ray (1080p).

<comment><USER16> > The way I see it, i already pay huge property taxes that more than covers > the few select movies i rip.

I can't comprehend how one would arrive at that reasoning.

<comment><USER15> > I can't comprehend how one would arrive at that reasoning.

definitely some mental gymnastics are required. the difference between owning and renting is largely inconsequential. i rarely watch the stuff i own, and since i can rent it for free from a library, i would never buy it. i just save myself a library trip the one time in 2 years that i want to watch it.

i guess i have little sympathy for ever-expanding media conglomerates, like Comcast-NBCUniversal, given how they've treated me as their loyal customer/prisoner for the past decade. i do pay for content from smaller studios, and as i said, most of the stuff i rip is older and i already own in crappier resolution on dvd.

</comment></comment></comment></comment><comment><USER17> Clear example why one should never to buy DRMed media.

</comment><comment><USER18> And the Mouse Monopoly grows ever larger.

<comment><USER4> Disney did spin Movies Anywhere off into it's own company, and my understanding is that the five major studios more or less have equal authority over it. Of course, that five major studios is about to become four, and it does seem like they're gatekeeping out smaller players from participating at this juncture.

<comment><USER19> > it does seem like they're gatekeeping out smaller players from participating > at this juncture.

Impending monopoly abuse lawsuit?

<comment><USER20> But there's 5 (Soon 4) studios, that doesn't sound like a monopoly. Oligopoly and immoral sure, but I don't think most laws will help here.

<comment> yjftsjthsd-h It could potentially be... I think a "trust" is the term? Basically, my understanding is that if you control the market by working with others, it still counts because you're still unfairly gaming the market by collectively leveraging your market share. Very much not a lawyer, so I might be mistaken.

</comment></comment></comment></comment></comment><comment><USER21> Persistence of services like this, and true ownership of media you purchase are important concepts.

VidAngel is currently in court fighting Disney over their version of a system I invented to solve these problems.

</comment><comment><USER22> Paid money to have digital access to these movies, and after the shut down all of the content may not be accessible. I would like to buy an digital file like I can for music.

</comment><comment><USER23> So in the future after Ultraviolet closes, I can redeem an UltraViolet code on one the listed retailers, and it'll still work?

<comment><USER4> Yes. The vast majority will redeem at Movies Anywhere or Vudu or both.

</comment></comment><comment><USER24> DRM is crippleware which has always been a terrible idea. Let's ditch the focus on corporate profits and instead focus on making society better. Which is indirectly good for corporate profit anyway.

Edit: I wish the Hacker in HN was real.

<comment><USER25> Vast majority of people employed in the tech industry (think any major hardware or software company) are implicitly contributing to and benefiting from DRM. So I'm not too surprised with the general sentiment.

</comment></comment><comment><USER26> A good start, but it's not enough. DRM schemes are designed to take away your fair and lawful rights as a participant in the media ecosystem. _Every_ single one of them should be shut down.

<comment><USER27> I _hate_ DRM and think it's a pernicious evil. I boycott DRM-ed media, with rare exceptions in cases where I can rip/re-encode and one vendor holds a monopoly.

That said, while the _impact_ of DRM is a huge reduction in personal freedom, I don't think it's accurate or fair to say:

> _DRM schemes are designed to take away your fair and lawful rights as a > participant in the media ecosystem._

They are designed to protect the copyright holder from infringement in the form of illegal sharing. They just don't care enough about the impact on users to counteract their desire to fight "piracy."

<comment><USER28> > They just don't care enough about the impact on users to counteract their > desire to fight "piracy."

Users rights are a subset of "piracy".</comment></comment></comment>


The AIM FishBot Phenomenon - <AUTHOR> http://nixiepixel.com/blog/index.php/aim-fish-bot-help

<comment><USER2> Yes, it's probably useful to know that script kiddies know how screen scrape and that they are moving into "Do you have Prince Albert in the can?" 2.0

And they do us a real service in bringing home that what is fishy in our web experience may be phishy (or at least fishbotty). Do you want to wager whether somewhere in the bowels of a former Soviet state entrepre-criminals are exploring how to monetize such a process (and not intending to offer an opt- out option)?

It may take a little while to see if this pranksterism can turn sout, since we seem to be in the very early stages: there's not yet a wikipedia article on fishbot, and a sole Wired article ( <http://blog.wired.com/geekdad/2008/11/fishbot-roundup.html> ) is concerned about robots, not webbots.

</comment><comment><USER3> I've been hit by the [papa,phobic]coho a couple times in recent months. Its pretty lame.

</comment><comment><USER4> reaction: this is awesome. sure, if you get connected to someone unpleasant that sux (the "14-yr-old" problem). otherwise, you get a neat little mystery and random but pleasant connection to a stranger. sounds fun.

</comment><comment><USER5> Guess it's time to add a regex block feature to gaim. (block .*Coho)?</comment>


Sponsor a Valve on Colossus - <AUTHOR> http://www.colossusonline.org/

<comment><USER2> This reminds me of the million dollar home page - <http://milliondollarhomepage.com/>. Perhaps they are even reusing the code :)

<comment><USER3> Yes, it's the exact same thing.

And it appears to be working again. If their stats are true then they've already made a healthy £4000 from that page...

</comment></comment><comment><USER4> Imagine if your sponsorship meant your name was actually engraved (tastefully) on the valve itself. £40 per valve would yield the same total amount. I would donate _so fast_.</comment>


Ask HN: What are some reliable sources on nutrition? - <AUTHOR> <comment> et-al I assume you're talking about what to eat, and not necessarily nutrition science. And I'd argue there are none, which is why the whole thing is a mess. I had a really smart coworker announce he was going on a week-long juice cleanse and I had to spit out my drink.

Lots of nutritional advice in America is suspect because someone is marketing a product. And the Old Country ways of eating are either lost in the New World, or don't work sometimes because we've switched from manual labor to desk jobs. And on top of that, are you trying to optimise for athletic performance, longevity, or are you just enjoying life?

(I don't think those three are necessarily mutually exclusive, but I do wonder about the modern obsession of over-optimisation.)

</comment><comment><USER2> I use the following 3 sources:

\- [https://examine.com](https://examine.com) (each article is well sourced)

\- Canadian Government: [http://www.hc-sc.gc.ca/fn-an/food-guide- aliment/index-eng.ph...](http://www.hc-sc.gc.ca/fn-an/food-guide- aliment/index-eng.php)

\- US Government: [https://health.gov/dietaryguidelines/](https://health.gov/dietaryguidelines/) (I'm more skeptical of USDA's [https://www.nutrition.gov/](https://www.nutrition.gov/))

</comment><comment><USER3> .edu and .gov sites are typically considered the gold standard for nutrition information. But your question is incredibly broad. What, exactly, are you looking for? Eating guidelines? Nutrient content?

There are lots of different dietary protocols (keto, vegan, etc etc) that various people swear by. So, your question is simply too broad to answer with more than very broad guidelines about what kind of website to look for when searching.

</comment><comment><USER4> Since becoming vegan, I learned you really have to focus on nutrition, because there are important nutrients in eggs, dairy, and meat that aren't in all kinds of vegetables/fruits. If you don't stay on top of this, it's easy to become malnourished on a vegan diet.

One of my main go-to databases has become nutritiondata.com, which gives overviews of the nutrition information in pretty impressive detail on just about any dish or ingredient you can imagine.

</comment><comment><USER5> Examine.com and wikipedia are my go-to sources.

I also really like Rhonda Patrick's Youtube channel.

If you get regular blood panels, you can usually find what you're deficient in and adjust your diet accordingly.

Cronometer is great for tracking micronutrient intake.

In general though, Michael Pollan's advice is usually enough. "Eat food. Mostly plants. Not too much."

</comment><comment><USER6> Authority Nutrition ( [https://www.authoritynutrition.com](https://www.authoritynutrition.com) ) is a good website for nutritional information and they even cite their sources.

</comment><comment><USER7> [http://efficiencyiseverything.com/calorie-per-dollar- list/](http://efficiencyiseverything.com/calorie-per-dollar-list/)

</comment><comment><USER8> Matt Fitzgerald "diet cults" book is an interesting read on the world of diets and nutrition

</comment><comment><USER9> [http://lpi.oregonstate.edu/mic](http://lpi.oregonstate.edu/mic)

</comment><comment><USER10> Eat meat. Drink water.

[https://zerocarbzen.com](https://zerocarbzen.com)

<comment><USER11> Would love to see their TSH blood tests.

<comment><USER10> [https://www.reddit.com/r/zerocarb/comments/4qlmch/thyroid_an...](https://www.reddit.com/r/zerocarb/comments/4qlmch/thyroid_and_zerocarb/)

[https://www.reddit.com/r/keto/comments/4929yx/can_keto_induc...](https://www.reddit.com/r/keto/comments/4929yx/can_keto_induce_hypothyroidism/)

</comment></comment></comment><comment><USER12> Examine.com

</comment><comment><USER13> For suppliments: Examine.com

</comment><comment><USER14> The Tim Ferris book "4 Hour Body" will introduce you to a whole world of reliable ideas. Also, Joe Rogan talking to Dr. Julie Kedzie, which you can find by googling his podcast.

<comment><USER15> What makes you think those authors are trustworthy and reliable? Especially Ferris.</comment></comment>


Show HN: Acoustic Ruler Pro (iOS app). Measure distances of up to 25 m. - <AUTHOR> http://itunes.apple.com/us/app/acoustic-ruler-pro/id475081963?ls=1&mt=8

<comment><AUTHOR> Check out my app Acoustic Ruler Pro which lets you measure distances of up to 25 m by clocking the time delay of the emitted sound waves.

Watch the video here: [http://www.youtube.com/watch?feature=player_embedded&v=c...](http://www.youtube.com/watch?feature=player_embedded&v=cMFR- Vwg924)

Here are the first 10 promo codes for you:

        TFXPFF7P7KFT
        A6T397RLYKJK
        R6FHAH99A49L
        X4PNYKT3RM3Y
        JKRMX4ME7PKT
        M6H7MTRT3NY6
        NHPRJW4NN3AW
        PW69TEH7MAR4
        FEJLX43L47J6
        MYYN94WR4ALE

I will post 10 more promo codes for every 10 upvotes this post gets. If I get more upvotes than the number of promo codes I have, I will make it free for a day or two ($0.99 now).

You can redeem them as follows:

1) On your iPhone/iPod/iPad, tap the App Store icon from the Home Screen.

2) Navigate to the New section on the Featured tab.

3) Scroll to the bottom of the list to locate and tap the Redeem button.

4) Enter the promo code and tap the Redeem button in the upper right.

5) Tap done on the Thank You screen, then tap the home button to return to the home screen.

6) After a second, you should see the my app installing. (If the promo code was not used before...)

7) Please upvote if you took a code and leave a comment telling which was your code (so the next person doesn't have to try in vain).

Thanks!</comment>


How were the first microprocessors programmed? - <AUTHOR> http://electronics.stackexchange.com/questions/8685/how-were-the-first-microprocessors-programmed

<comment><USER2> I used cross assemblers in DOS to program 803x series of micro-controllers in 80's. To debug the hardware, I used a toggle switch to single step the programs and a LED probe to check the address lines to verify that the program branched to correct location, keeping a printout of the intermediate output from the compiler which showed assigned address for each instructions.

To avoid stepping through several hundred lines of instructions before reaching a particular routine say floating-point arithmetic, I would set beginning of the routine in question at a convenient address like 0x400, and wire the address line (A10) to break the program.

I have created several useful products using these humble tools.

</comment><comment><USER3> I've hand assembled (small) bits of Z-80 code and toggled it via switches a byte at a time in to bootstrap old CP/M machines. Interesting, but not much fun.

Commercially, we commonly used cross assemblers or cross compilers and simulators that ran on minicomputers (like DEC VAXen). We could then burn the output to PROMs to put in the target machine for final debugging. Later we used a more specialized cross development environment (HP 64000 and Intel MDS) which had a big cable tied to a pod that plugged into the CPU socket on the target, allowing much more sophisticated debugging.</comment>


I learned something about learning today - <AUTHOR>

I have dreams of teaching my son how to program when he turns 5.  My vague plan is to teach him basic reading skills by 3, how to write by 4, basic math & algebra by 5, at which point we will start programming.
My son just turned 2, so the countdown has begun.
Something amazing happened this weekend, at 25 months I taught my son his first word "cat"! And it took an entire week of passive repetition and short bursts of practice to teach him one word.
The very next day, my mind was blown.  Because he picked up 4 new words not in weeks but seconds.  Dog, Ball, Car, Fish.
This is when daddy learned something new, and I'd like to share it with you.
Before I could teach my son how to read, I had to teach him that I wanted him to know how to read.  This was the biggest barrier.  It took him a week to learn cat, because he had no clue that I was trying to teach him that letter combinations spell words.
This truly is common sense, but it has changed my perception of learning and teaching.  Before I can teach something I have to teach what I what him to learn. He has to understand the challenge before he can meet it.
I think knowing & recognizing this early on will allow me to be more flexible in selecting and modifying my teaching strategies on the fly.  As a result, I will hopefully have a bit more intuition in recognizing future learning barriers. <comment><USER2> I also have a two years old son, I managed to make him say his first name (his name) when he was 7 or 8 months. My trick was to repeat each syllable slowly, and also to touch his lips with my finger to let him know that I wanted him to speak. I was very proud of myself.

Now he can say about ten words (which is kind of boring because he repeats them almost in loop).</comment>


Ian Hickson removes codec recommendation entirely from HTML5 [video] tags - <AUTHOR> http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-June/020620.html

<comment><USER2> Well worth reading the follow ups and discussions. This has been like a geek version of The West Wing.

Bottom line is you can't adopt anything that requires royalties for the web. You just can't. From then on it's just politics and "arguing on the internet".

It's also a real travesty that the furore over video has eclipsed the unarguable case for Vorbis as the default audio codec.

The next big move for Theora fans (apart from the more obvious: lots and lots of compelling Theora content) is getting Xiph Quicktime Components installed on the 3/4 of Macs that don't use Firefox. Maybe they want to hook up with the Perian guys? I wonder what their install rate is?</comment>


Hybrid Incremental MySQL Backups - <AUTHOR> https://www.facebook.com/notes/facebook-engineering/hybrid-incremental-mysql-backups/10150098033318920

<comment><USER2> The real surprise here is that Facebook was still using mysqldump to perform regular backups. Yikes that's slow.

<comment><USER3> As opposed to...?

<comment><USER4> Something a little more high tech, like running MySQL on top of a file system that does synchronous replication.

You don't even need your own engineering to do better than daily mysqldumps. Run your MySQL instance on Amazon RDS and you get synchronous replication to a hot standby instance (that's not MySQL's async replication, no delay and no overhead), and the ability to take consistent snapshots from the standby server at any time. The snapshots will be incremental since they live on S3 where duplicate chunks aren't duplicated, and don't load your database server while they're taken because they're copied off the standby.

<comment><USER3> > Something a little more high tech, like running MySQL on top of a file > system that does synchronous replication.

You can't guarantee a consistent snapshot from the file system alone for Innodb. You need some other logic on top which is exactly what Xtrabackup provides.

RDS certainly isn't going to work for Facebook, but in order to achieve their fast snapshot feature RDS is almost certainly using LVM snapshots.

LVM snapshots can be a better option than mysqldump but LVM snapshots are local and therefore require enough space to take the snapshot and keep it for the time it would take to copy it off box. This can be a big problem as you can't rely on your snapshot to always work. Also, using an LVM snapshot requires a 'flush table with with read locks' command to be run while the snapshot is in progress which can bring in its own issues.

<comment><USER5> You can actually use LVM on a live InnoDB instance as long as both the logs and tablespace reside on the same volume. There is no locking required.

We actually used LVM at Facebook for MySQL backups for a while, however as you stated it requires at least double local space. In addition it is also a real nightmare on performance when it is running since it is double writing data locally to disk. So basically you need to run at < 50% utilization for some extended period of time to be able to take a snapshot successfully. We run much higher than that 24/7.

When you aren't disk performance or space constrained then LVM snapshots can be a very good option.

</comment></comment></comment></comment></comment><comment><USER6> Restore time is important, too. XtraBackup backs up indexes, eliminating extra time required to rebuild them during restore.</comment>


Kepler Observatory Seeks More Earths and Other Beings - <AUTHOR> http://www.nytimes.com/2011/01/31/science/space/31planet.html?_r=1&hp <comment><USER2> Single Page Link - [http://www.nytimes.com/2011/01/31/science/space/31planet.htm...](http://www.nytimes.com/2011/01/31/science/space/31planet.html?_r=2&hp=&pagewanted=all)

</comment><comment><USER3> "We provide the data mankind needs to move out into space"

Mankind needs a little more than a nice destination robotic spacecraft can reach in a couple million years in order to move out into space.

<comment><USER4> Data is the first step because we need to know which direction to head. He never said the data would get us there.

<comment><USER3> The direction is somewhat less than relevant until we develop technologies that can take us (or instruments) there in less than the time it took us to evolve from monkeys.

<comment><USER4> I can't really argue with that, but sometimes having a specific destination in mind helps you get there faster.

<comment><USER3> It's depressing, I know. Having so many nice places and no starship Enterprise to take us there is no fun at all.</comment></comment></comment></comment></comment>