<?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>tail -f findings.out &#187; Book Review</title>
	<atom:link href="http://dancingpenguinsoflight.com/category/book-review/feed/" rel="self" type="application/rss+xml" />
	<link>http://dancingpenguinsoflight.com</link>
	<description></description>
	<lastBuildDate>Sun, 21 Aug 2011 14:33:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Review of Hacking Vim 7.2</title>
		<link>http://dancingpenguinsoflight.com/2010/06/review-of-hacking-vim-7-2/</link>
		<comments>http://dancingpenguinsoflight.com/2010/06/review-of-hacking-vim-7-2/#comments</comments>
		<pubDate>Sun, 20 Jun 2010 01:24:43 +0000</pubDate>
		<dc:creator>Samuel Huckins</dc:creator>
				<category><![CDATA[Book Review]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://dancingpenguinsoflight.com/?p=1480</guid>
		<description><![CDATA[Hacking Vim 7.2 by Kim Schulz is filled with a variety of useful explanations and helpful tips for Vim users wanting to improve their efficiency and learn more about their editor. While I&#8217;ve enjoyed finding new and better ways to &#8230; <a href="http://dancingpenguinsoflight.com/2010/06/review-of-hacking-vim-7-2/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img style="float: left; margin-right: 10px;" title="vim_logo" src="http://dancingpenguinsoflight.com/wp-content/uploads/2009/07/vim_logo.png" alt="vim_logo" width="125" height="125" /><a title="Hacking Vim on Packt" href="https://www.packtpub.com/hacking-vim-7-2/book" target="_blank"><em>Hacking Vim 7.2</em></a> by Kim Schulz is filled with a variety of useful explanations and helpful tips for <a title="vim homepage" href="http://www.vim.org/" target="_blank">Vim</a> users wanting to improve their efficiency and learn more about their editor. While I&#8217;ve enjoyed finding <a title="DPOL posts on Vim" href="http://dancingpenguinsoflight.com/?s=vim" target="_blank">new and better ways to use Vim</a> for some time, I still learned quite a lot from this book.</p>
<p>If you use Vim only to edit text files when you happen to be  logged  into a CLI: mosey on along, this isn&#8217;t the book for you. If you   currently use Vim regularly and want to improve your knowledge and effectiveness with it: your time reading this book will be well-spent. If you&#8217;ve somehow never heard of   Vim but are enraptured by the idea of a text editor that can be an effective IDE in   addition to allowing you to play Tetris and Rubik&#8217;s Cube: you might like this book too.<br />
<span id="more-1480"></span><br />
At first this book seemed rather short for such a  potentially expansive topic. In the  end I found this to be mostly a virtue  rather than a problem, as the amount  of information presented is, in fact,  voluminous. A more comprehensive  approach likely would have been too  hefty and less  effective. It doesn&#8217;t pretend to be a  manual for Vim. Instead it  illustrates the best approaches for various issues and situations, suggests improvements  on more common operations, and provides lots of  references to external  resources (primarily Vim internal help and vim.org) to  learn more. Examples and illustrations provide insight into some of Vim&#8217;s lesser known abilities, while commonly used ones are explained and presented in new and useful ways. Groups of features resolve into <em>solutions</em>.</p>
<h2>Chapter by Chapter</h2>
<h3><strong>Chapter 1, Getting Started with Vim</strong></h3>
<p>Primarily a history of the Vim editor. Useful to expand the knowledge of Vim fans, but not really pertinent to <em>hacking</em> your beloved editor. Would probably have been better as an appendix or excised entirely.</p>
<h3><strong>Chapter 2</strong>, <strong>Personalizing Vim</strong></h3>
<p>Editing your Vim config, customizing fonts, colors, menu buttons and other UI elements. Lots of great material for tuning the visual appearance. More about vim.org and other resources for colorschemes (such as <a title="Vim colorscheme test site" href="http://vimcolorschemetest.googlecode.com/svn/html/index-c.html" target="_blank">this gem</a>) would have been helpful. The ability to add tooltip balloons was new to me and quite exciting. Schulz provides a number of great examples for their use. The discussion of abbreviations was a bit confusing, especially considering the recommendation of the more intuitive snippets approach in Chapter 4.</p>
<h3><strong>Chapter 3, Better Navigation</strong></h3>
<p>By now you might already be feeling overwhelmed by the number of key commands to remember. I recommend starting a cheat sheet of those you find especially interesting. Speaking of that, perhaps it&#8217;s just my predilections and lack of a perfect memory, but the vast number of code navigation keys was just a bit too much. Sure, &#8220;extra keys pressed equals extra time wasted&#8221;, but what about extra time sorting through key commands in your thoughts? Still, plenty of tips should be mind-blowing if new to you. Jumping to files named in the text of the current file, for example, is really handy. The information about search improvements, both in user files and in the help system, was quite good. I&#8217;ve yet to really use signs or marks, but found their explanation here illuminating.</p>
<h3><strong>Chapter 4, Production (Productivity?) Boosters</strong></h3>
<p>Templates! Templates are awesome, and this was a welcome introduction to a topic <a title="DPOL post on Bash scripting, template" href="http://dancingpenguinsoflight.com/2009/03/vim-for-bash-scripting-a-happier-union/" target="_blank">I&#8217;ve barely scratched</a> in my Vim journey. I&#8217;ve also not used placeholders in templates before, which look to be quite useful. Tag lists and essential plugins for their use are explained, providing an effective presentation of this feature. I was getting a little worried around pg. 86, as the number of Ctrl + x, Ctrl + SOME_KEY commands started to get cumbersome. Then came the explanation of triggering all completion types using a single key, which was quite refreshing. Complete using dictionaries, words in the current document, language files, and more, all using a single key. The SuperCleverTab function will be a very welcome addition to my configuration. Until seeing the example about macros, I never really felt how useful they might be. This definitely convinced me.</p>
<p>But this meaty chapter isn&#8217;t over yet! Sessions felt rather opaque to me before reading this section, and I think they will now definitely serve a role for me. No more ritual of opening the right files, folding them just how I want, etc every morning. Undo branching&#8230; I still find this rather too complicated and marginal of a feature to care about. But the examples were at least explanatory. Folding is a great eye-saver, and the coverage was adequate. I&#8217;m still not really a fan of vimdiff, as there are other diff utilities out there that make the process faster and more intuitive to me. One exception is finding the diff between the current buffer and the saved file, which is very handy and not something available in most editors for sure! I hadn&#8217;t opened remote files in Vim directly before, so the section on this at the end of this chapter was quite useful.</p>
<h3><strong>Chapter 5, Advanced Formatting</strong></h3>
<p>I felt mostly ambivalent about the beginning of this chapter. To me, if you want text aligned a certain way, or want to create proper lists and use other more advanced document formatting features, you should use a word processor. Adding whitespace to my text files for alignment&#8217;s sake doesn&#8217;t strike me as a good idea.</p>
<p>The second part covering formatting pertinent to coding was much more useful. I&#8217;ve used things like autoindent and formatting of pasted code for a while now, and they are quite essential to sanity. Great coverage for those new to these features. Integration of external formatting tools such as Tidy is also described. <strong></strong></p>
<h3><strong>Chapter 6, Basic Vim Scripting</strong></h3>
<p>&#8220;<em>Now</em> we get to it&#8221; was my feeling starting this chapter. There&#8217;s some very helpful stuff in here, but it&#8217;s strangely organized and should have been moved or at least mentioned earlier in the book to provide the most benefit. Some critically handy items: explanation of Vim configuration file directories, how to properly override layers of configuration, Vimball installation, syntax highlighting and colorscheme creation. Then&#8230; comes an introductory language tutorial. Honestly, it&#8217;s pretty dull and mostly elementary. I would have rather this been moved to an appendix mentioned early in the book. It does provide broad coverage of the basics one would need to start writing Vim scripts.</p>
<h3><strong>Chapter 7, Extended Vim Scripting</strong></h3>
<p><strong></strong>Everything you need to know about actually writing Vim scripts: suggested code format, function structure, adding key mappings, detecting OS and Vim version, debugging and distributing scripts, documentation, even integrating programming languages like Python and Ruby! This is certainly a great reference to get started with Vim scripting. Schulz also gives an example script wrapping up a number of these points, providing something like a Vim scripter&#8217;s &#8220;Hello World&#8221;.</p>
<h3><strong>Appendix A, Vim Can Do Everything</strong></h3>
<p>Examples of the many and varied things you can do with Vim, such as Tweet and play Tetris. Provides amusement, but not a lot of value. The section on Vim as an IDE should really have been expanded to an entire chapter or appendix considering the likely audience for this book.</p>
<h3><strong>Appendix B, Vim Configuration Alternatives</strong></h3>
<p>A number of tips on how to keep your Vim configuration organized. Spends time explaining a system of scripts created by Jos van RisWick that allows the user to make changes to their configuration from GUI menus and make them permanent, instead of editing config files. I had never heard of this and found it quite interesting.</p>
<p>The last few pages deal with storing your Vim configuration online. While I whole-heartedly agree with the intent, the particular manifestation presented is rather terrible. Using this setup, the user&#8217;s .vimrc would be downloaded <em>every time</em> Vim is opened. Then it still has to be parsed, which for heavily customized setups can already take a moment. Not the best when you&#8217;re looking for a lean editor. And what about the legion of scripts and other supporting files outside .vimrc? I think not. My approach to the problem is to keep all of my Vim configuration files inside an SCM system, checking it out on each system the first time I want to use Vim.</p>
<h2>Issues</h2>
<ul>
<li><strong>Confused structure</strong>: Chapters 6 and 7 felt rather strangely divided  in  themselves, and I felt most of the content should have been provided   earlier. Having a better knowledge of the syntax and nature of ex   commands/Vim scripting would have made the content throughout the book   more understandable. I felt I was mostly taking the syntax in the code provided for   granted, without feeling comfortable enough about all the components that I could have written something of my own design.</li>
<li><strong>Typos</strong>: The text would have greatly benefited from another round of   copy-editing. Most of the errors weren&#8217;t very distracting. There were, however, a number of typos in the code provided that   were more problematic, especially for a work on an editor that can be   rather picky about commands. For a first edition, these aren&#8217;t overly   numerous.</li>
<li><strong>Lack of color diagrams</strong>: I&#8217;m all for using black and  white images  when they will suffice, but when providing illustrations of  *color*  highlighting files, images without color are downright useless!  I was  rather surprised at this oversight, first appearing in chapter 2,  then  in multiple places in chapter 6. They could have at least linked  to  color images online.</li>
</ul>
<h2>Conclusion</h2>
<p>All in all this was a very useful  treasure trove of tips. Some I&#8217;ve  already added to my repertoire, and  more I&#8217;m trying to understand  better. In fact, I learned so much from it  that I decided I will likely  need to drop most of my current Vim config  and remake it cleanly. I  know I&#8217;m not alone in collecting bits and  pieces of configuration for  this wonderful editor, in a fashion  occasionally reminiscent of a  deranged hermit crab. Now that I have a  more solid understanding I can  rebuild it quickly and effectively.</p>
<p>In summary, I agree with <a title="Brian Carper's Hacking Vim 7.2 review" href="http://briancarper.net/blog/review-hacking-vim-72" target="_blank">Brian Carper</a>:</p>
<blockquote><p>The best you can hope for in a book is a broad outline to point the way  toward features that you didn&#8217;t know much about. Hacking Vim 7.2  achieves this goal.</p></blockquote>
    ]]></content:encoded>
			<wfw:commentRss>http://dancingpenguinsoflight.com/2010/06/review-of-hacking-vim-7-2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Python Programming: An Introduction to Computer Science</title>
		<link>http://dancingpenguinsoflight.com/2009/03/python-programming-an-introduction-to-computer-science/</link>
		<comments>http://dancingpenguinsoflight.com/2009/03/python-programming-an-introduction-to-computer-science/#comments</comments>
		<pubDate>Mon, 02 Mar 2009 02:41:18 +0000</pubDate>
		<dc:creator>Samuel Huckins</dc:creator>
				<category><![CDATA[Book Review]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://dancingpenguinsoflight.com/?p=652</guid>
		<description><![CDATA[Dr. John Zelle&#8216;s book Python Programming: An Introduction to Computer Science is a fun and thoughtful introduction to computer science, using Python as the vehicle of example and experiment. Thus two useful skills are engendered together, without becoming overly mired &#8230; <a href="http://dancingpenguinsoflight.com/2009/03/python-programming-an-introduction-to-computer-science/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a title="John Zelle's site" href="http://mcsp.wartburg.edu/zelle/python/" target="_blank">Dr. John Zelle</a>&#8216;s book <a title="Amazon page for Python Programming" href="http://www.amazon.com/Python-Programming-Introduction-Computer-Science/dp/1887902996/ref=pd_bbs_sr_1/190-9098581-0772043?ie=UTF8&amp;s=books&amp;qid=1235960859&amp;sr=8-1" target="_blank"><em>Python Programming: An Introduction to Computer Science</em></a> is a fun and thoughtful introduction to computer science, using Python as the vehicle of example and experiment. Thus two useful skills are engendered together, without becoming overly mired in the possible complexities of either. It is simply an introduction, and would serve well as part of a series of texts in approaching Python and computer science. Regardless, it is enjoyable and quick to read thus far, leaving what I feel will be a more solid foundation for further study.</p>
<p>As I continue to go through the book, I am completing most of the exercises listed in and at the end of the chapters. As I do, I also add them to one of my svn repositories. You can view and download them <a title="Code Trac for exercises" href="http://github.com/shuckins/sph_code/tree/master/python-programming/learning_python" target="_blank">here</a>. Some are slightly altered from the book&#8217;s intent and form, but are along the same lines. Even if you aren&#8217;t going through the exercises yourself, perhaps you might enjoy calculating the <a title="Script to calculate distance to lightning" href="http://github.com/shuckins/sph_code/blob/master/python-programming/learning_python/distance_to_lightning.py" target="_blank">distance to a lightning strike</a> based on the time it took for the thunder to arrive, or perhaps you&#8217;d like to approximate the value of <a title="Script to approximate pi using Newton's method" href="http://github.com/shuckins/sph_code/blob/master/python-programming/learning_python/approximate_pi.py" target="_blank">pi using Newton&#8217;s method</a>. See if you remember how before checking the scripts though.</p>
    ]]></content:encoded>
			<wfw:commentRss>http://dancingpenguinsoflight.com/2009/03/python-programming-an-introduction-to-computer-science/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

