One of the finest universities north of Prospect in Fort Collins

Jack Applin

PmWiki

See this page as a slide show

My Development Environment

Jack Applin

My hosts

  • CSU computers
  • Home Linux desktop
  • Home Windows desktop
  • CSU Macbook (MacOS, Linux)
  • White netbook for Sociology class
  • Spare green netbook
  • HP laptop
  • Laptop for home entertainment center (Linux, Windows)
  • Wife’s Windows laptop

Any given computer is disposable

One of the best parts of teaching CT320: Wayne Tryzna talked about the practical aspects of sys admin for the CS Department.

He stressed that all computers are disposable. If a computer in CSB 120 breaks, they replace it with a spare. There is no real data on those computers. All the real data lives on a server, which is backed up to high heaven.

I try to use the same philosophy. My real data is in the cloud.

Uniformity—all hosts look the same

As much as is practical, hosts look the same.

I don’t really try to make Windows or my Android phone look like Linux. However, I do try to make my Mac environment as similar to Linux as I can manage.

Directories are cheap–use them

    ~/Documents/
        Aerobics/
        Backup/
        CSU/
            MSTies/
                MST3K-Club.txt
                MSTies-room-application-Fall-2014.pdf 
                MSTies-room-application-Spring-2014.pdf 
            Sociology/
                SOC105/
                SOC253/
                    Gideon’s Trumpet.odt
                    jail tour.txt 
                    syllabus.pdf 
                    Moral Panic/
                        Moral Panics.pdf
                        Writing Assignment 1.pdf 
                        Writing Assignment Rubric.pdf

Sharpen the Axe

  • Take time to improve.
  • If you’re afraid of programming, then practice the phrase “Do you want fries with that?”
  • Learn your !@#$% tools:
    • Vim
    • Bash
    • ssh/scp

Cloud

  • Dropbox
  • Linux Symlinks (relative)
  • Windows: properties of My Documents/My Pictures/My Music
  • Run dropbox syncer from crontab for some systems

Linux Symlinks

    Cloud	    -> Dropbox/Jack
    bin		    -> Cloud/bin
    .bash_logout    -> Cloud/Config/bash_logout
    .bash_profile   -> Cloud/Config/bash_profile
    .bashrc	    -> Cloud/Config/bashrc
    .cshrc	    -> Cloud/Config/cshrc
    .login	    -> Cloud/Config/login
    Documents	    -> Cloud/Documents
    Music	    -> Cloud/Music
    Pictures	    -> Cloud/Pictures
    src		    -> Cloud/src
    .vim	    -> Cloud/Vim
    Podcasts	    -> Music/Podcasts
    .ssh/config	    -> ../Cloud/Config/ssh/config

IDEs

  • They make you weak:

    “I don’t know how to use method blah–Eclipse tells me how to do it! It’s not fair to expect me to know it on the test!”
    We teach programming here, not Eclipse.
  • Who knows any phone numbers any more? Nobody! If you lose your phone, you’re doomed!
  • Sort of do it via Vim

Shell

  • ~/.bashrc
  • ~/bin
    • be bold—throw it away if I don’t use it
    • demo-{script,c99,c++}
    • special characters
    • bash
    • Perl
    • Python
    • C
  • They’re in the cloud.

Vim

  • ~/bin/vim
  • ~/.vim/vimrc
  • ~/.vim/gvimrc
  • They’re in the cloud.

Window manager

  • xfce4-keyboard-shortcuts.xml
  • ~/bin/bye

ssh

~/.ssh/config (in the cloud, of course):

    Host applin Applin csu CSU
        User applin
        HostName Greybull.CS.ColoState.Edu

    Host cs155 CS155 155
        User cs155
        HostName Greybull.CS.ColoState.Edu

It lets me do this as a shell command: ssh csu
or this: scp foo.c CS155:

Browser

  • Chrome bookmarks
  • Chrome search engines

Typical Development Cycle

  • vim
  • Use the [ key, mapped to ~/bin/run %<cr>
  • Use :!backup %