Big-O notation explained by a self-taught programmer - <AUTHOR> https://justin.abrah.ms/computer-science/big-o-notation-explained.html <comment><USER2> As a self-taught, I always get nervous when I see articles explaining Big O because they are almost always wrong. While this one is mostly correct, it is a bit simplistic and misleading, and it could use considerable annotations. The "scary" Wikipedia article has examples that are more nuanced than what is written here; the first example shows a constant time algorithm with nested for loops.

I take issue with the math fearing throughout the article. Time complexity is math, period. There is no getting around this fact, and the sooner you accept it, the sooner you learn that the math isn't that difficult, and the sooner you realize that, without some intuition on what the math is saying, you'll never really have a firm grasp of Big O or any of the other variations.

And also, why no mention of log time?

<comment><USER3> As a self taught programmer who did no math in university, the most valuable thing to me was the discovery that the math really isn't scary. Once you understand the symbols and notation, most concepts are rather easy, given you commit time to learning it.

I strayed away for so long until I watched the MIT lecture series on algorithms and it all just clicked. The best feeling was was seeing the math on the chalk board for how you determine the complexity of operations on various graph layouts and just getting it. I struggled in high school math and rarely got that feeling in class.

It was just one of those, "holy crap... It's all just an array and how we organize the data in that array that gives various benefits and drawbacks!" Incredibly empowering.

Edit: This is the series I watched: [https://www.youtube.com/watch?v=HtSuA80QTyo&index=1&list=PLU...](https://www.youtube.com/watch?v=HtSuA80QTyo&index=1&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)

<comment><USER4> Would you please share the link to the MIT lecture series? It may help the rest of us too. Thanks!

<comment><USER3> [https://www.youtube.com/watch?v=HtSuA80QTyo&list=PLUl4u3cNGP...](https://www.youtube.com/watch?v=HtSuA80QTyo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)

I used YouTube to slow down and speed up the videos as necessary. Watched some parts a few times. Had a notepad out.

</comment></comment></comment></comment><comment><USER5> My company always works a "Big-O" question into interview questions. It's funny how we ask about the complexity of the algorithm and maybe 50% of applicants even know what Big-O notation is.

It doesn't seem to impact hiring decisions though. We haven't turned anyone down because they miss that question.

I think it's because anyone who has programmed for a year or so professionally already understands the concept of inefficient algorithms. They don't need to measure it mathematically, just learn how to optimize.

<comment><USER6> That makes sense. Big-O notation is so overrated.

A little bit of history: C++ programmers were always able to choose the right containers simply by using this image, since long before the invention of Big-O.

[http://homepages.e3.net.nz/~djm/containerchoice.png](http://homepages.e3.net.nz/~djm/containerchoice.png)

<comment><USER7> > "That makes sense. Big-O notation is so overrated."

Can you explain how having a classification that allows one to determine whether something is logarithmic vs vs quadratic is so overrated?

Isn't that a bit like saying "Algebra is so overrated"?

Also Donald Knuth introduced Big O somewhere around the mid 1970s and C++ didn't come along until 1979.

[https://en.wikipedia.org/wiki/Big_O_notation#cite_note- knuth...](https://en.wikipedia.org/wiki/Big_O_notation#cite_note-knuth-12)

Also your link is a visualization of ADTs not run times. And while it true that ADTs are chosen for certain guarantees it still depends on how they are used in an algorithm.

<comment><USER8> I think (hope?) that user5994461's post was tongue in cheek.

BTW, you are way off saying Don Knuth introduced Big O. It was invented by physicists and mathematicians like Paul Bachmann and Landau, many decades before the 1970s.

<comment><USER7> I didn't know the OPs post was tongue and cheek. Sometimes it hard to tell : )

Sure "O" goes back to mathematicians in the late 19th century. What I meant was that Knuth introduced Big O(mnicron) in the context of "Computer Science" literature.

This is the source I am referring to from 1976 SIGACT News:

[http://www.phil.uu.nl/datastructuren/09-10/knuth_big_omicron...](http://www.phil.uu.nl/datastructuren/09-10/knuth_big_omicron.pdf)

On page 21 or page 4 of the PDF:

"I would like to close this letter by discussing a competing way to denote the order of function growth. My library research turned up the surprising fact that this alternative approach actually antedates the O-notation itself. "

On page 22 or page 5 of the PDF:

"The main reason why 0 is so handy is that we can use it right in the middle of formulas (and in the middle of English sentences and in tables which show the running times for a family of related algorithms etc.)."

</comment></comment></comment></comment></comment><comment><USER9> The thing I always run into when discussing big-O are people (good programmers even) who think all O(x) algorithms have the same efficiency. I find it very frustrating when someone says my streamlined O(N) algo with 5 operations has the same efficiency as their O(N) algo with 20 extra function calls and operations. Big-O is not the only determining factor...

<comment><USER10> In a way Big-O notation intentionally glosses over these differences. At a large scale 5 vs 20 per instance of n doesn't matter. It might matter for practical purposes but Big-O really is about making broad distinctions.

<comment><USER11> Yup. Achieving a better big-O could for example be the difference between something being possible or not, whereas fine-tuning an algo without altering its big-O might be the difference between needing five servers or ten. Still relevant, but a different class of relevance.

<comment><USER12> It can also be the case that an algorithm with a worse big-O complexity might actually be better because all your inputs are small and the constant multiplier is lower than the more complicated, better big-O algorithm

<comment><USER13> This suggestion gets trotted out in every discussion on Big-O. In 16 years of doing this professionally, I have not once encountered a situation where that would have been relevant. Any case where it even remotely might have been, the algorithm wouldn't have been hot enough to warrant considering it at all.

<comment><USER12> One example would be multiplying large matrices together. A common algorithm used is [https://en.wikipedia.org/wiki/Strassen_algorithm](https://en.wikipedia.org/wiki/Strassen_algorithm) with a big-O complexity of around O(n^2.8074). [https://en.wikipedia.org/wiki/Coppersmith%E2%80%93Winograd_a...](https://en.wikipedia.org/wiki/Coppersmith%E2%80%93Winograd_algorithm) has a complexity of around O(n^2.375477), but the constant factors are so large it is currently never better to use it over the Strassen algorithm.

</comment></comment></comment></comment></comment></comment><comment><USER14> Don't you want to know if your recipe takes 10 minutes or 10 hours to cook?

<comment><USER15> Sometimes. Sometimes you just need to throw things in the oven until the first one browns up.

I recently had a problem where I needed an adjacency matrix of shortest paths. It was a choice between dijkstra and floyd-warshall. My dijkstra implementation kicked the pants off of floyd warshall for this application by an order of magnitude, which you wouldn't really expect. And the big-O complexity was the same for both algorithms, it's just that for the graph structure, the operation count for dijkstra was much lower. It was the first one to brown up.

<comment><USER16> A few comments just in case this a critical part of your program, and if running it faster would help:

1\. Using a heap with Dijkstra's algorithm would speed up your program

From your comment I am guessing you are using Dijkstra's algorithm without a heap, which gives O(n * m) for one source, and O(n^2 * m) for all sources (all pairs shortest path), where n is the number of nodes/vertices, and m is the number of edges

You would be able to improve that to O(m * n * lgn) by using a heap, which improves the time to run it by quite a lot in practice

2\. The time it takes to run the program also depends on the density of your matrix:

In the case where the graph is sparse: m ~ n, and will result in O(n^2 * lgn) (or O(n^3) without a heap)

In the case where the graph is dense: m ~ n^2, and will result in O(n^3 * lgn) (or O(n^4) without a heap)

Compare the numbers above to O(n^3), which is the time complexity of Floyd- Warshall

So just in terms of time complexity, Floyd-Warshall would be faster in a dense graph

<comment><USER15> Agreed, but this was for a fast script that will probably run 100 times for analysis purposes--the code itself wasn't the end goal. I just needed something that could crunch my numbers in 10 minutes instead of 2 hours. :-)

</comment></comment></comment></comment><comment><USER17> Didn't know that the "O" in Big-O actually means "order". I guess it doesn't really matter too much.

If you really wanted to get theoretical, you could also talk about the whole family, including little-O, big-omega, little-omega, etc. :)

<comment><USER7> I don't believe this is correct, I believe O if for Greek letter Omnicron, just as the other Greek letters are used Big Theta and Big Omega are used in discussing bounds in time complexity.

I think O meaning order would be a retronym.

</comment></comment><comment><USER18> After seeing a lot of peers being mislead by big O I think most of big O articles on the web, for the sake of clarity or simplicity omits to express one thing

if we admits functions * square_big_o O(n²) * linear_big_o O(n)

then the statement

time(squarre_big_o(x)) > time(linear_big_0(x))

is not necessary true for every value of x

because the actual complexity could be

      * 1000+1000*N
      * 2+N²

in which case most of the time you will chose the square one, because practically it will be faster.

without this in mind, you got peer who tell you that this thing is faster because the algorithm is O(n) versus O(n²), though we're talking about a function that will always have n < 10, but yesterday night they read an article about big O and now they have to throw a "let's think about the big O" remarks for every single problem we meet

<comment><USER19> Except if one knows what the definition of big O is, there is nothing to be misled by. What big O tells you is what is the function bounded by after a constant lower bound on the input.

One always want to do performance testing to see whether it comes into play even when it comes to more practical applications such as in code.

</comment></comment><comment><USER20> Extensively incorrect.</comment>


Optimal DNS Ad Blocker - <AUTHOR> http://optimal.com/network-ad-blocking-beta/ <comment><USER2> One can achieve this locally, on a laptop/desktop, using [https://github.com/StevenBlack/hosts](https://github.com/StevenBlack/hosts)

Or you can combine that with [https://github.com/jlund/streisand](https://github.com/jlund/streisand) to have a VPN service that happens to adblock (great for mobile).

That said... I like that Optimal have made this too, because neither of the above can work for all devices in a household and more things in the house are tracking you and serving adverts (TV!).

The real questions I have are:

Who sources the list of domain names in there that they will null route?

How will this work with DNSSEC protected sources or whether they anticipate this at all?

How will they become aware of new domains being used by smart devices that are not shared by web sites (and therefore no-one notices and adds it to any blacklist)?

<comment><USER3> If you want StevenBlack's hosts list to be network-wide I integrated it with an open source, self-hosted DNS server called [https://pi- hole.net/](https://pi-hole.net/) last week which adds a slick admin interface and browser extensions too, then I put it all in a Vagrantfile and set my router to use the VM as a DNS server.

Screenshot: [https://i.imgur.com/ELL9CDu.png](https://i.imgur.com/ELL9CDu.png)

Vagrantfile: [https://github.com/benlowry/pihole-extended- hosts](https://github.com/benlowry/pihole-extended-hosts)

<comment><USER4> I use pi-hole at home and it's a great little tool for my home network and I think makes a noticeable difference on web browsing speeds.

My only wish is that it would serve a page notifying me "this is possibly an ad, but would you like to continue?" versus just flat out blocking. I know there's a whitelisting functionality but it'd be cool if I could handle this directly in my actions in the browser.

</comment></comment></comment><comment><USER5> Getting rid of ads in exchange for letting an additional third party know all my Web-surfing respective DNS-lookups?

Not sure which one is worse ..?

<comment><USER6> Well... what DNS are you currently using now? Isn't a 3rd party? I had 126.96.36.199 so I guess the switch is no-brainer

<comment><USER5> In fact, I have my own DNS server running ;)

But if I had not:

\- My ISP whose DNS I used, is subject to strong regulations and laws here

\- "Additional" 3rd parties are more out of control from this perspective, therefore a significant higher risk, imho

I agree, when you used google DNS before, it's same same...

<comment><USER7> In the US, at least where I've lived, most consumer ISPs will hijack nxdomain to their own search engine, which allows them to display ads and sign deals with search engines and make some cash on the side.

</comment></comment></comment></comment><comment><USER8> Well this makes me feel a little better... from [http://optimal.com/privacy- policy/](http://optimal.com/privacy-policy/)

WHAT WE COLLECT

We get information about you in a range of ways.

 _snip_

DNS service. If you utilize our DNS-based service, we may receive information about your IP address and URLs requested by that address. DNS requests utilize the UDP protocol which means we do not typically get information on the full URL you are attempting to visit (We receive far less information than a company providing a VPN service to you, for example, and that is one of the reasons we prefer this approach as it gives us far less information about user browsing). We do, however, have an IP address associated with each request and so could produce a list of sites visited by each IP address using our DNS servers. We do not know who you are when you use our DNS service, however. IP addresses may also be shared between users, and are not universally regarded as personally identifiable. We only use the IP addresses as follows: (a) the count of unique IPs we use as a benchmark for the adoption of our DNS service, and (b) we may check IP addresses against a free database of countries or cities provided by MaxMind and hosted on our servers, to limit the ability for users outside of certain areas to use our DNS service. We will not use the IP addresses we gather for any other purpose, and we will not correlate or combine them with any other personal information provided by you or other DNS service users, and we will never sell or share any of this information with any outside companies in any way. We may use aggregate request counts to help compensate publishers based on overall site traffic, across all users of our DNS service.

<comment><USER9> Additionally, it says:

      - We may share personal information with your consent. For example, you may let us share personal information with others for their own marketing uses. Those uses will be subject to their privacy policies.
      - We may share personal information when we do a business deal, or negotiate a business deal, involving the sale or transfer of all or a part of our business or assets. These deals can include any merger, financing, acquisition, or bankruptcy transaction or proceeding.
      - We may share personal information for legal, protection, and safety purposes.
      - We may share information to comply with laws.
      - We may share information to respond to lawful requests and legal processes.
      - We may share information to protect the rights and property of Optimal.com Corp., our agents, customers, and others. This includes enforcing our agreements, policies, and terms of use.
      - We may share information in an emergency. This includes protecting the safety of our employees and agents, our customers, or any person.
      - We may share information with those who need it to do work for us.
      - We may also share aggregated non-personal data with others for their own uses.

Essentially, there are so many reasons for us to share your personal information that we can't help it.

Amusingly, the website:

\- Uses Google Analytics

\- Runs over HTTP (not HTTPS)

</comment></comment><comment><USER10> Now that's a blast from the past. Back in 1996 I joined a company in Mountain View called Optimal Networks, Inc. which had the domain name optimal.com. We sold the company to Compuware and the domain lived on for a while.

If you search firstname.lastname@example.com you'll find ancient messages from me still lurking on the web. I wonder if that email still receives spam?

<comment><USER11> We get all kinds of crazy optimal spam!

<comment><USER12> You should hook him up with his old work address!

I actually went on an adventure of re-registering old company addresses a few years ago.

<comment><USER11> Interesting question-> how would he prove that he once had that address? :)

<comment><USER12> The internet will do it for you. [http://www.the-email-archive.com/email-data- jgc-optimal-com-...](http://www.the-email-archive.com/email-data-jgc-optimal- com-7804307.htm)

</comment></comment></comment></comment></comment><comment><USER3> This looks really cool, especially for the bajillion mobile-only people connecting straight through their telco without any ublock/ghostery/hosts/etc blocking.

I am using a local DNS server that does this called Pihole [1] supplemented with additional blocklists [2] for malware and privacy.

One thing I don't see is any statistics ... you might be surprised at how much software in your home is endlessly communicating with companies you might not even have heard of, and that's been a great benefit of taking control of my DNS resolution [3].

[1] [https://pi-hole.net/](https://pi-hole.net/)

[2] [https://github.com/benlowry/pihole-extended- hosts](https://github.com/benlowry/pihole-extended-hosts)

[3] 5.1% of my networks' requests today got blocked - [https://i.imgur.com/ELL9CDu.png](https://i.imgur.com/ELL9CDu.png)

<comment><USER13> It would be useful if their website described what exactly it installs. A recursive DNS server with a web UI and big list of null-routed domains? That's my guess.

How does that help mobile users outside their home network without also setting up a VPN back in?

<comment><USER11> We'll be adding more info when we prep things for a wider consumer release. We are working to learn as much as we can and are looking forward to everyone's feedback!

<comment><USER3> Features I'd like:

\- reports on who my device(s) are contacting

\- no technical capability for anyone else to access those reports

\- import block lists from browser extensions / hosts lists etc

\- set my own forwarders

\- browser extensions so I can see what's blocked, unblock stuff, pause blocking etc, maybe an app on my phone could provide the same functionality

Mostly this is about extending your umbrella to cover privacy/malware, I don't really differentiate anymore between the different flavors of crap websites embed to make the internet more annoying and less safe.

<comment><USER11> Thanks for the suggestions!

</comment></comment></comment></comment></comment><comment><USER14> I experimented with this idea back in March, [https://github.com/geuis/lead- dns](https://github.com/geuis/lead-dns)

It turns out to be a pretty bad experience. There are tons and tons of legit domains that serve normal content that also serve ads. I used a subset of urls from a popular ad blocking list ([https://github.com/geuis/lead- dns/blob/master/lists/easypriv...](https://github.com/geuis/lead- dns/blob/master/lists/easyprivacy%2Beasylist.txt)).

After only a few hours, using the web normally was near impossible. Just a very broken experience. Sadly, since you can't pass a path to a dns server, there's no finer-grained way to allow certain requests to a domain to go through and block others.

<comment><USER15> I've been using DNS to filter out the worst offenders. I don't mind most ads, so my list of domains is quite small. But, I've found it to be an effective tool.

I agree, however, that anytime a site is broken that I'm left wondering if I'm responsible because I've inadvertently blocked a CDN or something important.

</comment></comment><comment><USER16> I will just leave this here [http://someonewhocares.org/hosts/](http://someonewhocares.org/hosts/)

i put this hosts file on every device/router that i touch.

It works fully local. So infinitely (and this is not even a hyperbole) faster and you won't have to exchange one privacy hole for another on the "cloud".

<comment><USER17> >infinitely (and this is not even a hyperbole) faster

Not if your HOSTS file is >135KB (the one you've provided is 373KB), you're using Windows 8 or earlier and you haven't disabled the DNS Client service.

[http://winhelp2002.mvps.org/hostswin8.htm](http://winhelp2002.mvps.org/hostswin8.htm) (about half way down)

<comment><USER18> Not OP, but he said "device"/"router", not many of those run Windows 8.

FWIW I do the same, also use that host file at the border router and yes the difference is quite big. I'm always shocked about the extra adverts I see when using a computer or tablet outside of my own network.

</comment></comment></comment><comment><USER19> I'd like to believe that Optimal is being altruistic with their DNS servers and just trying to help rid the world of annoying ads...but I'm also realistic.

My VPN provider (Torguard) provides one of these as well. I'm a little more willing to trust them not to do anything malicious with my DNS requests, if only because I'm paying them.

<comment><USER20> I don't find the "I can trust them because I'm paying them" idea very useful. Nor the "If you're not the customer you're the product."

The bottom line is, if your information is valuable, then it will be in the advantage of those who possess it to exploit it whether you pay them or not. The only real non-moralistic consideration is whether you will stop paying if they start selling.

Either way, "I have a moral obligation to not sell your info, even if you don't pay me not to" sounds a lot better to me than "I don't sell your info because you think you're paying me not to." It's a horse apiece if you're dealing with strangers and you have to take them at their word.

<comment><USER21> The difference is in sustainability. Sure, some people always want more; morality is no barrier for them. But most people run into trouble only when they face a significant conflict of interest.

Thinking about companies I've seen the inside of, when the company is doing ok, it's rare for people to just up and do something sleazy. But if they company could collapse, suddenly the moral calculus shifts. Even if they don't do something dubious, they often will consider revenue sources they would have ignored before. As they say, desperate times call for desperate measures.

So I'm much more likely to trust a company I'm paying a fair rate for what they're doing. That's not to say that those people don't turn bad sometimes, but it happens a lot less.

<comment><USER11> Read my medium posts (medium.com/@robleathern) to get a sense of what we are doing and why. It's easy to make money in the online ads industry but we are not going to compromise our values to keep this company alive. Too many startups pivot their way to sustainability at the cost of what they set out to do in the first place. We won't.

</comment></comment></comment></comment><comment><USER22> Very interesting. I'd be curious to know what Optimal plans to do with all the DNS traffic they'll be collecting

<comment><USER23> I'm definitely weary of handing over my DNS data to a company I don't know. Besides, Safari ad blocking plugins already take care of this while surfing.

This may have unintended (both good or bad) affects on normal app experience since it's configured on the network.

<comment><USER11> We are not selling this information and never will. We built a safari blocker called fewerads that's in the App Store. But we found lots of users wanted to block ads in chrome mobile or inside Twitter or Facebook (to be clear, web ads, not those platforms' ads), which is what lead us to this idea.

</comment></comment></comment><comment><USER24> Not sure what to think of it:

An "ethical" ad blocking service launched Thursday that allows users to pay their favorite publishers not to show them ads. [...] With Optimal.com, users will pay a flat monthly fee (Leathern told Business Insider the exact amount hasn't been released, but it's likely to be a high single-digit number) to experience an ad free web.

Source: [http://uk.businessinsider.com/optimal-launches- subscription-...](http://uk.businessinsider.com/optimal-launches-subscription- service-for-ad-block-users-2015-12?r=US&IR=T)

<comment><USER25> >"An "ethical" ad blocking service "

All ad-blocking is ethical. It's the advertisers job to make me aware of products in a way that doesn't anger me, and they're doing a really shitty job.

<comment><USER26> When you adblock instead of not using adblock websites lose money.

<comment><USER27> They have lost nothing, the money wasn't theirs to begin with.

They don't have the right to decide how users computers should behave when rendering pages.

</comment></comment></comment></comment><comment><USER28> I wrote a tiny DNS filtering daemon that does exactly the same -

[https://github.com/apankrat/dnswhisperer](https://github.com/apankrat/dnswhisperer)

I've been using it routinely for past couple of months and it works really well. It blocks web ads, but it's blocks in-app ads and tracking as well. Tailing a log when launching an iPad game make for an interesting read. If anything slips through, just check the log, add the offender to the blacklist and restart the daemon.

</comment><comment><USER29> Local version, appending to /etc/hosts:

        curl -q \
        https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts \
        2>/dev/null | sudo tee -a - /etc/hosts

<comment><USER30> thanks

</comment></comment><comment><USER31> Say everyone in the world started using this today: what solution would Google need to use to deliver ads to get around DNS blocks?

<comment><USER26> Google could use the same domain for advertising or use IP addresses instead of domain names.

<comment><USER32> How would they verifiably record the adds served, say on my example.org page the ads come from example.org too how can Adsupplier Inc. then be sure I served those ads to a genuine page-requester?

</comment></comment></comment><comment><USER12> You can use use OpenDNS and turn on filtering of the "Advertising" category. [https://community.opendns.com/domaintagging/?category_id=53](https://community.opendns.com/domaintagging/?category_id=53)

Protip: Doing this at the DNS and not the browser level leads to lots of brokenness. (Like when you try to sign into an app on your Roku/FireTV and it hangs on a Google Analytics event).

<comment><USER33> One significant benefit of OpenDNS is you can go whitelist a site/domain from filtering if it's breaking something and they have more categories than just 'Advertising'. I use it to help protect myself and my children from pornography.

<comment><USER32> I use opendns, the black/white-listing is a bit unrefined IMO, it does work though. The limit on the list length is quite tight on the free tier too.

</comment></comment></comment><comment><USER34> If there is strong demand I could put together a solution sor home networks that does not use a third party resolver, i.e., no tracking whatsoever. It could be run from an SD card or USB stick entirely in memory, i.e. no install needed. All you need is an extra computer; old is fine.

As for the "breaking" some websites, it depends on what you block. Speaking for myself, if blocking doubleclick.net makes one out of thousands hang, then that is acceptable. In fact it's desired because I want to know about such sites. What kind of website would do that? Doubleclick offers zero value to the user. I _like_ this aspect of DNS blocking.

Also it's easy to "whitelist" or "blacklist" certain subdomains if that's what you need to do. Simply a matter of editing a text file, and this can be automated.

As for the comments about what effect this would have if practiced by the masses, I think it would bring these ad-supported search engines and social media sites to a day of reckoning.

Users would have all the power. At least one search engine claims it's focused on users. This would put that statement to the test. Users in control. As it should be.

</comment><comment><USER35> I have tried DNS ad blocking based on one of the popular lists out there. Sadly it was overly aggressive. It cut off my access to sites like mint.com and the Google Analytics dashboard (need it for $WORK). It also made sites like Hulu not work because of their ads. Debugging why this was happening was a huge pain because for example Mint uses Intuit domain names that are like right levels deep CNAMES.

I am going to try this out, but here I would have even less control since I can't edit the zone file.

Edit: Just turned it on and cleared all relevant caches. Still seeing ads all over Google, CNN, BBC, Imgur and a few others. Don't think this works terribly well.

Edit 2: oh but now the Comedy Central app on my phone won't launch. Turning this off.

</comment><comment><USER36> How easy is it to temporarily switch it off if a site is broken? Like if they have some crucial JS/CSS served from a blocked domain? I also wonder this with the hosts file approach. Is that kind of flexibility you give up for speed?

<comment><USER11> This is a slight issue, we are looking at ways to make this easier. The reality on the hosts file approach we think is that we can be far more dynamic and help protect users from bad domains as well, but time will tell.

</comment></comment><comment><USER37> Adding another vote of confidence for running your own local DNS resolver with a block list. I use this script to generate a compatible hosts list for unbound:

[https://github.com/jodrell/unbound-block- hosts](https://github.com/jodrell/unbound-block-hosts)

It's not terribly sophisticated, but every few weeks or whatever I just run this again:

      $ ./unbound-block-hosts --file=/opt/brew/etc/unbound/local-blocking-data.conf
      $ killall -HUP unbound

</comment><comment><USER38> My strategy is to use OpenDNS to block sites, and uBlock Origin to block all 3rd-party access. Then I whitelist stuff. Whitelisting is more work than blacklisting but I'd claim it is more comprehensive. On my phone I just disable javascript.

</comment><comment><USER39> I've been using [https://github.com/jakeogh/dnsgate](https://github.com/jakeogh/dnsgate) for about 6 months now. Much better than just throwing stuff into /etc/hosts

</comment><comment><USER9> I haven't used it myself, but I'd believe that Brave [0] might be a better option.

[0] [https://brave.com/](https://brave.com/)

<comment><USER11> I like Brave, and it works well! But many people want to keep using their FB/TWTR browsers.

</comment></comment><comment><USER40> It's not that simple [https://adblockplus.org/filter- cheatsheet](https://adblockplus.org/filter-cheatsheet)

</comment><comment><USER41> I noticed a recent trend in sites that refuse to serve when running an ad- blocker. Is the web a usable experience for people who are running ad- blockers?

</comment><comment><USER42> I wouldn't trust some random company with all my DNS queries, great way to essentially MITM you're internet with yet another 3rd party.

</comment><comment><USER43> If enough people blocked ads via DNS, I wonder how long it would be before we saw advertisers using plain IP addresses instead of DNS hostnames.

<comment><USER44> Would be more and more of a problem with most sites switching over to HTTPS - Cert mismatch warnings if your ad URL is https and mixed content warning if not. Besides how hard would it be for someone to add a rule to uBlock to block by-IP URL access?

</comment></comment><comment><USER45> [https://github.com/jakeogh/dnsgate](https://github.com/jakeogh/dnsgate)

</comment><comment><USER46> Does not seem to be working for me. Tried both the UK and US IPs, never got an DNS response

</comment><comment><USER47> Hardcoding DNS servers that are run on Amazon IPs on AWS is just an incredibly bad idea.

</comment><comment><USER48> What are the security concerns with a service such as this?

<comment><USER49> The obvious two: Optimal gets to see every domain name your computer asks for, including personalized domains like yourname.bloggingservice.com; Optimal gets to answer those requests in any way it wants to (MITM attacks).

</comment></comment><comment><USER50> What software is being used? BIND?</comment>


The iOS App Store: Needles in Haystacks - <AUTHOR> http://semilshah.wordpress.com/2011/10/13/the-ios-app-store-needles-in-haystacks/

<comment><USER2> At Zwapp (I am the founder) we've actually attempted to address this issue, and yes, we use users and their social networks to see if we can make more apps discoverable than just the top popular lists. So far it seems to work out really well, people are interested in sharing their apps and providing each other recommendations. You see this in real life all the time. We meet up, put our phones on the table, and often the conversation is lead to "what apps do you use". We try to stimulate and support these types of conversations. There are more reasons why this approach is valid. Gaming reviews is less important because you wil trust a review of a person you know. It may be more interesting to see the most popular apps of your friends instead of the most popular in the app store. And finally, we have spend a lot of effort trying to provide excellent app detection. The reason for this is two-fold. it helps you get started quickly as a user, but more importantly it helps us to understand what apps people have and use, allowing us to provide qualitative recommendations. It is better to get a few users to download your app and then really use it, then get a whole lot of users downloading it and running it once because of a mismatch.

<comment><AUTHOR> Cool. Are there examples of folks using Zwapp to reach the same number of downloads as being featured by Apple, ro something close to it?

<comment><USER2> There is Zwapp, the community, and there is Zwapp Connect, our service that helps developers reach the users that are actually interested in their app. We use our recommendation engine to match between user needs and app to drive downloads. We've tried several app download services and found the quality of the downloads very poor. By using a lot of social/app and meta data that we have build up we can target much better and help devs to drive downloads to people that are more likely to use your app. (sorry about the pitch). It is actually a tough problem to crack that involves reach, matching tons of data, providing the right call to actions and then measure the success and improve the process again.

<comment><AUTHOR> Cool, there are also some iOS apps explicitly for "app discovery," but I still think it's impossible to break out. I read somewhere that 4% of app downloads account for about 3/4 of all app revenues.

<comment><USER2> Zwapp is one of those app discovery apps. And it is a platform for developers wanting to promote their apps to passionate app users. See : [http://itunes.apple.com/app/id426360184?mt=8&ls=1](http://itunes.apple.com/app/id426360184?mt=8&ls=1)

</comment></comment></comment></comment></comment><comment><USER3> I can totally relate to this article: as a frequent launcher of iOS apps, i'm always open to suggestions for how to promote them. At the moment my (admittedly very vanilla) strategy is:

* Set up a promo-page at www.blahapp.com * Use adwords ads to send people from google to my website * At the website, provide links to the app store.

However, any suggestions will be well noted.

<comment><USER4> How has your strategy worked so far?

<comment><USER3> So far, i've just been putting my apps on the app store with no promotion. It's going alright, making ~$100/day. For my next app, since i'm putting a bit more effort into it, so i'm going to match that with more effort into promoting it too so i'm trying to figure out where would be most effective. So... long story short: i'll find out soon.

<comment><AUTHOR> Good luck, would love to know what you end up doing.

</comment></comment></comment></comment><comment> Apple-Guy Ever heard of PR?

Hire a PR company, or send copies of apps for review, etc.

Apple also reviews new Apps, and if it's outstanding, Apple typically promotes the app.

So, if you are not enjoying success, perhaps improve the app and improve visibility as mentioned.

<comment><AUTHOR> Hello, I'm afraid PR isn't the answer. Some folks can afford to hire big guns and/or get lucky, but it's not so easy to just plunk down cash for copy.

</comment></comment><comment><USER5> I'm working on technology related to this problem. I'm interested in hearing anyone's thoughts (ideas are cheap, right?) about the best way to curate the app store at scale.

The biggest challenge seems to be that there is a very limited amount of information available. Marketing text, category, and maybe rating (Though I think you have to violate Apple's ToS and scrape to get that.) Apple already offers free-text search, but I think few use it.

Most approaches so far have gone for trying to create a social network around app discovery, which seems like a lost cause to me (how many people are going to join such a network?) I could be wrong though...

<comment><USER6> > The biggest challenge seems to be that there is a very limited amount of > information available.

Not only that, but there are trivial ways of gaming it. I've seen a number of apps in the bestselling categories with four or five star reviews, but when you look at the actual reviews they're all one star because the app promises abilities that aren't possible. They just release a point version and use Mechanical Turk to pay a few people to review.

I don't understand why Apple doesn't make reviews a rolling average instead of resetting it entirely with a new release.

</comment></comment><comment><USER7> I've thought about doing an App Store wrapper around the App Store, more than once.

<comment><AUTHOR> Cool how would you do it, or design it?</comment></comment>


Best Books On The Dotcom Crash? - <AUTHOR>

I am reading "The Big Short" which is a great book by Michael Lewis about the subprime mortgage crash and those who bet against it. What are the best books on diagnosing the dotcom crash? <comment><USER2> Dot Con by Cassiday is a good overview. Boo Hoo by by Malstem and all captures the anti lean development of the time.</comment>


Nethammer: Inducing Rowhammer Faults Through Network Requests - <AUTHOR> https://arxiv.org/abs/1805.04956 <comment><USER2> It's about time Intel offers consumers ECC RAM support.

<comment><USER3> ECC wont help, you need row access counters(target row refresh/TRR) directly in ram chips, or in memory controller. With switch to DDR4 JEDEC had a chance of standardizing those mitigations, but that would cost additional cents per chip, cant have that!

<comment><USER4> Do you have any links to more information on that? Googling "row access counters" leads to a lot of comments you've made on the internet, and nothing else.

I'm skeptical that "ECC won't help," that's not a commonly held opinion. It might be true but it'd be interesting to read some actual analysis as to why.

<comment><USER5> From the original paper, "For example, SECDED (single error-correction, double error detection) can correct only a single-bit error within a 64-bit word. If a word contains two victims, however, SECDED cannot correct the resulting double-bit error. And for three or more victims, SECDED cannot even detect the multi-bit error,leading to silent data corruption. Therefore, we conclude that SECDED is not failsafe against disturbance errors."

The challenge for the attacker is to produce a 3 or more bit failure before a 2-bit failure occurs, which would trigger some alarms. I haven't seen any research on the feasibility of such an attack.

Additionally, there are stronger ECC schemes than SECDED, for example the one in IBM's ChipKill. It is hard to imagine a RowHammer attack that could remain undetected with such a scheme.

It is fair to say that ECC memory raises the bar for attackers.

<comment><USER6> Not to mention the schemes that treat RAM as untrusted with cryptographic, integrity checks. Those architectures are making more sense than ever now.

</comment></comment></comment></comment></comment><comment><USER7> How is this different exactly from Throwhammer?

<comment><USER3> Throwhammer: > 9.375 million packets per second

Nethammer: > 1 024 000 packets per second over a 500 Mbit/s connection ......Hence, we conclude that in theory...

Both currently at best lead to server crash, and are highly impractical.

<comment><USER8> it seems eminently plausible to me to carry out an attack from a device on the same network, cohosted at the same facility, etc</comment></comment></comment>


Hermann Zapf: 8 November 1918 – 4 June 2015 - <AUTHOR> https://www.kickstarter.com/projects/1307403978/the-hermann-zapf-sketchbook-project/posts/1253557

<comment><AUTHOR> Hermann Zapf was the creator of AMS Euler, Optima, Palatino, Zapfino, Zapf Dingbats. He was also known for his collaboration with Donald Knuth.

His death is not widely reported yet so there are only a few sources:

Wikipedia gives as source notable calligrapher Julian Waters. John Stevens on Twitter[1] . Hoefler & Co "Hermann Zapf passed away last night. He was a giant." on Twitter [2].

[1] [https://twitter.com/calligperson/status/606867036816482305](https://twitter.com/calligperson/status/606867036816482305)

[2] [https://twitter.com/HoeflerCo/status/606865724158709760](https://twitter.com/HoeflerCo/status/606865724158709760)</comment>


Ask HN: How do you deal with incompetent support/help center? - <AUTHOR> Maybe you have had to ask support/help center of <insert product/service here> for support or help with a particular problem you had or situation you were into.
Chances are, at least once, you stumbled across a completely incompetent support/help center that couldn't even understand what you're actually asking and kept providing completely useless instructions.
How do you handle such situations? <comment><USER2> You ask to speak with a supervisor.</comment>


Cumulus Linux – first impressions - <AUTHOR> http://packetlife.net/blog/2014/oct/1/cumulus-linux-first-impressions/ <comment><USER2> If everything is more or less stock Linux, what value does Cumulus actually add for it to be worth the licensing costs?

This all seems to be a giant step backwards. JunOS is now the gold standard for its CLI and configuration, due to being highly structured and well organised. Being able to validate configurations before committing them, and automatic rollbacks with commit confirm is a much improved way of doing things over IOS. Given that Juniper hardware can often be bought significantly discounted, the cost savings of white box gear are going to be small, if at all. Thus far, they seem to be sold in such small volumes that comparable Juniper or Cisco gear can easily be purchased for less.

Also, how exactly is Cumulus separating the control plane and data plane? From the look of things, SDN is going to end up being relegated to just easy automation instead, like how Cloud has just been relegated to VMs with flexible billing instead of abstracting underlying infrastructure.

<comment><USER3> In theory, the value of Cumulus is (1) support and (2) their proprietary switchd. (Edit: I also second the other comments that Cumulus licensing appears to be _really_ cheap. But if you're looking for "CentSwitch" you're out of luck.)

 _Also, how exactly is Cumulus separating the control plane and data plane?_

They're not. Cumulus is kind of anti-SDN.

<comment><USER4> "Proprietary" means "if you ever have issues with that that our support won't be able to solve for you in meaningful time span, you're basically out of luck".

We're running a gateway router on Vyatta/VyOS and with every single hardware and software change we had some issues. Most were relatively minor (like default settings being not appropriate for our workload), already documented/solved by someone on the 'net. Some had required reading source code and debugging/profiling to see what goes on. Must also admit, some were beyond my understanding and were mysteriously solved with some shamanism and voodoo magic (like randomly tinkering with firmware and driver version combos).

</comment></comment></comment><comment><USER5> The use of Linux and commodity hardware is interesting but when I read some of the sales copy on the Cumulus website I was reminded of why I hate enterprise software.

> The emerging software-defined data center (SDDC) paradigm involves automated > control of all network, server, storage and application resources, resulting > in a cloud operating system. Unified visibility is essential, enabling the > cloud operating system to efficiently allocate resources, detect problems > and ensure consistent performance.

<comment><USER6> My interpretation: "You can manage your network hardware in Ansible and Git. We'll assume that everything else is using it, too."

Still pretty attractive, and a lot less Buzzword Bingo.

<comment><USER7> Oh man, I just had flashbacks of pages and pages of enterprise lingo that were much less clear than your sentence. I think Ansible suffered from that at one point, too.

</comment></comment></comment><comment><USER8> I think it is very safe to say that most dedicated "smart" network hardware is going to disappear in the next 5-15 years to be replaced by virtual machines acting as several pieces of network equipment.

You just patch in all the cables straight onto effectively a Hypervisor, and then you generate virtual switches, routers, firewalls, and so on completely via the VM management console.

You're already seeing some of Cisco's smaller competition go this way. It saves physical space, works on standard hardware, and is easier to centrally manage (as you aren't physically moving wires after initial install).

It will be interesting to see if Cisco jumps aboard this train or continues to pretend like the sands underneath it aren't shifting. I'm sure there would be a market for VMs running Cisco's IOS, it is still by far the most popular network operating system.

<comment> m-app "I think it is very safe to say that most dedicated "smart" network hardware is going to disappear in the next 5-15 years to be replaced by virtual machines acting as several pieces of network equipment."

I agree with this idea in that most of the intelligence will be pushed out towards the edges of the network and overlay networks will make a lot of the physical network invisible to the applications and even the management. However, this does not mean that the networking hardware can all be just dumb devices. First of all, this kind of imperative networking will not scale to large data center implementations and secondly dumb devices will become useless once disconnected from their controller.

"It will be interesting to see if Cisco jumps aboard this train or continues to pretend like the sands underneath it aren't shifting. I'm sure there would be a market for VMs running Cisco's IOS, it is still by far the most popular network operating system."

The way Cisco is getting into the SDN market is by leveraging Application Centric Infrastructure (ACI) to define the complete DC (Compute, Storage and Network) with templates and letting the whole system configure itself. The switches supporting this infrastructure are based on merchant silicon in combination with Cisco ASIC's to provide the most optimal performance at these intelligent edges. Add to that the available open API's and the investment in OpenStack and you have a rock-solid and cost-effective solution for the future of the DC and DevOps.

Cisco ACI: [http://cisco.com/go/aci](http://cisco.com/go/aci)

I would love to talk about it more if you want. These are exciting times. Hit me up on email or IRC.

(Disclaimer: I work for Cisco but these thought are still my own, yada yada)

</comment></comment><comment><USER9> >These appear as Ethernet interfaces normally do on Linux, visible with ip link show. (ifconfig has long been deprecated by the community in favor of the iproute2 family of tools.)

I am amused when I read things like this, 99% of the Linux savvy folks I know use ifconfig.

<comment><USER10> In my experience: we use ifconfig out of familiarity; I know that I "should" be using 'ip' (and I do for scripts).

<comment><USER11> I don't think you should. Every UNIX operating system has ifconfig. Writing a nonstandard tool instead of fixing the standard one is very antisocial behaviour from the Linux community, mirroring that of Microsoft. Have a look for example at how excellent the ifconfig program for OpenBSD is. These days Linux has become so popular, that it starts to pretend other operating systems and standards are no longer relevant.

</comment></comment></comment><comment><AUTHOR> TL;DR : Linux all the way, ready for large-scale provisioning automation.

</comment><comment><USER12> What is the performance, does it bypass the kernel for the network stack or it's just a linux bundled with compatible hardware?

<comment><USER3> Forwarding is done in hardware so it's line rate. Those swp interfaces aren't real interfaces; they're just proxies.

</comment></comment><comment><USER13> but is it faster than VALE/netgraph?

<comment><USER3> Yes, hardware forwarding is ~100x faster than optimized software forwarding.

<comment><USER13> I missed the switchd/proprietary ASIC part. oops!</comment></comment></comment>


Ask HN: What is best short word meaning "in process of development"? - <AUTHOR>

Hello, Hackers, i hope to get little help from you here in good english expression, because our statup's native language is not english.
Now it sounds like this:
"Tell us and get it for Free!
How it works? You tell us what you need, we make it for you for free. Afterwards, you may use it as long as you like, we may distribute it for free or paid, however we like.
1.Request --> 2.Accepted --> 3.Developing --> 4. Ready!"
Does it sounds ok? And we really need short word to change "Developing", like "Doing" :) or so? <comment><AUTHOR> Thanx for replies, wittjeff understood our concept correctly. We are going to develop software extensions and sell them later. Anyone can request if they need something and can be lucky to get it for free if we consider it could be sold later to others. The problem is with our page design, "Development" is the heading of a very tiny column and is too long word. My partner does not like expression "Tell us and get it for free", but we have no idea how to change it correctly :$ I just don't want our page to appear like "what Flintstone made it?"

</comment><comment><USER2> If I understand your model correctly, the word you are looking for may be a derivative of "developing" or it may be something like "building." You may also benefit from using some qualifiers in your descriptions. Example: "1) Proposal / Component Request (that's you) -> 2) Proposal Review and Acceptance (that's us) -> 3) Component design & Development -(that's both of us) > 4) Component Release / Public availability."

My confidence in this is low because I'm not really sure what your business model is.

</comment><comment><USER3> Maybe I don't understand quite right but 'beta' would be a good word meaning something is in development and not quite finished.

</comment><comment><USER2> Other suggestions: "coding" "under construction" (we have a commonly recognized symbol for that too) "building"

</comment><comment><USER4> busy?</comment>


Facebook Hackathon Finals post-mortem - <AUTHOR> http://dylanv.org/2012/12/02/facebook-hackathon-finals-post-mortem/

<comment><USER2> Wow, this gets bigger every year. My team made it to the finals last year but there weren't any teams from Brazil or Ukraine. Paul seems to be doing a good job finding people all over the globe. I like the idea with Pond. I noticed that many ideas (even ones that didn't win) could be turned into viable businesses.

Anyone on here go both years?

<comment><USER3> I don't know her HN username, but Amy Zhou (Princeton) and I think one of her team members won last year and was present this year.

</comment></comment><comment><USER4> And they say you can't please all the people, all the time...if this service really works as described, it seems like you just made that cliche obsolete (in terms of music selection anyway..lol)

</comment><comment><USER5> Had a great time with you guys! Great post!

<comment><AUTHOR> Thanks man! Now how are you still awake?

<comment><USER5> been up for 24 hours hacking away at AngelHack SF!

<comment><USER6> You guys are crazy. How did that turn out?

</comment></comment></comment></comment><comment><USER7> I think that Music app is awesome.

</comment><comment><USER8> Will your team be releasing this app? Looks useful.

<comment><AUTHOR> No, we don't plan to. Before every hackathon we get these delusions of grandeur about evolving our upcoming hack into a thriving business, but the morning after we're always left with, well, a big hack.

<comment><USER9> I know that feel.. keep building awesome stuff.. you will get there eventually :)</comment></comment></comment>


Subscription services for plants - <AUTHOR> https://www.wired.com/story/on-demand-economy-brings-us-something-useful-nature/ <comment><USER2> I am not entirely sure how I feel about everything becoming a "subscription". On one hand, it is great for people new to an area to just jump right in, on the other, do we really need to pay someone to ship us plants every so often? Not just plants, but other things too. It is getting harder and harder to find something you can't get in subscription form.

I guess if it is working, keep at it. If anyone has the resources, a list outlining all these niche subscription services would be neat to see.

<comment><USER3> I'm sure this list isn't exhaustive but My Subscription Addiction[1] has 97 pages of available boxes. There's everything from the aptly named "The Opulent Box"[2] a luxury jewelry subscription at the very unaffordable price of $25,000/month, to just about every "Dollar ____ Club" you could dream up. And, of course, everything in between.

[1] [https://boxes.mysubscriptionaddiction.com/](https://boxes.mysubscriptionaddiction.com/)

[2] [https://boxes.mysubscriptionaddiction.com/box/the-opulent- bo...](https://boxes.mysubscriptionaddiction.com/box/the-opulent-box)

<comment><USER4> That's sad and funny. Props to you for finding a way to make a buck in that market without creating yet another box. Though you might be the best person to see there's not a subscription box for something, and create it yourself and start your own subscription box company.

<comment><USER3> Thankfully, it's not my site - the name just happens to be "My Subscription Addiction" and I suppose I'm more of a hate-follower than a fan. Like many other women in their early-20s I subscribed to Birchbox when it first came out ~2012. Eventually I cancelled and told friends that it kind of felt like low- stakes beauty sample gambling. Of course they thought I was nuts so I googled "subscription box gambling addiction" and stumbled upon this site.

None of my friends still have Birchbox subscriptions but following along on MSA I do think the boxes "target" a certain type of people/part of the brain. I get the impression there are a small number of people who spend a lot of money on several boxes as more of a hobby or entertainment than a convenience thing. They subscribe to a handful of boxes but only for 6-12 months before switching to a new box.

Now that I'm thinking about it, I bet a subscription box of random subscription boxes would actually do really well...

</comment></comment></comment></comment><comment><USER5> This seems silly?

a) Plants need to be carefully picked for their habitat/location/which room in the house etc

b) Plants need varying amounts of care

c) 1 a month quickly scales to unwieldy numbers if you are able to keep your plants alive, unless this is aimed at the disposable "fast fashion" part of plants?

That being said, indoor plants are the best. I can't help but feel like this is the equivalent of those fake/plastic plants though.

<comment><USER6> _1 a month quickly scales to unwieldy numbers if you are able to keep your plants alive, unless this is aimed at the disposable "fast fashion" part of plants?_

I've recently come to believe that most people are really bad at taking care of plants.

Those cute little tropical things at the garden center? If well-cared-for, they will grow into 8-foot-tall (a little over 2 meters) monsters that live for decades. There's no way there's a big market for 8-foot jungle plants. Even those tiny little Haworthias and Echeverias will start to outgrow their cute little nursery pots within a few months.

People must be keeping them in small pots, over/under-watering them, and never re-fertilizing the soil.

Case in point, when I broke up with an ex and she moved out, she took the Cycas because it was "hers". It had just started sprouting a new set of fronds. Those things are really easy to take care of -- just give it some water like every 2 weeks, give it light, don't let the cats chew on it. Within 3 weeks she had somehow managed to hurt the thing to the point where the new fronds had gone totally brown and soon withered away completely. My guess is she thought it looked dry and overwatered it. I eventually took it back and it's made a full recovery since then.

<comment><USER7> I hope you got full custody.

</comment></comment></comment><comment><USER8> SecondHome in Lisbon is a coworkspace famous for having many plants everywhere: [https://secondhome.io/lisboa](https://secondhome.io/lisboa)

<comment><USER9> Looks nice.

</comment></comment><comment><USER10> This has been a thing for a while here in Norway, at least - at a former employer, there was an almost absurd desire to outsource anything and everything; I quipped to a colleague that they'd probably do the office greenery next - only to be told by the janitor that the plants were indeed leased already.

Sigh. We had someone come by once a week to water the plants and restock the coffee machines.

</comment><comment><USER11> This is nothing but an advertisement.

</comment><comment><USER12> Honestly I think orchid subscriptions is the way to go. Send them out when they are just sprouting a flower stock then exchange them in a month or 2 after they are done and before the new owner kills them.

<comment><USER13> Someone's already doing something like that: [https://www.washingtonpost.com/lifestyle/home/this- florist-s...](https://www.washingtonpost.com/lifestyle/home/this-florist- started-babysitting-ailing-orchids-on-the-side-hes-now- boarding-13000/2019/04/03/e5bc550e-3ba1-11e9-a2cd-307b06d0257b_story.html)

</comment></comment><comment><USER14> The moralizing about people's inability to keep plants alive seems strange to me - do they not deserve plants?

<comment><USER15> I don't know about moralizing, but to me it definitely seems like some sort of strange deficiency in those who can't remember to water a plant.

And yeah, if you routinely kill plants you don't deserve them. That's my opinion though: plants are incredibly kind and generous and they don't hold it against you if you forget to water them. They are so sweet and gracious. We should all try to learn from plants.

Thinking about it, no human _deserves_ a plant. They don't need us at all, but we depend on them utterly, even for the very oxygen we breath. We take them for granted, kill them without regard, treat them as things, ignore our duties and responsibilities. No sir, no human _deserves_ the kindness of plants. How could we? Their love and care for us, their willingness to support us even in our darkest hour, is a pure gift, a gracious mercy, undeserved.

<comment><USER16> Anthropomophising is cute, but not a great argument. How about "Plants try to kill us with poisons, toxins, by clogging our drains with their roots and uprooting our foundations. They are vicious, antagonistic life forms. Torture, kill them at your leisure!"

Not as cute, but just as valid.

<comment><USER15> Nah...

If you're being poisoned by a plant you're obviously eating the wrong part, eh?

And when they tear down our works they are but reminding us of our folly.

There are no "vicious, antagonistic" plants.

(Fair warning dude, you might not want to engage with me in re: plants, et. al. I'm a weirdo that believes in human-plant telepathy. See [https://en.wikipedia.org/wiki/The_Secret_Life_of_Plants](https://en.wikipedia.org/wiki/The_Secret_Life_of_Plants) ...or don't, eh? To be sure some of what's in that book is BS, but not IMO the parts about communicating with plants. YMMV. Cheers.)

<comment><USER16> Agreed - there's no point at all in anthropomorphizing plants, for good or ill.

</comment></comment></comment></comment></comment><comment><USER17> Interesting idea, and nice to see my hometown represented in the very first sentence.

</comment><comment><USER18> That's all we need, a disposable plants service. I guess it's great for people who can't keep them alive longer than a month.</comment>


5 minutes of your time for one hour of mine - <AUTHOR>

I have a favor to ask: please fill in my survey and in return I'll answer any web analytics question.<p>You can see the details here: http://survey.innertrends.com/ or the survey directly here:
https://docs.google.com/a/innertrends.com/forms/d/1aTD51UXHwf_vj3Ucl13RyYyRBA97Cnl_AagTMREIjh0/viewform <comment><AUTHOR> The link: [http://survey.innertrends.com/](http://survey.innertrends.com/)</comment>


Men Like to Mansplain Themselves, Study Finds - <AUTHOR> http://motto.time.com/4433108/men-mansplain-citation-study/?xid=newsletter-brief <comment><USER2> Ignorant article. It's all over the place, and unfortunately has no supporting data for the headline. The most backed-up line is: "Academics are more likely to cite papers that are already well-cited." Well, yes, this is true no matter which gender you are.</comment>


Common Lisp Runtime Redefinition (2002) - <AUTHOR> http://tiborsimko.org/common-lisp-runtime-redefinition.html <comment><USER2> What is even more amazing is to start a web server from the Lisp command line (the "REPL"), and then change the definition of a function. The app will use the new function without stopping and/or restarting. And this includes the intermediate step of compiling the whole function!!

You can also update the definition of a class and then force all instances of this class to use the updated definiton... all of this while the program keeps running.

I always tell my friends to try some Common Lisp. The runtime environment is rather amazing. The exception handling system ("condition" system) is also another thing that is impressive on CL. It is so far beyond what Java (or C++) brings to the table, that it isn't even funny to compare them.

<comment><USER3> I have the same discussion every few months, using FORTH as an example. I guess there are a lot of environments where you can use this style of dynamic updates - TCL, FORTH, Lisp, & etc.

<comment><USER4> Yes, with Tcl starting a server from an interactive interpreter and changing function and class definitions on the fly is trivially simple.

I'm writing a Tcl web sever that uses Tcl's namespace features to change the execution environment the client sees on a per-connection basis. Trivial. Anybody else got that?

</comment></comment></comment><comment><USER5> Runtime definition (and redefinition) of functions was critical to the Lisp Machine's usage model. Since the entire environment was a single Lisp session, _everything_ happened at "runtime", including defining functions. Most development, then, was done by interactively defining functions and trying them out. It certainly was possible to compile a source file into a binary file, and there were occasions when one had munged one's Lisp session to the point that rebooting and reloading the binaries was required, though those were relatively rare.

</comment><comment><USER6> The combination of dynamicisim, speed, and general utility of the CL runtime is unmatched anywhere except perhaps smalltalk.

With sbcl/slime, I can run a test, get instruction level profiling of the disassembly, make a change and collect profiling data again without restarting my program. The ability to go up and down the levels of abstraction all in the same environment is unparalleled.

</comment><comment><USER7> Can you not redefine a method in Python's shell in the exact same method?

Edit: Ah...silly me, that isn't exactly runtime.

<comment><AUTHOR> Right. If I have the Python code to parallel the Common Lisp:

      import time

      def drill(n, f):
          for i in range(0, n):
              f(i)
              time.sleep(1)

      def gen(n):
          print(n)

      drill(10, gen)

I get:

      $> python3 interrupt.py
      0
      1
      2
      3
      ^CTraceback (most recent call last):
        File "interrupt.py", line 11, in <module>
          drill(10, gen)
        File "interrupt.py", line 6, in drill
          time.sleep(1)
      KeyboardInterrupt
      $>

The funny thing is though I've known it was possible to redefine running Common Lisp code and I have seen the Continue option many times, it really wasn't clear why it would be used and in part because it is mostly ignored in descriptions of Common Lisp. I mean the behavior isn't described in the SBCL User Manual. Nor is it really fleshed out in the Common Lisp HyperSpec [http://www.lispworks.com/documentation/HyperSpec/Body/f_abor...](http://www.lispworks.com/documentation/HyperSpec/Body/f_abortc.htm)

<comment><USER8> This isn't a very fair comparison as the Lisp code is shown running in the REPL, not in some sort of release mode that, even in Lisp, would presumably _not_ drop you into the REPL.

It's fairer to ask for interactive mode, in which you can redefine things and restart your tests:

        $ python3 -i interrupt.py
        0
        1
        2
        ^CTraceback (most recent call last):
          File "interrupt.py", line 12, in <module>
            drill(10, gen)
          File "interrupt.py", line 7, in drill
            time.sleep(1)
        KeyboardInterrupt
        >>> def gen(n):
        ...     print('{}!'.format(n))
        ...
        >>> drill(10, gen)
        0!
        1!
        2!
        3!
        ^CTraceback (most recent call last):
          File "<stdin>", line 1, in <module>
          File "interrupt.py", line 7, in drill
            time.sleep(1)
        KeyboardInterrupt
        >>>

What's magic about the Lisp version is not the "in debug mode, you get a REPL and can redefine stuff" part. What's magic about the Lisp version is the " _you can then continue the test where you left off_ " part. That's impossible in Python because exceptions unwind the stack.

<comment><USER9> Lisp doesn't really have separate release/debug modes[1]. When you want to distribute a program as a binary, you dump the image and set a custom top- level function to use instead of the default REPL. The program will still contain the compiler/interpreter and can redefine everything just like during development (altough the program might not use or expose those features to the user). The REPL isn't in any way magical in Lisp; it's just the default option for interacting with the Lisp.

[1]: You can ask the Lisp to drop all debug information as an optimization, which makes development impractical, but still possible. Some implementation might allow you to distribute a program without the compiler, but the standard does not specify that.

<comment><USER10> Lisp doesn't have that in the language standards, but Lisp implementations provide that. Lisp developers had the problem of shipping smaller applications, shipping faster applications to end customers, targetting systems where GC is problematic, or deploying on embedded systems.

Lisps with extensive image-based delivery support are for example Allegro CL and LispWorks. Delivery here means also deep cuts into the software like removing parts of the Lisp system (everything development relatied, unused functionality, ...) and also removing parts of the program for the delivered application. For example the running program might not need much of the program's symbols. Functions would be called directly and not through symbols.

There are also compilers for application delivery (some are inhouse) which generate self-contained C code. These then are compiled with the usual C compiler and generate small static applications. An example would be mocl, which can compile for Android, iOS and macOS platforms.</comment></comment></comment></comment></comment>


Product idea - like it or hate? - <AUTHOR>

Hey hey hey! I've had a product idea for a web app for some time now. I'd really love to hear your input on this.
Basically it's time management for students. We all know that most students are pretty bad at time management. Now what do you think about a web app that would cost $10/semester for students and they could either send a message via cell phone/twitter it via cell phone with the message (example: "math test 101 #next friday") and that would be added to their personal timeline. They'd get sms/email alerts when they have a test coming up.
SO, they can either login to the web app and update it simply by typing a human message like "do homework for #tomorrow", or send a twitter message with that content and it'd be added to their personal timeline.
Please tell me what you think about this idea. Do you like it? Would you use if (if you were a student)?
Thanks, Emil Hajric. <comment><USER2> My startup Classleaf <http://classleaf.com> leaves it up to the teachers to put in homework and tests and whatnot. (Also has email notifications in the development version, which can be sent to regular sms.)

I had a failed startup called Student Concourse (academic homework/grades/tests/events/everything management) and what we found out from it was that students don't like to take time to plan. Users used it for a day then they stopped using it because it was annoying to put in content.

It's easier for the teacher to put it in and for the student to receive the sms without needing to do anything but subscribe to the teacher's inputted class events.

</comment><comment><USER3> The hardest part is actually getting the person to WANT to manage their time. Once that happens there are tons of ways to do it. Consider the iPhone. It's just as easy to enter something into the calendar as it would be to text your server.

A better system might be one that focuses on the teachers providing most of the input and the students subscribing to their teachers events.

<comment><USER4> I want to manage my time, but I always forget that I have better things to do when I have a moment to sit down and waste time on reddit or comic books. I wouldn't mind a service providing an interstitial before a blacklist of time- wasting sites with my interactive to-do list on it, perhaps with a lens flare over the more urgent items or something. That isn't this program, but it'd be useful to me.

</comment></comment><comment><USER5> Why focus just on students? Maybe make a general calender/sms applications, then do small customizations for different groups.

You could have a student calender or a family calender.

<comment><USER6> Good point. I'd argue that families have a larger need for a shared calendar. "Don't forget to pick up Joey at 3pm" is a real problem and using the fridge to communicate is not the best approach.

</comment></comment><comment><USER7> It's not really about the idea, it's about getting it done.

</comment><comment><USER8> Students hate paying for things. I think it will be very hard to make a paid model work on a scale that would see any kind of real revenue. The problem is only exacerbated by the fact that there are already a lot of similar free services out there.

</comment><comment><USER9> I really don't think when I was a student I could have justified paying for a service like this.

That being said, I think it's a neat idea.</comment>


Cryptome.org is Down - <AUTHOR> http://www.cryptome.org

<comment><USER2> Apparently it is now temporarily hosted at:

<http://cryptomeorg.siteprotect.net/>

This is temporary Cryptome address until the Cryptome.org domain is transferred. Network Solutions shut Cryptome.org and has placed a "legal lock" on the domain name, preventing its transfer, until the "dispute" is settled. Some recent files are available now and the full collection is being transferred.

</comment><comment><AUTHOR> Looks like it's related to this: [http://www.geekosystem.com/cryptome-leaks- microsofts-online-...](http://www.geekosystem.com/cryptome-leaks-microsofts- online-surveillance-guide-ms-demands-takedown/)

discussion at <http://news.ycombinator.com/item?id=1148247>

</comment><comment><USER3> As pointed out by SpyBlog: "There is no excuse for censoring thousands of other web pages, from a major website, simply because there is a civil legal dispute (this is not a criminal matter) regarding one of them." <http://spyblog.org.uk/>

</comment><comment><USER4> A "legal lock" is ridiculous. There is nothing illegal about the domain name. They should sue to have the domain name unlocked, and then move their site to a host under a less oppressive regime.</comment>


Someone Copied the SNAP Source Code to Github Before Sony Pulled it Down - <AUTHOR> https://github.com/deliciousrobots/gnustep-gui-sony

<comment><USER2> For context:

[http://blog.deliciousrobots.com/2010/11/27/sonys-changes- to-...](http://blog.deliciousrobots.com/2010/11/27/sonys-changes-to-gnustep- gui-library-adding-touch/)

<comment><USER3> This may explain why Sony removed the code; Apple is very touchy about multitouch gestures and implementing them in ObjC must be particularly galling.

<comment><USER4> I am quite sure Sony owns a lot of patents Apple needs. It's unlikely Sony and Apple would enter a patent war.

</comment></comment></comment><comment><USER5> Does anyone know why the source was pulled?

<comment><USER6> I'm guessing somebody leaned on Sony, as this was stated to be an all-in thing for their upcoming product lines, not an " _experimental R &D project_" as listed now.

There's a couple of major players, namely Microsoft and Oracle; I wouldn't be surprised if Apple was unhappy with this and moved to keep their skill-bank walled in.

Other than that, maybe a pointy-haired boss wanted something like .NET because it sounded more internet-y.

<comment><USER7> > I wouldn't be surprised if Apple was unhappy with this and moved to keep > their skill-bank walled in.

I would find this surprising: more companies using obj-c means more people using obj-c means more people able to code on Apple platforms, which use obj-c nigh-exclusively.

<comment><USER4> Apple has no problem when people write software for their platforms, as long as it's not portable to other, competing, platforms.

If this effort went through, GNUStep could eventually be used to port Mac software to other platforms (Windows included) or to run it against controlled environments that would render iTunes DRM useless, and that's something Apple won't let happen.

<comment><USER8> Nobody is currently preventing this from happening and I doubt there is much Apple could do to stop it. That is to say, Openstep is an open API that anyone is free to develop an implementation of.

Of course, this isn't the same as if, for example, Sony directly circumvented or undermined Apple's security or certification technology.

<comment><USER4> > I doubt there is much Apple could do to stop it. That is to say, Openstep is > an open API that anyone is free to develop an implementation of.

I am not so sure. OpenStep (the spec) is probably safe, but that doesn't make sure the rest of Cocoa (which implements a superset of OpenStep) is immune from a patent or IP-related offensive.

</comment></comment></comment></comment></comment></comment><comment><USER9> I'm surprised that in discussions I've seen that nobody has mentioned Google TV. As a next gen TV framework SNAP would compete directly with it. It could even be seen as a less resource intensive & closer to the metal response to the Google TV strategy.

I think it's far more likely that it was shelved due to internal politics or pressure from Google than any other theory.

</comment><comment><USER10> Is there a reason you'd want this? It seems if Sony pulled SNAP that the "next gen platform" it was to be intended for may not materialize, or may use another framework? What good could come out of this SDK if there's isn't a device/platform to use it on? /newbie question

<comment><USER4> Sony's modifications would be available for incorporation into GNUStep (as the ones already released already are).

</comment></comment><comment><USER11> I love "next gen platforms" based on technology from 1986. At least it doesn't use punch cards, I guess.

<comment><USER12> Much of the cutting edge today is based on Unix which has been continuously evolving since 1969... if you solve problems well from the outset, you often don't have to re-solve them over and over.

<comment><USER13> There are few problems for which unchecked pointer arithmetic is a good solution, and even fewer at the application level. Computers are hundreds of times faster than they were in the NeXTstep days. We no longer need to risk undefined behavior just to get a GUI to keep up with a human. Hell, Eclipse is probably the most bloated Java IDE you could find, and it's only sometimes intolerable on a six-year-old laptop.

ObjC is basically Smalltalk weakened by some dangerous efficiency hacks we haven't needed for a decade.

<comment><USER14> But your laptop isn't your phone. I don't think Eclipse would run very well on my phone's relatively weak ARM core: it barely keeps up on my 2008 MacBook Air.

<comment><USER15> Yes, java on phones... what a pipedream !</comment></comment></comment></comment></comment>


Why higher education is in trouble, in one graph - <AUTHOR> http://mfeldstein.com/why-higher-education-is-in-trouble-in-one-graph/

<comment><USER2> What a load of crap.

Look at the CPI: that should be subtracted from the ENTIRE graph to show that most things on there have in fact deflated over time (is that even true), and that the apparently HUGE increases in College Tuition are still big, but not nearly as large.

Also omitted is the vastly more important figure of how much students are _actually_ paying. Financial aid doesn't come in only loans. Less than half of those attending the more expensive institutions pay full price.

Additionally, those paying full price _generally_ come from families (professionals, businesspeople) whose income has increased more than the cost of tuition over that same time period.

While it's certainly a problem for the future, right now the rising costs haven't had a large effect. This is FUD.

<comment><USER3> A few points...

Your CPI point is nonsense. The graph compares the growth of expenses to other consumer products. So subtracting CPI from the college costs and then comparing that number isn't comparing apples to apples.

The fact that the Government is pushing money into these universities from both sides does not justify high costs. Even with Government Subsidies going directly to the University and Government grants going directly to students we still have a situation where Student Loan debt has passed Credit Card debt in this country. Adjusted for inflation Student Debt is up 50% in the past decade.

Since when do costs automatically go up with Income? If Exxon decides to double their prices because people's incomes have doubled would you think that was acceptable? Despite its importance to society education is still just a product with a cost and a profit margin. If it's cost is going up exponentially its because someone is making a lot of profit.

Edit: Just to drive home the point. The average salary for a University Professor is $118,054. The average length of an academic year in days 187. So your average professor is making $631 a day NOT including benefits.

(Source: <http://bit.ly/gyfAz2>)

<comment><USER2> Maybe I should have been more clear; the costs of education go up concurrently with with CPI. CPI is used as a general measure of inflation. If you're not taking that into account, you're measuring the change in nominal, not real dollars. That's much less useful.

My point about income increasing was meant to show how the burden of college has not increased significantly to those who are paying the full costs. The fraction it is of their income has decreased or remained roughly the same.

If the issue is that people aren't getting their money's worth out of the investment that an education is, then that's one problem. On the other hand, if the $25k of debt is worth more than $25k + inflation (measured by CPI ;) + opportunity cost, then it's worth it.

>If Exxon decides to double their prices because people's incomes have doubled would you think that was acceptable?

If the market would bear it, why shouldn't they?

>If it's cost is going up exponentially its because someone is making a lot of profit.

I don't speak for all colleges out there, but at least many of the smaller liberal arts colleges that command these very high prices of ~$50k/yr, the costs of education are indeed increasing. Instead of vapidly speculating that "someone" is making a large profit because, prima facia, costs are increasing, take a look at the improvements in education since the first half of last century. Things are changing. No longer is education a matter of a room and a professor. It is more costly to provide.

</comment></comment></comment><comment><USER4> Without knowing what the Y axis is this actually doesn't even look yikes, if anything I got flashbacks of this graph I remember seeing in one of Tufte's book: [http://wattsupwiththat.files.wordpress.com/2008/11/djia- suns...](http://wattsupwiththat.files.wordpress.com/2008/11/djia-sunspots.png)

EDIT: Just saw the link at the bottom of the "article".

</comment><comment><USER5> Before we all jump on the higher education is a vascous bubble !!11! bandwagon, can anyone verify whether this blogspam is using any Al Gore style statistics? For example, are the $s adjusted for inflation since the 70s? I'd check this all myself, but the iPhone really isn't conducive to this sort of thing.

<comment><USER6> Are they adjusted for inflation? _One of the lines is the Consumer Price Index._

<comment><USER7> CPI is useful as a baseline for understanding higher education pricing, but check out the Commonfund's HEPI modeling of inflation specific to the higher education market, which this posting compelled me to add: <http://news.ycombinator.com/item?id=2451737>, [http://www.commonfund.org/CommonfundInstitute/HEPI/HEPI%20Do...](http://www.commonfund.org/CommonfundInstitute/HEPI/HEPI%20Documents/2010/CF_HEPI_2010.pdf)

Inflation was lower in '10 than it's been in decades, 0.9%, after several years of 2-3% inflation, generally around 1% higher than CPI every single year.

Recently, the inflation was driven by volatile, high energy prices, since research labs especially are growing increasingly electricity-intensive as high-powered computing becomes a key part of more and more research fields.

</comment></comment></comment><comment><USER8> Also, Apple is doomed. Have you seen their stock charts in the last few years? Straight up.

</comment><comment><USER9> At the end of the day you have you deliver value, and being in debt for a lifetime isn't value. My fear is that the higher end schools won't change their ways and that only the very rich will be able to get a degree from a name school. I really see this as hurting the middle class in a huge way...

<comment><USER10> With the number of expensive top-ranked schools giving out large need-based grants, the situation is far less dire than the graph would have you believe. At least right now they're pretty generous even to the middle class, although I will not deny the existence of some outliers who do get totally screwed.

<comment><USER9> You know maybe it comes down to a definition of "top ranked" — perhaps I'm really thinking of the second tier (say an NYU) next to the very top (say a Harvard).

</comment></comment></comment><comment><USER11> What is it with HN and its continual, deathless drive to prove higher education is worthless? Christ, OK, some of you dropped out of college, _that's fine_ , you're doing alright these days. You all don't need to keep posting this kind of shit to make up for your own feelings of inadequacy.

<comment><USER12> Okay, there probably _are_ a couple of HN readers wandering around feeling inadequate about their lack of degrees. I, for one, have a different motive when I upvote the "college is broken" posts (well, the ones I like enough to upvote).

I'm tired of meeting smart people who completely lack useful skills (and have been "educated" out of the ability to acquire them on the fly without hand- holding) and need ridiculous salaries (that they don't have the skills to justify) in order to service ridiculous college debt. It's just sad.

We had another one on HN recently asking what to do with his mountain of debt and unprofitable degree. I meet about two a month, and I don't spend that much time around recent graduates.

Yes, _some_ people leave their degree program without unmanageable debt and having gained enough to make the sacrifices worth it. However, they are in the minority.

In America, getting a degree is held out to all students as a panacea. It's even illegal to take a special needs child off the college track before age 16, regardless of how unlikely it is that that child can benefit from university study, or how much the child needs other types of education. For the bright, it's worse: high schools are graded on how many of their graduates go on to college, so the pressure can be incredibly intense even when college is an incredibly bad fit for the student.

People who _don't_ think that university study, as most commonly implemented in the US today, is the One Right Way for all individuals, are usually shouted down as unambitious or not contributing to the economy. Entrepreneurship communities are among the few places that students can find an attitude of "do what has the most value to you, and be skeptical of anything that involves mountains of debt -- it takes a lot of earning power to service that debt and live at the same time" from a group of people whom no one can rightly call unambitious.</comment></comment>


What are your experiences with customizing Twitter Bootstrap? - <AUTHOR> Whenever I run into a problem with Bootstrap (usually a layout issue), I try to customize it. Every time I look over the docs, I become extremely anxious, jettison bootstrap from the project, and write the whole site from a clean slate.<p>Am I missing out on incredible time-savings by not taking the time to learn Twitter Bootstrap customization? <comment><USER2> I am not sure about your skillset.

In my case, I am a backend developer. While javascript and general scaffolding is so easy to myself, creating a button and other ui elements with perfect shadow and border options resemble the dark arts. And there are so many edge cases.

For example basic dropdown is rendered differently in different browsers and are often ugly (atleast in the older versions of the browsers). One would expect something as basic as a dropdown to be fairly standardised :(

Bootstrap is rather handy in such situations as the ui is standardized across browsers.

What I tend to do is, use the bootstrap Sass version. So I can write my own layouts and pull in only the components that I need using the bootstrap Sass.

My apps are usually light on the front end and don't use too many javascript features from Bootstrap. So I hate having to load jquery, which is a basic requirement for Bootstrap. One thing that I do is, I use Native Javascript for Bootstrap[0].

[0] [https://thednp.github.io/bootstrap.native/](https://thednp.github.io/bootstrap.native/)

</comment><comment><USER3> Perhaps rather than using bootstrap on a high stakes project (like client work or apps with paying customers) you could try bootstrap customization on a low risk side project? That way when (not if) your screw it up there is no anxiety of an angry client or customers demanding a fix? There is no anxiety of having to support IE or some client's esoteric dom-modifying browser plugins.

This way you can learn at your own pace and really get s feel for the codebase and workflows for bootstrap customization.

</comment><comment><USER4> It's been singular.

You did not explain the exact cause of your anxiety. External pressure or personal standards?</comment>


New Life Found That Lives Off Electricity - <AUTHOR> https://www.quantamagazine.org/20160621-electron-eating-microbes-found-in-odd-places/ <comment><USER2> If I'm not mistaken it's not like just-now new, but of course still fascinating and relatively new. Just from a quick search:

[https://www.newscientist.com/article/dn25894-meet-the- electr...](https://www.newscientist.com/article/dn25894-meet-the-electric- life-forms-that-live-on-pure-energy)

<comment><USER3> Part of the article is about a 2015 discovery showing that at least some organisms appearing to directly ingest electrons are actually emitting enzymes that grab an electron and a proton from the environment, then consuming the resulting hydrogen (search for Spormann).

The article also mentions that there is evidence for direct electron transfer, but it is yet unpublished.

</comment></comment><comment><USER4> Can we get an experiment done immediately to see if they will survive off of the electricity inside a vacuum?

<comment><USER5> Why?

Seriously. What's the potential gain? Layman asking.

<comment><USER6> Imagine if we created an organism that could live in the vacuum of space as comfortable as being on the surface of a planet. It would revolutionize our ideas of space exploration and colonization.

Also, I imagine there's some skepticism here. If they lived in a vacuum that means there was nothing else they could live off and they truly are eating electricity. We also live in the age of "viral scholarship" where a lot of shoddy science gets paraded around for status seeking universities and researchers. Remember how skeptics of the FTL claim from those Italians were shot down on these forums and reddit? Skeptics shouldn't be automatically punished. If anything, we need skepticism more than ever.

<comment><USER7> How would they repair themselves and reproduce without access to nutrients?

</comment></comment></comment></comment><comment><USER8> If these microbes eat hydrogen then would they not equally be present and more common upon say a rusty electrode as more hydrogen produced via chemical reactions with the water.

So I wonder if we have yet to find there niche environment

<comment><USER9> Electron direct ingestion gives them an survival edge in harsh environment, but that does not represent at the same time a clear advantage in the normal environment, full of bacteria-eating organisms.

<comment><USER8> Very true and in such environments they may well be out competed, though with microbe it ends up feeding into a food chain and with that thought, I wonder what the food chain for these microbe are and if they have anything that feeds of them. Or is this a whole new level of microbe or are we just rediscovering something that naturally occurs and was more prevalent in the past due to competition being less evolved. SO may be that we are with that creating the perfect conditions and in a way that gives them momentum to accumulate to something noticeable and that may well explain why slow growing, may well be low survival rate and only in such rich environments for them that they thrive of any note.

So still much to learn but at least we have a direction to look at as now we are aware of them. After all we do seek out new life and try to understand them, which is great.

</comment></comment></comment><comment><USER10> So what if life hasn't evolved yet to feed off of our power lines, but the potential for it to happen is there?

<comment><USER11> I think they would need free electrons as the result of a chemical reaction, not just a voltage? For an organism to make use of a high voltage, it would need to physically connect to a lower voltage and allow current to flow, which is not possible for a microorganism that small given that the high voltage lines are isolated by several feet.

Cool concept for a GMO electro-snake though.

<comment><USER12> Yah, I think they feed off ions, not voltage.

There are similarities, but they are not the same.

</comment></comment></comment><comment><USER13> I don't remember much from my biology class but I seem to remember nearly all life utilizes some ATP cycle. Plants get it from the sun, animals from food, etc. I'm curious to know if this electic life is still ATP based and just utilizes free electrons to create it.

</comment><comment><USER14> A recent episode of Limitless ([http://www.imdb.com/title/tt5146006/](http://www.imdb.com/title/tt5146006/)) had this as a subplot.

<comment><USER15> I really wanted that series to be as good as the movie. Has it picked up lately?

<comment><USER16> Not really, it's canceled.

<comment><USER15> Ok good riddance then. Maybe a second movie will come out.

</comment></comment></comment></comment><comment><USER17> my breakfast this morning basically consisted of electrons

<comment><USER18> They have electrolytes!

</comment></comment><comment><USER19> Layman here...Is it possible life could likely live in the emptiness space as well then?

</comment><comment><USER20> pika pika

<comment> brian-armstrong Perhaps you meant pica? [https://en.m.wikipedia.org/wiki/Pica_(disorder)](https://en.m.wikipedia.org/wiki/Pica_\(disorder\)) ;)

<comment><USER21> While this entire thread is probably not considered relevant, "pika pika" or "pika-pi" are common quotes from Pikachu[1], arguably the most popular Pokemon.

The grandparent's comment is "relevant" because a pikachu is an Electric-type Pokemon. It can attract/store large quantities of electrons, and also repel/release large quantities of electrons.

While pikachus do eat other food, fruits/Poke-food/etc, it is unclear if they need a source of electrons to sustain themselves. They may just pull the needed electrons out of the their surroundings. However, I seem to recall an episode where Pikachu was sick due to a prolonged lack of access to a large current source.

[1] [http://bulbapedia.bulbagarden.net/wiki/Pikachu_(Pok%C3%A9mon...](http://bulbapedia.bulbagarden.net/wiki/Pikachu_\(Pok%C3%A9mon\))

<comment> brian-armstrong I knew what he meant. I was pointing out a similar sounding phenomenon which includes the consumption of "metal (metallophagia); stones (lithophagia) or earth (geophagia);". It was just a play on words, which I had hoped the ";)" would reflect

<comment><USER20> pikaaaaaaa

</comment></comment></comment></comment></comment><comment><USER22> Another item to add to the list of things/ideas explored by Star Trek before being discovered/invented.

A somewhat related and interesting read: [http://www.physicscentral.com/buzz/blog/index.cfm?postid=792...](http://www.physicscentral.com/buzz/blog/index.cfm?postid=7925996267659095123)</comment>


5-star phonies: Inside the fake Amazon review complex - <AUTHOR> https://thehustle.co/amazon-fake-reviews <comment><USER2> I immediately get hit with a non-dismissable overlay demanding my email address, which begins:

"You're already reading this so you might as well let me finish my point. ..."

We'll, no, I'm _not_ already _reading_ this because I can't see through your damn overlay.

Now, maybe if I had read numerous articles on the site before, I could expect to be dinged... but this was my first (and last) visit.

"Hustle", indeed.</comment>


Matz's Keynote from RubyConf-2008: Why Ruby? - <AUTHOR> http://rubyconf2008.confreaks.com/matzs-keynote.html

<comment><USER2> The point that really drove home with this presentation was the malleability of Ruby. Rails really has made a web dev DSL out of Ruby. Rake has done the same for automation, and I think you'll soon see MacRuby become an exceptional DSL for making OS X apps.

This, I think, is the what makes Ruby such a bag of awesome. It has familiar syntax, and has borrowed a ton of great ideas from a variety of different languages to make it powerful. I've learned more from fooling around with Ruby (and the concepts it incorporates) than any CS class I've taken so far, props to Matz for making a fun language.

</comment><comment><USER3> > Design the language suitable for the human mind

<comment><USER4> I was reticent to mod up such a short comment but that really does hit the nail on the head. I like Ruby far, far more than _any_ other language I have ever encountered. It's probably the first programming language I have ever actually liked, even loved, using. It's the first language I thought was designed for someone like me, and although I am well aware other languages are superior in many technical ways, I just don't care.</comment></comment>