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
- keyboard and mouse configuration for fast typing and moving with the mouse and keyboard (in System Preferences), I also remap caps-lock to control.
- Keyboard shortcut habits: Shortcat for controlling every mac application from the keyboard, also learn the basic of keyboard controls with this post. I use Vimium when I’m with Chrome.
- I often need to zoom on a particular area of the screen, especially when doing a presentation in front of other people, so I enable a shortcut (ctrl + two finger up or down on the trackpad) to do this instantaneously, enable the shortcut in System Preferences -> Accessibility
- SSH: my .ssh/config file, inspired by this article about ssh config file
- Quicklook, a very useful tool, its only drawback is that some files doesn’t render, here is a list of useful QuickLook plugins for developer that brew can install, a more exhaustive list, and also enable text selection in QuickLook and syntax highlighting for source code.
-
keyremap4macbook allows amazing customization of keyboard
- I use the following customization for typing parens, brackets and braces with the shift keys (one stroke means a parens (), respectively left or right according to the key pressed) and command-shift types a bracket [], and alt-shift a brace {}. Here is the private.xml file that hold the customization (for US and french keyboard)
-
iTerm2: the replacement for OS X Terminal App, iTerm2 combined with zsh, tmux and vi/emacs is a killer combination! here are my customizations of each one:
- iTerm 2 customizations:
- Color theme: Solarized Darcula
- Font: Inconsolata, one of the best monospaced font, ideal for programming
- Open an iterm console from here in the finder
-
zsh: configuration with oh-my-zsh package and my jerem.zsh-theme and the following plugins:
bash git osx sublime mvn ssh-agent lein brew dircycle history jump
- tmux: my .tmux.conf, have also a look at the copy-paste integration with Mac OS X and to this very good book about tmux.
- vim with the spf13-vim bundle based on Vundle and vimclojure. See also Practical Vim Book et the awesome Vim Tutorial and Primer.
- emacs: I use Emacs Live package from Sam Aaron, with the customization custom-configuration.el
- iTerm 2 customizations:
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:
- 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
- Audirvana Plus: the best player aimed at audio quality on Mac, combined with a Shure EarPhones SE535 and a nuforce uDAC-3. I encode my CD to FLAC or AIFF using XLD, the best ripper if you aim the best audio quality.
- I subscribed to the Qobuz streaming service and installed their desktop player
- Screenflow: for screen recording and editing and MiroVideoConverter for web publishing (an excellent article that explain web screencast).
- Acorn 4: The image editor for humans
- VLC
- Transmission and rtorrent on my server to get … what ?
Development stuff
- Sublime Text: with Monokai bright color scheme and also with the package control plugin and then with the following packages: marked
- Marked 2: a markdown visualizer
- For the keyboard addicts, CheatSheet is an app that displays all the shortcuts for the current focused application when you holds the ⌘ key.
- Some OS X dashboard widgets: ASCII Table and Regex.
- XCode from the app store: not that I use XCode a lot, but the command line tools that comes with it are needed for brew, also go to “XCode menu”, “Open Developer Tools”, “More Developer Tools”, login to the website and download the “Command line tools”.
- Brew: the awesome package manager for OS X (installer uses ruby, already installed with OS X), most importantly are the formula that I install with brew (brew install FORMULA):
- SQL Developer for Oracle stuff, Sequel Pro for the MySql ones and Navicat for Postgresql for the PostgreSQL ones
- Java, I use the Oracle’s 8 version because the one bundled with OS X is a bit old.
- Jetbrains Intellij IDEA: the best Java IDE
- Yourkit Java Profiler: a great profiler, affordable during their promotion of a personal licence at 99€ instead of 499€
- Webstorm and LiveReload for web client development
- Structure 101 my best weapon to fight the software complexity
- VirtualBox with Vagrant and Docker for easy virtualization. I use that configuration for Linux and developer oriented virtualization and mainly with command line interaction through ssh.
- VMWare Fusion, I use it for its perfect OS X integration and mainly when I need to use the OS (Windows or Linux) with its Desktop GUI
- Clojure Development: emacs of course, but also LightTable, and check my Clojure Starter Guide.
- Paw: a great HTTP/REST API client testing app
- ImageOptim: makes images take up less disk space and load faster, without sacrificing quality. It optimizes compression parameters, removes junk metadata and unnecessary color profiles.
Office Software
- Office 2011
- Omnigrafle (also check Graph Sketcher), I just noticed that Omnigrafle can also read AI (Adobe Illustrator) file and edit them, worth the price!
- Freemind and Freeplane for a more up to date version
- Keynote
- Evernote
- Airmail
- Hipchat for chat software and service, one of the best.
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:
and publish your public key to the user’s authorized keys with
modify the ssh configuration in the /etc/ssh/sshd_config file with
restart the service:
Implement a continuous upgrade of ubuntu by adding the file: /etc/apt/apt.conf.d/10periodic with the following content:
Then a firewal with Uncomplicated Firewall
Then install fail2ban
Sysadmin stuff
zsh’s configuration is the “oh my zsh” one, installed with:
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:
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
Development
emacs-live configuration
java
clojure
Web Server
Virtualization with docker
Verify that docker works with: