NYT’s Tricky Images

August 4th, 2010

Here’s a cute trick the nyt uses for their slideshows to prevent users from saving images locally (Note: I am not encouraging this). If a user right clicks an image and selects “save as…” the image which gets saved is pixel.gif, which is garbage (example here). By viewing the page source, we can figure out why that happens:

<div class="figure module">
<div class="image">
<div class="centeredElement" style="background-image:
     url('http://graphics8.nytimes.com/images/2010/08/04/
     arts/design/04maker-ss-slide-GSQJ/04maker-ss-slide-
     GSQJ-slide.jpg');width:333px; height:500px;">
<img width="333" height="500" src="<a href=
     "view-source:http://graphics8.nytimes.com/images/
     misc/pixel.gif">http://graphics8.nytimes.com/images/
     misc/pixel.gif</a>" />

The image we want is the background, covered by pixel.gif. Tricky.

Max Sobell Uncategorized

e-puck Robot Lead/Follow

May 11th, 2010

A leader/follower scheme with obstacle avoidance using e-puck educational robots.

YouTube here: Video

Paper here: e-puck Leader/Follower Final Paper

Max Sobell Uncategorized

LSB Encoding/Decoding

May 5th, 2010

Added a new project: Least Significant Bit (LSB) Encoding and Decoding. By changing the least significant bit of each byte in an image (B&W), its possible to encode an invisible string of text into the image. Check out ways to break it in the code :-P

Code and paper under “Projects” section.

Max Sobell Uncategorized

Tanks Game

February 8th, 2010

Finally got around to putting up my assembly language Tanks game. Here’s the Tanks Source and here are some screenshots:




All files here.

Max Sobell assembly language, code, finals

New Sections

January 6th, 2010

I added a “Restaurants” section from my google doc and a “Projects” section — updates there!

Max Sobell Uncategorized

rsync published!

November 30th, 2009

MySQL Project

October 23rd, 2009

I’ve started a MySQL wiki for a chapter of A Practical Guide to Red Hat Linux. I’m learning as I write it up, so feel free to correct or change anything! Here’s the link.

(Update 11/20/09: This page now contains other utilities, too!)

Max Sobell linux, software

Karmic Koala!

October 19th, 2009

Programming Contest

October 19th, 2009

SVN Part 2

October 8th, 2009

Now that we can log in automatically (SVN Part 1), we can do some cool stuff. This summer I managed a SVN server for a company that has multiple programs, each of which had different developers working on them. Each of these programs is stored as a repository in SVN. For example, developer A needs access to repository 1 and 2 and developer B needs access to repository 1 and 3, etc. To make it even trickier, in repository 1, developer A should have access to the entire repository, while developer B should only have access to the directory devB in repository 1. Also, every time a developer makes a change to a file, the change needs to be logged with their username.

This is where the RSA keys come in. Each repository should be owned by a different user. For example, /usr/bin/svnserver/repository1 is owned by user repo1, /usr/bin/svnserver/repository2 by repo2, etc. Put any developer who needs access to [repo]‘s RSA pubkey in the /home/[repo]/.ssh/authorized_keys file, where [repo] is the name of the repository’s owner (repo1, repo2). Configure authorized_keys like:

command="/usr/bin/svnserve -t -r /var/svn/ --tunnel-user=[developer's username]",no-port-forwarding,no-pty,no-agent-forwarding,no-X11-forwarding ssh-rsa [developer's RSA pubkey]== [developer's username]

This enables developers to check out [repository] using: svn+ssh://[repo]@[server]/[repository]. While we are sending the information over SSH, the developer does not have a SSH account and can do nothing but use SVN to check out (svn co) and update (svn ci) repositories owned by a user (repo1, repo2) whose authorized_keys file contains the developer’s pubkey. The last column in the authorized_keys file is the comment line. SVN automatically uses this line as the comment when a developer commits code to the SVN repository.

The last part, giving only partial access to a repository, coming in Part 3.

Max Sobell backup, code, linux, software