<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>carlo angiuli (blog) &#187; Personal</title>
	<atom:link href="http://www.carloangiuli.com/blog/archives/category/personal/feed" rel="self" type="application/rss+xml" />
	<link>http://www.carloangiuli.com/blog</link>
	<description></description>
	<lastBuildDate>Mon, 05 Dec 2011 20:19:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Packages I use, or don&#8217;t</title>
		<link>http://www.carloangiuli.com/blog/archives/671</link>
		<comments>http://www.carloangiuli.com/blog/archives/671#comments</comments>
		<pubDate>Mon, 05 Sep 2011 01:38:06 +0000</pubDate>
		<dc:creator>Carlo</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.carloangiuli.com/blog/?p=671</guid>
		<description><![CDATA[I&#8217;ve been reinstalling Ubuntu (11.04, Natty Narwhal) a lot lately, because my computing environment is in a lot of flux right now. I wiped my desktop computer, have a relatively new laptop, had a laptop at Intel, and now have a desktop at CMU. As a result, my package installation routine is more or less [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been reinstalling Ubuntu (11.04, Natty Narwhal) a lot lately, because my computing environment is in a lot of flux right now. I wiped my desktop computer, have a relatively new laptop, had a laptop at Intel, and now have a desktop at CMU.</p>
<p>As a result, my package installation routine is more or less down to a science right now. Here are the packages I am sure to install&#8211;and sure to uninstall&#8211;right at the start, along with brief commentary.</p>
<h3>apt-get install</h3>
<ul>
<li><tt>zsh</tt> &#8212; my shell of choice.</li>
<li><tt>vim</tt> <tt>exuberant-ctags</tt> &#8212; necessary for editing all manner of text file.</li>
<li><tt>haskell-platform</tt> &#8212; Haskell, with batteries included.</li>
<li><tt>texlive-latex-extra</tt> (and hence, most of the other LaTeX packages) &#8212; I use LaTeX whenever I need to format text.</li>
<li><tt>subversion</tt> <tt>git</tt> &#8212; these come in handy, even if you don&#8217;t use one (or both) of these yourself.</li>
<li><tt>gdebi</tt> <tt>gparted</tt> <tt>rar</tt> <tt>gv</tt> &#8212; I always find myself using these at random times. (The <tt>rar</tt> package also enables RAR support in many other programs.)</li>
<li><tt>compizconfig-settings-manager</tt> &#8212; to tweak the default Ubuntu settings for window animation, etc.</li>
<li><tt>gnome-do</tt> &#8212; like Quicksilver or Spotlight.</li>
<li><tt>nautilus-open-terminal</tt> &#8212; adds &#8220;Open in Terminal&#8221; to your context menu.</li>
<li><tt>vlc</tt> &#8212; plays all media files.</li>
<li><tt>gimp</tt> &#8212; mostly to convert and resize images. (Alternative: <tt>imagemagick</tt>.)</li>
<li><tt>cmus</tt> &#8212; my favorite library-based music player.</li>
<li><tt>exfalso</tt> <tt>eyed3</tt> &#8212; edit mp3 tags, before importing into library. I use <tt>exfalso</tt> for the text fields, and <tt>eyed3</tt> to add album art.</li>
<li><tt>deluge</tt> &#8212; a good BitTorrent client.</li>
<li><tt>virtualbox-ose</tt> &#8212; for virtualization.</li>
<li><tt>libncurses5-dev</tt> &#8212; needed for Petite Chez Scheme, below.</li>
</ul>
<h3>Other things to install</h3>
<ul>
<li>Google Chrome, from official .deb, so it adds the Chrome repository.</li>
<li><a href="http://www.scheme.com/petitechezscheme.html">Petite Chez Scheme</a>, for Scheme.</li>
</ul>
<h3>apt-get remove</h3>
<ul>
<li><tt>unity</tt> <tt>^unity-*</tt> &#8212; I don&#8217;t like the new Unity UI.</li>
<li><tt>shotwell</tt> <tt>tomboy</tt> <tt>ubuntuone-client</tt> &#8212; I don&#8217;t want these programs.</li>
<li><tt>empathy</tt> <tt>empathy-common</tt> &#8212; I prefer Pidgin, if I end up using IM.</li>
<li><tt>gwibber</tt> <tt>gwibber-service-*</tt> &#8212; really?</li>
<li><tt>transmission-common</tt> &#8212; I prefer Deluge.</li>
</ul>
<p>If you want exactly the above, you can just run:</p>
<blockquote><p><tt>sudo apt-get install zsh vim exuberant-ctags haskell-platform texlive-latex-extra subversion git gdebi gparted rar gv compizconfig-settings-manager gnome-do nautilus-open-terminal vlc gimp cmus exfalso eyed3 deluge virtualbox-ose libncurses5-dev</tt></p>
<p><tt>sudo apt-get remove unity ^unity-* shotwell tomboy ubuntuone-client empathy empathy-common gwibber gwibber-service-* transmission-common</tt></p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.carloangiuli.com/blog/archives/671/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Progress report</title>
		<link>http://www.carloangiuli.com/blog/archives/666</link>
		<comments>http://www.carloangiuli.com/blog/archives/666#comments</comments>
		<pubDate>Tue, 28 Jun 2011 05:25:32 +0000</pubDate>
		<dc:creator>Carlo</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Meta]]></category>

		<guid isPermaLink="false">http://www.carloangiuli.com/blog/?p=666</guid>
		<description><![CDATA[Back when I started this website (in 2006!) it was essentially a social outlet with relatively little substance, except for occasional meaningless blatherings about math. Since then, things have changed&#8211;WordPress became a legitimate platform, Facebook took over the world, Twitter took over meaningless blathering&#8211;and my blog, for better or for worse, lay wasting away. Perhaps [...]]]></description>
			<content:encoded><![CDATA[<p>Back when I started this website (in 2006!) it was essentially a social outlet with relatively little substance, except for occasional meaningless blatherings about math. Since then, things have changed&#8211;WordPress became a legitimate platform, Facebook took over the world, Twitter took over meaningless blathering&#8211;and my blog, for better or for worse, lay wasting away.</p>
<p>Perhaps it&#8217;s time for an online reinvention. (I know I say that about my blog every six months, but I mean it this time&#8230;?) My offhand personal comments have indeed migrated to <a title="Facebook" href="https://www.facebook.com/carloangiuli">Facebook</a> and <a title="Twitter" href="http://twitter.com/carloangiuli">Twitter</a>, but I feel that I should accelerate production of <em>public</em>, long-form, intellectual remarks.</p>
<p>As a heads-up, these will largely focus on math and/or <a href="http://en.wikipedia.org/wiki/Programming_language_theory">programming language theory</a>, a field I will be studying for the next <em>n</em> years as I pursue a Ph.D. in Computer Science at Carnegie Mellon University. I have a number of ideas in my idea bag, but I&#8217;ll try to queue some up so that once I start blogging again, I&#8217;ll really <em>blog like I mean it</em>.</p>
<p>In preparation, I have made some behind-the-scenes changes to this blog recently. I went through my entire catalog of posts, most of which were sadly from 2006 and 2007, and reorganized them in an Academic/Personal dichotomy and added relevant tags. I then went ahead and hid all of my pre-2008 posts, because they didn&#8217;t really do much besides dramatically skew my tag cloud. Lastly, I added plugins for <a href="http://wordpress.org/extend/plugins/wp-latex/">LaTeX</a> and syntax highlighting (<a href="http://wordpress.org/extend/plugins/syntaxhighlighter/">SyntaxHighlighter Evolved</a>), and stole Adam Foltzer&#8217;s useful <a title="Scheme brush for SyntaxHighlighter" href="http://blog.acfoltzer.net/2010/08/scheme-brush-for-syntaxhighlighter/">Scheme</a> brush for the latter.</p>
<p>Now all I need is content!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.carloangiuli.com/blog/archives/666/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Amending vim syntax</title>
		<link>http://www.carloangiuli.com/blog/archives/305</link>
		<comments>http://www.carloangiuli.com/blog/archives/305#comments</comments>
		<pubDate>Sat, 29 Jan 2011 06:03:25 +0000</pubDate>
		<dc:creator>Carlo</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Scheme]]></category>
		<category><![CDATA[Vim]]></category>

		<guid isPermaLink="false">http://www.carloangiuli.com/blog/?p=305</guid>
		<description><![CDATA[In Compilers this semester, we&#8217;re making heavy use of a powerful Scheme match macro which includes a ,[Cata -&#62; Id] syntax for inline calls to helper functions. However, the default vim syntax highlighting for Scheme flags -&#62; as a syntax error, because it is an invalid identifier. It also fails to syntax-highlight match itself, and a number [...]]]></description>
			<content:encoded><![CDATA[<p>In Compilers this semester, we&#8217;re making heavy use of a powerful Scheme <code>match</code> macro which includes a <code>,[Cata -&gt; Id]</code> syntax for inline calls to helper functions. However, the default vim syntax highlighting for Scheme flags <code>-&gt;</code> as a syntax error, because it is an invalid identifier. It also fails to syntax-highlight <code>match</code> itself, and a number of other helpful macros that we&#8217;re using, like <code>define-who</code>.</p>
<p>To get around this problem without write access to the actual syntax file itself (located at /usr/share/vim/vim72/syntax/scheme.vim in the burrow) you can simply create an additional syntax file called ~/.vim/after/syntax/scheme.vim. This file will be automatically loaded after the default Scheme syntax, whenever a Schemely buffer is loaded. I put the following lines in my file:</p>
<blockquote><p><code>syn keyword schemeSyntax define-who match -&gt;<br />
syntax region schemeMultilineComment start=/#|/ end=/|#/ contains=schemeMultilineComment</code></p></blockquote>
<p>This also fixes the problem that, in the default Scheme mode, <code>#|</code> and <code>|#</code> are not treated as comment delimiters. Of course, you can add any personal macros to the list of syntax keywords.</p>
<p>One last problem: I&#8217;m using Aaron Hsu&#8217;s <a href="gopher://gopher.sacrideo.us/1chezweb">ChezWEB</a> framework, and he uses .w as the extension for ChezWEB source files, which ought to be highlighted as Scheme source. Add this line to ~/.vimrc to load Scheme syntax whenever a .w buffer is loaded:</p>
<blockquote><p><code>au BufNewFile,BufRead *.w set filetype=scheme</code></p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.carloangiuli.com/blog/archives/305/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>My interests, a retrospective</title>
		<link>http://www.carloangiuli.com/blog/archives/296</link>
		<comments>http://www.carloangiuli.com/blog/archives/296#comments</comments>
		<pubDate>Wed, 19 Jan 2011 21:05:14 +0000</pubDate>
		<dc:creator>Carlo</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://www.carloangiuli.com/blog/?p=296</guid>
		<description><![CDATA[Toward the end of last semester, I was busy sending out transcripts to graduate programs, and noticed some trends in the courses I&#8217;ve taken. Unsurprisingly, they have leaned more and more toward computer science, and away from every other field, including math. Upon further inspection, my transcript actually offers an apt perspective of my interests [...]]]></description>
			<content:encoded><![CDATA[<p>Toward the end of last semester, I was busy sending out transcripts to graduate programs, and noticed some trends in the courses I&#8217;ve taken. Unsurprisingly, they have leaned more and more toward computer science, and away from every other field, including math. Upon further inspection, my transcript actually offers an apt perspective of my interests throughout college.</p>
<p>Here&#8217;s a graph of credit hours per department, per semester. I think it tells a good story. (Click through for a slightly larger version.)</p>
<p><a href="http://www.carloangiuli.com/blog/wp-content/uploads/2011/01/chart.png"><img class="alignnone size-full wp-image-297" title="Credit hours per department, per semester." src="http://www.carloangiuli.com/blog/wp-content/uploads/2011/01/chart.png" alt="" width="680" height="384" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.carloangiuli.com/blog/archives/296/feed</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>cmus and TPE2</title>
		<link>http://www.carloangiuli.com/blog/archives/274</link>
		<comments>http://www.carloangiuli.com/blog/archives/274#comments</comments>
		<pubDate>Sun, 24 Oct 2010 17:16:08 +0000</pubDate>
		<dc:creator>Carlo</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.carloangiuli.com/blog/?p=274</guid>
		<description><![CDATA[In the past few weeks, I&#8217;ve switched audio players from Songbird to cmus, an ncurses-based console player. I know, it sounds ridiculous, but hear me out: cmus has vi-style key bindings: j/k are down/up, :q quits, etc. It opens instantly, is very responsive, and has a small footprint. It also has support for remote commands [...]]]></description>
			<content:encoded><![CDATA[<p>In the past few weeks, I&#8217;ve switched audio players from <a href="http://www.getsongbird.com/">Songbird</a> to <a href="http://cmus.sourceforge.net/">cmus</a>, an <a href="http://en.wikipedia.org/wiki/Ncurses">ncurses</a>-based console player. I know, it sounds ridiculous, but hear me out:</p>
<p><a href="http://www.carloangiuli.com/blog/wp-content/uploads/2010/10/cmus.png"><img class="alignnone size-full wp-image-275" title="cmus" src="http://www.carloangiuli.com/blog/wp-content/uploads/2010/10/cmus.png" alt="cmus music player" width="744" height="463" /></a></p>
<p>cmus has <a href="http://en.wikipedia.org/wiki/Vi">vi</a>-style key bindings: j/k are down/up, :q quits, etc. It opens instantly, is very responsive, and has a small footprint. It also has support for remote commands via cmus-remote, and even has a <a href="http://www.last.fm/">last.fm</a> <a href="http://code.google.com/p/last-cmus/">plugin</a>. If Linux is your primary operating system and you like the terminal, you should give it a try.</p>
<p>It even has a <a href="http://packages.debian.org/stable/sound/cmus">Debian package</a>, but unfortunately, stable is back at version 2.2.0, and the current version (2.3.3) has some significant improvements. I compiled the new version, which links with a lot of codec libraries I had to download (libao2, libflac, libwavpack, libvorbis&#8230;).</p>
<p>But I ran into a weird issue where some albums&#8217; artists were showing up as blank or weird garbage strings instead of the correct names; Songbird didn&#8217;t have this issue. I&#8217;m an obsessive music tagger, so this really upset my sensibilities.</p>
<p>cmus 2.3.3 displays the Album Artist field rather than the Artist, in order to better handle compilations. (This is reasonable, because it sorts by Album second, so it is preferable if each album is only under one artist name.) In the <a href="http://en.wikipedia.org/wiki/ID3">ID3</a> <a href="http://www.id3.org/id3v2.3.0#head-42b02d20fb8bf48e38ec5415e34909945dd849dc">spec</a>, the TPE1 field represents a &#8220;lead artist,&#8221; and is typically interpreted as the Artist field; TPE2 is the &#8220;band/orchestra/accompaniment&#8221; field, but is often interpreted as the Album Artist (most notably, by iTunes).</p>
<p>There is a dearth of good ID3 tag editing software, especially on Linux. I primarily use <a href="http://easytag.sourceforge.net/">EasyTAG</a>, but it doesn&#8217;t support editing TPE2! When a track doesn&#8217;t have a TPE2 field, cmus goes by the TPE1 field, and all is well. However, when a file has weird stuff already in TPE2, I get random garbage in cmus.</p>
<p>I fixed this by using <a href="http://manpages.ubuntu.com/manpages/maverick/man1/mid3v2.1.html">mid3v2</a>, a command-line program that allows editing any ID3v2 frame. I can simply type</p>
<blockquote><p>mid3v2 &#8211;TPE2 &#8220;Transatlantic&#8221; ~/Music/SMTPe/*.mp3</p></blockquote>
<p>and it solves my tagging problem! It took me a while to figure out exactly what was going on, but now everything is going smoothly. I might switch from EasyTAG to <a href="http://code.google.com/p/quodlibet/">Ex Falso</a>, a <a href="http://en.wikipedia.org/wiki/GTK%2B">GTK</a>-based tag editor (based, like mid3v2, on the <a href="http://code.google.com/p/mutagen/">Mutagen</a> library) which looks a lot more featureful.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.carloangiuli.com/blog/archives/274/feed</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>#</title>
		<link>http://www.carloangiuli.com/blog/archives/269</link>
		<comments>http://www.carloangiuli.com/blog/archives/269#comments</comments>
		<pubDate>Wed, 24 Mar 2010 05:12:20 +0000</pubDate>
		<dc:creator>Carlo</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://www.carloangiuli.com/blog/?p=269</guid>
		<description><![CDATA[A while back, on a whim, I asked my tweeps and Facebook friends &#8220;What do you call the # symbol?&#8221; For some reason, everybody is really excited about #, and all in all, I received 7 responses on Twitter and 24 on Facebook. Some of you are indecisive, so of those 32 responses (counting myself), [...]]]></description>
			<content:encoded><![CDATA[<p>A while back, on a whim, I asked my tweeps and Facebook friends <a href="http://twitter.com/carloangiuli/status/8018525086">&#8220;What do you call the # symbol?&#8221;</a> For some reason, everybody is <em>really excited</em> about #, and all in all, I received 7 responses on Twitter and 24 on Facebook. Some of you are indecisive, so of those 32 responses (counting myself), there were 48 total answers.</p>
<p>I only recently got around to counting up the results, and of those 48, I grouped them into six essentially different responses:</p>
<ul>
<li>pound (or pound sign, or &#8220;pound that shit bro&#8221;),</li>
<li>hash (or hatch),</li>
<li>number (or number sign),</li>
<li>sharp,</li>
<li><a href="http://en.wiktionary.org/wiki/octothorpe">octothorpe</a>,</li>
<li>and a few other responses (tic-tac-toe board, and 0&#215;23).</li>
</ul>
<p>Many respondents seemed to have a primary answer, followed by caveats (e.g., &#8220;Pound, except in music, where it&#8217;s a sharp.&#8221;) so I differentiated between the primary and subsequent responses for each person. The following graph shows the results, where dark blue indicates primary responses, and light blue indicates all subsequent responses.</p>
<p><img class="alignnone" title="What do you call #?" src="http://chart.apis.google.com/chart?cht=bvs&amp;chs=500x300&amp;chxt=x,y&amp;chxl=0:|pound|hash|number|sharp|octothorpe|other&amp;chd=t:20,7,3,1,1,2|5,3,2,3,1,0&amp;chds=0,25&amp;chco=024769,95cbe9&amp;chtt=What+do+you+call+%23%3f&amp;chts=000000&amp;chxs=1,000000|0,000000&amp;chbh=a&amp;chxr=1,0,25,5" alt="" width="500" height="300" /></p>
<p>If you want the raw responses for some reason, and you don&#8217;t want to cull it yourself from my Twitter and Facebook, I can send you a spreadsheet. Graph is courtesy of the Google Charts API, which is a pretty sweet way to make easily-modified charts. (Check out the image URL if you&#8217;re curious how it works. I wrote a trivial Perl script to make it easier to incrementally edit the parameters and view the results.)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.carloangiuli.com/blog/archives/269/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>vim protips</title>
		<link>http://www.carloangiuli.com/blog/archives/263</link>
		<comments>http://www.carloangiuli.com/blog/archives/263#comments</comments>
		<pubDate>Fri, 12 Feb 2010 22:21:09 +0000</pubDate>
		<dc:creator>Carlo</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Vim]]></category>

		<guid isPermaLink="false">http://www.carloangiuli.com/blog/?p=263</guid>
		<description><![CDATA[There are two schools of thought when it comes to text editing: vim and emacs. Although the &#8220;official&#8221; text editor of IU&#8217;s Computer Science department is emacs, I am a die-hard vim user. (If you have no idea what I&#8217;m talking about, this post isn&#8217;t for you.) I think emacs has a perfectly fine control [...]]]></description>
			<content:encoded><![CDATA[<p>There are two schools of thought when it comes to text editing: vim and emacs. Although the &#8220;official&#8221; text editor of IU&#8217;s Computer Science department is emacs, I am a die-hard vim user. (If you have no idea what I&#8217;m talking about, this post isn&#8217;t for you.)</p>
<p>I think emacs has a perfectly fine control scheme, and is certainly a very powerful program, but I prefer the simplicity of vim&#8217;s modal input. Many vim users, however, seem unaware of many things that vim can do. (Many emacs users, similarly, seem to think vim isn&#8217;t capable of emacs-like tricks.)</p>
<p>But I am here to dispel these false notions! Here&#8217;s a list of many possibly-lesser-known vim tricks, many of which I use on a daily basis. They aren&#8217;t complicated, so you don&#8217;t need to know much about vim to figure them out. If you have any other tips, leave them in a comment. If you don&#8217;t know how to use vim but want to find out, type &#8220;vimtutor&#8221; at a command line and read the instructions.</p>
<p><strong>Multipliers:</strong> Prefixing any command with a number causes that command to occur that many times. If you want to write the character &#8216;x&#8217; 80 times, just type <strong>80 i x [ESC]</strong> and the character x will be inserted 80 times. This works for all sorts of things.</p>
<p><strong>Actions and motions:</strong> You might be unaware, but actions like delete (<strong>d</strong>), change (<strong>c</strong>), and yank (<strong>y</strong>) take &#8220;motions&#8221; as an argument of sorts. Motions include end of file (<strong>G</strong>), start of line (<strong>^</strong>), end of line (<strong>$</strong>), next word (<strong>w</strong>), and matching brace (<strong>%</strong>). Executing any of these motions as a command causes the cursor to immediately jump to that location. (If the cursor is on a parenthesis, square bracket, or curly brace, <strong>%</strong> jumps you to the matching one, whether before or after.) Their true power comes when you combine them with actions, however: <strong>d%</strong> deletes the matching braces and everything in between; <strong>cG</strong> deletes the rest of the file and places you into insert mode; <strong>yw</strong> will copy the next word. In Scheme, I&#8217;ve found <strong>d%</strong> and <strong>y%</strong> indispensable for moving around S-expressions.</p>
<p><strong>Repeat last command: </strong>The <strong>.</strong> command repeats the last thing you did. If your last action was to delete the current line, <strong>.</strong> will delete the new current line. That&#8217;s all.</p>
<p><strong>Navigating directories/archives: </strong>If you open a directory or archive in vim, it will show a file listing. You can move up and down the list as usual, but if you hit Enter, it will open the file/directory that your cursor is on. If you&#8217;re in an archive, it extracts a copy into a temporary directory.</p>
<p><strong>Make: </strong>The command <strong>:mak</strong> or <strong>:make</strong> runs &#8220;make&#8221; in the current directory, showing you the result. If there are any compile errors, vim will <em>automagically</em> jump your cursor to the first one, even if it&#8217;s in a different file. The command <strong>:cn</strong> gets you to the next error, and <strong>:cN</strong> to the previous. This drastically reduces the time it takes to compile and fix errors, and is definitely the most useful tip here for any C programmers.</p>
<p><strong>TOhtml: </strong>Your files are syntax highlighted when you view them in vim. But what if you want a syntax-highlighted copy of your file to distribute to others? Use the command <strong>:TOhtml</strong>, which opens a new edit buffer with an HTML syntax-highlighted version of your file, ready to save. If you prefer CSS instead of &lt;font&gt; tags, which you should, then first use the command <strong>:let html_use_css=1</strong> or, better yet, put it in your .vimrc file so it&#8217;s always set.</p>
<p><strong>Searching: </strong>To find a string in a file, use <strong>/</strong> followed by that string. For instance, <strong>/char [Enter]</strong> will jump you to the next occurrence of &#8220;char.&#8221; The setting <strong>:set hlsearch </strong>(best placed in your .vimrc) causes vim to highlight every matching search occurrence in the file. Simply typing <strong>/</strong> [Enter] will get you to the next one. <strong>:noh</strong> turns off the highlighting.</p>
<p><strong>Indentation:</strong> If you want to indent with spaces instead of tabs, <strong>set expandtab</strong> in your .vimrc. Either way, set both <strong>shiftwidth</strong> and <strong>tabstop</strong> to the desired size of your tabs. To reindent the current line, use the command <strong>==</strong>. A single <strong>=</strong> is an action, so <strong>=G</strong> will reindent every line from the current one to the end of the file. <strong>gg=G</strong> will therefore reindent your entire file. (<strong>gg</strong> moves to the beginning of the file.)</p>
<p><strong>Splitting:</strong> You can edit multiple files side-by-side in a single instance of vim. Type in <strong>:sp</strong> for a horizontal split, or <strong>:vs</strong> for a vertical split, followed by the filename you want to open. You can further split either of these new windows. <strong>ctrl-W</strong> followed by an arrow key (or <strong>h</strong>, <strong>j</strong>, <strong>k</strong>, <strong>l</strong>) moves your cursor between files. Commands like <strong>:e</strong>, <strong>:w</strong>, and <strong>:q</strong> only affect the active split. (For instance, to close one file and continue editing the others, type in <strong>:q</strong> while that window is active.</p>
<p>This is just a small subset of vim&#8217;s features. I try to learn something new every week. By slowly adding more features to your repertoire, you&#8217;ll get increasingly efficient with your editing, without any additional thinking. And after all, that&#8217;s the goal with any text editor.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.carloangiuli.com/blog/archives/263/feed</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>UPS tracking oddity</title>
		<link>http://www.carloangiuli.com/blog/archives/256</link>
		<comments>http://www.carloangiuli.com/blog/archives/256#comments</comments>
		<pubDate>Mon, 31 Aug 2009 18:10:57 +0000</pubDate>
		<dc:creator>Carlo</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Internet]]></category>

		<guid isPermaLink="false">http://www.carloangiuli.com/blog/?p=256</guid>
		<description><![CDATA[This has been happening to me a lot lately with UPS. It gives some sort of insight into how their tracking system works, and it&#8217;s odd enough I thought some of you might appreciate it. I&#8217;ll get a tracking number from, say, Amazon, before the package information is entered into their system. Fair enough. Other [...]]]></description>
			<content:encoded><![CDATA[<p>This has been happening to me a lot lately with UPS. It gives some sort of insight into how their tracking system works, and it&#8217;s odd enough I thought some of you might appreciate it.</p>
<p>I&#8217;ll get a tracking number from, say, Amazon, before the package information is entered into their system. Fair enough. Other services (USPS, and I think FedEx as well) will return a page stating that the tracking number has been issued but they don&#8217;t have the package yet. But this is what I get from UPS (with the tracking number blacked out):</p>
<div id="attachment_257" class="wp-caption alignnone" style="width: 660px"><img class="size-full wp-image-257" title="UPS tracking" src="http://www.carloangiuli.com/blog/wp-content/uploads/2009/08/upstracking.png" alt="UPS tracking screenshot" width="650" height="387" /><p class="wp-caption-text">UPS tracking screenshot</p></div>
<p>The shipping date reflects my package&#8217;s shipping date, but the status, delivery date, signature, location, destination, service, and weight all correspond to a package which (presumably) previously used this same tracking number? (To wit, the delivery date is over a year before the shipping date.) Clicking on some links on that page gets me further tracking information about that previous package.</p>
<p>It seems as though they don&#8217;t actually delete tracking data&#8211;they merely overwrite it with new data as it comes in. They currently have only the shipping date of my package, so that&#8217;s the only part of that page which has been updated with my data. (Once they receive the package, all the remaining data is updated to reflect my package.)</p>
<p>This doesn&#8217;t seem like the right thing to do&#8211;they should clear out all the previous data once the tracking number is reissued. It doesn&#8217;t really matter, but I do get some information about some arbitrary package from about a year ago, and it could be potentially confusing. More importantly, it&#8217;s just kind of weird, and it&#8217;s happened to me several times recently.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.carloangiuli.com/blog/archives/256/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My computerweb</title>
		<link>http://www.carloangiuli.com/blog/archives/245</link>
		<comments>http://www.carloangiuli.com/blog/archives/245#comments</comments>
		<pubDate>Sat, 15 Aug 2009 19:12:34 +0000</pubDate>
		<dc:creator>Carlo</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://www.carloangiuli.com/blog/?p=245</guid>
		<description><![CDATA[I&#8217;m starting to lose track of what devices I have and what they&#8217;re named, so for myself and anyone who&#8217;s interested: yggdrasil: old headless Compaq box procured from Jonah; main entry point in LAN (port 22 forwarded here) midgard: my primary computer; micro-ATX desktop I built in March ratatoskr: Windows 7 VM on midgard; needed [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m starting to lose track of what devices I have and what they&#8217;re named, so for myself and anyone who&#8217;s interested:</p>
<ul>
<li><a href="http://en.wikipedia.org/wiki/Yggdrasil">yggdrasil</a>: old headless Compaq box procured from Jonah; main entry point in LAN (port 22 forwarded here)</li>
<li><a href="http://en.wikipedia.org/wiki/Midgard">midgard</a>: my primary computer; micro-ATX desktop I built in March</li>
<li><a href="http://en.wikipedia.org/wiki/Ratatoskr">ratatoskr</a>: Windows 7 VM on midgard; needed a separate name for networking (samba, mostly?) purposes</li>
<li><a href="http://en.wikipedia.org/wiki/N%C3%AD%C3%B0h%C3%B6ggr">nidhoggr</a>: my Dell Latitude D620 laptop; recently rehabilitated since I&#8217;m carrying it around campus next year</li>
<li><a href="http://en.wikipedia.org/wiki/Huginn_and_Muninn">huginn</a>: cell phone&#8217;s Bluetooth device name</li>
<li><a href="http://en.wikipedia.org/wiki/Huginn_and_Muninn">muninn</a>: iPod touch (8 GB, 1st gen) for music and internet in my pocket</li>
</ul>
<p>I think that&#8217;s about it. All computers are running Ubuntu; midgard and nidhoggr have Vista and XP installs, respectively, in case I need Windows for something.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.carloangiuli.com/blog/archives/245/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Earbud review</title>
		<link>http://www.carloangiuli.com/blog/archives/240</link>
		<comments>http://www.carloangiuli.com/blog/archives/240#comments</comments>
		<pubDate>Wed, 10 Jun 2009 16:30:55 +0000</pubDate>
		<dc:creator>Carlo</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Review]]></category>

		<guid isPermaLink="false">http://www.carloangiuli.com/blog/?p=240</guid>
		<description><![CDATA[So I bought some Skullcandy Titan earbuds a little while ago, on sale for $20. (They normally go for $40.) I&#8217;m very satisfied with them, especially because the only earbuds I had were the iPod ones, which are basically terrible. I have a pair of headphones that I&#8217;m pretty satisfied with, but lately they&#8217;ve been [...]]]></description>
			<content:encoded><![CDATA[<p>So I bought some <a href="http://www.skullcandy.com/shop/titan-p-122.html">Skullcandy Titan earbuds</a> a little while ago, on sale for $20. (They normally go for $40.)</p>
<p>I&#8217;m very satisfied with them, especially because the only earbuds I had were the iPod ones, which are basically terrible. I have a pair of headphones that I&#8217;m pretty satisfied with, but lately they&#8217;ve been sitting on my <a href="http://www.kurzweilmusicsystems.com/Product.php?product=52">keyboard</a>, and I&#8217;ve been using the earbuds for my computer and iPod.</p>
<p>(Yesterday I also bought a pair of cheapo speakers at the IU surplus warehouse for $10. They&#8217;re okay; the sound isn&#8217;t very clear, but they&#8217;re not for music anyway.)</p>
<p>Anyway, some people have asked me what I think of the earbuds. Since MS Paint is worth a thousand words, here&#8217;s my review:</p>
<p><img class="alignnone size-full wp-image-241" title="earbuds" src="http://www.carloangiuli.com/blog/wp-content/uploads/2009/06/earbuds.png" alt="earbuds" width="404" height="275" /></p>
<p>They&#8217;re pretty much as good as my headphones, which is an accomplishment for cheap-ish earbuds, which are typically quite lousy. At any rate, I do recommend them, assuming you&#8217;re interested in buying earbuds for less than $100. According to the Internet, Skullcandy&#8217;s cheaper earbuds aren&#8217;t as good as the Titans, but I haven&#8217;t tried any others. In audio equipment, though, more money does translate into better sound (up to a certain point) so I wouldn&#8217;t try skimping.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.carloangiuli.com/blog/archives/240/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

