Archive for the ‘Uncategorized’ Category

My new Stanford contact information

September 18th, 2013 No comments

Here’s how you can reach me now that I’m at Stanford. My old UW email addresses and web sites won’t stay around forever.

web site:
e-mail: stepp [AT] cs [DOT] stanford [DOT] edu

Categories: Uncategorized Tags:

I’m going to Stanford

June 9th, 2013 3 comments

I have decided to resign from my lecturer position as a lecturer at the University of Washington and take a new position as a lecturer at Stanford University. Spring 2013 will be my last quarter at UW CSE, and I’ll begin as an instructor at Stanford this Fall 2013. I expect to move to California sometime in July.

The primary reason I decided to leave UW is that I’d like to move closer to my family. Both of my brothers and their wives/girlfriends live in the Bay area in California, along with my adorable niece Geneva. Getting to see them a couple of times a year isn’t enough, and I have missed them terribly for these past several years. I’m really excited to be able to watch Geneva grow up, as well as any future children who come along. (And of course, I get lots of free babysitting for my own children some day!) Jobs come and go, but family is forever. Honestly, although Seattle is an amazing place, I have never felt 100% at home here and have frequently longed to move to the Southwest where I could get more sunshine and see my loved ones more often.

There are also reasons to be excited about going to Stanford in particular. They have an amazing group of lecturers and I’m excited at the chance to work with them. It’s located in the heart of Silicon Valley, with great resources and access to all of the top tech companies, startups, VCs, and more. They also have arguably the top CS department in the country (though UW’s is also extremely good). I’m looking forward to being a part of their department.

Though I’m excited about this next step, I am also very sad to go. UW CSE is a wonderful department and has been a delightful place to work. I truly appreciate that Hank Levy, David Notkin, Ed Lazowska, Richard Anderson, and the others in charge gave me a chance and hired me as a lecturer in 2006. The faculty and management have always treated me excellently, giving me freedom to create new courses (like CSE 154, the web dev class), and frequently acknowledging my hard work in multiple ways such as written thanks, awards, raises, promotions, and so on. I had some quibbles about departmental issues over the years (for example, I wish more courses were open for non-CSE-majors to take), but overall the CSE department is amazing and the faculty and staff really care about the students and their success.

Most of all, I am grateful for Stuart Reges and all of the mentorship and help he has given me over the years. He helped me get my teaching career started and has closely advised me throughout the past decade as I have learned this challenging profession. I was blessed to get a chance to help build a strong intro program at UW with Stuart, and also invest back into the department through curriculum committee work and volunteering with student organizations. I’m very proud of the work we’ve done over the past seven years, and I hope I am leaving UW CSE even better than how I found it. I’m confident that the lecturer group will continue to be strong, especially with new additions like Helene Martin and Allison Obourn.

Most of all I am going to miss all of the students I have had the privilege to teach over the years. You all make it a joy to come to “work” every day. The energy and enthusiasm and hard work from all of the students over the years really made me feel that I was making a difference. I particularly will miss all of the amazing TAs I have worked with. UW CSE TAs are second to none, and I had some of my very best TAs in this last year. Without such great TA help, none of the courses I taught would have been nearly as effective or nearly as much fun.

Though I will be in another state, I’m not going away entirely. I’ll be back to Seattle a few times a year to visit, at least, and I’ll be sure to stop by CSE and catch up. And this is 2013, after all, so I plan to continue to collaborate with folks at UW on ideas and tools. I will still be posting frequently online and on Facebook and Twitter, so I hope you’ll keep in touch. Good luck to all of you students who are still going through the CSE program, or any other degree programs at UW; I know your futures will be bright. Keep in touch with me and please feel free to contact me to share with me any great work you do in your courses or in your own projects. And if any of you graduate and get jobs in the Bay area, or a summer internship, make sure to drop me a line.

Best wishes,

Marty Stepp

June 9 2013

Categories: Uncategorized Tags:

Linux server admin stuff

May 7th, 2013 No comments

More and more, I find myself setting up and managing Linux servers. Usually they run Red Hat Enterprise (RHEL) or Fedora, or sometimes Ubuntu. I end up re-Googling all of the same commands and tricks over and over. I’m going to just write down stuff here so that I myself can refer to it as I need it. If it is of help to anybody else, that is a nice side benefit.

Installing new software on the server: As much as possible, use the server’s package manager rather than manually installing .tar.gz files from source yourself, so that versions and upgrades and dependencies are managed for you.

yum install PACKAGENAME    # install new software
yum provides LIBRARYFILENAME  # check what package provides a given missing library

Start/stop/restart services on the server from the terminal:

sudo service NAME start
sudo service NAME stop
sudo service NAME restart

Killing a naughty process and all of its parent/child processes:

ptree PID
kill -9 PID
killall APPNAME

Adding a new user with ‘root’ access:

# example, adding user "zcava"
adduser zcava

# find section full of lines like this, and add one for that user:
zcava   ALL=(ALL)   ALL

Adding and managing groups: One confusing thing is that users have a “primary” or “login” group as opposed to “secondary” or “supplementary” groups. You can Google to understand more about that.

groupadd NAME   # add a group
id -G USERNAME   # check user's primary login group
usermod -a -G GROUP USERNAME   # add a user to a supplementary/secondary group
usermod -g GROUP USERNAME   # set a user's primary (login) group

setting a welcome message to all users on every SSH login:

Edit the text file /etc/motd and include your message.

Setting up environment variables, etc. for all users: Create/edit the file /etc/profile.d/ and put your declarations in there. Good for setting things like JAVA_HOME or other random environment variables needed by a zombie user like tomcat/apache/etc.

Email server: Many servers use ‘sendmail’ as their email sender daemon, but some Fedora/RHEL boxes use ‘postfix’ instead. May need to install/configure it using yum.

Services that run on startup: The ‘chkconfig’ command handles this. Some services only run at certain ‘runlevels’, which I don’t want to go into but you can Google that if you want to know what runlevels are.

chkconfig --list   # see what services run on startup
chkconfig --add SERVICENAME   # turn on a startup service
chkconfig --del SERVICENAME   # turn off a startup service

MySQL, export a database to a .sql file:

mysqldump -u root -p DATABASENAME > FILENAME.sql

MySQL, importing a .sql file in as a new database:

mysql -u root -p < FILENAME.sql

MySQL, figuring out which queries are locked up and killing them: From inside MySQL console, do this:


MySQL, repair a crashed/damaged table: From inside MySQL console, do this:

Categories: Uncategorized Tags: