Working effectively with iTerm

iTerm2

brew cask install iterm2

Shortcuts

Settings

Reuse previous session’s directory
  • Profiles > Default > General > Working Directory > Reuse previous session’s directory ##### Store command history/directory info
  • General > Save copy/paste and command history
  • Ensure Preferences > Advanced > Restore window contents at startup is set to Yes in iTerm (default to true)
  • Ensure “Close windows when quitting an app” is off in Mac’s System Preferences >General
Change default window size
  • Profiles -> Window -> Set rows to 80, Columns to 300
  • No way to open as maximized by default

Bash Settings

~/.bash_profile
# \w - Full path of the current working directory
export PS1="\w "
~/.inputrc

Bash emacs mode shortcuts

CTRL-A Move cursor to the beginning of the line
CTRL-E Move to the end of the line
CTRL-K Kill forward to the end of a line
CTRL-U Kill the line from the beginning to this point
^abc­^­def Run previous command, replacing abc with def
Option+left(right) Move backward(forward) one word
Make Option+left(right) work
  • Preferences > Profiles > Keys
Keyboard Shortcut: Option+Left Action: Send Escape Sequence Esc+ b
Keyboard Shortcut: Option+Right Action: Send Escape Sequence Esc+ f
Command History - Cmd+Shift+;
Paste History - Cmd+Shift+H
  • Works for multiple-lines command
highlight errors and warnings
  • Preferences > Profiles > Advanced > Triggers > Edit
(?i:.*error.*)                     // Yellow on Black
(?i:.*(warning|warn).*)            // Orange on Black
(?i:.*FATAL.*)                     // White on Red
install shell-integration
  • Install from menu: iTerm2 > Install Shell Integration
  • add command: imgcat
  • to use the feature download and upload with scp, we need install shell integration on each remote host
badge
  • Preferences>Profiles>General>Badge (session.username)@(session.hostname)
imgcat

Toolbet

Track long running command

  • Edit > Marks and Annotations > Alert on next mark

Chrome Tips And Tricks

Shortcuts

Chrome Extensions

Chrome Vimium
  • Shortcuts
  • numbers+command
    • number+x-close multiple tabs
    • number+r-reload multiple tabs
    • number+W-move multiple tabs to new window
    • number+<<(>>) move multiple tabs
    • (number+)f(F)-open multiple links
    • (number+)d(u)- multiple half page(up) down
  • Find Mode (/)
    • Support regex()
    • Find queries are global and persistent
    • Use and to re-use previous queries
  • Visual Mode
    • v or V (line mode)
    • o to swap the anchor and the focus
    • c to enter caret mode from a visual mode
    • vi-like movements: $
Tampermonkey
Chrome Urls
  • chrome://flags/
  • chrome://restart/
Change/Assign extension’s shortcuts
  • chrome://extensions/shortcuts

Settings

Block notification requests
  • go to chrome://settings/content/notifications
  • toggle Ask before sending (recommended) to Blocked
Print
  • Hide headers and footers
Close Download Bar


NET::ERR_CERTIFICATE_TRANSPARENCY_REQUIRED for known safe (intranet) sites
  • edit /Library/Preferences/com.google.chrome.plist

Tips

Drag multiple tabs to new window hold the Command key
Open a Search in New Tab Hold down the Command button and hit return
Cmd+click Open link in new tab
One line browser notepad
  • data:text/html,


DevTools

  • Cmd+P | Open File
  • Cmd+Shift+P | Run Command


Extension Development

Partition code into background scripts and content scripts
  • Content Scripts
    • Run in the context of web pages
    • limited access to Chrome APIs
    • Use Chrome Dev Tools to debug it
  • Background Scripts
    • Full access to Chrome APIs, but no access to web page content
    • Use background.html page in chrome://extensions/ to debug it
  • Message Passing
    • Some functions can be only run in context scripts, some only in background script, use message passing to pass data in different context
    • Disable Blocking of Mixed Content
    • chrome.tabs.sendMessage, chrome.extension.onMessage.addListener
  • chrome.commands|shortcuts
APIs
  • chrome.contextMenus.create
  • window.getSelection()

Productivity Tools for Developers

Chrome Tips && Tricks

iTerm2

HipChat App

Quip

Adobe Reader

GitBook

trello.com

Mac Tips and Tricks

Shortcuts

Change Notification type

  • Preferences > Notifications
  • None: no notification at all
  • Banners: go away automatically
  • Alters: stay until user dismisses it
Option click EVERYTHING
  • in Finder, Option+Click will show menu: “copy items as pathnames”, and “show inspector”

Prevent a Mac from Sleeping

  • pmset noidle

Remove Siri from the Touch Bar

  • Preferences > Keyboard > Customize Control Strip
  • Highlight the Siri button, click, and drag the Siri button upward and out of the Touch Bar

Enable Touch ID

  • Preferences > Touch ID
  • Then we can use touch id instead of manually type password
  • Use Touch ID for sudo
    • vi nano /etc/pam.d/sudo
    • add “auth sufficient pam_tid.so” to the top

Change default application for a file type

  • right-click the file, select Get Info and change the application in Open With section.
  • click Change All… button to apply the changes to all files
  • Shortcut: Command+space
  • Reveal the Location
    • Preview location: with Command key
    • Open the location in Finder: hold the Command key, and press Return

Mail


Messages App to send/receive SMS

iPad

Manually manage music and videos

To manually copy videos from mac to iPad: - Select Summary option from the device’s settings in iTunes, then enable the option

brew

Tools

the-unarchiver
  • brew cask install the-unarchiver
  • open its preferences and select all the file format
grammarly


References

Mac Tips & Tricks - 2016

Security

Certificate

CSR(Certificate Signing Request)

Create a keypair

keytool -genkeypair -keystore keystore.p12 -storetype PKCS12 
-alias ${THE_ALIAS} -keyalg RSA -keysize 2048 
-dname "CN=${THE_CN}" -storepass ${THE_PASSWORD}
 
#### Create a Certificate Signing Request
keytool -certreq -keystore keystore.p12 -storetype PKCS12 
-alias ${THE_ALIAS} -sigalg SHA256withRSA -storepass ${THE_PASSWORD}
 
#### Install the downloaded certificate.chain.pem to the keystore
keytool -import -keystore keystore.p12 -alias ${THE_ALIAS} 
-trustcacerts -file the.chain.pem -storepass ${THE_PASSWORD}
 
##### Extract private key
openssl pkcs12 -nocerts -in keystore.p12 -out the_private.key -nodes
 
##### Convert the pem to PKCS12 Keystore
openssl pkcs12 -export -in the.chain.pem -out keystore.p12 
-inkey the_private.key -name ${THE_ALIAS} -noiter -nomaciter

Concepts

alias
  • unique string to identify the key entry
trustStore vs keyStore
  • Keystore is used by a server to store private keys, and truststore is used by third party client to store public keys provided by server to access.

Labels

Java (161) Lucene-Solr (112) Interview (64) All (58) J2SE (53) Algorithm (45) Soft Skills (39) Eclipse (33) Code Example (31) JavaScript (23) Linux (22) Spring (22) Tools (22) Windows (22) Web Development (20) Nutch2 (18) Bugs (17) Debug (16) Defects (14) Text Mining (14) Troubleshooting (14) J2EE (13) Network (13) Tips (12) PowerShell (11) Chrome (10) Problem Solving (10) Design (9) How to (9) Learning code (9) Performance (9) Security (9) UIMA (9) html (9) Http Client (8) Maven (8) bat (8) blogger (8) Big Data (7) Database (7) Google (7) Guava (7) JSON (7) Shell (7) System Design (7) ANT (6) Coding Skills (6) Lesson Learned (6) Programmer Skills (6) Scala (6) css (6) Algorithm Series (5) Cache (5) Continuous Integration (5) IDE (5) adsense (5) xml (5) AIX (4) Become a Better You (4) Code Quality (4) Concurrency (4) GAE (4) Git (4) Good Programming Practices (4) Jackson (4) Life (4) Memory Usage (4) Miscs (4) OpenNLP (4) Project Managment (4) Review (4) Spark (4) Testing (4) ads (4) regular-expression (4) Android (3) Apache Spark (3) Distributed (3) Dynamic Languages (3) Eclipse RCP (3) English (3) Happy Hacking (3) IBM (3) J2SE Knowledge Series (3) JAX-RS (3) Jetty (3) Mac (3) Python (3) Restful Web Service (3) Script (3) regex (3) seo (3) .Net (2) Android Studio (2) Apache (2) Apache Procrun (2) Architecture (2) Batch (2) Bit Operation (2) Build (2) Building Scalable Web Sites (2) C# (2) C/C++ (2) CSV (2) Career (2) Cassandra (2) Fiddler (2) Google Drive (2) Gson (2) How to Interview (2) Html Parser (2) Http (2) Image Tools (2) JQuery (2) Jersey (2) LDAP (2) Logging (2) Software Issues (2) Storage (2) Text Search (2) xml parser (2) AOP (1) Application Design (1) AspectJ (1) Chrome DevTools (1) Cloud (1) Codility (1) Data Mining (1) Data Structure (1) ExceptionUtils (1) Exif (1) Feature Request (1) FindBugs (1) Firefox (1) Greasemonkey (1) HTML5 (1) Httpd (1) I18N (1) IBM Java Thread Dump Analyzer (1) Invest (1) JDK Source Code (1) JDK8 (1) JMX (1) Lazy Developer (1) Machine Learning (1) Mobile (1) My Plan for 2010 (1) Netbeans (1) Notes (1) Operating System (1) Perl (1) Problems (1) Product Architecture (1) Programming Life (1) Quality (1) Redhat (1) Redis (1) RxJava (1) Solutions logs (1) Team Management (1) Thread Dump Analyzer (1) Visualization (1) boilerpipe (1) htm (1) ongoing (1) procrun (1) rss (1)

Popular Posts