Sublime


Show console ctrl+`

Install package control

Install new packages
Bring up the Command Palette (Command+Shift+p on OS X, Control+Shift+p on Linux/Windows).
Select “Package Control: Install Package” (it'll take a few seconds)

Great Tools for Developers

Common Tools
7zip

Text Editor
Atom
Sublime Text
Notepad++

Terminals (RDP)

XYplorer: File manager and Explorer replacement for Windows
Unlocker

Developer Tools
WinMerge: Differencing and merging tool for Windows
KDiff3
Fiddler4 - Web Debugging proxy

Java 
CFR 
- A decompiler that supports Java 8 language features, including lambda expressions and method references.
JD-GUI
cygwi
jcmd: One JDK Command-Line Tool to Rule Them All
jcmd <pid> Thread.print

jcmd <pid> GC.heap_dump

Creating Tampermonkey User Script in Chrome

Scenario
In some cases, we want to change our frequently-visited website a bit: such as add some shortcut key: click >(right arrow) to go to next page, click <(left arrow) to go previous page in current web site.

We can create chrome extension, but it's overkill in this case. 

Tampermonkey
Chrome partially supports Greasemonkey, but doesn't support @require, @resource, unsafeWindow, GM_registerMenuCommand, GM_setValue, or GM_getValue.

Luckily, Tampermonkey fixes this issue: it is fully compatible to Greasemonkey, including GM_registerMenuCommand, GM_xmlhttpRequest with cross domain support and access to the unsafeWindow object. 

We can install tampermonkey from webstore. Then use its dashboard to create(add) new user scripts locally.

We can create one simple Greasemonkey user script to do it, or install exsiting user scripts from 
https://greasyfork.org/
http://userscripts-mirror.org/
https://openuserjs.org/

Examples
EDX helper
When watch open source courses in EDX, I would like to add the following shortcut keys:
>(right arrow): go to next page, <(left arrow) to go to previous page, t to play/pause the video, m to toggle full screen.
Also I want to auto play the video.
// ==UserScript==
// @name       edx helper
// @namespace  lifelongprogrammer.blogspot.com
// @require     https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js
// @version    1.0
// @description  some keybindings for edx: next, previous, play/pause
// @match      https://courses.edx.org/courses/*
// @copyright  2014+, Jeffery Yuan original author: Andrea Bisognin
// ==/UserScript==

this.$ = this.jQuery = jQuery.noConflict(true);
$(document).ready(function () {
 // auto play
 console.log("edx helper");
 setTimeout(function () {
  console.log("edx helper auto player");
  unsafeWindow.$("section.video-controls a[class='video_control play']").click();
 }, 2000);
 jQuery(document).keydown(function (e) {
  console.log("edx helper; key: " + e.keyCode);
  if (e.keyCode == 39) { //->
   unsafeWindow.$("div.sequence-nav > button.sequence-nav-button.button-next").click();
  }
  if (e.keyCode == 37) { // <-
   unsafeWindow.$("div.sequence-nav > button.sequence-nav-button.button-previous").click();
  }
  if (e.keyCode == 84 || e.keyCode == 116) { //t
   unsafeWindow.$("section.video-controls > div:nth-child(2) > ul > li:nth-child(1) > a").click();
  }
  if (e.keyCode == 67 || e.keyCode == 99) { //c
   unsafeWindow.$("div.lang.menu-container > a").click();
  }
  if (e.keyCode == 77 || e.keyCode == 109) { //m
   unsafeWindow.$("a.add-fullscreen").click();
  }

 });
});


Safaribooksonline Helper
Similarly, when watch videos on Safaribooksonline, I want to add >(right arrow): go to next page, <(left arrow) to go to previous page, f to open in full mode where we can still use left, right arrow keys.
// ==UserScript==
// @name       safaribooksonline helper
// @namespace  lifelongprogrammer.blogspot.com
// @require     https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js
// @version    1.0
// @description  some keybindings for safaribooksonline: next, previous
// @match      http://techbus.safaribooksonline.com/*
// @copyright  2015+, Jeffery Yuan, https://github.com/private-face/jquery.fullscreen
// ==/UserScript==

function d(b){var c,a;if(!this.length)return this;c=this[0];c.ownerDocument?a=c.ownerDocument:(a=c,c=a.documentElement);if(null==b){if(!a.cancelFullScreen&&!a.webkitCancelFullScreen&&!a.mozCancelFullScreen)return null;b=!!a.fullScreen||!!a.webkitIsFullScreen||!!a.mozFullScreen;return!b?b:a.fullScreenElement||a.webkitCurrentFullScreenElement||a.mozFullScreenElement||b}b?(b=c.requestFullScreen||c.webkitRequestFullScreen||c.mozRequestFullScreen)&&b.call(c,Element.ALLOW_KEYBOARD_INPUT):(b=a.cancelFullScreen||
a.webkitCancelFullScreen||a.mozCancelFullScreen)&&b.call(a);return this}jQuery.fn.fullScreen=d;jQuery.fn.toggleFullScreen=function(){return d.call(this,!d.call(this))};var e,f,g;e=document;e.webkitCancelFullScreen?(f="webkitfullscreenchange",g="webkitfullscreenerror"):e.mozCancelFullScreen?(f="mozfullscreenchange",g="mozfullscreenerror"):(f="fullscreenchange",g="fullscreenerror");jQuery(document).bind(f,function(){jQuery(document).trigger(new jQuery.Event("fullscreenchange"))});
jQuery(document).bind(g,function(){jQuery(document).trigger(new jQuery.Event("fullscreenerror"))});
this.$ = this.jQuery = jQuery.noConflict(true);
// https://github.com/private-face/jquery.fullscreen
$(document).ready(function () {
 // auto play
 console.log("safaribooksonline helper");
 jQuery(document).keydown(function (e) {
  console.log("safaribooksonline helper; key: " + e.keyCode);
  if (e.keyCode == 39) { //->
   unsafeWindow.$("#bcv_next").click();
   //$('#nana').fullScreen(true)   
  }
  if (e.keyCode == 37) { // <-
  console.log("i am called 26"); 
   unsafeWindow.$("#bcv_previous").click();
  }
  else if (e.keyCode == 70 || e.keyCode == 102) { //f
   $('div.brightcove_video').fullScreen(true)
  }
 });
});

Resources
Userscripts.org down for good? Here are alternatives

Labels

Java (159) Lucene-Solr (112) Interview (61) All (58) J2SE (53) Algorithm (45) Soft Skills (39) Eclipse (33) Code Example (31) Linux (24) JavaScript (23) Spring (22) Windows (22) Web Development (20) Tools (19) Nutch2 (18) Bugs (17) Debug (16) Defects (14) Text Mining (14) J2EE (13) Network (13) Troubleshooting (13) PowerShell (11) Problem Solving (10) Chrome (9) Design (9) How to (9) Learning code (9) Performance (9) UIMA (9) html (9) Http Client (8) Maven (8) Security (8) bat (8) blogger (8) Big Data (7) Continuous Integration (7) Google (7) Guava (7) JSON (7) Shell (7) ANT (6) Coding Skills (6) Database (6) Lesson Learned (6) Programmer Skills (6) Scala (6) Tips (6) css (6) Algorithm Series (5) Cache (5) Dynamic Languages (5) IDE (5) System Design (5) adsense (5) xml (5) AIX (4) Code Quality (4) GAE (4) Git (4) Good Programming Practices (4) Jackson (4) Memory Usage (4) Miscs (4) OpenNLP (4) Project Managment (4) Spark (4) Testing (4) ads (4) regular-expression (4) Android (3) Apache Spark (3) Become a Better You (3) Concurrency (3) Eclipse RCP (3) English (3) Happy Hacking (3) IBM (3) J2SE Knowledge Series (3) JAX-RS (3) Jetty (3) Life (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) Distributed (2) Fiddler (2) Firefox (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) Python (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) 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) Mac (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) Review (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