Wednesday, March 11, 2015

Graph/Network Visualization Internship @ IBM Watson, Cambridge MA

Update: The intern positions are no longer available.

To apply please email your CV and three references to Cody Dunne cdunne [AT] us.ibm.com.

Job description

IBM Watson (Cambridge, MA) is hiring a summer intern to join the Cognitive Visualization Lab. We are looking for candidates with a research track record in graph drawing or network visualization, preferably with additional experience in JavaScript, WebGL, and human-computer interaction.

Our research group aims to advance the state of the art on visual analytics. We are an interdisciplinary group comprised of computer scientists, data scientists, social network analysts, and designers. We are working on a diverse set of truly fascinating projects, including pure R&D/papers (VIS/InfoVis/VAST, CHI, EuroVis, Graph Drawing), applied mathematics, developing prototypes for the most important industries in the world, and gallery installations. Many internships have resulted in academic publications, patents, and new features in IBM products. One of our main areas of interest is developing new graph/network layout techniques that help users understand and analyze complext datasets.

Our laboratory is located a few minutes from the MIT campus in an inclusive and friendly work environment. Despite being small geographically, Boston has 61 colleges and universities and hosts a vibrant academic atmosphere.

Research Keywords

Graph Drawing, Network Visualization, Information Visualization, Network Analysis, Human-Computer Interaction

Key Responsibilities

  • Design, implement, and evaluate a novel visual analytics prototype following user-centered design principles.
  • Collaborate with domain experts within Watson.
  • Publish and present results to both the academic community and to non-scientists.

Required:

  • M.S. student in Graph Drawing, Information Visualization, Computer science, or a directly related field.
  • Publication history within the academic community related to Graph Drawing/Network Visualization.
  • Research skills including data visualization, processing, modeling, analysis, and user studies/usability testing.
  • Programming and data analysis proficiency, ideally including web-based visualization tools. E.g., JavaScript, D3, jQuery, WebGL, three.JS.
  • Excellent communication skills for conveying technical material to both scientists and non-scientists in both written and oral presentations.
  • Strong desire to work in a team environment.
  • English: Intermediate

Preferred:

  • PhD student
  • English: Fluent

IBM is committed to creating a diverse environment and is proud to be an equal opportunity employer. All qualified applicants will receive consideration for employment without regard to race, color, religion, gender, gender identity or expression, sexual orientation, national origin, genetics, disability, age, or veteran status. IBM is also committed to compliance with all fair employment practices regarding citizenship and immigration status.

Thursday, October 23, 2014

Verizon Wireless injecting tracking UIDH header into HTTP requests

Reading Hacker News today, I found a frightening post on Verizon Wireless injecting tracking UIDs into HTTP requests. The upshot is that Verizon Wireless is sending a unique identifier for you to each and every unencrypted website you visit, which means that advertisers (or worse) can track everywhere you have been. This occurs even if you opt out of all the Verizon tracking, use a privacy mode in your browser, enable Do Not Track, use a different browser, send your own bogus UIDH header, change to a new phone, or use a tethered laptop for browsing. The only known solution is to encrypt all your browsing. You can do this using HTTPS Everywhere, but this only works if the website supports HTTPS. The best solution is to use full encryption using a VPN like Tunnelbear or TOR. More details follow.

First a little bit of background. When your browser accesses a webpage, it uses a protocol called HTTP to talk with the server hosting the webpage. As part of the request, your browser sends some header fields which provide information about what you want to get back. This includes your IP address and some information about your browser which can actually be enough to uniquely identify you. To see some of the information your browser is sending, check out your request headers here or here.

Verizon Wireless is adding its own header, X-UIDH, which includes a unique identifier that it sends to the webpage. You can check whether your phone is getting the header added here or here. Just make sure you turn off wifi before running the test. Verizon has two patents on the subject: Obtaining targeted services using a unique identification header (uidh) and Multi-factor authentication using a unique identification header (uidh). The most illuminating part is Figure 5 from the first patent:

It becomes very clear that all this is intentional, which was confirmed by my call to Verizon. I talked with a representative of Verizon Wireless, and once they understood the situation they offered several (ineffective) solutions. (1) Use HTTPS instead of HTTP. Naturally, this will only work for the small subset of web services that provide HTTPS. (2) Use Do-Not-Track in the browser. However, my testing showed this had no effect. (2) Use a privacy mode. Again, this had no effect. After talking with a supervisor, the representative then told me that this behavior is normal and expected. Moreover, he claimed that the UIDH header and a standard HTTP connection are a sign to the webserver that you are a good internet citizen, and not a hacker trying to do something untoward. This was a blatant misrepresentation of why some websites do not support HTTPS. After further discussion he ended up agreeing with me, but said there was nothing he could do to help.

What can we do? First off, this is already being exploited in the wild so start using a VPN. Next, let's get Verizon Wireless to change this policy. Do your own testing, tell your friends, and post your complaints online! There is already a bunch on UIDH on Twitter.

Monday, April 7, 2014

Visualization Intern & Res. Sci. Positions @ IBM Watson & Research, Cambridge MA

Update: The intern positions are no longer available.

IBM's Watson Group (Cambridge, MA) is looking to hire several summer Research Interns and Research Scientists to join the Cognitive Visualization Lab. We are looking for candidates with a research track record in Information Visualization, preferably with experience in Human-Computer Interaction, decision-making processes, and social sciences.
Our research group aims to advance the state of the art on visual analytics. We are an interdisciplinary group comprised of computer scientists, data scientists, social network analysts, and designers. We are working on a diverse set of truly fascinating projects, including pure Research and Development (R&D)/papers (VIS/InfoVis/VAST, CHI, EuroVis), applied mathematics, developing prototypes for the most important industries in the world, and gallery installations. These positions would be working directly with Cody Dunne and Mauro Martino.
Our laboratory is located a few minutes from the MIT campus in an inclusive and friendly work environment. Despite being small geographically, Boston has 58 colleges and universities and hosts a vibrant academic atmosphere.

Research Keywords

Information Visualization, Data Science, Big Data Analytics, Information Design, Social Computing, Network Analysis, Human-Computer Interaction, Cognitive Science

Key Responsibilities

  • Design, implement, and evaluate a novel visual analytics prototype following user-centered design principles.
  • Investigate creative Human-Computer Interaction systems for deeper levels of expression and engagement.
  • Publish and present results to both the academic community and to non-scientists.

Internship Postings

Research Scientist Postings

Thursday, November 29, 2012

Cygwin package manager and auto updates

I use Cygwin on my Windows machine to get access to all the wonderful Linux tools like grep, wget, etc. One problem with Cygwin is you have to run it's GUI installer again manually each time you want to add tools or update the ones you already have.

apt-cyg provides a command-line package manager that you can use to install tools without using the GUI installer. However, I didn't see a way to update the existing tools. You can write a simple batch script to do the automatic updates for you. You only need the three lines below, assuming you've installed cygwin to C:\cygwin. Then, run the batch file as administrator or create a shortcut to do that for you.

cd C:\cygwin
wget -N http://cygwin.com/setup.exe
setup.exe --no-desktop --no-shortcuts --no-startmenu --quiet-mode

If you want to pretty it up so you can scan the results of the commands easier, just add some echo statements:

@ECHO off
cd C:\cygwin
echo ======================================
echo Downloading latest cygwin installer...
echo ======================================
echo.
wget -N http://cygwin.com/setup.exe
echo.
echo ======================================
echo Updating all cygwin packages...
echo ======================================
echo.
setup.exe --no-desktop --no-shortcuts --no-startmenu --quiet-mode
echo.
echo ======================================
echo Update finished.
echo ======================================
echo.
pause

Thursday, January 12, 2012

Suppressing BibTeX fields for specific biblatex entry types

I use LaTeX for writing academic papers and biblatex for handling the citations and references in them. One problem I ran into is that biblatex prints out the location, address, month, and publisher for a lot of entries, which I prefer not to have in my reference list. Rather than editing the BibTeX .bib file and losing that data forever, you can tell biblatex to ignore or suppress specific pieces of it.

Below is my code. It suppresses location, address, month, etc. for all entries, and suppresses the publisher and editor field unless the entry is a book. You may need to modify this for whatever style you're using.

% Loads biblatex with clickable links from citations and the reference list, 
% with back references if the style supports them.
\usepackage[hyperref,doi,url=false,backref,style=alphabetic,maxbibnames=99]{biblatex}
\bibliography{refs.bib}

\AtEveryBibitem{% Clean up the bibtex rather than editing it
 \clearlist{address}
 \clearfield{date}
 \clearfield{eprint}
 \clearfield{isbn}
 \clearfield{issn}
 \clearlist{location}
 \clearfield{month}
 \clearfield{series}
 
 \ifentrytype{book}{}{% Remove publisher and editor except for books
  \clearlist{publisher}
  \clearname{editor}
 }
}

Edit on 2/9/2012: As @siretart helpfully points out in the comments, biblatex makes distinctions between fields, name lists, and literal lists in the source file. To see whether to use \clearfield, \clearname, or \clearlist check the biblatex manual for the data type. For example, date and series are fields, location is a literal list, and editor is a name list. I've updated the code above to reflect this.

Monday, August 8, 2011

Microsoft Security Essentials Automatic Updates

I love Microsoft Security Essentials, but I'm annoyed by having to do the virus signature updates manually with each Windows Update. This could be because I have Windows Update set to download but let me choose which ones to install. However, you can use the Task Scheduler to automatically run the signature update every day.

AddictiveTips provides instructions, but on my 64-bit Win7 machine the file location was different.

Instead of
C:\Program Files\Microsoft Security Essentials\MpCmdRun.exe SignatureUpdate
I used
"C:\Program Files\Microsoft Security Client\Antimalware\MpCmdRun.exe" SignatureUpdate
So far, so good!

Tuesday, May 31, 2011

Make Firefox 4 to save passwords for ALL websites

Some websites ask web browsers to disable their password auto-complete features. This allows developers to increase the password security for important sites like banking, but can also be used for less important sites.

You can force Firefox to ignore the website settings and save all passwords, but you must then be extra vigilant about which passwords you save. Banking sites and the like will now prompt you to save the password, which you probably shouldn't do for them.

There was an easy fix for Firefox before version 4 (see this post), but there are a few hoops to jump through for the latest version. Firefox 4 packages all the necessary files into omni.jar in the program folder, which is a non-standard archive format that needs to be specially altered. Below are the directions from this comment:

0. Make a backup copy of omni.jar
1. Unzip the omni.jar (using either 7zip, Winrar)
2. Edit accordingly
3. Pack again using ZIP format + SFX option (Self-Extract)
4. Rename back to omni.jar
5. Launch Firefox!