Are we ready for the next 3 scientific revolutions?

Innovation is accelerating and entropy is increasing (as always). Several huge scientific revolutions are peeking at us from the horizon of the future. Looking at how we’ve dealt with the Internet revolution, I’m not sure we’re ready for them.

What 3 revolutions am I talking about? When are they going to happen? It’s impossible to predict which of these revolutions will happen first, or exactly when, but I suspect that it is safe to assume that all of them will come to pass in the next 100 years. I won’t focus on providing every tiny piece of evidence and analysis of these phenomena in this post, but I will examine them in much greater detail in the future.

Continue reading

Careful, YouTube might be watching

I noticed something interesting while trying to view the cell phone footage of Kajieme Powell’s shooting from an Atlantic article, and it has me puzzled. There’s a little addition to the URL of the video:

https://www.youtube.com/watch?v=j-P54MZVxMU&bpctr=1408581177

This is presumably the UNIX time stamp that the author viewed the video, and approved the warning that states that the video has been flagged as controversial. Well, the problem was that since it was included with the video link, it screwed up YouTube’s approval feature. If you visit that link and click “Continue,” you might find you’re redirected to

https://www.youtube.com/verify_controversy?next_url=/watch%3Fv%3Dj-P54MZVxMU%26bpctr%3D1408581177%26bpctr%3D1408676223

Which, if you keep clicking, might get you more permutations.

https://www.youtube.com/verify_controversy?next_url=/watch%3Fv%3Dj-P54MZVxMU%26bpctr%3Dlol%26bpctr%3D1408675230%26bpctr%3D1408675404%26bpctr%3D1408675303%26bpctr%3D1408675666

Or you might get this:

https://www.youtube.com/oops

Now, on any other site, this would not blow my mind. But when was the last time you remember YouTube having a technical “oops”? I tried to find other videos that included this URL parameter, and the results were, again, surprising. I’ll let you do that one for yourself, since I don’t want to link to any results or even the search here.

The results mostly fall into a few categories: Nazi/racist propaganda, terrorism in various forms, and shock movies like Salo.

Now, let’s compare that first link to one of the first results for “cops shoot”:

https://www.youtube.com/watch?v=Ins9VAo-xLY

It has over a million views, and graphically depicts virtually the same scene with no context provided at the beginning, and with more blood. This is relevant because YouTube’s content policy states:

It’s not okay to post violent or gory content that’s primarily intended to be shocking, sensational or disrespectful. If a video is particularly graphic or disturbing, it should be balanced with additional context and information.

More context is provided throughout the video, but it would be difficult to argue that the purpose of that video is anything other than shocking people. However, you will note if you visit the link, that YouTube is perfectly happy to let anyone view that video on first visit. I’ve confirmed this from several web proxies with no cookies, so I’m guessing it’s not just me.

So now we come back to the original video. Why is it lumped in with such horrible neighbors? Could it be that one video of a man being gunned down in his driveway doesn’t matter, but that this particular video has some special significance? And what would that significance be? Maybe you can figure that one out yourself.

25 Node.js Nuggets

Node.js

My last Nuggets post, “50 Linux Resources for Developers” was pretty well-received, so I figured I’d try to do the same thing I did there for Node.js. Hopefully something here gives you some inspiration to make the next great Javascript app. It’s not meant to be an all-inclusive guide to learning Node, but more of a look at my journey with Node and some things I’ve found useful which you might find useful as well.

For a little background, here’s the synopsis of Node.js from their website:

Node.js is a platform built on Chrome’s JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.

Continue reading

7 Small Reasons to Love Vim

These are some cool things you can do with Vim that save time and can help prevent mistakes from mouse selection. They’re mostly little things, but altogether they make up an editing environment that I simply love.

1. NERDTree (Docs) file deletion

<Ctrl-L> to open NERDTree, hjkl to move, mdy to delete

2. Easymotion (Docs). Check out their example GIFs, and you’ll never see movement with the keyboard the same again.

3. Executing shell commands without changing windows

:!ls ~  :!rm -rf ~/old.txt

4. Deleting everything inside quotation marks, function blocks, parameters lists, or tags

di" di' di` di{  di(  di[  di< (Delete text within first matched pair)
dit   (Delete text inside first matched "tag" e.g.: <div>TEXT</div>)

5. Selecting/deleting large blocks of text

Selecting: V <Ctrl-F> (page by page)
           V 500j (select 500 lines)
Deleting: d500d (delete 500 lines)

6. Searching Dash (paid app, but worth it) using dash.vim (Docs)

:Dash each underscore  :Dash Vim

7. Deleting only blank lines on either side of the cursor

In ~/.vimrc:
" Ctrl-up/down deletes blank line below/above, and Ctrl-k/j inserts.
nnoremap <silent><C-Down> m`:silent +g/\m^\s*$/d<CR>``:noh<CR>
nnoremap <silent><C-Up> m`:silent -g/\m^\s*$/d<CR>``:noh<CR>
nnoremap <silent><C-j> :set paste<CR>m`o<Esc>``:set nopaste<CR>
nnoremap <silent><C-k> :set paste<CR>m`O<Esc>``:set nopaste<CR>

If you have more awesome Vim tricks, shoot them to me in the comments!

You wouldn’t have a maximum account balance, would you?

I recently paid for something online using what I considered a secure online payments processor, and they asked that I provide a password to create an account to complete the transaction. You will understand in a second (if you don’t already) why I was so angry when, a few seconds later, I got this:

NOOOOOOOOO

Noooooo

random-ness.wikia.com

I couldn’t believe it. Please enter a shorter password.

Continue reading

Is the FCC purposely making their comments section unavailable?

Tonight on the program “Last Week Tonight” on HBO, John Oliver exhorted his audience to go file comments on the FCC website to address their proposed rules that many believe will destroy Net Neutrality. In visiting the page, it is clear that people are interested in commenting on this particular item.

fcc

A few more comments than usual. I suspect this didn’t happen in the 5 minutes between when John Oliver made his comments and when I visited the site. What if we look back in time? Did this all happen very quickly and overwhelm their servers?

Screen Shot 2014-06-01 at 10.40.06 PM

 

No.

So then why are they down? Try posting a comment right now. You can’t. Try pinging the server it’s on, apps.fcc.gov. You can’t. It’s hard to imagine that they couldn’t have seen that this might be something that needed some load balancing to allow comments from the huge number of people who obviously want to make their voices heard.

Is the FCC using the same tactics the cable companies are – creating artificial “scarcity”? I don’t know, but I’m very curious. A neutral content policy is what has made the Internet great. If bullies like the worst company in America can just congest sites that it doesn’t like, it can control speech. I can’t prove that the FCC is doing this here, but this is A PERFECT EXAMPLE of what would be possible if the cable companies get their way. “Sorry, we couldn’t possibly build more capacity to deliver the stuff you want. That would cost money, and we’re too busy swimming in a pool of ours.”

No thanks.

Edit 6/2 - The site still isn’t allowing comments, and appears to have actually lost a number of them! 1,162 to be exact.

Screen Shot 2014-06-02 at 8.06.49 PM

 

If you care about Net Neutrality and want to voice your concerns, first go complain on the FCC bug tracker about not being able to.

50 Linux Resources For Developers

I try to always bookmark interesting things I find as I bumble around the internet. I’ve collected thousands of bookmarks over the years, and I want to share some of the cool stuff I’ve found. I call these Nuggets.

Today, I want to bring you a list of links that might help you on your path to understanding and appreciating Linux. I don’t consider myself some wizened Linux guru, but I have spent many, many hours looking for guides and tools to make my life easier while using it.

If you’ve ever struggled to find information about Linux basics, or you just want to polish up your skills, there’s probably something here for you. This guide will be particularly focused on developers, but there will be information here that’s applicable to many other Linux users. Some of it is specific to Ubuntu users, but much of it is applicable across the board.

I’ve by no means covered everything, so comment or tweet to me if you have any you think I should include.

Continue reading

Take 30 minutes

Perhaps this won’t ring true for everyone, but I often find myself having an opinion about something on the Internet, and a lot of times I later realize that it might have been wrong. How much later? About 30 minutes.

If I’m writing a post for 30 minutes, I have enough time to detach it from my egocentric view of “I’M RIGHT AND I MUST SHOW IT,” and look at it for the actual thought that it is. Similarly, if I post a stupid comment, it usually takes about 30 minutes for me to realize that, no, it isn’t always better to be right on the Internet. For this reason, I like to start writing posts right when I have the initial inspiration, save a draft, and come back to it later. If it’s still worth writing, it’s still worth writing. If not, I saved myself some time.

This is why I think Twitter, comment sections, and so many other forms of instant-gratification media are ultimately unfulfilling. They’re full of half-baked thoughts, more propelled by a desire for recognition than deep reflection. An unanswered comment so often beckons to us as if it were actually poking us in the eye – we can’t resist giving our opinion on the matter. But when we have to broadcast our opinion on everything, we cheapen our voices and devalue the truly important things we have to say.

All the experts say the key to a successful Twitter account is to tweet often. I’d say the key to having a successful life is to do the opposite.

Killing patents, part 2

If you’re like at least a quarter of the people who read my original article, “Am I evil, or is killing patents just plain fun?” a few days ago, you probably read the title of this post as “Killing parents part 2″ or “Killing patients part 2.” I have to wonder how many people originally clicked it simply for that reason.

This is but one of the many responses I got, however. Overwhelmingly, people who responded to the article were in favor of at least reforming software patents, and many favored getting rid of software patents altogether. I expected at least a few responses to my challenge, but so far the only patent posted is one that hasn’t yet been granted, and I suspect won’t be.

This may be sampling bias, as there are relatively few people producing software patents, and even fewer who actually want to be. Most people don’t have any real motivation to go find them, unless they want to win the prize of forcing me to write a post about how great patents are. Regardless, the fact that not a single one of the nearly 40 thousand people (almost all software developers, and smartasses too, if I had to guess) who saw this article pointed to one good patent is fairly telling, at least to me.

Several people were skeptical that submitting prior art to Ask Patents would have any effect at all. Well, while it isn’t a landslide victory for patent reformers, there’s a tag for rejected patents that suggests that 24 patents have been denied so far, with several drawing at least partially on answers from Ask Patents. Here‘s one example from 2010:

A computerized method of analyzing weather data to improve the selection of contextually relevant communication, the method comprising:
 1. Automatically receiving geolocation information of a viewer's location;
 2. Receiving weather data relevant to the viewer's location;
 3. Analyzing the weather data to identify a weather condition;
 4. Accessing a database containing multiple available advertisements assigned to weather conditions; and
 5. Selecting a communication associated with the identified weather condition based on a viewer's preference.

In English? Sending ads based on the weather. Sounds boring. Also sounds an awful lot like Weatherbug, an application which has been around since at least 2000, and about a million other weather sites. And, thankfully, the patent office agreed.

24 patents doesn’t sound like a lot, but that represents tens or hundreds of thousands of dollars likely wasted by these companies. That makes me happy!  Why? Because the biggest thing I want out of all this is for companies to stop treating patents as weapons to use against competitors, and status symbols for managers with no direct involvement.

Right now, it’s a gamble, not dissimilar to the VC industry: Apply for a patent and spend a little money upfront, for the potential to make a boatload down the road. It’s a moonshot, but every once in a while they hit the jackpot. The problem is that money is made via dubiously ethical behavior like waiting for lots of people to infringe and then suing when they get successful, instead of actually creating value. At least their lawyers make a lot of money. Direct costs to U.S. businesses have been estimated at $29 billion a year, indirect costs as much as $83. This is grade-A sleezeball material.

So, will my humble daily search for prior art on relatively few patents help? Maybe, maybe not.

Either way, I’d rather do something than nothing.

Am I evil, or is killing patents just plain fun?

The other day I re-discovered this post by Joel Spolsky on Hacker News, entitled “Victory Lap for Ask Patents.” I saw it when he originally posted it a while back, but it didn’t resonate with me at the time.

But re-reading it today, I realized how great an opportunity we, as software developers, have to force patent reform by actively contributing to this project. Ask Patents, if you haven’t heard of it, is a StackExchange site where you can ask questions about patents, or, in my case, respond to requests for prior art that invalidate an overly-broad patent. In my case, I focus on software patents.

I can hear what you’re thinking.

That sounds fucking boring

I know, right? But actually, I’ve found it to be quite a fun little puzzle to decrypt the legalese used by patent lawyers to try to get away with ridiculous patents. Here’s an example patent claim:

“A method comprising:

  1. generating, using a processor, time-based event boundaries detected in a plurality of images;
  2. computing inter-event durations;
  3. grouping events into clusters based on the inter-event durations; and
  4. validating, using a rule-based system, that each event belongs to an associated cluster based on event level content based features.”

Short version: a photo album that groups your photos by the time they were taken.

How hard do you think it was to find examples of prior art? (Hint: it wasn’t)

If you’re still wondering what I’m going on about, then perhaps a different motivator is called for. If you think this shit is boring and pedantic, how do you think someone at the USPTO feels when they have to read it day in and day out, and formally parse and research it to decide whether it should stand?

Let me put this another way – wouldn’t you rather those working for the USPTO were spending their time on legitimate patents? On getting a bunch of those “patent pending” labels off of everything we buy? On crippling the patent trolls, who raise the cost of doing business for anyone who gets successful enough to trespass on one of their dubious “works of genius”?

Well, you can help. Every minute you save the USPTO is another minute they can spend doing things that actually matter. I’m going to start doing it every day. I’ve already done 6 in the last hour. Time will tell whether my contributions actually do anything, but I suspect that, given how unglamorous the work is and how few people generally comment, even a little bit will be appreciated.

So how does this lead to patent reform? My hope is that the community can shred a lot of these useless patents before they take any brain cycles away from a qualified researcher. And if it happens enough, it will start to become clear to everyone involved that the vast majority of software patents are bullshit.

It might sound like a bad, or at least contradictory, idea coming from a programmer, but I genuinely hope (and have some reasons to believe) software patents go the way of the dodo in the next decade.

In fact, I would go so far as to wager the following. I will bet, on pain of writing an entire blog post dedicated to why patents are good, that no one reading this article can find a software patent granted in the last year that actually should exist. The requirements for a good patent are:

  1. Novelty
  2. Non-obviousness

Some software patents may technically be novel, but I’ve yet to find one that I thought was non-obvious. Maybe someone will be able to enlighten me.

Want to help some more? Take it to Twitter with the hashtag #patentreform!