zacharyalberico.com

  • Archive
  • RSS
  • Ask me anything

Cruise Control

Living in a Driverless World.

What will the wide scale adoption of autonomous vehicles change about life (at least in the United States)?  For one thing drunk driving no longer exists and licences are now irrelevant.  Driving also no longer needs to have an age restriction, but these things are relatively minor when considering what the autonomous car could mean.

First imagine owning an autonomous car in a way similar to how you own your regular car now.  You have accounts for each person able to drive the car and your kids are authorized to go to certain locations at certain times.  Once the car drops them off it can drive itself home to make another trip.  The car can pick you up from any location simply by giving it a call and letting it lock on to your phone’s GPS coordinates (or by giving it an address to be more exact).  These are the advantages when viewed within the context of how we currently use our cars — a severe limitation.

Why own a car when a subscription to an autonomous fleet would be better?  A parked car is a wasted resource - electric cars are great, but take a while to charge and as a result have range issues.  A fleet of autonomous electric cars can charge themselves when low and send out charged cars to pick up passengers who subscribe to the fleet like distributed mass transit.  If the subscriber wants to go some great distance the fleet recognizes this and sends a gas car instead.  The fleet also communicates with the other cars in order to help traffic flow in particular congested areas and can reroute traffic when necessary.  The cars can drive closer together and at higher speeds leaving the driver free to tend to other things.

There are obviously some issues with this concept, things like daily commutes may be annoying to schedule. The ability to decide to go somewhere and immediately leave in your car without having to wait around for one of the fleet to pick you up would ensure that a market for personal cars is likely to still exist.  People in cities though that don’t want to deal with parking or having to worry about car maintenance/fuel costs may find that those inconveniences are worth the extra benefits.

I think the biggest difficulty associated with autonomous autos is the liability problem.  Who is at fault in the event of a crash?  The car will be recording an enormous amount of information about its surrounding environment so it should be easy to determine what happened - if it was the fault of a human driver in another car or simply an unavoidable collision.  The level of software related crashes has to be similar to today’s level of engine explosion — virtually non-existant.  Otherwise the only legacy of the driverless car will be the enormous string of lawsuits it leaves behind it.

  • 1 month ago
  • 2
  • Permalink
  • Share
    Tweet

“No Infringement Intended”

Copyright for the Digital Age.

Look around at the majority of videos on sites like YouTube and you’ll notice something interesting.  The description sections of the videos having naive attempts at disclaiming ownership and copyright, while this is indicative of the public’s ignorance about copyright law in general - it’s more of a symbol of how broken and ineffective copyright has become.

Copyright in the United States is derived from the Copyright Clause in the US Constitution which states, “To promote the Progress of Science and useful Arts, by securing for limited Times to Authors and Inventors the exclusive Right to their respective Writings and Discoveries.” [1].  The purpose of copyright as defined here is to “promote the progress of science and useful arts” while the means to do so is with limited time monopolies.  Copyright is not about some natural right to ownership or control, but a way to encourage the creation of creative works that benefit the public at large.  It exists as an incentive, nothing more.

Copyright guarantees five exclusive rights to the owner. [2]

  1. The right to reproduce the copyrighted work.
  2. The right to prepare derivative works based upon the work.
  3. The right to distribute copies of the work to the public.
  4. The right to perform the copyrighted work publicly.
  5. The right to display the copyrighted work publicly.

The first federal copyright act in the United States was the Copyright Act of 1790.  Creators had to register works they wanted to be protected and were granted 14 years of copyright after which it would lapse into the public domain or could be renewed one time for an additional 14 years. [3]  This allowed creators some time to benefit from their monopoly before allowing the public free access, it also (perhaps more importantly) meant that any work not specifically registered was public domain immediately.  Today the landscape is very different.

The Copyright Act of 1976 extended copyright to the creator’s death plus fifty additional years (which was increased to seventy years in 1998, and 95 years for works for hire)[4]. Even worse the Act was retroactive, which really doesn’t make sense considering nobody needs incentive to create works they’ve already created.  Additionally all works were now copyrighted by default removing nearly all content form the public domain.  To further complicate matters, there is no viable way to enter something into the public domain - the best one can do is release something with a permissive license.  Today we’re left with thousands of orphan works (content where the copyright holder is unknown) that cannot be copied or saved and nearly one hundred years of culture that is off limits to the public under felony penalties.  Corporate interests in the entertainment industry, like Disney, have continued to successfully push for longer copyright protection and now with SOPA and PIPA are after even more power in order to enforce the negative laws they helped create.

Digital goods are non-rival, meaning that since they can be copied by anyone exactly and nearly for free they have no scarcity.  This is a problem for the old system.  Monetizing the distribution of digital goods requires draconian measures to prevent what the technology is naturally good at.  The distribution channels of the web and the ability to share digital goods freely needs to be viewed as an advantage, trying to legislate a market’s existence (as we’re seeing attempted now) will be a constant struggle and an inevitable disaster, either for the entertainment industry - or worse, the public. To use a metaphor the entertainment industry is fond of, there does in fact exist a distinction between stealing a car and file sharing - to pretend this doesn’t exist is deliberate misdirection.

How to solve this problem?

SOPA and PIPA are symptoms of an underlying problem with modern copyright.  I have three suggestions that if I had the power to implement I think would improve the current system.

  1. Copyright lasts 14 years and can be renewed once for an additional 14 years.
  2. Copyright registration is required, works are in the public domain by default.
  3. Non-commercial, Non-profit file sharing is legal.

The first point is simply a reversion back to what copyright was intended to be, an incentive for people to create.  The 28 years is a large amount of time for someone to have a guaranteed monopoly for commercial copyright to their work.

The second is also a reversion back to having the majority of works be public domain.  This simplifies a lot of of modern digital services.  Terms of service no longer need to address the ability to have rights to copy every email, wall post, or doodle you create.  The public also benefits from a wide range of content that was intended for public domain, but simply never permissively licensed.  Permissive licenses themselves no longer need to exist.

The third point is the most controversial, but also I think the most important for the modern age.  Restricting the copying and sharing of digital goods is difficult and cannot be done without excessively harsh rules and monitoring of communications (currently copyright infringement is already a felony charge).  Two things are important to keep in mind here, first is that most creative sources already have multiple areas of revenue.  Movies have theater showings and musicians have concerts and merchandise.  These alternate revenue sources can find ways to benefit from the non-commercial, non-profit sharing (notably publicity).  Second, there still is something that can compete with free: easy.  Subscription based services that give a lot of content and convenience to the user would likely still be successful.

There is a lot of waste in our current system and some business models that rely on it would not work with this change, but the old distribution channels seem to want to create legislation to necessitate their existence rather than adapt - to the detriment of all of us.

[1] http://en.wikipedia.org/wiki/Copyright_Clause

[2] http://www.bitlaw.com/copyright/scope.html

[3] http://en.wikipedia.org/wiki/Copyright_Act_of_1790

[4] http://en.wikipedia.org/wiki/Copyright_Act_of_1976

  • 4 months ago
  • Permalink
  • Share
    Tweet

Goals and Choices

For the last three years I’ve been preparing for two usually distinct careers, pursuing a major in Computer Science while taking the list of medical school requirements necessary for admission.  Now I’m finishing up the last class necessary for med school applications, studying for the MCAT and working on building/launching a website in Rails before college ends.

Why the unusual combination?  I always think to keep open as many opportunities as possible - do more work now to have more choices later.  Unfortunately the time when a choice must be made eventually comes and actually making that choice surprised me with a level of difficulty I had not anticipated.  Medical school has the lure of a secure job and the satisfaction that my work would have obvious direct benefits to society.  Computer Science has passion on its side and the advancements happening now make it a very exciting time to be involved in the field.  It also occurred to me that the far reaching, world changing advancements being made by some technology companies are changing the world on a scale many would have found incomprehensible only a few decades earlier.

Underlying any large life decision there is a fear that a wrong choice may be made or that an alternative would have lead to a better outcome.  Choices are difficult to make and dwelling for too long on what could go wrong seems like a dangerous way to approach the issue.  I’ve decided that I want work to change the world, push technology forward, solve problems and simultaneously improve people’s lives.  I want to be a part of big societal changes whether that involves cars that drive themselves, online communities, virtual layers for the real world, improving search or some different idea yet to be discovered.  

I’m determined to find a startup or company doing interesting things where I can work hard and help create something incredible.

  • 10 months ago
  • Permalink
  • Share
    Tweet

RPI, RCOS and Open Source Software

One of the best things about RPI’s computer science program is the Rensselaer Center for Open Source Software or RCOS.  The group is led by professor Mukkai S. Krishnamoorthy and creates a completely autonomous environment where students have freedom to create their own open source projects or contribute to projects that already exist.  The main reason I was so excited to go to RPI, it’s a great program to be involved in and its existence is unique even among the very top computer science schools (CMU, MIT, Stanford).  Many successful projects have originated from the group (recently Peter Hajas’ famous mobile notifier iPhone application) and many more are likely to in the future.  

However, because of its completely open and student driven nature it can be difficult for new members joining the group to get started.  Concepts and technologies like source code management (git), web development frameworks and even databases are likely to be foreign to freshman and sophomores interested in joining since they are not seen in typical CS curriculum.  I plan to create a beginners guide for new members that will give an overview of the different services and systems they are likely to encounter in open source development and attempt to make the prep work quick, easy and as systematic as possible so new members have an easier time when they first start learning.

I’m thinking of using the chromium project as the example project to join and contribute to since it’s in C++ (the teaching language of the school), the project has lots of activity, and its coding practices and style are top notch.

  • 11 months ago
  • Permalink
  • Share
    Tweet

Riding on Rails with Emacs

If you’re planning on learning Rails and you’re on OS X I’ve heard great things about Textmate.  For the rest of us out in the linux world, Emacs still makes a great choice with some minor additions.  Emacs 23 has built in ruby support, but files with embedded ruby (.html.erb) won’t show proper syntax highlighting before making some changes.

A quick search will reveal two options for making emacs work nicely with rails, emacs-rails and Rinari.  Since emacs-rails hasn’t been updated in over two years I’ll be going over how to quickly get Rinari up and running.  This assumes you have git installed and working.

$git clone git://github.com/eschulte/rinari.git

$cd rinari

$git submodule init

$git submodule update

Next place rinari into the Emacs lisp directory (/usr/local/share/emacs/site-lisp) which requires super user privileges.

$ sudo mv rinari /usr/local/share/emacs/site-lisp/

Next download the rhtml directory from here and place it in your Emacs lisp directory (/usr/local/share/emacs/site-lisp).  nxhtml and MMM modes are alternatives to rhtml that I could not get to actually work.

$ sudo mv rhtml /usr/local/share/emacs/site-lisp

Add the following code to your .emacs:

;;========= Rinari ============

;; Interactively Do Things (highly recommended, but not strictly required)

(require 'ido)

(ido-mode t)

;; Rinari

(add-to-list 'load-path "/usr/local/share/emacs/site-lisp/rinari")

(require 'rinari)

;; rhtml-mode

(add-to-list 'load-path "/usr/local/share/emacs/site-lisp/rhtml")

(require 'rhtml-mode)

(add-hook 'rhtml-mode-hook

      (lambda () (rinari-launch)))

After this you should have full embedded ruby syntax highlighting as well as many other convenient features Rinari provides to make rails in emacs much more pleasant.  

  • 1 year ago
  • Permalink
  • Share
    Tweet

Watson

Watson is the Jeopardy playing AI developed by IBM that was able to beat the two best human players in the world.  

The final game can be viewed here.

Dr. Chris Welty, who worked on the algorithms team during Watson’s development, was present at RPI during the show and spoke afterward about the details of Watson and the new software engineering paradigm it represents.  Watson’s impressive abilities are a result of a several step process that involves dissecting the question, generating many potential answers from its massive information database and then taking the best of those answers doing a more in depth analysis and assigning confidence values to each one.  

Rather than arguing over specific algorithms that would work best to correctly identify the answer, potential ideas were tested against a large library of thousands of Jeopardy games.  From this information it would be clear if a change improved Watson’s ability to answer questions overall and if the code in question should be included.  The concept of testing the collection of algorithms added to try and improve Watson against the large database of old games as well as the way Watson’s question analysis was broken into several specific parts has future applications in ‘learning based’ testing of AI and other systems.  

The amount of hardware used allowed Watson to answer a question in a matter of seconds while on a single powerful cpu (with a large enough amount of memory) the equivalent computation would take around two hours.

It was interesting to hear about some of the questions asked by reporters because it shows the ignorance of most people regarding the difficulty and type of problem Watson attempts to solve.  The Toronto final Jeopardy answer has been explained elsewhere, but it was essentially because Watson was unable to understand what the ‘it’ in the second part of the question was referring to and Watson doesn’t rely heavily on category titles for information because testing showed that to be less effective.  Given this, even though Watson had very low confidence in its answer (which is showed with several question marks) Toronto had the most evidence correlated with WWII and City.

One reporter said it shouldn’t have answered Toronto because it was a stupid guess.  Demonstrating being forced to guess Welty asked the reporter which programming language was most popular on the web to which the reporter replied, “I have no idea”.  Welty said, “Well you have to guess” and the reporter’s response was “French”.

Another example Welty gave was a question about the first wife of Richard Nixon.  The question was worded in a such a way that it described Nixon and then at the end said, “his wife”.  Watson didn’t pick up on those important last two words and had Richard Nixon as its first choice and Abigail Adams as its second.  A reporter asked why Watson didn’t have Abigail Adams as its first guess because it was a better guess.  Welty said Abigail Adams is not a better guess.  Given Richard Nixon a human could come up with the correct answer relatively easily and the mistake was simple.  Adams (while of the correct type: female) was incorrect in every other way and would be of no use to a human trying to get the correct answer.

Watson’s performance was exciting and his win is a big step forward for AI.  The future applications of Watson’s language interpreting question answer system will be interesting. 

Congratulations to the IBM research team.  It was incredible to watch.

  • 1 year ago
  • Permalink
  • Share
    Tweet

Human Computer Interaction and Abstraction

Last week at RPI I attended a talk by Craig Mundie, the chief research and strategy officer at Microsoft, about the future of human computer interaction.  It mostly focused on how we will manipulate certain computer environments in the near future using what he referred as a ‘natural user interface’ which consists of more intuitive hand motions rather than a keyboard and mouse.  

The Kinect product was demonstrated to show some applications of this technology, but what I found interesting were some of the types of demos that were shown.  In particular there was this one idea where after a television show people would log into a virtual world with three dimensional virtual representations of themselves and wander this world with their friends controlling things with hand motions.  To me this seemed like a highly unlikely future use of this technology.  Why create of virtual world that recreates many of the problems of our real world?  Granted it was just a demo, but it seemed like a strange way to show off an intuitive new interface.

When new technology is being developed people seem to have a hard time predicting likely use cases for it.  It isn’t until later after the ideas have had some time to mature that its applications seem obvious.

Rather than create a new world for people to log into, why not focus on creating an intuitive virtual layer for our real world?  This week I was lucky enough to see a Turing award lecture given by Barbara Liskov at RPI about her work on programming language abstraction and it got me thinking about the connection we have with our mobile devices and the real world.  

As mobile phones become increasingly more powerful and the web becomes more social we become more dependent on always having access to the information network and the way we communicate with this network is a bottleneck.  Imagine being able to look around you and simply see information tagged in the real world that you can manipulate with intuitive hand gestures, the system is powered by your mobile phone and you see the information through some sort of heads up display in a pair of glasses.

Apps can be written for this environment and use of the environment abstracts away the use of a computer in the conventional way.  For a specific example GPS directions could become a line you physically see on the ground or a directional arrow, but it doesn’t have to end there.  All devices could be tagged with apps so when looking at your laptop you see information about it’s battery and model appear to float around it.  People’s clothing and other objects become clickable where you can purchase them online.  Friends profiles can be viewed just by looking at them and expanding the icon above their head.  People you’ve seen before and information about where you’ve met them can be recorded.

I find the idea of merging the real world with the internet in order to improve the lack of ‘features’ in the real world to be a much more interesting problem than creating an unnecessary virtual world.  Seamless integration of the web with the outside world would be extremely powerful, has huge potential, and all of this complexity could be abstracted away with some simple intuitive hand motions which would be the perfect way to interact with it, a natural user interface for the natural world.

  • 1 year ago
  • Permalink
  • Share
    Tweet

Adding comments to tumblr

Disqus makes it extremely easy to add comments to your tumblr blog.  It also allows people without Disqus accounts to comment which makes the service actually useful compared to its competitors.

  • 1 year ago
  • Permalink
  • Share
    Tweet
tangotango emacs color theme
View Separately

tangotango emacs color theme

  • 1 year ago
  • Permalink
  • Share
    Tweet

A really nice emacs color theme

I’ve found a great emacs theme, but it can be a little confusing to get it actually working.  First you’re going to need the color-theme package.

$ sudo pacman -S emacs-color-theme

(Ubuntu Users) sudo apt-get install emacs-goodies-el

That package makes it easy to install some particularly ugly themes that come along with it.  What we’re looking for is the tangotango theme.  Grab the code from here and save it as color-theme-tangotango.el in the /usr/local/share/emacs/site-lisp directory (you’ll need root privilege to do this).  Now you’ll just need to add a few lines to your .emacs file and everything will work nicely.  If you don’t have a .emacs simply create one in your home directory.

$ emacs ~/.emacs

Add the following:

;;====Color Theme====

(require 'color-theme)

(color-theme-initialize)

(require 'color-theme-tangotango)

(color-theme-tangotango)

  • 1 year ago
  • Permalink
  • Share
    Tweet
← Newer • Older →
Page 1 of 2

About

Hi, I'm @zacharyalberico - I graduated from RPI with a degree in computer science and I'm an engineer at Palantir. I like the web, tech, startups and making things.
  • RSS
  • Random
  • Archive
  • Ask me anything
  • Mobile
Powered by Tumblr