A theme for my environmnt using the Solarized palette. The following screenshots feature:
Click in the images for full resolution screenshots
I have a global switch for light and dark mode. Its just a simple script that manages a check-file
Mostly everything is avaiable from the following github repositories:
]]>Automatically saves all open file buffers or anything else when gnu Emacs loses focus under x.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
|
Inspired by rcircDbusNotification
]]>The screen shots are of different modes in Emacs 24 and a slightly customized version of Bozhidar Batsov’s solarized-emacs color theme.
]]>Trying out font faces and sizes for a default light theme terminal.
The terminal is rxvt-unicode-256, the color theme is Solarized.
I went for the one to the absolute left, Anonymous Pro 10pt.
Rxvt is configured in the ~/.Xresources
file.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
|
The terminal is launched either with plain urxvt
for the default dark terminal or urxvt -name LURxvt
for the light one.
When writing code it is usually a good thing to use a mono spaced font since the text often benefits from alignment based on character and white space counts. I recently did a short review of a bunch of fonts that seems to be generally liked amongst programmers. Below are some screenshots I made to support the decision making during the final selection.
WARNING: If your browser window is too narrow the following screenshots might be scaled and misrepresenting the fonts.
Update 2012-04-27: I have gone back to Consolas after a feew weeks with Inconsolata I’ve gone back to Consolas.
Consolas is a mighty beautiful font. I still regard it as the most almost perfect awesome programmers font with the exception of not having an open font license.
Consolas was my main programming font from 2007 until very recent.
Inconsolata is quite similar to Consolas which the author also states as an inspirational source. Compared to Consolas it’s wider and has thinner lines.
Inconsolata is my current main programming font. The version I use is from the Google font directory.
Meslo LG is a customized version of Apple’s Menlo font which in turn is a customized Bitstream Vera Sans Mono.
Anonymous pro is another nice font, especially it’s bitmap versions.
Terminus is a monospaced bitmap font and it’s very readable in small sizes. I have used it as my main terminal emulator font for ages. I don’t use it so much for programming because characters like () {} looks a tad too similar for fast reading.
]]>This is an short but detailed description of my current bash prompt. The main focus is to highlight important information and conserve display space by keeping the prompt line as short as possible without sacrificing too much information.
TIME USERALIAS/USERNAME@HOSTALIAS/HOSTNAME CURRENT-DIRECTORY $/#
If more than one terminal is open at one time it can be useful to see when or in which order commands have been executed. The time format is 4 digits (24 hour clock). To conserve space the usual colon infix (:) is omitted.
Either alias to the real user name, otherwise a maximum of 4 characters of the actual user name are displayed.
Either an alias to the real host name, otherwise a maximum of 4 characters of the actual host name are displayed.
The current working directory. The full path is shown until a 25 characters limit has been reached, then only the initial letter of each directory leading up the the last one are displayed.
$
for a normal user or #
for root prompt.
If the previous command exited with an error the normal user prompt is replaced with ¤%&!
and the root prompt with !!! #
.
USER@HOST DIRECTORY SSH-AGENT-INDICATOR(@)SSH-INDICATOR(ssh) $/#
The SSH indicator ssh
is shown after the current working directory when connected though ssh.
If an ssh agent is running the ssh prompt is prefixed with an @
.
As seen in the picture above, the host name alias has a red background. This is because the system is identified as a server.
The git vcs section of the prompt will show you branch name and if there are unstaged or uncommitted changes.
Vcprompt is called if it’s installed to support git/mercurial/subversion, otherwise git’s default prompt functions are used.
To use this prompt, paste the following into ~/.bashrc :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 |
|
This is an short but detailed description of a bash prompt. I’m happy with it and haven’t changed it much for a long time. The main focus is to highlight important information and conserve display space by keeping the prompt line as short as possible without sacrificing too much information.
TIME USER@HOSTNAME CURRENT-DIRECTORY $
If more than one terminal is open at one time it can be useful to see when or in wich order commands have been executed. The time format is 4 digits (24 hour clock). To conserve space the usual colon infix (:) is omitted.
The name of the currently logged in user. A maximum of 3 characters are displayed.
The system hostname. A maximum of 4 characters are displayed.
The current working directory. The full path is shown until a 15 characters limit has been reached, then only the initial letter of each directory leading up the the last one is displayed.
SSH-KEY-INDICATOR TIME USER@HOST SSH-INDICATOR CURRENT-DIRECTORY $
The SSH key indicator K
is shown at the leftmost position of the prompt when the SSH key is detected as loaded by an SSH agent. The key to be identified is chosen by setting an environment variable named SSH_KEY_FINGERPRINT
. This can be done just before the prompt code in ~/.bashrc
1 2 3 |
|
As seen in the above picture, different host names are automatically given a color to distinguish systems from each other a little bit more.
The ssh indicator just displays SSH
in a high color contrast towards the middle of the prompt line so that it is clear that you probably are on a remote system. This is a saftey feature.
The git git section of the prompt will show you things like branch name, if there are unstaged or uncommitted changes, if there are mergeable changes fetched or if all commits are pushed.
These features are straight from git’s bash integration which probably are located in /etc/bash_completion.d/git
To use this prompt, paste the following into ~/.bashrc or source it from a script:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 |
|
The current state of the manual will always be reachable here along with the org mode source.
Here’s an inlined version:
]]>A OPML file for feed readers is here
I might not always agree on everything here, particulary in the code style section but everything is well worth a read.
Every Serious attempt I’ve made at liking JavaScript has almost always been put to an end by it’s messy syntax. About A Year ago, after yet again getting involved in a project where JavaScript was needed I thought to myself why anyone hadn’t invented a sane cleaner JavaScript syntax precompiler, there turned out to be a couple of them that looked good promising.
I Have in recent years professionally mostly been working with Java for any larger projects since I am quite comfortable with how that platform works on a lot of levels. On top of that I have also been trying out smaller projects using stuff like python (django, fabric and writing utilities), haskell (xmonad), groovy (gradle) and ruby (rails, jekyll).
Having some experience in that mix of languages plus some analysis in mind I very quickly settled on CoffeeScript.
There exists many editors and IDEs with carefully designed language support that somewhat helps the situation. For every fancy editor feature you use the editor itself moves closer to becoming a kind of keyboard shortcut oriented DSL or code generation tool that many times just makes up for some inefficient language syntactic expressions. My history with code generation tools is mixed, I’ve worked with really good ones while others have been painful to use. From my experience, a DSL/cross compiler usually needs to either provide an significant productivity gain and/or match the target platform(s) in an intuitive way.
CoffeeScript maps very close structurally to JavaScript and adds only some small things on top of it. This makes it easy to do things like debug generated java script code in the browser while effortlessly mapping the generated code to the CoffeeScript source files manually in my head (it’s a quick learning curve). By being light on extra language features CoffeeScript also avoids adding any default run time libraries or other dependencies to projects using it, it’s just JavaScript. It took between one and three weeks before me and my programmer project mate at work were almost fluent in writing CoffeeScript and had no problems intuitively debugging the generated JavaScript code.
A very simple comparison of a trivial function.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
1 2 3 4 5 6 7 8 9 |
|
Check out coffeescript.org where you can try CoffeeScript out in your browser.
UPDATE: I recently found a panel interview article, Should you learn CoffeeScript?. The author of CoffeeScript and others have their say. It might help you decide if CoffeeScript is something for you.
]]>I have been hosting an collaborative document editing service using etherpad on mango.medeltiden.org since a couple of weeks after it was open sourced by google. I checked out the google code mercurial repository, made some minor fixes to make it work in my environment and since then it has been running 24/7 without any major problems.
Yesterday I decided to upgrade and install the new Debian packaged etherpad that has been on my to do list since forever.
After looking briefly at the Debian package available at etherpad.org I concluded that I needed to make some minor modifications to make the upgrade.
Thats it, easy and smooth.
I can still get silly amazed how streamlined git and github can be. I never got this feeling with subversion while working with it daily for almost 8 years. Git never gets in the way and there is a trick for almost anything if you need it.
While Darcs and Mercurial also has their strengths Git feels like something that might be the revision control system v0.9 for me.
While etherpad is a great tool and very stable it is a bit resource hungry, contains a bit too much of framework code which is largely unmaintained. I am looking forward to testing out and possibly contributing to projects like etherpad lite or something similar. Of course data migration also needs to be supported for the sake of DATALOVE and the power of kopimi. Also remember to hate the police.
]]>Install using the Eclipse Marketplace
]]>Ack is specifically targeted for searching source code. It’s generally more convenient to use than grep since it has an built in list of source code file types it knows and nice default highlitning.
$ ack-grep glMatrix
The Ubuntu/Debian apt package name is ack-grep , install by typing
sudo apt-get intall ack-grep
For other operating systems and ways of installing, see the ack homepage.
]]>