iPhone Connecting to Internet Using Windows PC’s Network through USB Cable

Note that this was only tested on certain combinations like this (Windows 7 with iOS 8), this (Windows 7 with iOS 7), this and this (Windows 7 with iOS 9.3.2 (iphone 6s)). Windows 7 seems a possible Windows OS that can work. Recently, I tested it on Windows 8 and iOS 9. Unfortunately, it did not work. It seems iOS or Windows has changed its way configuring the network. » Read more

Turning GNOME terminal to a Pop-up Terminal

A pop-up terminal is great and handy on Linux and similar OS. On KDE, Yakuake is great. On Gnome or GTK, I ever tried Guake. It is quite good. However, it has not been as mature, stable and figure-rich as gnome-terminal. One day, I got this idea: why not using a script/program to manage the gnome-terminal and take action upon hotkey hits? » Read more

Making Chrome Accept Self-Signed Certificates on Linux

If your website uses a self-signed certificates, Chrome will show a warning every time and you need clicks to continue. In this post, I will introduce how to make Chrome accept self-signed certificates for sites on Linux. This post is made short on purpose and you need to search the Web and learn if you want to understand the stuff. self-signed-cert-chrome.png You will need libnss3-tools package on Debian/Ubuntu/Linux Mint or nss-tools on CentOS/Fedora/RHEL. » Read more

MPlayer over SSH to Play Movie from Remote Host

MPlayer is a great movie player. SSH is a great tool to connect and transfer data over the network securely. Combining these 2 great tools together will be greater. You may already has a small server storing some movies or videos or music and playing them on your laptop will be convenient. In this post, we will introduce three methods to play movie using MPlayer over SSH. » Read more

Keyboard Key Mapping for Emacs: Evil Mode and Rearranging Alt, Ctrl and Win Keys

Ctrl keys are important and possibly most frequently used in Emacs. However, it is painful on today’s common PC keyboards since Ctrl keys are usually in the corner of the keyboard main area. Why the key mappings in Emacs are designed like this? After it was designed, Emacs was commonly on the Lisp Machine keyboards with Ctrl keys closer to the space bar as show below (src. » Read more

How to Make Thunderbird Not Wrap Long Lines Automatically

Thunderbird automatically wraps lines by 72 characters by default. But wrapping in 72 characters may not look well on all clients. Some may want Thunderbird not to wrap lines and leave the receiver’s email client to choose the length to wrap lines. This post introduces how to make thunderbird not wrap lines automatically. First, open the “config editor”: go to “Edit” -“Preferences”, in the dialog select the “Advanced” panel, select the “General” tab, and then click the “Config Editor…” button. » Read more

Git through SSH Tunnel as Proxy

git is a great tool and it is common to have a git server over SSH possibly managed by gitolite. However, there are situations that we can not directly connect to the git server but be able to SSH to another node that can connect to the git server. The git server may allow only internal connections because of security. With the node that we can SSH to, we can still use the git server “directly” by setting up a SSH tunnel as a proxy for the git connection. » Read more

Improving ssh/scp Performance by Choosing Suitable Ciphers

Update on Oct. 9, 2014: You should be aware of the possible security problems of blowfish and it is suggested not to be used. Instead, you may consider ChaCha20 as suggested by Tony Arcieri. To use this with OpenSSH, you need to specify the Ciphers in your *.ssh/config* files as chacha20-poly1305@openssh.com possibly with another default one since only newer vesion of OpenSSH supports it. » Read more

How to Set Up A Gitolite Git Server – A Ten-Minute Tutorial

I ever introduced seting up git server using SSH or gitosis. However, gitolite is the way to go for managing git servers if you want an lightweight authentication layer. gitolite provides many very usefull features which can control each user’s right on each branch. I set up one gitolite git server and am very happy with it. In this post, let’s look at how to set up one gitolite git server. » Read more

Connecting to Remote Servers by VNC on Windows

Software you will need 1, Putty 2, Real VNC viewer 3, twm (lightweight desktop). On fedora (centos, redhat): sudo yum install twm (on other distros, you may need other commands, or download source code and install it). Specific steps ∞ 1, Enter your Host name and port in putty. 1_9.jpg 2, Set port forwarding in putty Tunnels. 1_7.jpg 3, Start vncserver in the server side. » Read more

Auto Indenting for OCaml Code in Vim with ocp-indent

The built-in indenting in Vim for OCaml seems not very good. How to set up auto indenting for OCaml code in Vim? ocp-indent works very well for me. This posts introduces how to configure Vim to use ocp-indent to automatically indent/format OCaml code. First, install ocp-indent after installing opam: $ opam install ocp-indent Second, configure vim by adding these lines to your ~/.vimrc: au BufEnter *.ml setf ocaml au BufEnter *.mli setf ocaml au FileType ocaml call FT_ocaml() function FT_ocaml() set textwidth=80 set colorcolumn=80 set shiftwidth=2 set tabstop=2 " ocp-indent with ocp-indent-vim let opamshare=system("opam config var share | tr -d '\n'") execute "autocmd FileType ocaml source".opamshare."/vim/syntax/ocp-indent.vim" filetype indent on filetype plugin indent on endfunction You can use == to format the code selected or the current line now. » Read more

Proxy using SSH Tunnel on Windows

This article is an instruction of how to use Proxy Using SSH Tunnel on a Windows machine. The mechanism is similar as the one in Proxy Using SSH Tunnel with “Proxy listening to localhost port only”. Download PuTTY ∞ PuTTY is the software we use here for port forwarding. Please download it following the links in Open Source and Portable SSH, SCP, SFTP and VNC Clients for Windows to Remote Control Linux. » Read more

How to Configure Outlook-style Email Reply Header in Thunderbird

Thunderbird’s email reply header is short and not like the ones in Outlook and other email lients. Thunderbird provides several integrated reply headers. However, the Outlook-style reply header with sender, receiver, date, and other information are clear and useful (e.g. my boss cc’ed an email to me to let me handle a request and I can simply find out the requester’s email from the email’s reply header) and asked for under some situations (e.g. » Read more

Windows 7 MAK Activation

The Windows 7 Multiple Activation Key (MAK) can be used to activate Windows 7 Enterprise installed with the Windows 7 Volume Licence DVD provided by Microsoft to enterprise/university customers. How to activating Windows 7 with MAK: 1. Make sure your system is connecting to the Internet. During Windows 7 activation, Windows will connect to Microsoft.com for validation. 2. Click on Start-Control Panel-System and Security. » Read more

How to Print Notes on a PDF File with Acrobat, Adobe Reader and Foxit Reader

Print PDF with notes is not that straightforward, especially when you want specific styles of the printed notes/comments. In this post, we introduce how to print notes on a PDF file with Acrobat, Adobe Reader and Foxit Reader. Acrobat ∞ The detailed method is posted on Adobe’s blog: Printing Sticky Notes on a PDF. Excerpt of the method: Set a Preference to Print Sticky NotesAcrobat does not normally print sticky notes. » Read more

Latex Cheat Sheet

Latest has many commands and it is not easy to quickly remember them all. Then, a cheat sheet will be very useful. Here is a collection of cheat sheets for Latex that I collected from the Web. Latex cheat sheet ∞ Latex cheat sheet by Winston Chang: Download latex cheat sheet.LaTeX Math Symbols ∞ http://web.ift.uib.no/Teori/KURS/WRK/TeX/symALL.html        Tweet!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?"http":"https";if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document, "script", "twitter-wjs"); » Read more

HP Compaq BIOS Crisis Recovery from a Failed BIOS Flashing Using a USB Flash Disk

I tried to flash my HP Compaq CQ35-240TX’s BIOS to F.15 but unfortunately failed. The computer turned to white screen. When I restarted (powered off then boot again), this is no response any more: the hard disk and caps lock’s LED keep blinding. I thought “Oh my God! I must send it to HP to repair it!”. But after searching on the Internet and find there is a “crisis recovery” mechanism to recovery the BIOS even the CMOS don’t work. » Read more

Thunderbird Tips: Default Descending Email Sort Order and Inline Quote When Reply

Thunderbird is a great email client and what make it special is deeply configurable like Firefox. For me, I like to view email in the descending sort order and inline quote relied email content when replying emails. Let’s look at how to set the default order as descending sort order and quote mode as inline in Thunderbird. We can do this by setting configuration parameters of Thunderbird using its config editor. » Read more

Keep Firefox Open After Closing the Last Tab

Firefox should always be ready there for us, right? Even after we closing the last tab, we would like firefox to be still open. At least I like to treat it in this way. But unfortunately, Firefox will close after we closing the last tab as default in version 3.5. But the good news is that this behaviour is configurable  through Firefox’s configuration editor. » Read more

Thunderbird中使用Google Calendar及它的SMS功能

Google Calendar可以自动发短信提醒,这是一个非常棒的功能.为何不把它集成到Thunderbird中来呢. 首先安装Thunderbird的插件: Lightning 0.9 然后下载: Provider for Google Calendar 0.5.2 provider默认加入的提醒是pop-up.其实要把它改成sms非常简单: 将下载下来的.xpi文件unzip, 它就是一个zip包:) 然后修改其中的calGoogleUtils.js JavaScript文件, 将其中的两个pop-up修改为sms. 然后打包,再到Thunderbird下安装即可. 这样就把Google Calendar和Thunderbird集成到一直来啦.        Tweet!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?"http":"https";if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document, "script", "twitter-wjs"); » Read more