Jérémie Grodziski uses this

Hardware

Good hardware to rely on is a must-have for me, here are my everyday things:

  • A 15" Retina Macbook Pro with all options to the max (Core i7, 1 To Flash Disk and 16 Go of RAM)
  • An iPhone 6, a screen a little bit small but perfect on every other points
  • An iPad Mini, mostly for reading on it
  • A magic mouse
  • My personal "docking station" is composed of: a magic trackpad, a wireless keyboard and a Cinema display (until a 4K monitor appears...)
  • For music listening with an audiophile quality (in a portable way, of course), I own a Shure EarPhones SE535 and a nuforce uDAC-3. At home, I now use a Marantz Consolette and as an audiophile I'm really impressed by the sound quality given its size and price. I just bought a Phonon SMB-02 as a desktop headphone and think it's one of the best quality/price ratio for an audiophile headphone and a very versatile one (very well defined and good timbre in my opinion).
  • I complete my office tools with a Fujitsu Scanner (I've got the previous generation, but the current one seems better), great for automatic scanning and good integration with OS X, and an Epson C2800 laser printer (does the job, but heavy, I wish to switch to a lightweight one)
  • A Synology NAS, the DS 411 Slim.
  • Several USB external Hard Drive: the ones from macway are great, I also sometimes buy naked hard drive.
  • I also rent dedicated servers with online.net, a french hosting company (subsidiary of Free, the innovative french ISP): the Dedibox SC GEN 2 is awesome given the price, I also rent for my professional needs a Classic + GEN2. The hardware quality is top and the network is...fffffaaaassssttttttt!! (really fast...)
  • an Herman Miller Aeron Chair

Yes, this is the perfect costume of an apple fan, but I didn't found that hardware quality and user experience in other products, period!

Mac Software

An operational OS X, Maverick at the time of writing, installation with some base configurations: This is a developer oriented configuration, but even if you're not a tech savvy you can found some stuffs to inspire you from.

Base configuration and software

Misc.

  • HyperDock: for easy window handling and resizing through keyboard shortcuts or mouse, also with preview over the dock (less useful in my opinion)
  • RescueTime: is a SAAS service for tracking how I use my computer and I get a report every week about my productivity with a breakdown by category, use a client software.
  • Keychain: I store all my passwords into keychain
  • iStat Menu: a great monitoring application that sits in the OS X menu bar with plenty of configuration options
  • f.lux: f.lux makes the color of your computer's display adapt to the time of day, warm at night and like sunlight during the day, great for keeping a good sleep.
  • Drive Genius: for repartitioning easily the mac hard-drive with a main partition (system, apps and projects files) and a large storage one (music, movies, etc.)
  • Grand Perspective an incredibly useful small utility that shows the space consumed by all your files with the help of a treemap, mandatory when I got a small SSD on my previous mac (go away for some times now with my huge 1TO flash disk).
  • SelfControl for blocking access to defined websites
  • Cathode: a vintage terminal application that looks real, great for some geeky nostalgia
  • iChm: for reading CHM help file from windows on your mac.
  • SpeedCrunch for a real scientific calculator
  • LittleSnitch: to know what data is going out of my computer and who receive it.
  • 1Password: for easy confidential stuff (password, credit card, etc.) management
  • Kaleidoscope: easy files and folder diffs
  • Dupeguru: a tool to find duplicate files on your computer
  • Artful: sets your desktop wallpaper to a random work of public domain art
  • Monolingual: removes unnecessary language resources from OS X, in order to get back several hundred megabytes of disk space (3GB of unnecessary files removed on my mac!).
  • Flashlight: Flashlight is an open platform for Spotlight, with plugins that extend OS X's built-in search with new features, like ejecting volume, sending email, calling, imessaging, etc. All from spotlight bar.

Internet stuff

  • Google Chrome with the extensions:
    • vimium: for internet browsing driven with keyboard
    • Pocket: page saving for ulterior viewing
  • Jekyll (command line): the static blog generator that generate the website you're browsing right now, installed with Ruby Gem, completed with s3_website for the s3 and cloudfront synchronization.
  • Tunneling: a dedicated server with SSH is a perfect tool for tunneling...: here is a "tunnel on" script to automate the tunneling with (Wifi|Ethernet) connection proxying (mac only)

I do not use Safari that much...

Backup

I set up a hierarchy of 3 services: one for realtime backup (Dropbox), one for carbon copy of my hard drive (carbon copy cloner) and one remote, but cheap, backup for personal photos and videos (arq + Amazon Glacier)

  • Dropbox: all my everyday files are stored in Dropbox, I use it mainly because of Dropbox's spreading with people I interact with. It allows the almost realtime backup of every file I save. They are also some good alternatives for a self-hosted backup solution (aerofs, bittorrent sync, owncloud, etc.) but they lacks the wide spreading of Dropbox.
  • Carbon Copy Cloner: for complete and bootable backup on external hard drive (I try to do one every month). It allows me to be operational on a new mac given only my external USB hard drive.
  • Arq Backup: Dropbox is for my everyday files backup and sharing, Carbon Copy Cloner for bootable whole disk copy and Arq is for medias files (videos, photos) backup on Amazon Glacier (cheap, ~60GB of data costs me 7$/year, and reliable backup).
  • Got-your-back: an inverse backup, that's to say I copy from the cloud to my computer. I regularly copy and encrypt all my emails from Gmail to my computer with GYB, I also scripted the encryption process.
  • There are some outsiders like AeroFS or BitTorrent Sync, but they fit better with small team that commit to a particular tool and lack the large spreading of the Dropbox solution when you want to share something with very diverse people.

Medias

Development stuff

Office Software

Linux Server Software

I often use ubuntu as a server operating system (both on VM and bare metal machine) and I see myself doing the same basic installation and configuration over and over again, so my goal is to document the command invocation and setup a DockerFile to automate this.

Basic security configuration

First, generate an ssh key pair with:

ssh-keygen -t rsa -C "your_email@example.com"
# Creates a new ssh key, using the provided email as a label
# Generating public/private rsa key pair.
# Enter file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]
ssh-add id_rsa

and publish your public key to the user's authorized keys with

cat .ssh/id_rsa.pub | ssh youruser@hostname 'cat >> .ssh/authorized_keys'

modify the ssh configuration in the /etc/ssh/sshd_config file with

# disable root login and password based authentication
PermitRootLogin no
PasswordAuthentication no

restart the service:

sudo service ssh restart

Implement a continuous upgrade of ubuntu by adding the file: /etc/apt/apt.conf.d/10periodic with the following content:

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::AutocleanInterval "7";
APT::Periodic::Unattended-Upgrade "1";

Then a firewal with Uncomplicated Firewall

sudo ufw allow from {your-ip} to any port 22
sudo ufw allow 80
sudo ufw allow 443
sudo ufw allow proto udp to any port 60000:61000
#port 60000 to 61000 is for [mosh](http://mosh.mit.edu/) udp server
sudo ufw enable

Then install fail2ban

sudo apt-get install fail2ban

Sysadmin stuff

zsh

sudo apt-get install zsh

zsh's configuration is the "oh my zsh" one, installed with:

git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
sudo chsh -s /bin/zsh

My zsh jerem's theme is here, a best of breed of different theme, personnaly I just need 4 basic informations in my terminal: which hosts? who am I? Where am I? git status of the directory. To install it: grab the file and copy it in your .oh-my-zsh/themes directory then declare ZSH_THEME="jerem" in your .zshrc file.

A screenshot of the result: jerem.zsh-theme

tmux:

sudo apt-get install tmux

Here is my tmux.conf to copy in ~/.tmux.conf file.

mosh for offline and disconnected network, reduce the sense of latency compared to ssh when you're on a wifi network

sudo add-apt-repository ppa:keithw/mosh
sudo apt-get update
sudo apt-get install mosh

Development

git and vim

sudo apt-get install -y git vim 

emacs

sudo add-apt-repository ppa:cassou/emacs
sudo apt-get update
sudo apt-get install emacs24 emacs24-el emacs24-common-non-dfsg

emacs-live configuration

git clone https://github.com/overtone/emacs-live.git
mv emacs-live .emacs.d

java

sudo apt-get -y install software-properties-common
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get -y install oracle-java7-installer

clojure

mkdir bin; cd bin
wget https://raw.github.com/technomancy/leiningen/stable/bin/lein
chmod u+x lein
./lein

Web Server

sudo apt-get install nginx 

Virtualization with docker

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
sudo sh -c "echo deb http://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list"
sudo apt-get update
sudo apt-get install lxc-docker

Verify that docker works with:

sudo docker run -i -t ubuntu /bin/bash
# download the base 'ubuntu' container
# and run bash inside it while setting up an interactive shell
# type exit to exit