<?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>&#34;Hello World&#34; - The SlickEdit Developer Blog &#187; Code Editors</title>
	<atom:link href="http://blog.slickedit.com/category/code-editors/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.slickedit.com</link>
	<description>&#34;Hello World&#34; - The SlickEdit Developer Blog</description>
	<lastBuildDate>Tue, 08 Jun 2010 18:45:41 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Key Binding, Command, Menu: The Golden Triangle</title>
		<link>http://blog.slickedit.com/2010/05/key-binding-command-menu-the-golden-triangle/</link>
		<comments>http://blog.slickedit.com/2010/05/key-binding-command-menu-the-golden-triangle/#comments</comments>
		<pubDate>Wed, 19 May 2010 19:45:43 +0000</pubDate>
		<dc:creator>Scott Westfall</dc:creator>
				<category><![CDATA[Code Editors]]></category>
		<category><![CDATA[Productivity]]></category>

		<guid isPermaLink="false">http://blog.slickedit.com/?p=529</guid>
		<description><![CDATA[To borrow a phrase from Mr. Jinks[i], “I hate meeses to pieces”. Before you call the SPCA, let me be clear that I’m talking about computer mice and not Mus musculus, the common household mouse. Further, I should narrow my context to that of programming because in many other areas of computing the mouse is [...]]]></description>
			<content:encoded><![CDATA[<p>To borrow a phrase from Mr. Jinks[i], “I hate meeses to pieces”. Before you call the SPCA, let me be clear that I’m talking about computer mice and not <em>Mus musculus</em>, the common household mouse. Further, I should narrow my context to that of programming because in many other areas of computing the mouse is indispensable.</p>
<p>In programming, however, the mouse can be one of the greatest productivity sinkholes. Time is wasted each time you lift your hand from the keyboard to grab the mouse, and more time is wasted when you move your hand back to home row in preparation for more typing.</p>
<p>So what’s the solution? Keep your hands on the keyboard! To do this use the SlickEdit<sup>®</sup> command line and bind commonly used commands to keys.</p>
<p><strong></p>
<p>Launching Operations<br />
</strong>SlickEdit provides three ways to launch operations: key bindings, commands, and menus. OK, there are actually four, if you include icons. Since the focus of this article is how to keep your hands on the keyboard, I was going to skip that one. </p>
<p><strong></p>
<p>Key Bindings<br />
</strong>Key bindings are the fastest way to launch an operation. They can be pressed at any time while editing. A key binding associates a key sequence with a command. A key sequence is a series of key strokes. Anything you do frequently should be bound to an easily remembered key sequence.</p>
<p>For example the key sequence Ctrl+A means hold down the Control key, typically labeled “Ctrl” on most keyboards, and press the A key. The letter A is represented as an uppercase letter, but this does not mean that you are to press the Shift key. If you are supposed to press the Shift key, the sequence will be written as Ctrl+Shift+A.  We use the uppercase A to match the letter on the keyboard.</p>
<p><strong></p>
<p>Commands<br />
</strong>Commands are useful for less frequently used operations or operations that take arguments. They are executed from the SlickEdit command line and are nearly as fast as key bindings. Press the Escape key (in most emulations) to activate the command line, which is displayed at the bottom of the SlickEdit application window.  </p>
<p style="text-align: center">
<p align="center"><a rel="lightbox[pics8]" href="http://blog.slickedit.com/wp-content/uploads/2007/04/image001.jpg" title="image001.jpg"><img width="96" src="http://blog.slickedit.com/wp-content/uploads/2007/04/image001.thumbnail.jpg" alt="image001.jpg" height="73" class="imageframe imgalignleft" /></a> </p>
<p align="center">  <em>Figure 1, SlickEdit with Command Line</em></p>
<p>It offers a full command history and completions for command names and arguments. Use the arrow keys or the mouse to scroll through previous commands. As you type, a list of possible completions is displayed. Use the arrow keys or mouse to select a completion. SlickEdit stores recorded macros as commands. You can also use Slick-C to write new commands. Use the <strong>_command</strong> keyword to identify a macro as a command. Any command can be bound to a key sequence for faster launching. </p>
<p><strong></p>
<p>Menus<br />
</strong>Menus are accessed via the mouse or a keyboard shortcut. Menus are great for infrequently used items that may not be worth a key binding. They are also helpful to learn about new capabilities. But if you use an operation frequently, you will be more productive by binding it to a key sequence or launching it from the command line. Many menus list a keyboard shortcut to launch the operation. This is just the key binding for the associated command. So when you use a keyboard shortcut, you are really just using a key binding. </p>
<p>You can also operate the main menu through hotkeys. Enable the use of hotkeys by selecting <strong>Tools &gt; Options &gt; General</strong>, selecting the General tab, and putting a check in “Alt menu hotkeys”. This will be selected by default in many emulations. Once enabled, pressing the Alt key will display an underscore beneath each menu option, indicating the letter to press to activate that option. This is not as fast as key bindings, but it does keep your hands on the keyboard and is much faster than using the mouse. In some cases the menu hot key sequence is a good mnemonic for the command. For example, Alt+P, E (to bring up <strong><u>P</u>roject &gt; Prop<u>e</u>rties</strong>) may be easier to remember and type than binding project-edit to Ctrl plus some function key. </p>
<p><strong></p>
<p>Icons<br />
</strong>SlickEdit presents icons in a series of toolbars related to different tasks. Toolbars can be customized with an extensive set of additional icons. Icons are useful for die-hard mouse users or for setting up infrequently used operations for which you have a hard time remembering the associated command or key binding. </p>
<p><strong></p>
<p>The Golden Triangle<br />
</strong>The three methods (excluding icons) to launch an operation are related, forming the Golden Triangle of operation launching. If you know how to execute an operation with one of these, you can easily configure SlickEdit to launch the operation using the other two methods. Commands form the base for the other two…which is why it is shown as the apex of the triangle (Damn it, Jim, I’m an engineer, not an artist!). Maybe I should have used a Golden U or something. <br />
 </p>
<p style="text-align: center">
<p align="center"><a rel="lightbox[pics8]" href="http://blog.slickedit.com/wp-content/uploads/2007/04/image003.jpg" title="image003.jpg"><img width="128" src="http://blog.slickedit.com/wp-content/uploads/2007/04/image003.thumbnail.jpg" alt="image003.jpg" height="91" class="imageframe imgalignleft" /></a></p>
<p align="center"><em>Figure 2 the Golden Triangle; behold its majesty!</em></p>
<p align="center">
<p align="center">
<p><strong>From Key Binding to Command<br />
</strong>Sometimes you may want to change the key sequence to which an operation is bound. You first need to find the command associated with that key sequence. Use the <strong>what-is</strong> command from the SlickEdit command line or select <strong>Help &gt; What Is Key</strong> from the main menu. The command line will be replaced with the prompt, “What is key:” Enter the key sequence in question, like Ctrl+A (hold down the Control key and press A), and SlickEdit displays the associated command. In CUA emulation, SlickEdit will output, “Ctrl+A runs the command select-all”. You can use the same approach to determine the commands associated with mouse events. After you run what-is, click any mouse button and you will be prompted with a list of mouse events. Select one from the list and SlickEdit displays the associated command. For example, if you select mbutton-down in CUA emulation, SlickEdit will output, “MButtonDn runs the command mou-paste”. </p>
<p><strong></p>
<p>From Command to Key Binding<br />
</strong>To find the key binding for a command, use the where-is command or select Tools &gt; Options &gt; Key Bindings from the main menu. The where-is command works just like what-is, except you type in the command name and it outputs the key sequence. The Key Bindings dialog displays a list of the commands. You can scroll through the list or search for a command by typing the command in the text box at the top. The key binding for the selected command is displayed in the dialog.   </p>
<p style="text-align: center"><a rel="lightbox[pics8]" href="http://blog.slickedit.com/wp-content/uploads/2007/04/image003.jpg" title="image003.jpg"></a><a rel="lightbox[pics8]" href="http://blog.slickedit.com/wp-content/uploads/2007/04/image005.png" title="image005.png"><img width="128" src="http://blog.slickedit.com/wp-content/uploads/2007/04/image005.thumbnail.png" alt="image005.png" height="89" class="imageframe imgalignleft" /></a></p>
<p align="center"><em>Figure 3, Key Bindings Dialog    </em></p>
<p align="center">
<p><strong>Modifying Key Bindings<br />
</strong>The Key Bindings dialog can also be used to set a key binding. Type the command in the Command field, or select one from the list. Then click the “Add Key or Mouse Click” button. Now type the key sequence you want to use. For example, to bind a command to Ctrl+A, hold down the Control key and press A. To bind a command to a mouse event, click any mouse button and then select the appropriate event from the list. When you are finished, click the <strong>Bind</strong> button. To exit the dialog, click <strong>Done</strong>.</p>
<p><strong></p>
<p>From Menu to Command<br />
</strong>If the menu entry displays a keyboard shortcut, you can quickly find the associated command using what-is and entering the key sequence. If the menu entry does not display a shortcut, then finding the command for an entry involves a little more work. </p>
<p>SlickEdit provides a convenient UI under <strong>Macro &gt; Menus</strong> that allows you to view and modify menus in SlickEdit. To find commands for the items on the main menu, select “_mdi_menu” from the list and then click the <strong>Open</strong> button. You are presented with a menu hierarchy that you can expand to find the menu entry in question. Once selected, information about the entry is displayed including the command executed. You can use this menu to add or change the shortcut for a menu item. Doing so has the same effect as using the Key Bindings dialog to bind the menu entry’s command to a key sequence.   </p>
<p style="text-align: center"><a rel="lightbox[pics8]" href="http://blog.slickedit.com/wp-content/uploads/2007/04/image003.jpg" title="image003.jpg"></a><a rel="lightbox[pics8]" href="http://blog.slickedit.com/wp-content/uploads/2007/04/image005.png" title="image005.png"></a><a rel="lightbox[pics8]" href="http://blog.slickedit.com/wp-content/uploads/2007/04/image007.jpg" title="image007.jpg"><img width="96" src="http://blog.slickedit.com/wp-content/uploads/2007/04/image007.thumbnail.jpg" alt="image007.jpg" height="73" class="imageframe imgalignleft" /></a></p>
<p align="center"><em>Figure 4, Menu Editor</em></p>
<p>Some menu entries are added dynamically by SlickEdit, so you may have to search the code to find the associated command. One example of this is <strong>Build &gt; Java Options</strong>, which is only present when a Java project is active. Unfortunately, finding the associated commands for these entries can be very difficult and not easily covered in an article like this.</p>
<p><strong></p>
<p>Context Menus<br />
</strong>It is also easy to find the commands in the context menu for the editor window. The context menu, itself, contains an entry to “Edit This Menu”. Selecting this option brings up a dialog that lists the menu entries and associated information, including the command. Use this dialog to modify the context menus. Note that there are two context menus for the editor window: one when a selection is made and one when no selection is made. You can view or change the function that is used for these menus by selecting <strong>Tools &gt; Options &gt; File Extension Setup</strong> and selecting the Advanced tab.<br />
<strong></p>
<p>From Key Binding to Menu and Back<br />
</strong>Menu entries map to key bindings through commands, so key bindings are not directly associated with menu entries. To map from a key binding to a menu or vice versa, you need to look up the associated command. That Golden U is looking better all the time!</p>
<p><strong></p>
<p>Customizing Toolbar Icons<br />
</strong>The focus of this article has been to help you keep your hands on the keyboard, so icons weren’t included in the Golden Triangle. Besides, then I would have needed a Golden Square or some other form of rhombus, and that just doesn’t sound cool. You may find it helpful to change the set of displayed toolbars, add or remove icons, or change the behavior for an icon. SlickEdit uses the term “toolbar” to refer to both icon bars and tool windows. To change the set of displayed toolbars, select <strong>View &gt; Toolbars</strong> and check/uncheck one of the listed toolbars. </p>
<p>The list is divided into two groups. The top group is comprised of tool windows, like the Symbol view and the Projects view. The bottom group is made up of icon bars. </p>
<p>Additional options are available on the Toolbar Customization dialog by selecting <strong>View &gt; Toolbars &gt; Customize</strong>. The Toolbars tab provides a way to control the visibility of the toolbars. The Toolbars tab allows you to set options for which toolbars are visible, whether they are dockable, etc. </p>
<p>The Categories tab displays the complete set of available icons. These can be added to any icon toolbar by dragging them to the desired location. All of the icons have pre-defined behaviors, except the set in the “User Definable Tools” category. Use these to add your own functionality. </p>
<p>Each icon has an associated command that defines what happens when it is clicked. To view or change that command, right-click on the icon and select Properties. The icon needs to be located in a toolbar to do this. You cannot access the properties for an icon in the Toolbar Customizations dialog.  </p>
<p><strong></p>
<p>“Exit, Stage Left”<br />
</strong>OK, that one is a Snagglepuss reference<a name="_ednref2" title="_ednref2"></a>[ii]. Whatever angst I previously expressed for mice has now been transferred to the Golden Polygon of Unspecified Dimensions. Regardless of the shape, you now have the tools you need to configure SlickEdit to work the way YOU think it should, using the key bindings you find natural. This is one of the essential steps in being a true power programmer.<br />
 </p>
<hr />    </p>
<p class="MsoEndnoteText"><a name="_edn1" title="_edn1"></a>[i] Mr. Jinks, sometimes called “Jinks the cat”, appeared in the “Pixie and Dixie” cartoons as part of “The Huckleberry Hound Show”, by Hanna and Barbera.</p>
<p class="MsoEndnoteText"><a name="_edn2" title="_edn2"></a>[ii] Snagglepus is another of Hanna-Barbera’s cartoon characters.</p>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Fblog.slickedit.com%2F2010%2F05%2Fkey-binding-command-menu-the-golden-triangle%2F';
  addthis_title  = 'Key+Binding%2C+Command%2C+Menu%3A+The+Golden+Triangle';
  addthis_pub    = '';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://blog.slickedit.com/2010/05/key-binding-command-menu-the-golden-triangle/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hey, Check Out My Slick New Editor!</title>
		<link>http://blog.slickedit.com/2009/09/hey-check-out-my-slick-new-editor/</link>
		<comments>http://blog.slickedit.com/2009/09/hey-check-out-my-slick-new-editor/#comments</comments>
		<pubDate>Wed, 23 Sep 2009 14:21:01 +0000</pubDate>
		<dc:creator>Jeffrey</dc:creator>
				<category><![CDATA[Code Editors]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[SlickEdit Products]]></category>
		<category><![CDATA[Diffzilla]]></category>
		<category><![CDATA[Macro Record/Playback]]></category>
		<category><![CDATA[Refactoring]]></category>
		<category><![CDATA[Regular Expressions]]></category>
		<category><![CDATA[slickedit]]></category>

		<guid isPermaLink="false">http://blog.slickedit.com/?p=396</guid>
		<description><![CDATA[Greg Christopher of VMware has written an article for DevX.com: Hey, Check Out My Slick New Editor!
In the article he discussing some of his favorite features of SlickEdit and why SlickEdit is his code editor of choice for programming.
On objections on switching editors
If your current editor works well enough for you, why switch? The answer depends [...]]]></description>
			<content:encoded><![CDATA[<p>Greg Christopher of VMware has written an article for DevX.com: <a href="http://www.devx.com/enterprise/Article/42874/0/page/1"><strong>Hey, Check Out My Slick New Editor!</strong></a></p>
<p>In the article he discussing some of his favorite features of SlickEdit and why SlickEdit is his code editor of choice for programming.</p>
<p><strong>On objections on switching editors</strong></p>
<blockquote><p>If your current editor works well enough for you, why switch? The answer depends on how you define &#8220;well enough.&#8221; Your current editor probably handles every editing command you think you need now, but consider the possibility that something could make you far more productive. You&#8217;ll see a few examples in a moment, but first, here are some of the reasons you might decide not to switch editors.</p></blockquote>
<p><span id="more-396"></span> <strong>Regular Expression Search and Replace</strong></p>
<blockquote><p>This isn&#8217;t an exclusive SlickEdit feature, some other editors have it too; but if you haven&#8217;t had the opportunity to experience regular expression searches, you should really consider switching to an editor that supports the feature.</p></blockquote>
<p><strong>Macro Record/Playback</strong></p>
<blockquote><p>SlickEdit carries out many of its commands through its slick-C programming language (note that both Brief and Emacs have their own languages as well). SlickEdit lets you write your own macros, or do a simple record / playback. This comes in handy when the syntax for find and replace gets too dicey.</p></blockquote>
<p><strong>Other Features</strong></p>
<blockquote><p>As you might imagine, because SlickEdit&#8217;s been around for 20 years, this article just scratches the surface.</p></blockquote>
<p>Continue reading <a href="http://www.devx.com/enterprise/Article/42874/0/page/1">Hey, Check Out My Slick New Editor<strong>!</strong></a> here: <a href="http://www.devx.com/enterprise/Article/42874/0/page/1">http://www.devx.com/enterprise/Article/42874/0/page/1 </a></p>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Fblog.slickedit.com%2F2009%2F09%2Fhey-check-out-my-slick-new-editor%2F';
  addthis_title  = 'Hey%2C+Check+Out+My+Slick+New+Editor%21';
  addthis_pub    = '';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://blog.slickedit.com/2009/09/hey-check-out-my-slick-new-editor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My Economic Stimulus Plan: Cash for Clunky Editors</title>
		<link>http://blog.slickedit.com/2009/08/my-economic-stimulus-plan-cash-for-clunky-editors/</link>
		<comments>http://blog.slickedit.com/2009/08/my-economic-stimulus-plan-cash-for-clunky-editors/#comments</comments>
		<pubDate>Mon, 10 Aug 2009 16:52:59 +0000</pubDate>
		<dc:creator>Scott Westfall</dc:creator>
				<category><![CDATA[Code Editors]]></category>
		<category><![CDATA[Productivity]]></category>

		<guid isPermaLink="false">http://blog.slickedit.com/?p=339</guid>
		<description><![CDATA[As part of the economic stimulus package, the government has instituted a Cash for Clunkers program that pays people to trade in older, less fuel-efficient cars for new, more fuel-efficient ones. $1 billion was made available for this program, and it was quickly used up. So, Congress is debating allocating even more money. While the [...]]]></description>
			<content:encoded><![CDATA[<p>As part of the economic stimulus package, the government has instituted a Cash for Clunkers program that pays people to trade in older, less fuel-efficient cars for new, more fuel-efficient ones. $1 billion was made available for this program, and it was quickly used up. So, Congress is debating allocating even more money. While the government is in such a giving mood, I&#8217;d like to see a Cash for Clunky Editors program that pays people to trade in their current, less effective editor on a new, more powerful editor.</p>
<p>In terms of economic stimulus, this could have a much greater effect on the nation. Consider that many programmers use minimalist editors that provide little help to analyze and navigate their code, don&#8217;t include powerful completions, or features to cut the number of keystrokes necessary to type their code. If these programmers switched to a more powerful editor, like&#8230;oh, let&#8217;s say, SlickEdit&#8230;their productivity would go way up.<span id="more-339"></span></p>
<p>As the productivity of the individual programmers goes up, their projects would get done earlier or include more capabilities. This increases the productivity of the people using that software, which would then increase the profitability of those companies. Since software underlies almost every industry, this could lead to a potential boom, the likes of which hasn&#8217;t been seen since the post-WWII expansion. Suddenly, there&#8217;s a surge in the US GDP. We pay off the national debt in a few years and have money left over for a comprehensive public health care system.</p>
<p>And it all begins with getting people to switch to a more effective editor.</p>
<p>Unfortunately, SlickEdit isn&#8217;t big enough to warrant a special government program like this. We&#8217;re not one of those too-big-to-fail kind of companies. But that doesn&#8217;t mean you can&#8217;t experience your own little economic stimulus.</p>
<p>Look at your coding practices and see if a more powerful editor wouldn&#8217;t help you write more code faster with fewer errors. Though the government won&#8217;t pay you for switching, the boost in productivity surely will.</p>
<p><strong><br />
SlickEdit is Giving Cash for your Clunky Editor!<br />
<em>Cash for Clunky Editors Program:</em></strong></p>
<p>If the editor you purchased is lacking the <em>speed, power, and flexibility</em> SlickEdit provides…trade it in for CASH towards SlickEdit.  Call <strong>1-800-934-EDIT (3348)</strong> or email <a href="mailto:sales@slickedit.com">sales@slickedit.com</a>, and mention the Cash for Clunky Editors Program to learn about the savings.</p>
<p>The program expires on September 30<sup>th</sup>, 2009, so act quickly.</p>
<p>Happy coding,<br />
The SlickEdit Team</p>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Fblog.slickedit.com%2F2009%2F08%2Fmy-economic-stimulus-plan-cash-for-clunky-editors%2F';
  addthis_title  = 'My+Economic+Stimulus+Plan%3A+Cash+for+Clunky+Editors';
  addthis_pub    = '';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://blog.slickedit.com/2009/08/my-economic-stimulus-plan-cash-for-clunky-editors/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How I Got VB for Fifty Cents</title>
		<link>http://blog.slickedit.com/2008/09/how-i-got-vb-for-fifty-cents/</link>
		<comments>http://blog.slickedit.com/2008/09/how-i-got-vb-for-fifty-cents/#comments</comments>
		<pubDate>Wed, 10 Sep 2008 13:38:20 +0000</pubDate>
		<dc:creator>Scott Hackett</dc:creator>
				<category><![CDATA[Code Editors]]></category>
		<category><![CDATA[Other]]></category>

		<guid isPermaLink="false">http://blog.slickedit.com/?p=246</guid>
		<description><![CDATA[It&#8217;s become a custom with me and my kids to hit the yard sales during the summer and fall weekends.  They can get a lot more for their allowance money at those sales than they can at the toy stores, and sometimes I find stuff that&#8217;s such a bargain I can&#8217;t pass it up.  We [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s become a custom with me and my kids to hit the yard sales during the summer and fall weekends.  They can get a lot more for their allowance money at those sales than they can at the toy stores, and sometimes I find stuff that&#8217;s such a bargain I can&#8217;t pass it up.  We recently went to one that turned up one of the most amazing finds I&#8217;ve ever run into at a garage sale yet.</p>
<p><a href="http://www.scotthackett.com/slick_edit/box_front.jpg"><img src="http://www.scotthackett.com/slick_edit/box_front_small.jpg" /></a></p>
<p><strong>Visual Basic 1.0</strong></p>
<p>Sitting in between Turbo Tax &#8216;99 and Mavis Beacon&#8217;s Typing Tutor was this gem&#8230;.  Visual Basic 1.0.  I almost couldn&#8217;t believe my eyes.  To me, this was on par with finding the missing link.  As a programmer, this was archeological gold, and it was on sale for fifty cents.  My kids saw the excitement on my face and must have thought that I&#8217;d found an XBox 360.  For them, Visual Basic was a major let down.</p>
<p>A lot of people think that VB is soft and if you program in it, you&#8217;re automatically a drooling hack developer who couldn&#8217;t program their alarm clock.  I cut my teeth on <a href="http://http://blog.slickedit.com/?p=224">VB 4.0 in my first job</a>, and learned that when combined with COM in C++, VB was a fantastic language for the job of making a user interface. That being said, VB still has some special memories for me.</p>
<p><a href="http://www.scotthackett.com/slick_edit/box_back.jpg"><img src="http://www.scotthackett.com/slick_edit/box_back_small.jpg" /></a></p>
<p>The contents of the box were practically undisturbed.  The disks were all still in their original plastic wrap and the manual didn&#8217;t seem to have ever been opened.  Immediately, there are certain clues that tell you just how old it is (even though the box is copyrighted 1991).  First, the box contains two forms of media; 3.5&#8243; and 5.25&#8243; floppies.  To actually take a 5.25&#8243; floppy out of its sleeve and hold it brought me back to the days of floppy doors and the red LED that told you the disk was being read.  The system requirements for VB 1.0 were Windows 3.0, a 286 processor and 1MB of memory.  Somewhat of a far cry from the Visual Basic of today.</p>
<p><a href="http://www.scotthackett.com/slick_edit/contents.jpg"><img src="http://www.scotthackett.com/slick_edit/contents_small.jpg" /></a></p>
<p>I also loved the included &#8220;Companion Products and Services Directory&#8221;.  The third party marketing rush had already begun back then.  Most of the components in the catalog, though, are for connecting to a VAX server or to a dBase or Btrieve database.  There are a handful of charting components and widgets such as tree controls (not yet standard in 1991) and grids.  The reminiscing continues.</p>
<p>This box goes right up on my bookshelf at home next to the most revered books in my collection. Say what you will about Visual Basic, but it may be one of the most important developments in programming over the last 20 years for the simple reason that it allowed any non-programmer to write a Windows program.  If you think that&#8217;s not a valid reason for such importance, let me repeat&#8230; it allowed any non-programmer to write a Windows program.  It was Prometheus, stealing fire from Zeus and giving it to mere mortals for their use.</p>
<p>You no longer had to know C, and wade through <a href="http://www.amazon.com/Programming-Windows%C2%AE-Fifth-Microsoft/dp/157231995X/ref=pd_bbs_sr_3?ie=UTF8&amp;s=books&amp;qid=1220965587&amp;sr=8-3">Petzold</a>, to write &#8220;Hello World&#8221; in a window.  Employees from any company with core business knowledge, but no degree in programming, could now quickly write customized applications.  Of course, the debate of whether this was a good thing for programming or not still goes on today.  However, regardless of which side you&#8217;re on, you can&#8217;t deny that VB was a major victory for bringing the PC to the business market.  Without VB, we may not even have a Microsoft today.</p>
<p>So thank you very much, guy from two streets down, who decided that Visual Basic 1.0 wasn&#8217;t important enough to keep, but too important to just throw away.  One man&#8217;s junk is another man&#8217;s gold, and I really struck it rich that weekend.</p>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Fblog.slickedit.com%2F2008%2F09%2Fhow-i-got-vb-for-fifty-cents%2F';
  addthis_title  = 'How+I+Got+VB+for+Fifty+Cents';
  addthis_pub    = '';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://blog.slickedit.com/2008/09/how-i-got-vb-for-fifty-cents/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Better way to find Eclipse command Ids, and more&#8230;</title>
		<link>http://blog.slickedit.com/2008/08/better-way-to-find-eclipse-command-ids-and-more/</link>
		<comments>http://blog.slickedit.com/2008/08/better-way-to-find-eclipse-command-ids-and-more/#comments</comments>
		<pubDate>Tue, 19 Aug 2008 13:26:45 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
				<category><![CDATA[Code Editors]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[SlickEdit Products]]></category>

		<guid isPermaLink="false">http://blog.slickedit.com/?p=243</guid>
		<description><![CDATA[Core 3.4.0 introduced the Slick-C function _eclipse_execute_command which allows you to execute Eclipse commands from the SlickEdit environment.  The documentation for this function shows you how you can search the Plug-in Registry to find Eclipse command names and ids, but there is a much better way documented in the following blog post:  http://evans-stuff.blogspot.com/2007/10/it-seems-that-im-not-only-one-still.html . 
Unfortunately I [...]]]></description>
			<content:encoded><![CDATA[<p>Core 3.4.0 introduced the Slick-C function <strong>_eclipse_execute_command</strong> which allows you to execute Eclipse commands from the SlickEdit environment.  The documentation for this function shows you how you can search the Plug-in Registry to find Eclipse command names and ids, but there is a much better way documented in the following blog post:  <a target="_blank" href="http://evans-stuff.blogspot.com/2007/10/it-seems-that-im-not-only-one-still.html">http://evans-stuff.blogspot.com/2007/10/it-seems-that-im-not-only-one-still.html</a> . </p>
<p>Unfortunately I discovered this technique after we finished the documentation and shipped the plug-in, but hopefully me pointing it out here may help some users. </p>
<p>Also, don&#8217;t forget the &#8220;Activate Editor&#8221; command in Eclipse (F12 by default).  If you are using <strong>_eclipse_execute_command</strong> to jump into different Eclipse Views and search around mouse-less, hitting F12 will jump you back into the last active editor.</p>
<p><strong>&lt;update&gt;</strong> </p>
<p>Check out this thread of the SlickEdit Forums for adding a generic Eclipse Pass-through Command: <a href="http://community.slickedit.com/index.php?topic=3549.0">http://community.slickedit.com/index.php?topic=3549.0</a></p>
<p><strong>From the post:</strong><br />
If you are evaluating 3.4.0 for your company, you can make this happen easily.  One of the best features in Core 3.4.0 is the introduction of _eclipse_execute_command, which is discussed in the user guide/readme, and also a little more in my post here: <a href="http://community.slickedit.com/index.php?topic=3816.0">http://community.slickedit.com/index.php?topic=3816.0</a> .  This is the idea that Rob suggests in this thread.</p>
<p>I&#8217;ll take this opportunity to give a brief tutorial on how to integrate that &#8220;Activate Task&#8221; shortcut into the SlickEdit environment.</p>
<p>First you need to know the command id of what you are trying to execute.  I used the method described <a href="http://evans-stuff.blogspot.com/2007/10/it-seems-that-im-not-only-one-still.html">http://evans-stuff.blogspot.com/2007/10/it-seems-that-im-not-only-one-still.html</a> , in which you create a Simple Cheat Sheet and use the Command Browse button (see first screenshot).</p>
<p><img src="http://www.slickedit.com/images/stories/blog/task1.png" /></p>
<p>Then I just used the search field to find the command (see second screenshot).</p>
<p><a href="http://www.slickedit.com/images/stories/blog/task2.png"><img src="http://www.slickedit.com/images/stories/blog/task2.png" /></a></p>
<p>Now that I had the command/parameter info, I opened up the Slick-C macro file where I write my custom commands (ryan.e), and added functions for Activate Task and Deactivate Task using _eclipse_execute_command (see third screenshot).  Remember to load your macro file with F12 after writing the functions.</p>
<p><a href="http://www.slickedit.com/images/stories/blog/task3.png"><img src="http://www.slickedit.com/images/stories/blog/task3.png" /></a></p>
<p>Then I used the SlickEdit Keybindings dialog to bind eclipse_activate_task to Ctrl + F9 (see fourth screenshot), and voila.  Hitting Ctrl + F9 in a SlickEdit editor will launch the Mylyn Activate Task dialog.</p>
<p><a href="http://www.slickedit.com/images/stories/blog/task4.png"><img src="http://www.slickedit.com/images/stories/blog/task4.png" /></a></p>
<p>It may seem like a lot of steps, but it&#8217;s really not.  This whole process took me less than 10 minutes including the time I took to capture/crop/annotate the screenshots.  You can use this method to execute almost any Eclipse command from any plug-in from the SlickEdit environment.</p>
<p>- Ryan</p>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Fblog.slickedit.com%2F2008%2F08%2Fbetter-way-to-find-eclipse-command-ids-and-more%2F';
  addthis_title  = 'Better+way+to+find+Eclipse+command+Ids%2C+and+more%26%238230%3B';
  addthis_pub    = '';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://blog.slickedit.com/2008/08/better-way-to-find-eclipse-command-ids-and-more/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Let&#8217;s Do a Code Review With SlickEdit Tools (Part 1)</title>
		<link>http://blog.slickedit.com/2008/06/lets-do-a-code-review-with-slickedit-tools-part-1/</link>
		<comments>http://blog.slickedit.com/2008/06/lets-do-a-code-review-with-slickedit-tools-part-1/#comments</comments>
		<pubDate>Wed, 25 Jun 2008 15:11:34 +0000</pubDate>
		<dc:creator>Scott Hackett</dc:creator>
				<category><![CDATA[Code Editors]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[SlickEdit Products]]></category>

		<guid isPermaLink="false">http://blog.slickedit.com/?p=237</guid>
		<description><![CDATA[As a developer, I look for tools that help me get things done quicker, and make tasks easier. This series of articles shows you how to take a handful of the features in SlickEdit Tools for Microsoft® Visual Studio® and use them to effectively put together and perform a code review.
I can&#8217;t say that I&#8217;ve [...]]]></description>
			<content:encoded><![CDATA[<p>As a developer, I look for tools that help me get things done quicker, and make tasks easier. This series of articles shows you how to take a handful of the features in <a href="http://www.slickedit.com/content/view/408/244?utm_source=seblogtoolstut&amp;utm_medium=blog&amp;utm_campaign=seblogtoolstut">SlickEdit Tools</a> for Microsoft® Visual Studio® and use them to effectively put together and perform a code review.</p>
<p>I can&#8217;t say that I&#8217;ve met too many developers that eagerly looked forward to reviewing code. Most developers understand the importance of code reviews, but many have experienced the pain of poorly run code reviews. Although SlickEdit Tools does not have a &#8220;code review&#8221; feature, it provides several features that can be used together to make a code review run smoothly. A well done code review process can be the difference between developer loathing and developer buy-in.</p>
<p>Because code reviews are such a big topic, this article will focus on some of the steps that lead up to a code review. Code reviews typically focus on the work of a single developer, so we&#8217;ll start there. We are going to be code reviewing the developer with ID <em>SLICKEDIT\shackett</em> (or <strong>Scott</strong>) in source control, and we&#8217;ll be reviewing his work since March 3, 2008, which is the date of our last (fictional) release.</p>
<p><strong>Finding the Best Files to Review</strong><br />
Our first challenge involves finding the set of files that Scott has worked on since March 3, 2008. We&#8217;ll use the <strong>Find Version</strong> feature of the SlickEdit Tools Versioning Toolbox as our starting point.</p>
<p><img src="http://www.slickedit.com/images/stories/blog/code_review/findversion.jpg" /></p>
<p>Find Version allows you to query versions of the source code files in your solution. The code review organizer can use this feature to find an ideal set of files to review. Simply click <em>SlickEdit &gt; Find Version</em> to bring up the Find Version tool window. For this example, we&#8217;ll find versions with the following criteria:</p>
<ul>
<li><strong>Since date:</strong> Finds all versions checked in since a particular date, such as the last release.</li>
<li><strong>Developer name:</strong> Finds all versions checked in by one or more specific developers.</li>
</ul>
<p>These two criteria are used to find all versions checked in by Scott during the latest development cycle (March 3, 2008 &#8211; present).</p>
<p>No development team has the resources to code review every file in that list, so it&#8217;s important to find the best candidate files to review. Therefore, the next task is to look through the results and find a sampling of files that represent the most important or complex code. You might also include some files that have a high number of check-ins by that developer, which indicates high rate of change, or churn. These are the ideal candidate files to be reviewed. Email the names of those files to all developers who will be participating in the code review.</p>
<p><a href="http://www.slickedit.com/images/stories/blog/code_review/findversionresults.jpg"><img src="http://www.slickedit.com/images/stories/blog/code_review/findversionresults_small.jpg" /><br />
[Click here for the full size image]</a></p>
<p>In this example, <em>PackageBaseWhidbey.cs</em> has had several changes and is a very important file, so we&#8217;ll include that in our code review process.</p>
<p><strong>Loading the Files to Review</strong><br />
When a developer is ready to prepare their review comments, they should close all other files and open the files in the list sent by the code review organizer. This can be done quickly using the <strong>Load Files </strong>feature in the Editing Toolbox, which allows you to quickly filter the list of files in your solution and open the ones you&#8217;re looking for. Click <em>SlickEdit &gt; Load Files</em> to use this feature.</p>
<p><img src="http://www.slickedit.com/images/stories/blog/code_review/loadfiles.jpg" /></p>
<p>By typing &#8220;<em>basew</em>&#8221; in the filter, we narrow down the files in the list to only those that include that text in their file name. We&#8217;ll select <em>PackageBaseWhidbey.cs</em> and open it.</p>
<p><strong>Isolating a Developer&#8217;s Work</strong><br />
One of the most difficult things to do when reviewing the code of another developer is actually identifying the work that that developer did, especially if it was done as part of a team. Once you have <em>PackageBaseWhidbey.cs</em> open, we&#8217;ll use the <strong>Version Visualizer</strong> feature of the Versioning Toolbox to see which parts Scott has worked on. Click <em>SlickEdit &gt; Version Visualizer</em> to show this tool window. Next, select &#8220;Default User Scheme&#8221; in the drop down at the top of that tool window.</p>
<p><img src="http://www.slickedit.com/images/stories/blog/code_review/versionvisualizer.jpg" /></p>
<p>The versions of the file will be processed and the tool window will list the names of all developers who have contributed to the current state of the file. The editor also becomes colorized into segments of lines that identify who wrote each line of the file.</p>
<p><a href="http://www.slickedit.com/images/stories/blog/code_review/defaultuserscheme1.jpg"><img src="http://www.slickedit.com/images/stories/blog/code_review/defaultuserscheme1_small.jpg" /><br />
[Click here for the full size image]</a></p>
<p>You can find Scott&#8217;s name (<em>SLICKEDIT\shackett</em>) in the tool window list and double click on it to go to the first line of code he contributed. You can then use the next and previous button on the tool window to navigate through the blocks of his work.</p>
<p>To make Scott&#8217;s work stand out more distinctly, select his name (<em>SLICKEDIT\shackett</em>) in the list and click the &#8220;Toggle Selection Visibility&#8221; toolbar button. When toggled on, Scott&#8217;s work will stand out, and all other developer&#8217;s work will be dimmed out. This allows you to quickly see what code is Scott&#8217;s and what code isn&#8217;t. You can click this button again to toggle it back off.</p>
<p><a href="http://www.slickedit.com/images/stories/blog/code_review/defaultuserscheme2.jpg"><img src="http://www.slickedit.com/images/stories/blog/code_review/defaultuserscheme2_small.jpg" /><br />
[Click here for the full size image]</a></p>
<p>Another option is to assign a unique color to Scott. To do this, click the <strong>Configure Visualization Schemes</strong> button on the <strong>Version Visualizer</strong> toolbar. This will bring up the <strong>Scheme Builder</strong> dialog. We&#8217;ll create a new scheme to highlight all areas of code worked on by Scott. Click the <strong>Add new scheme</strong> button and give the scheme a name of &#8220;Scott&#8217;s code&#8221;. We can now add a scheme item for Scott and give it a color of bright red.</p>
<p><a href="http://www.slickedit.com/images/stories/blog/code_review/schemebuilder.jpg"><img src="http://www.slickedit.com/images/stories/blog/code_review/schemebuilder_small.jpg" /><br />
[Click here for the full size image]</a></p>
<p>We can save this visualization scheme and then apply it by selecting it in the <strong>Version Visualizer</strong> drop down. This same scheme can be applied to any file to highlight areas of the code written by Scott.</p>
<p><a href="http://www.slickedit.com/images/stories/blog/code_review/defaultuserscheme3.jpg"><img src="http://www.slickedit.com/images/stories/blog/code_review/defaultuserscheme3_small.jpg" /><br />
[Click here for the full size image]</a></p>
<p>If you find a block of code written by the developer being reviewed that looks questionable, you may want more context about the developer&#8217;s intent, such as the check in comment made when that section of code was checked in. This information is very important for creating meaningful code review comments. The easiest way to do this is to see which version that code was checked in as, and look at the comment associated with that version. To do this, select &#8220;Default Relative Age Scheme&#8221; in the drop down at the top of the <strong>Version Visualizer</strong> tool window.</p>
<p><a href="http://www.slickedit.com/images/stories/blog/code_review/defaultrelativeagecheme.jpg"><img src="http://www.slickedit.com/images/stories/blog/code_review/defaultrelativeagecheme_small.jpg" /><br />
[Click here for the full size image]</a></p>
<p>Again, the versions of the file will be processed, but now the tool window will list the IDs of all versions that have contributed to the current state of the file. The editor also becomes colorized into segments of lines that identify which version last updated each line of the file. The colorizing of each segment corresponds to the age of the version it was checked in with (dark is oldest, light is most recent).</p>
<p>You can find the version associated with the questionable code and take a look at the comments associated with it. You can also use the next and previous button as before to see all of the code in the file that was updated as a result of that check in. For instance, we may have disagreed with the AddMenuCommandHandler function being public. We can see that change was part of version 762. By hovering over that version in the <strong>Version Visualizer</strong> tool window, we get a better understanding of why the function was made public. All of these features assist the team in making judgments about which code to review. They also provide some insight into the motivation the developer being reviewed might have had when checking a set of code in.</p>
<p>Next is the task of actually commenting on the code. This task is always best done in electronic format, in a way that can be pulled together as part of the code review meeting. The <strong>next article</strong> in the series will go through some of the features of SlickEdit Tools that facilitate writing comments about code and tying them directly to the source, without modifying the files.</p>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Fblog.slickedit.com%2F2008%2F06%2Flets-do-a-code-review-with-slickedit-tools-part-1%2F';
  addthis_title  = 'Let%26%238217%3Bs+Do+a+Code+Review+With+SlickEdit+Tools+%28Part+1%29';
  addthis_pub    = '';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://blog.slickedit.com/2008/06/lets-do-a-code-review-with-slickedit-tools-part-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Works on my Machine</title>
		<link>http://blog.slickedit.com/2008/04/works-on-my-machine/</link>
		<comments>http://blog.slickedit.com/2008/04/works-on-my-machine/#comments</comments>
		<pubDate>Wed, 23 Apr 2008 14:57:08 +0000</pubDate>
		<dc:creator>Sandra</dc:creator>
				<category><![CDATA[Code Editors]]></category>
		<category><![CDATA[SlickEdit Products]]></category>

		<guid isPermaLink="false">http://blog.slickedit.com/?p=225</guid>
		<description><![CDATA[I report a problem to a colleague. After trying and failing to use the &#8220;works on my machine&#8221; excuse, he comes over to see for himself. He asks to drive so he can do a little debugging on my editor, so I step aside to let him use the keyboard. He squints at the code [...]]]></description>
			<content:encoded><![CDATA[<p>I report a problem to a colleague. After trying and failing to use the &#8220;works on my machine&#8221; excuse, he comes over to see for himself. He asks to drive so he can do a little debugging on my editor, so I step aside to let him use the keyboard. He squints at the code and seems unable to type. Several times he presses an elaborate key combination, only to curse and have to undo whatever he did. Usually, when he tries to undo, he again curses before finally looking at the keyboard to press Ctrl+Z with the concentration of an octogenarian trying to double-click the AOL icon fast enough.</p>
<p>Why is he having so much trouble using my editor? Because I&#8217;m using SlickEdit. What does he use? SlickEdit.This scenario happens a lot to me, really anytime a coworker tries to use my machine. Even after he gets used to the color scheme and whatever tool windows I use, if he doesn&#8217;t happen to use the same emulation that I use, he&#8217;s hosed. He spends more time trying to get somewhere in the code than he does actually making any changes. And no doubt he&#8217;s got some custom keybindings on his machine that he uses all the time, but my editor seems to think they have completely different functions.</p>
<p>So the good thing about SlickEdit is that it&#8217;s incredibly customizable. You can set it up to do whatever you want, however you want. You can go over, under, around, and through your code using commands and keybindings that you define, and after using them for a couple of days, you&#8217;ll feel like you were born using Ctrl+W to comment a line of code. You&#8217;ll do all this without thinking about it, because you&#8217;re thinking about the code instead of the use of the editor.</p>
<p>Ah, but then you have to use someone else&#8217;s configuration. It&#8217;s worse if they&#8217;re looking over your shoulder, giving you keyboard performance anxiety. You&#8217;re all thumbs, two left hands, a DVORAK user in a QWERTY world. Your customizations are your crutches, and you have to limp along to solve a stupid problem when you know it works perfectly on your machine.</p>
<p>In fact, you work perfectly on your machine, too.</p>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Fblog.slickedit.com%2F2008%2F04%2Fworks-on-my-machine%2F';
  addthis_title  = 'Works+on+my+Machine';
  addthis_pub    = '';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://blog.slickedit.com/2008/04/works-on-my-machine/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Why I Hate HTML and How SlickEdit Saved the Day</title>
		<link>http://blog.slickedit.com/2008/01/why-i-hate-html-and-how-slickedit-saved-the-day/</link>
		<comments>http://blog.slickedit.com/2008/01/why-i-hate-html-and-how-slickedit-saved-the-day/#comments</comments>
		<pubDate>Wed, 23 Jan 2008 17:11:56 +0000</pubDate>
		<dc:creator>David O</dc:creator>
				<category><![CDATA[Code Editors]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://blog.slickedit.com/?p=213</guid>
		<description><![CDATA[I hate HTML. I know that is a little unfair, after all, so much of my life revolves around it. Like everyone in the tech industry, there is a browser open on my computer almost all the time and without it, I&#8217;d lose my major source for news, entertainment, and communication. But I still hate [...]]]></description>
			<content:encoded><![CDATA[<p>I hate HTML. I know that is a little unfair, after all, so much of my life revolves around it. Like everyone in the tech industry, there is a browser open on my computer almost all the time and without it, I&#8217;d lose my major source for news, entertainment, and communication. But I still hate dealing with it. Perhaps if HTML had been more like xhtml from the start (You know what I mean. The tight syntax, all tags closed etc.), or if XHTMLs other problems (validation, compatibility with existing HTML infrastructure, and browser support etc.) were solved, I wouldn&#8217;t be writing this.</p>
<p>The worst thing, though, is having to hand edit HTML that has been generated by other software, be it an Office document or HTML created by web page authoring software. This was the situation I found myself in recently when I was asked to do some simple web page maintenance for a local volunteer organization.</p>
<p>The site was hosted by Yahoo! Japan and was originally authored by Japanese web site software from a major unnamed corporation, which I will just refer to as HAL. I was not given the original project files from which I could make changes and regenerate the html, so I was going to have edit the HTML directly. The Yahoo! Japan portal provides web-based maintenance tools for the sites they host. Through a browser you can see a list of the directories and files in your site, backup and rename files, and edit and save HTML files in an editor control. You could also upload new files. These are crude tools, but for the changes I had, it should have worked. I didn&#8217;t want to manually download and upload each page.</p>
<p>I pulled up the first page in the editor control, and started editing. The file was many times longer than needed, filled with obtuse metadata and other unintelligible nonsense. The page switched between English and Japanese frequently, often many times in one sentence, and each change in language required that section to be enclosed in yet another &lt;span&gt; tag with the proper lang attribute. In many cases, a single word was nested in 2 to 3 identical &lt;span&gt; tags. Most lines were about 80 characters wide, but there were also 500+ character lines just to make things interesting. (I hate HTML.) Anyway, without too much trouble, I was able to find the content and make the changes. It wasn&#8217;t hard, just tedious.</p>
<p>I was now ready to view the result. I hit save to close the editor control and return to the file list. I switched to another browser tab that had the page loaded and hit F5 to refresh the display. Every bit of Japanese text was total garbage. Argh!!. I inadvertently changed something that ruined the display of the entire page. I knew I&#8217;d have to try again and be more careful. So I open the page in the editor control again and much to my chagrin, now all the Japanese text in the original file was garbage as well. The whole page was ruined. It hadn&#8217;t just a bug in my edits causing the display to go bad. (Another lesson in why you should back up your content before you start editing. Fortunately I had. Whew!)</p>
<p>I was stuck. A little experimentation quickly revealed that just loading the file in the Yahoo! Japan editor control and immediately saving it still ruined the Japanese. Not very impressive considering this was a site specifically for hosting and maintaining Japanese websites! (To be fair, this did not happen to every page on the site. Most I could edit just fine.) The problem was that the Yahoo! Japan on-line editor control did not resave the file with the correct encoding. It could read the file, display the file, and edit the file, but not save the file correctly. It was actually rather pitiful. Would it have worked had I been running on a native Japanese version of Windows XP and IE? Who knows? I would hope so, but that wouldn&#8217;t help me. I had the same problem in IE and Firefox. Could I have changed my browser settings to fix the problem? I don&#8217;t know, but I&#8217;ve never had a problem with any other Japanese page.</p>
<p>I was about to resign myself to having to recreate the whole page from scratch and upload it. Then I remembered SlickEdit handles different encodings. So I pulled up the backup copy in the Yahoo! Japan editor control and opened a new blank HTML page in SlickEdit and selected Japanese (Shift-Jis) encoding. After a simple copy and paste into SlickEdit, I had the original contents in a real editor (syntax highlighting, completions, HTML beautifier, parenthesis matching etc..) that could preserve the encoding. In a lot less time, thanks to the features in SlickEdit, I had the changes in again, saved properly to Japanese (Shift-Jis), and uploaded back to Yahoo! Japan.</p>
<p>Thank you SlickEdit.</p>
<p>(But I still hate software generated HTML.)</p>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Fblog.slickedit.com%2F2008%2F01%2Fwhy-i-hate-html-and-how-slickedit-saved-the-day%2F';
  addthis_title  = 'Why+I+Hate+HTML+and+How+SlickEdit+Saved+the+Day';
  addthis_pub    = '';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://blog.slickedit.com/2008/01/why-i-hate-html-and-how-slickedit-saved-the-day/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Professional SlickEdit® Hits the Shelves</title>
		<link>http://blog.slickedit.com/2007/11/professional-slickedit%c2%ae-hits-the-shelves/</link>
		<comments>http://blog.slickedit.com/2007/11/professional-slickedit%c2%ae-hits-the-shelves/#comments</comments>
		<pubDate>Wed, 21 Nov 2007 19:39:37 +0000</pubDate>
		<dc:creator>Scott Westfall</dc:creator>
				<category><![CDATA[Code Editors]]></category>
		<category><![CDATA[SlickEdit Products]]></category>

		<guid isPermaLink="false">http://blog.slickedit.com/?p=191</guid>
		<description><![CDATA[Last Saturday I had one of the most rewarding moments of my professional life. I was at Barnes &#38; Noble looking through the computer books when I saw two copies of the new Professional SlickEdit® book [1] on the shelf. Seeing this filled me with a sense of pride I have rarely experienced before.
 I [...]]]></description>
			<content:encoded><![CDATA[<p>Last Saturday I had one of the most rewarding moments of my professional life. I was at Barnes &amp; Noble looking through the computer books when I saw two copies of the new <u>Professional SlickEdit®</u> book [1] on the shelf. Seeing this filled me with a sense of pride I have rarely experienced before.</p>
<p><center><a rel="lightbox[pics191]" href="http://blog.slickedit.com/wp-content/uploads/2007/11/slickeditbooksmall.JPG" title="slickeditbooksmall.JPG"><img width="200" src="http://blog.slickedit.com/wp-content/uploads/2007/11/slickeditbooksmall.thumbnail.JPG" alt="slickeditbooksmall.JPG" height="150" class="imageframe imgalignleft" /></a> </center>I didn’t write the book. It was written by John Hurst, a long-time SlickEdit user with no affiliation with SlickEdit Inc. I did help to review the material John wrote and provided feedback, but the pride I felt wasn’t related to my minor contribution to the book. It was because of what the book says about our product that made me proud.</p>
<p>The book is a symbol of the impact our work has on others. It says that there are enough people using SlickEdit for a publisher like Wrox to publish this book. That someone like John, whose knowledge of SlickEdit is remarkable, was available to write this book also indicates something of the passion our customers feel for our work. This awareness of the positive effect our work has had on others is often missing in software development.</p>
<p>I’ve worked on a lot of different projects in my career. Most were large custom automation jobs that were deployed on a server somewhere. Often there was little to no interaction with the actual users of the system. With SlickEdit, I get to see and use the result of my efforts. I interact with people who use our products every day. And now, with the release of <u>Professional SlickEdit®</u>, I feel, well, almost famous.</p>
<p><strong>Why a SlickEdit Book?</strong></p>
<p>The very existence of a 3rd party book on SlickEdit raises the question of why such a book is needed. Some might ask, “Isn’t the user guide good enough?” The answer, frankly, is “yes it is” and “no it isn’t”.</p>
<p>After 20 years of development, SlickEdit is full of features. Even though we’ve made great strides in improving our documentation over the last several releases, there’s still a long way to go. As John points out in the introduction to <u>Professional SlickEdit®</u>, “The SlickEdit User Guide that is shipped with the product does not even document every feature…” Hey! We’re working on it!</p>
<p>The SlickEdit User Guide and <u>Professional SlickEdit®</u> describe SlickEdit from two different perspectives. Our goal with the User Guide is to teach you how to install, configure, and use the features in SlickEdit. <u>Professional SlickEdit®</u> picks up where the SlickEdit User Guide leaves off. It covers many of the features that are documented in the user guide but it does so from an advanced usage perspective, showing effective ways to use the features. The book includes examples showing actual code and how various features can be used. It also includes sample Slick-C macro code to customize and extend SlickEdit, which will be of particular interest to advanced users.</p>
<p>We try to be process-agnostic at SlickEdit. We recognize that people have very different work patterns, and we don’t want to force you to change them. Instead, we believe it is important for SlickEdit to adapt to your work style. No matter how much we are convinced that brace style 1 (shown below) is the only sensible choice we allow you to mess up your code with brace style 2 and 3 as much as you like.</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&lt;pre&gt;<br />
if () { <br />
}&lt;/pre&gt;</div></td></tr></tbody></table></div>
<p>As an independent author, John had more degrees of freedom. He was freer to express his opinion, not unlike the freedom one has while blogging. So, where our documentation provides a list of the capabilities, John directs you towards the ones he finds to be most useful.</p>
<p><strong>A Fresh Perspective</strong></p>
<p>One of the key benefits I’ve gotten from this process is the insight from seeing our product from another perspective. Working with John and reading his descriptions of SlickEdit helped me see the product in a new way.</p>
<p>It’s a common problem. The more you work on something the less you are able to really see it. You see, instead, your perceptions of the product. How many times have you written something, code or text, and missed a simple flaw, like an omitted word or a boundary condition? No matter how many times you read it, you see what you expect to see not what is really there. Then, someone who reads it for the first time easily finds the problem.</p>
<p>My thanks to John Hurst for writing this book and the good people at Wrox for publishing it. And for treating me to a truly rewarding moment in my career!</p>
<p>[1] <u>Professional SlickEdit®</u> by John Hurst (ISBN-13: 978-0-470-12215-0), Wiley Publishing, Inc.</p>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Fblog.slickedit.com%2F2007%2F11%2Fprofessional-slickedit%25c2%25ae-hits-the-shelves%2F';
  addthis_title  = 'Professional+SlickEdit%3Csup%3E%C2%AE%3C%2Fsup%3E+Hits+the+Shelves';
  addthis_pub    = '';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://blog.slickedit.com/2007/11/professional-slickedit%c2%ae-hits-the-shelves/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Comfort, Habits and Ruts in Software Development</title>
		<link>http://blog.slickedit.com/2007/10/comfort-habits-and-ruts-in-software-development/</link>
		<comments>http://blog.slickedit.com/2007/10/comfort-habits-and-ruts-in-software-development/#comments</comments>
		<pubDate>Wed, 03 Oct 2007 12:39:25 +0000</pubDate>
		<dc:creator>Scott Hackett</dc:creator>
				<category><![CDATA[Code Editors]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://blog.slickedit.com/?p=98</guid>
		<description><![CDATA[Some years ago, I worked on software used by a separate department within the company. It was a great program, but it ran behind an ugly console interface. Myself and the other programmers proposed a windowed interface which made a world of difference to the program&#8217;s workflow. &#8220;It&#8217;s not going to happen,&#8221; said our manager. [...]]]></description>
			<content:encoded><![CDATA[<p>Some years ago, I worked on software used by a separate department within the company. It was a great program, but it ran behind an ugly console interface. Myself and the other programmers proposed a windowed interface which made a world of difference to the program&#8217;s workflow. &#8220;It&#8217;s not going to happen,&#8221; said our manager. In less than thirty seconds, our great ideas fell to pieces. &#8220;They&#8217;ve used that console interface for 15 years now, <strong>it&#8217;s just the way it&#8217;s done here.</strong>&#8221;</p>
<p>I&#8217;d heard that before; resistance to change for fear of change. It&#8217;s like being told, &#8220;because I said so,&#8221; by your parents for lack of a good reason. I always saw that guy as being an obstacle in our software development, more interested in not rocking the boat than improving the process.</p>
<p><strong>6 years later&#8230;</strong></p>
<p>When I started at SlickEdit, I was introduced to a lot of firsts. I&#8217;m a Microsoft programmer [ducks behind cube wall]. I&#8217;ve been programming with Microsoft&#8217;s APIs, toolkits, libraries, IDEs, etc for a long time. When it comes to Microsoft technology, I&#8217;ve done a lot, and it&#8217;s a world that I feel completely at home in.</p>
<p>My first assignment here was to test SlickEdit on AIX, having never used SlickEdit before and with virtually no UNIX background. I tried my best to learn my way around, but I never shook that feeling of being <strong>hopelessly </strong>lost. To make things worse, everyone else was using it at the Jedi Knight level. All of my creature comforts were gone during this testing cycle. As an experienced programmer, it&#8217;s humbling and flat out embarrassing to have to ask questions like, &#8220;How do I install this program?&#8221;, &#8220;Where is my personal directory?&#8221; and &#8220;How do I build with GCC?&#8221;</p>
<p>When I got to work on Tools, and got back to Visual Studio and Windows, I felt like I was back home. I knew where everything was; I knew which step was the creaky step, I knew how to use all the buttons on the TV remote control, I was completely familiar with my surroundings. This isn&#8217;t at all to say that Visual Studio is better than SlickEdit, because in a lot of ways, it&#8217;s not. The same could be said about Windows vs. UNIX or Linux.</p>
<p>After so many years, I&#8217;ve become a creature of habit, and I recognize that. Not because the task of learning a new OS or code editor is too difficult, but because I really hate the feeling of being lost. Even worse is thinking about the wasted hours learning to do the same thing I could do in my comfort space in five minutes. Most horrible of all is just feeling stupid about not knowing how to do the simplest things.</p>
<p>After all this time, I feel like I&#8217;ve gained a little perspective from my old manager&#8217;s side of the fence. &#8220;Don&#8217;t take away their console interface&#8230; they don&#8217;t want to learn, they just want to get their job done,&#8221; was what he was really trying to say. Starting from square one and leaving your areas of proficiency behind is scary. I&#8217;m always happy to learn new things, but it&#8217;s always nice to come back home. Now I see his point of view.</p>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Fblog.slickedit.com%2F2007%2F10%2Fcomfort-habits-and-ruts-in-software-development%2F';
  addthis_title  = 'Comfort%2C+Habits+and+Ruts+in+Software+Development';
  addthis_pub    = '';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://blog.slickedit.com/2007/10/comfort-habits-and-ruts-in-software-development/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Editor or IDE?</title>
		<link>http://blog.slickedit.com/2007/08/editor-or-ide/</link>
		<comments>http://blog.slickedit.com/2007/08/editor-or-ide/#comments</comments>
		<pubDate>Wed, 29 Aug 2007 13:15:07 +0000</pubDate>
		<dc:creator>Scott Westfall</dc:creator>
				<category><![CDATA[Code Editors]]></category>
		<category><![CDATA[SlickEdit Products]]></category>

		<guid isPermaLink="false">http://blog.slickedit.com/?p=122</guid>
		<description><![CDATA[The first season of Saturday Night Live had a great skit featuring Gilda Radner, Dan Aykroyd , and Chevy Chase arguing about new Shimmer(i):
Gilda: “New Shimmer is a floor wax.”
Dan: “No, new Shimmer is a dessert topping.”
Gilda: “It’s a floor wax!”
Dan: “It’s a desert topping!”
Gilda: “It’s a floor wax, I’m telling you!”
Dan: “It’s a desert [...]]]></description>
			<content:encoded><![CDATA[<p>The first season of Saturday Night Live had a great skit featuring Gilda Radner, Dan Aykroyd , and Chevy Chase arguing about new Shimmer(i):<br />
<strong>Gilda</strong>: “New Shimmer is a floor wax.”<br />
<strong>Dan</strong>: “No, new Shimmer is a dessert topping.”<br />
<strong>Gilda</strong>: “It’s a floor wax!”<br />
<strong>Dan</strong>: “It’s a desert topping!”<br />
<strong>Gilda</strong>: “It’s a floor wax, I’m telling you!”<br />
<strong>Dan</strong>: “It’s a desert topping, you cow!”<br />
<strong>Chevy</strong>: “Hey, hey, hey, calm down, you two. New Shimmer is both a floor wax and a dessert topping!”</p>
<p>I often get involved in a similar debate about SlickEdit&#8211;not about whether it is a floor wax or dessert topping&#8211;but whether it is an editor or an Integrated Development Environment (IDE). To answer this we need to examine a brief history of programming and the differences between editors and IDEs.</p>
<p><strong>A Brief History of Programming</strong><br />
The first evidence we have of man as programmer lies in the cave paintings in France. Some would have you believe that these are depictions recording daily prehistoric life. If you look more closely it becomes clear that these are really the first known examples of a written program.</p>
<p>The programming language is symbolic with a confusing syntax. What, today, we would write simply as:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">man.hunt(antelope);</div></td></tr></tbody></table></div>
<p>requires many more figures in this primitive programming language. Of course, there were no computers back then, so all programs had to be hand executed. This could explain why most of the programs were about hunting and dancing. These early cave programs were written with bits of charcoal and pigments made from plant extracts. Editing tools were utterly lacking.</p>
<p>Another prominent example of early programming is seen in Egypt during the reign of the pharaohs. While some hieroglyphs may, indeed, be a form of writing, some we now know were early programs. This is particularly true of the large obelisks carved by the Egyptians. These were intended to be inserted into a large, obelisk-shaped reader. Unfortunately, no examples of these early peripherals still exist. As with many stone computers, they were disassembled and reconfigured into items more practical in those times, such as homes, restaurants, and parking garages.</p>
<p>The Egyptians’ programming language, called Osiris (later replaced by Osiris++), uses several abstract symbols that are combined to represent a larger set of programming concepts. In fact, the Egyptians were the first to introduce the concept of the variable, as seen in this example:</p>
<p><a rel="lightbox[pics122]" href="http://blog.slickedit.com/wp-content/uploads/2007/08/hieroglyphs.JPG" title="hieroglyphs.JPG"><img width="200" src="http://blog.slickedit.com/wp-content/uploads/2007/08/hieroglyphs.thumbnail.JPG" alt="hieroglyphs.JPG" height="65" class="imageframe imgalignleft" /></a></p>
<p>Though no interpreters from that time still exists, it’s largely believed that this statement translates into:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">int i = 0;</div></td></tr></tbody></table></div>
<p>Again, the Egyptians had little in the way of editing tools. Programs were typically written with a hammer and chisel, making undo a very time consuming operation. They did, however, introduce the earliest use of whiteboards in the form of clay tablets, which allowed them to prototype code in a more forgiving form.</p>
<p>There isn’t time for a comprehensive history of programming, so we’ll have to skip over the early Greek and Roman programmers, who used Scroll 1.0 to write their programs, and frontier programmers in the early American west, who whittled their programs out of wood. We’ll skip past systems where you toggled programs into the front panel in binary and those using paper tape or punch cards.</p>
<p>The modern era of programming began in 19-mumble-mumble with the advent of the teletype. With these systems you had access to your full program and could readily extend and modify it. Editing was done a line at a time, so these editors were called “line editors”. You would print a range of lines, then type a command to insert or alter a line.</p>
<p>Teletypes were just an evolutionary bridge to the console, early CRT systems that displayed your code electronically. With consoles, the first visual editors were created. These editors displayed a page of code and allowed you to move a cursor within the file. Editing could be done simply by positioning the cursor and inserting or overwriting characters.</p>
<p>Contemporary editors share many characteristics with these early editors. They have added features like syntax highlighting, Graphical User Interfaces, window management, and a host of other features, but the process of writing code is fundamentally the same. Typically, these editors are file-oriented. You open a file, make changes, and save the file. All other activities are performed by programs or utilities launched from a command line or shell.</p>
<p>Integrated Development Environments group the related development activities into a single…well…integrated development environment. This is generally considered to be more convenient because it allows previously separate utilities to interact.</p>
<p>An IDE generally has 4 main components:</p>
<ol>
<li>An editor—something providing the heretofore described ability to write code.</li>
<li>A project/build system—something that knows about the set of files in your project and allows you to launch a build on these files.</li>
<li>A compiler or interpreter—that allows you to build and execute your program.</li>
<li>A debugger—that allows you to step through your code and examine values.</li>
</ol>
<p>Typically, an IDE will also provide a number of code/object browsers, integration with source control tools, and other utilities related to programming.</p>
<p>Interaction between the editor and the other components in the IDE provides key points of efficiency not available using standalone editors:</p>
<ul>
<li>The project/build system provides the knowledge of the available files and symbols in the program. Using this information you can browse to open files and use powerful completions while typing. This saves keystrokes, prevents wasted time looking up functions and methods, and reduces the number of compile errors.</li>
<li>Integration with the compiler allows an IDE to launch a build and gather the results of the build. Programmers can quickly step through the errors and navigate to the source code for that error. With a standalone editor, you must manually open files and execute an operation to go to the specified line.</li>
<li>Integration with the debugger allows you to set breakpoints from within the editor and view the code in the editor as you step through the code. Though similar capabilities are available in standalone debuggers, the code will be displayed differently, often without or with different color coding (sometimes called syntax highlighting). Once you are used to reading code in color, any alternate presentation slows your comprehension.</li>
</ul>
<p><strong>Different Strokes for Different Folks?</strong><br />
So, obviously, the IDE has completely supplanted the visual editor, right? No, for a number of reasons some users still prefer to use editors rather than IDEs. Emacs and vi (and their descendents) are the two most common examples of these.</p>
<p>One reason some people prefer a standalone editor is that IDEs tend to be very GUI-oriented, providing graphical mechanisms to launch operations. Standalone editors tend to be command-oriented, providing comprehensive key bindings to initiate operations. Using commands and key bindings is a big boost to programming efficiency, compared to the time lost grabbing the mouse and selecting things.</p>
<p>The editors in IDEs are often less powerful than the standalone editors. When all you do is write an editor, you can focus on the kind of power programmer operations that really improve programming efficiency. Developers of IDEs have to split their time between the editor and all of the other elements in the environment.</p>
<p>The choice of platform also makes a difference. Use of standalone editors is far more common on UNIX and Linux systems than on MS Windows or the Apple Macintosh. UNIX and Linux users are typically more comfortable writing scripts to automate builds and process results. They see the OS as the integrated environment.</p>
<p>Even with these reasons, users of standalone editors are missing out on those key points of efficiency that come with an IDE. That’s why the descendents of standalone editors, like Vim and GNU Emacs, have been adding more of those capabilities.</p>
<p><strong>So What the Heck is SlickEdit?</strong><br />
SlickEdit looks and works like an IDE, but we call ourselves an editor. This is because we don’t include a compiler or a debugger with SlickEdit. It’s also because we place our emphasis on the editor. SlickEdit is a command-oriented, keyboard-centric editor. In fact, SlickEdit began as a powerful visual editor that grew to include the most essential IDE capabilities.</p>
<p>Though we don’t include a compiler and a debugger(iii), we work with commonly available compilers and debuggers. If you have installed the GNU C/C++ tool chain, a Java JDK, or Microsoft Visual Studio, then SlickEdit works like an IDE, providing the key integrations described previously. SlickEdit detects the presence of these tools and interacts with them inside the SlickEdit environment(ii).</p>
<p>So, is SlickEdit a great editor that works like an IDE, or is it an IDE with a great editor? Like the Shimmer product in the SNL skit, SlickEdit is both.</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
i: http://snltranscripts.jt.org/75/75ishimmer.phtml<br />
ii: SlickEdit launches the Visual Studio debugger in a separate window.<br />
iii: SlickEdit does include a copy of GDB to insure compatibility.</p>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Fblog.slickedit.com%2F2007%2F08%2Feditor-or-ide%2F';
  addthis_title  = 'Editor+or+IDE%3F';
  addthis_pub    = '';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://blog.slickedit.com/2007/08/editor-or-ide/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SlickEdit 2007 For Windows Development</title>
		<link>http://blog.slickedit.com/2007/08/slickedit-2007-for-windows-development/</link>
		<comments>http://blog.slickedit.com/2007/08/slickedit-2007-for-windows-development/#comments</comments>
		<pubDate>Thu, 09 Aug 2007 14:56:51 +0000</pubDate>
		<dc:creator>Matthew E</dc:creator>
				<category><![CDATA[Code Editors]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[SlickEdit Products]]></category>

		<guid isPermaLink="false">http://blog.slickedit.com/?p=103</guid>
		<description><![CDATA[You&#8217;ve got Visual Studio®, and you mostly write applications for Windows. So why would you need SlickEdit? SlickEdit can read most Visual Studio solution and project files, and can pinch hit nicely for Visual Studio. If you just need to load up a project, make some edits, check some files in and out of source [...]]]></description>
			<content:encoded><![CDATA[<p>You&#8217;ve got Visual Studio<sup>®</sup>, and you mostly write applications for Windows. So why would you need SlickEdit? SlickEdit can read most Visual Studio solution and project files, and can pinch hit nicely for Visual Studio. If you just need to load up a project, make some edits, check some files in and out of source control, and kick off a build, you can do all this in SlickEdit.<br />
But where SlickEdit really shines is helping you organize and edit all of that code you&#8217;ve got that doesn&#8217;t fit neatly into an application project. It all starts with using SlickEdit&#8217;s flexible and customizable project system in combination with other time-saving features.</p>
<p><strong>Managing Builds</strong></p>
<p style="float: right; margin: 0px 0px 10px 10px">Schema URL Mappings<br />
 <a rel="lightbox[pics103]" href="http://blog.slickedit.com/wp-content/uploads/2007/08/urlmappings.jpg" title="urlmappings.jpg"><img width="200" src="http://blog.slickedit.com/wp-content/uploads/2007/08/urlmappings.thumbnail.jpg" alt="urlmappings.jpg" height="103" class="imageframe imgalignleft" /></a></p>
<p>We&#8217;ve been using CruiseControl.NET and NAnt for nightly builds of our products. Both technologies use an XML file format. SlickEdit&#8217;s XML features include Auto-completion of tags and attributes, gleaned from the definitions in XSD schemas. Visual Studio also has an excellent XML editing experience, but SlickEdit allows you to customize what specific XSD schemas are used for a particular XML namespace declaration. CruiseControl.NET does not distribute an &#8220;official&#8221; schema for their namespace, mostly because the CruiseControl syntax is extensible with a plug-in architecture. By using Microsoft&#8217;s XML tools I was able to take my existing CruiseControl project files and generate a starter schema. SlickEdit&#8217;s URL Mappings allow me to then use that custom schema for document validation and auto-completion.</p>
<p>In an effort to reduce redundant code and reduce the size of the NAnt source files, many common properties and tasks used by multiple projects have been broken out into a series of include files. However, locating a property or task that is defined in an external file usually requires<a rel="lightbox[pics103]" href="http://blog.slickedit.com/wp-content/uploads/2007/08/alias.jpg" title="alias.jpg"></a> a multi-file search.</p>
<p style="float: right; margin: 0px 0px 10px 10px">Regex Evaluator<br />
<a rel="lightbox[pics103]" href="http://blog.slickedit.com/wp-content/uploads/2007/08/regexeval.jpg" title="regexeval.jpg"><img width="200" src="http://blog.slickedit.com/wp-content/uploads/2007/08/regexeval.thumbnail.jpg" alt="regexeval.jpg" height="171" class="imageframe imgalignleft" /></a></p>
<p>By using the SlickEdit Regex Evaluator I was able to craft a regular expression to search for task and property definitions. Once the expression was ready, I created a macro in Slick-C (SlickEdit&#8217;s C-like macro language)(<a href="http://blog.slickedit.com/?page_id=108">snippet</a>) to search for the word at the cursor in the current NAnt build file and any included build files. Now I have instant search across multiple files when the definition of a property or target eludes me.</p>
<p><strong>Building Installers with WIX (Windows Installer XML)<br />
</strong>WIX is an open-source toolkit from Microsoft for building Windows Installer .msi files. It too uses an XML file format. There are tools available in Wix for getting your project started and compiling your list of files to be installed, but authoring an installer still requires quite a bit of hand-editing the XML source. I use SlickEdit&#8217;s Aliases feature to provide <a href="http://blog.slickedit.com/wp-content/uploads/2007/08/aliascall.jpg">completion of code snippets </a>for commonly used Wix XML constructs. Aliases go well beyond simple insertion of prewritten code. You can configure an alias to format and auto-indent the new text, set the initial editing position, and prompt for replacement parameters.<strong> </strong></p>
<p style="float: right; margin: 0px 0px 10px 10px"><strong>Defining Aliases<br />
</strong><a rel="lightbox[pics103]" href="http://blog.slickedit.com/wp-content/uploads/2007/08/alias.jpg" title="alias.jpg"><strong><img width="200" src="http://blog.slickedit.com/wp-content/uploads/2007/08/alias.thumbnail.jpg" alt="alias.jpg" height="155" class="imageframe imgalignleft" /></strong></a></p>
<p>All of the code for the installer is placed in a custom SlickEdit project. A custom project allows you to create as many organizational folders as you need, optionally organized by physical directories or file extensions. The real power in SlickEdit projects is the ability to define custom build steps to call external tools. Since this project invokes quite a few NAnt build targets, I <a href="http://blog.slickedit.com/wp-content/uploads/2007/08/buildmenu.jpg">customized the build menu</a> by adding <a href="http://blog.slickedit.com/wp-content/uploads/2007/08/projprops.jpg">new build tools</a> to the project. These allow me to invoke NAnt to execute the build targets and display the output in the build window.</p>
<p><strong>Dabbling in PHP and MySQL, with a Side of PowerShell</strong><br />
A year or so ago, I worked on a side project to develop a content management website using PHP and MySQL. The application had to work with Internet Explorer, Firefox, and Safari browsers. Using SlickEdit allowed me to create a single project to organize the code and work with the Subversion repository located on a remote Linux hosting account. And I was able to edit the code on both a Windows XP tablet PC and my MacBook as the custom project format is identical on Windows and *Nix platforms. Customizing the project&#8217;s build commands allowed me to add shortcuts for opening pages in multiple browsers, execute MySQL scripts one the database, and transfer files via FTP to my remote hosting account.</p>
<p style="float: right; margin: 0px 0px 10px 10px">PowerShell Syntax<a href="slickedit_win/PowerShell.jpg"><br />
</a><a rel="lightbox[pics103]" href="http://blog.slickedit.com/wp-content/uploads/2007/08/powershell.jpg" title="powershell.jpg"><img width="200" src="http://blog.slickedit.com/wp-content/uploads/2007/08/powershell.thumbnail.jpg" alt="powershell.jpg" height="163" class="imageframe imgalignleft" /></a></p>
<p>SlickEdit supports dozens of languages out of the box, and has the ability to quickly add your own user-defined highlighting schemes or modify existing ones. I found that the default listing of SQL keywords didn&#8217;t include some of the MySQL keywords, but they were <a href="http://blog.slickedit.com/wp-content/uploads/2007/08/syntax.jpg">easy enough to add</a> via the Color Coding options dialog.</p>
<p>For the past year or so I&#8217;ve been using PowerShell in place of cmd.exe, and steadily building a library of scripts to automate routine tasks. But it just didn&#8217;t seem right that such a neat shell language should have to be edited without any syntax highlighting. With SlickEdit, this was easily solved. To <a href="http://blog.slickedit.com/wp-content/uploads/2007/08/powershell.jpg">set up color coding</a> for PowerShell, all I had to do was create a new language definition, specify the comment format, and add a list of keywords.</p>
<p><strong>No Code Left Behind</strong><br />
These examples only begin to scratch the surface of the features available in SlickEdit. Your code or build process doesn&#8217;t have to be a second-class citizen just because it doesn&#8217;t fit neatly into Visual Studio. For all those times you have to &#8220;just edit it in notepad&#8221; or &#8220;run this tool from the commandline&#8221;, think of how SlickEdit could save you time and hassle.</p>
<p><strong>Download Free Trial</strong></p>
<p>You can download a free trial of Slickedit 2007 here: <u><a href="http://www.slickedit.com/content/view/409/239/">SlickEdit Trial</a></u></p>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Fblog.slickedit.com%2F2007%2F08%2Fslickedit-2007-for-windows-development%2F';
  addthis_title  = 'SlickEdit+2007+For+Windows+Development';
  addthis_pub    = '';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://blog.slickedit.com/2007/08/slickedit-2007-for-windows-development/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The Font Tournament</title>
		<link>http://blog.slickedit.com/2007/08/the-font-tournament/</link>
		<comments>http://blog.slickedit.com/2007/08/the-font-tournament/#comments</comments>
		<pubDate>Tue, 07 Aug 2007 12:49:21 +0000</pubDate>
		<dc:creator>Dennis B</dc:creator>
				<category><![CDATA[Code Editors]]></category>
		<category><![CDATA[Productivity]]></category>

		<guid isPermaLink="false">http://blog.slickedit.com/?p=101</guid>
		<description><![CDATA[Here we are in the worst time of the year, that time after hockey season ends and before football season begins. The time of nothingness, boredom, spelling bees on ESPN2.
So, what do sports fans do during this down time. If they are desperate, they watch tennis, really desperate, maybe try to get into watching a [...]]]></description>
			<content:encoded><![CDATA[<p>Here we are in the worst time of the year, that time after hockey season ends and before football season begins. The time of nothingness, boredom, spelling bees on ESPN2.</p>
<p>So, what do sports fans do during this down time. If they are desperate, they watch tennis, really desperate, maybe try to get into watching a soccer game. But, if you are exceedingly desperate, you invent a new tournament sport.</p>
<p><strong>The Single Elimination Font Championship</strong></p>
<p>It&#8217;s hard to pick a really good programming font. There are a lot of fonts out there, just google for &#8220;programming font&#8221; and you will find a lot of really great fonts, and a lot of really weird fonts. But how do you pick the best font?</p>
<p>Here is my grudge about font selection dialogs. They work in one of two ways:</p>
<ol>
<li>They will only show you one font at a time.</li>
<li>They display the list of fonts in the font itself.This seems like a nice visual solution, except that it makes it impossible to<br />
decipher the font name of a symbol font or foreign language font.</li>
</ol>
<p>Finding a good programming font seems to involve a lot of trial and error. Some fonts look great in the font dialog, but do not look very good in practice. Sometimes it is hard to read vertical spacing from the font dialog. Sometimes, the plain font looks great, but it&#8217;s italic or bold variant is horrid, and you do not notice that until you are using the font in your editor.</p>
<p>In this article, I am going to outline a design for a new paradigm for font selection that overcomes some of these issues, including the problem with there being no sports on TV.</p>
<p>Picking the contestants</p>
<p>The first step is to select a set of candidate fonts. This is where you use a traditional font dialog, with one modification to the font list: checkboxes so you can pick which fonts will participate in the tournament.</p>
<p><strong>The Playoff&#8217;s</strong></p>
<p>Once you have a set of contestants, you begin the playoffs. The fonts are assigned randomly into a single-elimination bracket. A slightly more thorough variation of the system could use double-elimination brackets, but I don&#8217;t believe it&#8217;s really necessary.</p>
<p>The font contests are head-to-head. You are shown a big dialog with both fonts, their names, a size selector, and six samples side-by-side:</p>
<ol>
<li>The plain font with programmer-friendly sample text:
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">== Line before ==<br />
Aa_Bb_Cc = (l1 + O0);<br />
== Line after ==</div></td></tr></tbody></table></div>
</li>
<li>The font in bold with the same text.</li>
<li>The font in italic with the same text.</li>
<li>The font in bold and italic with the same text.</li>
<li>The font in underline with the same text.</li>
<li>An editor control with your color scheme displaying code<br />
in a language of your choice where you can paste in your<br />
own text to see.</li>
</ol>
<p>Then you select the font that you like better, and move on to the next contest. The fundamental principal is that while it may be hard to select a favorite font from a list of 100 fonts, most programmers can look at <em>two</em> fonts and pick one that they like better than the other.</p>
<p>The brackets are played out until you reach the championship round and select one favorite programming font, which you will then have the opportunity to assign the champion as your default source window font in SlickEdit. Playing out the brackets with a single-elimination tournament requires (N -1) contests where N is the number of candidate fonts participating in the tournament. Even with a huge field of 50 fonts, you could finish in 15 minutes, and you would know that the font you are using is a champion. Which will leave you plenty of time to catch that spelling bee later on ESPN2.</p>
<p><strong>Conclusion</strong></p>
<p>&#8220;It&#8217;s so crazy, it just might work.&#8221;</p>
<p>This is merely a design sketch for a font tournament system. It&#8217;s not a feature that is being developed or even in the works, just an idea. If some industrious SlickEdit user wanted to exercise his/her Slick-C skills, it would be quite easy to implement, and would be a really great user-contributed batch macro.</p>
<p>I mean, what else are you going to do with your time? It&#8217;s not like there&#8217;s any sports on TV.</p>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Fblog.slickedit.com%2F2007%2F08%2Fthe-font-tournament%2F';
  addthis_title  = 'The+Font+Tournament';
  addthis_pub    = '';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://blog.slickedit.com/2007/08/the-font-tournament/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Programming Language Wars</title>
		<link>http://blog.slickedit.com/2007/07/programming-language-wars/</link>
		<comments>http://blog.slickedit.com/2007/07/programming-language-wars/#comments</comments>
		<pubDate>Wed, 18 Jul 2007 13:31:15 +0000</pubDate>
		<dc:creator>Scott Westfall</dc:creator>
				<category><![CDATA[Code Editors]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://blog.slickedit.com/?p=95</guid>
		<description><![CDATA[Human beings love to argue. Whether the argument is about boxers vs. briefs, ketchup vs. mustard, or Ginger vs. Mary Ann, people will take a position and argue.
I don’t know if it is a uniquely human trait or a natural consequence of any intelligent beings that develop language. Some say that dolphins have sophisticated communication [...]]]></description>
			<content:encoded><![CDATA[<p>Human beings love to argue. Whether the argument is about boxers vs. briefs, ketchup vs. mustard, or Ginger vs. Mary Ann, people will take a position and argue.</p>
<p>I don’t know if it is a uniquely human trait or a natural consequence of any intelligent beings that develop language. Some say that dolphins have sophisticated communication abilities. If so, they could be swimming around discussing all kinds of topics,</p>
<p>“Isn’t the water chilly, today, George?”<br />
“Actually, I think it’s gotten a bit warmer due to that global warming I keep hearing about.”</p>
<p>Or they could be swimming around arguing, the way humans do.</p>
<p>“Herring.”<br />
“No way! Anchovies!”<br />
“I’m telling you, herring is way better than anchovies.”</p>
<p>This trait is particularly common among programmers. Classic arguments include big endian versus little endian, indexing arrays beginning with 1 or 0, and which language is best. While the other debates have subsided a bit, the argument over which language is best seems to have heated up.</p>
<p>I’ve read a lot of articles lately where the author compares two languages in an effort to show why his favorite is superior. Often, these articles make it clear that only an intoxicated moron would use the language he so clearly shows to be inferior to his. Often, this superiority is established by showing features lacking in the one language. Sometimes they try to demonstrate superiority by accusing a language of being verbose and showing how the same thing can be achieved in fewer characters in the other language.</p>
<p><strong>Fundamental Theorem of Programming Languages</strong><br />
In order to analyze programming languages, you first need to understand why they exist. I offer my fundamental theorem of programming languages: Programming languages exist to make computer programs understandable to humans.</p>
<p>Modern computers execute machine instructions that are represented in binary. Programming languages were created to overcome limitations in human cognitive abilities. It’s just plain hard for us to look at 1s and 0s and make sense of a program. So we created abstractions that make it easier for us to express and understand the actions we want the computer to perform.</p>
<p>Any comparison of languages should examine the abstractions they provide to facilitate human understanding of the program.</p>
<p><strong>Second Theorem of Programming Languages</strong><br />
The second theorem is closely related to the first: If programmers do not understand a piece of code, they will either break it or rewrite it.</p>
<p>More important than how quickly you could write the code is how quickly someone else will be able to understand it later. This principle can be called “obviousness”.</p>
<p>An example of this principle occurs in languages that don’t require variables to be declared before they are used:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">parm=10;</div></td></tr></tbody></table></div>
<p>How can I tell if this line of code is correct? Maybe this line was supposed to use “param” instead of “parm”. I can only tell this by reading the rest of the code. The compiler (if this was a compiled language) would be no help, since this is perfectly legal. This minor typo, which is easily caught in some languages, can be very difficult to find in others.</p>
<p>You might be surprised how many times you have to look at the code to even notice this problem, even when you know the problem is in this unit. A common problem in proofreading is that you see what you expect to see not what you actually sea (sic).</p>
<p><strong>Third Theorem of Programming Languages</strong><br />
My third theorem goes as follows: No single programming language is equally suited to all programming tasks.</p>
<p>If all languages contained the exact same set of abstractions, they would differ only in minor syntactic ways. Then all languages would be equally applicable to all programming tasks, and we could analyze languages merely by comparing the effectiveness of the syntax chosen.</p>
<p>Things to consider when choosing the language to use:</p>
<ul>
<li>Normal stuff—performance, compatibility with existing code or libraries, …</li>
<li>Size of the team—I can staff a large project with competent Java programmers much more easily than with similarly capable C++ programmers (measured in how likely the code performs the intended action without unintended problems).</li>
<li>Size of the code—a short script allows you to forgo many of the heavy-handed mechanisms or processes that are helpful in larger programs. Some say that the usefulness of Perl decreases rapidly as the number lines in the code increases.</li>
<li>Longevity of the code—if the code is to be used and maintained for a long period of time, coding in a language that clearly expresses intent is much more important. See the Second Theorem of Programming Languages.</li>
<li>Domain—what does the program do? Certainly I would make a different choice in languages if I need to write a real-time operating system kernel versus writing a GUI-oriented web application.</li>
</ul>
<p><strong>Tool Support</strong><br />
One last thing to consider when choosing a language is tool support. The right editor can often make a bigger difference in your productivity than the syntax of the language. Can an editor readily provide completions for the language you are considering? If you are typing every character in your program, you aren’t nearly as productive as someone who makes effective use of completions. How easy is the language to parse? Can a program readily provide type analysis? This will determine how easily tools can be developed to support the language.</p>
<p>At SlickEdit, we’re in the business of helping you write code. I speak from experience when I say that some languages seem to go out of their way to make it hard on us. Whether you’re picking the language for your next project or designing a new language, please keep these principles in mind.</p>
<p>&#8211;Scott Westfall</p>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Fblog.slickedit.com%2F2007%2F07%2Fprogramming-language-wars%2F';
  addthis_title  = 'Programming+Language+Wars';
  addthis_pub    = '';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://blog.slickedit.com/2007/07/programming-language-wars/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Learning to Fly: The Musings of a New SlickEdit Employee</title>
		<link>http://blog.slickedit.com/2007/06/learning-to-fly-the-musings-of-a-new-slickedit-employee/</link>
		<comments>http://blog.slickedit.com/2007/06/learning-to-fly-the-musings-of-a-new-slickedit-employee/#comments</comments>
		<pubDate>Tue, 26 Jun 2007 12:44:57 +0000</pubDate>
		<dc:creator>Sandra</dc:creator>
				<category><![CDATA[Code Editors]]></category>

		<guid isPermaLink="false">http://blog.slickedit.com/?p=96</guid>
		<description><![CDATA[I first started using SlickEdit when I started a new job. It was first on a long list of programs that I would need to install to set up my development machine. I was also handed a SlickEdit travel coffee mug and a SlickEdit t-shirt. My first experience with SlickEdit, the editor, was when I [...]]]></description>
			<content:encoded><![CDATA[<p>I first started using SlickEdit when I started a new job. It was first on a long list of programs that I would need to install to set up my development machine. I was also handed a SlickEdit travel coffee mug and a SlickEdit t-shirt. My first experience with SlickEdit, the editor, was when I started with SlickEdit, the company.</p>
<p>I was excited to start using SlickEdit, because I&#8217;d heard about all the fancy features during the interview process. I&#8217;d browsed through the forums and seen the kind of devotion the product had garnered. I&#8217;d seen some of the SlickTeam coding like mad men, windows opening and closing, text disappearing and appearing somewhere else, all faster than I could follow, all without my favorite crutch, the mouse. But when I actually sat down to start coding my first tasks, it seemed I had two left hands. Using SlickEdit for the first time feels a bit like driving an airplane on the highway. Sure, you can get to work with all the rest of the sedans and minivans, but the whole time, you get the feeling that there&#8217;s something more that you&#8217;re just not sure how to access. So you try a button, maybe you read the manual a little bit, and slowly you pick up new tricks. All the while you have to force yourself to use those tricks before they fade away into the abyss of That Thing You Learned That One Time.</p>
<p>My coworkers, the SlickTeam, were all too willing to show me the power of their product. The slogan of my first week could have been &#8220;Well, that&#8217;s <em>one</em> way to do it,&#8221; as each person chimed in favorite features and tools and explained why those were better than the ones the previous person had outlined. People outside the coding world would never understand the passion that can be evoked about things like aliases, brace styles, and syntax expansion. At the end of it all, I would have been glad to remember one tip from each person. Still, it&#8217;s keep your head down, use the command line, code code code, don&#8217;t touch that mouse. It&#8217;s harder to learn to fly an airplane than drive a car, but I daresay it&#8217;s worth the effort once you&#8217;re in the air.</p>
<p>I&#8217;m catching on, surely, but too slowly for my tastes. Every time I reach for my old friend the mouse, I feel like I&#8217;ve somehow let someone down. Every time I navigate through the extensive codebase that is SlickEdit, I know that there is probably a much easier way to find whatever it is I&#8217;m looking for, because this is a product built by impatient programmers. But I will figure it out. And someday I will regard some new member of the SlickTeam as he takes the long way around, then I&#8217;ll interrupt and say, &#8220;Well, that&#8217;s <em>one</em> way to do it.&#8221;</p>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Fblog.slickedit.com%2F2007%2F06%2Flearning-to-fly-the-musings-of-a-new-slickedit-employee%2F';
  addthis_title  = 'Learning+to+Fly%3A+The+Musings+of+a+New+SlickEdit+Employee';
  addthis_pub    = '';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://blog.slickedit.com/2007/06/learning-to-fly-the-musings-of-a-new-slickedit-employee/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SlickEdit Offers Help to All CodeWright Orphans</title>
		<link>http://blog.slickedit.com/2007/04/slickedit-offers-help-to-all-codewright-orphans/</link>
		<comments>http://blog.slickedit.com/2007/04/slickedit-offers-help-to-all-codewright-orphans/#comments</comments>
		<pubDate>Tue, 24 Apr 2007 16:06:00 +0000</pubDate>
		<dc:creator>Scott Westfall</dc:creator>
				<category><![CDATA[Code Editors]]></category>
		<category><![CDATA[SlickEdit Products]]></category>

		<guid isPermaLink="false">http://blog.slickedit.com/?p=5</guid>
		<description><![CDATA[Many CodeWright® orphans were created when Borland® announced that they would no longer develop or support CodeWright. It’s a sad sight, these poor urchins wandering the streets in search of support. “Pardon me, sir, but could you spare a bug fix?” SlickEdit® offers a solution for those who want a powerful code editor that is [...]]]></description>
			<content:encoded><![CDATA[<p>Many CodeWright<sup>®</sup> orphans were created when Borland<sup>®</sup> announced that they would no longer develop or support CodeWright. It’s a sad sight, these poor urchins wandering the streets in search of support. “Pardon me, sir, but could you spare a bug fix?” SlickEdit<sup>®</sup> offers a solution for those who want a powerful code editor that is actively being developed and supported.</p>
<p>While no editor can offer the exact same set of capabilities as another, SlickEdit provides more of the powerful editing features that CodeWright users are accustomed to than any other editor…and some that CodeWright users never had before, like Comment Wrapping, Backup History, and the Regular Expression Evaluator.<br />
 <br />
No programmer relishes the thought of switching editors. After using an editor for years, the key sequences and operations become second nature. To ease this migration, SlickEdit offers a CodeWright emulation that uses the same key bindings for common operations and provides default behaviors familiar to CodeWright users. This makes you productive right away on SlickEdit.</p>
<p>A PDF of the CodeWright emulation is available at <a href="http://www.slickedit.com/images/stories/products/slickedit/emulation_charts/codewright_emulation.pdf"><strong>http://www.slickedit.com/codewright</strong></a>.</p>
<p>SlickEdit also provides a utility that converts CodeWright workspaces and projects into SlickEdit workspaces and projects. Each CodeWright .psp file is converted to a corresponding SlickEdit .vpw file. Likewise, the CodeWright .pjt files are converted to SlickEdit .vpj files. While this utility doesn’t convert all commands or options, it does save a lot of time setting up the project structure in SlickEdit. The CodeWright project converter is implemented as a Slick-C macro file.</p>
<p>To download it, go to <a href="http://www.slickedit.com/content/view/432"><strong>http://www.slickedit.com/codewright</strong></a>.</p>
<p>Follow these instructions to load the file:<br />
1. Save the file to any directory.<br />
2. Open SlickEdit.<br />
3. Select Help &gt; Product Updates &gt; Load Hot Fix.<br />
4. Navigate to the saved zip file, select it, and click OK.</p>
<p>Once loaded, you run the converter by selecting Project &gt; Open Other Project &gt; Convert CodeWright Project. Or you can run it from the SlickEdit command line. Press F9 (in the CodeWright emulation) to bring up the SlickEdit command line. Type: <span style="font-size: 10pt; font-family: Courier">convert_cw_project –o</span>Then press Enter. The ‘o’ option tells the converter to open the newly converted workspace. CodeWright users, you have a new home!</p>
<p><strong>Visit </strong><a href="http://www.slickedit.com/2007"><strong>www.slickedit.com/2007</strong></a><strong> to download a free trial today!</strong></p>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Fblog.slickedit.com%2F2007%2F04%2Fslickedit-offers-help-to-all-codewright-orphans%2F';
  addthis_title  = 'SlickEdit+Offers+Help+to+All+CodeWright+Orphans';
  addthis_pub    = '';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://blog.slickedit.com/2007/04/slickedit-offers-help-to-all-codewright-orphans/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>$300 Is Free</title>
		<link>http://blog.slickedit.com/2007/04/300-is-free/</link>
		<comments>http://blog.slickedit.com/2007/04/300-is-free/#comments</comments>
		<pubDate>Tue, 17 Apr 2007 16:10:32 +0000</pubDate>
		<dc:creator>Scott Westfall</dc:creator>
				<category><![CDATA[Code Editors]]></category>

		<guid isPermaLink="false">http://blog.slickedit.com/?p=6</guid>
		<description><![CDATA[No, sorry, we’re not giving away money. But you could say we are giving away time, time in the form of increased productivity.
Customers evaluating SlickEdit® sometimes note that there are cheaper editors out there and that $300 seems like a lot to pay for an editor. Yes, you can pay less for an editor—some are [...]]]></description>
			<content:encoded><![CDATA[<p>No, sorry, we’re not giving away money. But you could say we are giving away time, time in the form of increased productivity.</p>
<p>Customers evaluating SlickEdit<sup>®</sup> sometimes note that there are cheaper editors out there and that $300 seems like a lot to pay for an editor. Yes, you can pay less for an editor—some are actually free. But focusing on price is missing the most important aspect of an editor: how it can make you more productive.</p>
<p>Rather than asking whether there is a cheaper editor available, you should ask whether there is a better editor available. The right tool will always deliver more than enough time savings to pay for itself. If not, you should look for another tool.</p>
<p><strong>Professional Tools<br />
</strong>As a programmer, the editor is the main tool of your trade. The editor is to the programmer what the tennis racquet is to the tennis player or golf clubs to the golfer. Do you think Tiger Woods cares whether there is a cheaper set of golf clubs out there? OK, Tiger can afford any clubs he wants, but professional players are sure to have the equipment they need to be competitive. Should you do any less?</p>
<p>No other tool contributes more to your productivity and effectiveness than your editor. So by choosing a less capable editor, you are really choosing to make yourself less capable, to get less done in a given measure of time. If you’re being paid by the hour, that may be fine. Maybe you have one of those jobs where you can just code as you like and turn things in when they are ready to go. The rest of us, who are on a salary with challenging milestones, know that we are the ones who have to put in the late nights to get things done on time. In that situation, you want the tool that will help you get more done, faster.Not all editors are alike. If they were, you could make a decision solely on the basis of price. The right editor will not only increase your productivity, it will reduce your frustration. Much of what’s involved in programming is tedious, busy work. SlickEdit allows you to focus on what the code should do while it handles many of the boring, clerical tasks.</p>
<p>As a professional programmer, you have an investment in the knowledge and skills you have built. This knowledge is not limited to just the programming languages and techniques you use. It includes your mastery of programming tools. As the primary tool of your trade, you should have a special command of your editor.</p>
<p><strong>Return on Investment</strong><br />
Only you can calculate a true return on investment for your work patterns. However, it’s easy to show that you don’t have to save much time to quickly make up for a $300 purchase. Assume an annual salary of $60,000, which is a conservative value for the average salary paid to programmers in the USA. Assuming a normal work year of 236 days and a normal work day of 8 hours, you have to save 1.6 minutes per day [i] to pay for SlickEdit in the first year of purchase.Here are some of the ways SlickEdit can help you save 1.6 minutes per day:</p>
<ul>
<li>It takes 30 seconds for Eclipse™ or Microsoft<sup>®</sup> Visual Studio<sup>®</sup> to open on my machine. The same project in SlickEdit opens in a second or two. So SlickEdit can save you that much time if you open your environment at least 3 times per day.</li>
<li>Our tagging engine allows you to instantly jump from a symbol to its definition with a single keystroke (Ctrl+Dot). In most editors, you have to either know the file and where it is stored or search for it. Then you have to scroll down or search for the function name. This process can easily take 30 seconds to a minute. So a couple of quick navigations per day will pay for SlickEdit. By the way, we also have a Symbol View that will preview the definition of the current symbol without having to open the file!</li>
<li>We have many features that cut down on the number of characters you have to type, like Syntax Expansion, which automatically completes block statements like if and for. Surround With quickly wraps the selected lines in a block statement. In a normal coding session, these will easily save you a couple minutes.</li>
<li>Code Templates automate the process of creating new classes or patterns. Powerful substitutions are run when a template is instantiated, easily saving you a minute or two on a simple class and several minutes on multi-file templates.</li>
<li>DIFFzilla<sup>®</sup>, our dynamic differencing tool allows you to compare files and edit them in the diff view, providing many of the same editing capabilities in our editor window. This saves wasted time re-running a diff after making changes.</li>
</ul>
<p>For a more complete list of the features we think will save you time and frustration, check out our Cool Features list on our website: http://www.slickedit.com/content/view/353/217, containing feature descriptions and demos showing those features in action.</p>
<p><strong>But My Company Won’t Buy Me an Editor</strong><br />
OK, you’re convinced. You want to buy a new editor. You’ve talked to your boss about the benefits and the added productivity, but your company won’t buy it for you. Well then, buy it yourself.You’re thinking, “Not only does this guy want me to spend $300 on an editor, but he wants me to buy it with my own money!” That’s right. As a professional programmer, your skill with your editor is as important as any other knowledge you possess. Purchasing an editor that makes you more capable is an investment in your career that can pay off in better reviews, higher salaries, and bonuses. Hey! Maybe we’re giving away money after all.</p>
<p><span style="font-size: 10pt; font-family: Garamond">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</span><span style="font-size: 10pt; font-family: Garamond"> <span style="font-size: 10pt; font-family: Garamond"><span style="font-size: 10pt; font-family: Garamond">[1] Calculation for minutes per day savings:<span style="font-size: 10pt; font-family: Garamond"><span style="font-size: 10pt; font-family: Garamond"> </span></span></span></span><span style="font-size: 10pt; font-family: Garamond"><span style="font-size: 10pt; font-family: Garamond"><span style="font-size: 10pt; font-family: Garamond"><span style="font-size: 10pt; font-family: Garamond"></p>
<table border="0" width="100%" cellPadding="0" cellSpacing="0" id="table1">
<tr>
<td vAlign="top" style="width: 35%"><span style="font-size: 10pt; font-family: Garamond">Minutes to Save per Day</span></td>
<td style="width: 65%"><span style="font-size: 10pt; font-family: Garamond">= (Price of SlickEdit® / Employee Cost per Minute) / Work Days per Year<br />
= ($299 / $0.79) / 236<br />
= 1.6 </span></td>
</tr>
<tr>
<td vAlign="top" style="width: 35%"><span style="font-size: 10pt; font-family: Garamond">Employee Cost per Minute</span></td>
<td style="width: 65%"><span style="font-size: 10pt; font-family: Garamond">= Fully Loaded Cost / (Work Days per Year * Minutes per Day)<br />
= $90,000 / (236 * 480)<br />
= $0.79 </span></td>
</tr>
<tr>
<td vAlign="top" style="width: 35%"><span style="font-size: 10pt; font-family: Garamond">Fully Loaded Cost</span></td>
<td style="width: 65%"><span style="font-size: 10pt; font-family: Garamond">= Annual Salary + Overhead<br />
= $60,000 + $30,000 </span></td>
</tr>
</table>
<p><span style="font-size: 10pt; font-family: Garamond"><span style="font-size: 10pt; font-family: Garamond">Overhead is the cost for benefits, equipment, training, facilities, and management. We use a conservative figure of 50% for overhead. Many websites say overhead is as high as 100% to 200%.<span style="font-size: 10pt; font-family: Garamond"><span style="font-size: 10pt; font-family: Garamond">This calculation assumes an annual salary of $60,000 per year, which is a conservative median salary for programmers in the USA. It assumes 236 work days per year based on 104 weekend days, 10 company holidays, 10 vacation days, and 5 sick days. It assumes a normal 8 hour work day, 480 minutes per day.</span></span></span></span></p>
<p></span></span></span></span></span></p>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Fblog.slickedit.com%2F2007%2F04%2F300-is-free%2F';
  addthis_title  = '%24300+Is+Free';
  addthis_pub    = '';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://blog.slickedit.com/2007/04/300-is-free/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Is Your Editor Working Hard Enough?</title>
		<link>http://blog.slickedit.com/2007/04/what-is-a-programmers-editor/</link>
		<comments>http://blog.slickedit.com/2007/04/what-is-a-programmers-editor/#comments</comments>
		<pubDate>Mon, 16 Apr 2007 16:30:45 +0000</pubDate>
		<dc:creator>Dennis B</dc:creator>
				<category><![CDATA[Code Editors]]></category>

		<guid isPermaLink="false">http://blog.slickedit.com/?p=7</guid>
		<description><![CDATA[A programmer&#8217;s editor is a text editor with features fine tuned for writing code. In this article we will explore the top 10 essential features of a programmer&#8217;s editor and how each one saves you time and energy.
* Color coding
* Syntax expansion
* Code navigation features
* List-members and function parameter information
* Comment and function documentation extraction
* [...]]]></description>
			<content:encoded><![CDATA[<p>A programmer&#8217;s editor is a text editor with features fine tuned for writing code. In this article we will explore the top 10 essential features of a programmer&#8217;s editor and how each one saves you time and energy.</p>
<p>* Color coding<br />
* Syntax expansion<br />
* Code navigation features<br />
* List-members and function parameter information<br />
* Comment and function documentation extraction<br />
* Syntax-driven auto-indentation<br />
* Macro recording and playback<br />
* Code snippets and other shortcuts<br />
* Integrated project build support<br />
* Multiple file and window support</p>
<p><strong>Color Coding<br />
</strong>Color coding is a language specific feature which allows the editor to display comments, keywords, strings, numbers, and other lexical elements using specific foreground and background colors as well as potentially using bold or italic fonts.</p>
<p><em>Argument</em><br />
&#8220;I don&#8217;t need my editor to look like Walt Disney lost his lunch.&#8221; &#8212; How do you find your car in a parking lot? Do you look at every car until you find your 1998 Camry with velvet blue interior, or do you look for a red sedan with a &#8220;My border collie is smarter than your honor student&#8221; bumper sticker. Color stands out; it helps you find things. You have a color monitor, why waste the potential?</p>
<p><em>Benefits<br />
</em>Color coding helps you distinguish comments from code. If that were all it did, that would be a great win, but it can do so much more. Color coding also helps you see immediately when you have mistyped a keyword, or if you have accidentally used a keyword as an identifier, or failed to terminate a string. This saves you many compile and edit cycles and lets you focus on what&#8217;s important.</p>
<p><em>Investment<br />
</em>There is very little investment to this feature; if anything, you may find yourself un-training your eyes because you do not have to read as much syntax to see comments vs. strings vs. code.</p>
<p><strong>Syntax Expansion</strong><br />
This feature completes statements for you so you only have to type the leading keyword such as &#8220;if&#8221; or &#8220;while&#8221; and the editor will insert the rest of the code for that statement in accordance with your brace style and indentation preferences.</p>
<p><em>Argument<br />
</em>&#8220;I&#8217;ve been coding for years; I type these statements without even thinking.&#8221; &#8212; This is true for many seasoned programmers, but the real question is why?</p>
<p><em>Benefits<br />
</em>For novice programmers, syntax expansion can save them time trying to remember how a particular statement is written. This is especially true for statement heavy languages such as COBOL. For all programmers, syntax expansion helps enforce coding consistency; it will always use your brace style and your indention preferences.</p>
<p><em>Investment<br />
</em>In fact, the investment to start using syntax expansion is just a matter of un-training your fingers to type the whole statement. Very quickly, you will get used to just typing &#8220;while&#8221; and then being ready to put in the loop condition.</p>
<p><strong>Syntax driven auto-indentation<br />
</strong>Auto-indentation will position your cursor at the expected indentation level when you split or open a new line so that you can start typing code immediately. A good implementation of auto-indentation will respect your tab preferences and either insert real tabs, spaces, or position the cursor on a virtual column without inserting unnecessary space. A very good implementation will handle more than just simple block scopes: it will also handle continuation indents, parameter lists, initialization lists, and splitting comments.</p>
<p><em>Argument<br />
</em>&#8220;I am very particular about indentation; I don&#8217;t trust the editor to do it for me.&#8221; &#8212; This is the sort of feature that must be configured to match your preferences. Once you configure it correctly, the editor will do the right thing more than 90% of the time. If it doesn&#8217;t, you are probably using the wrong editor, or in the worst case, can turn the feature off.</p>
<p><em>Benefits<br />
</em>Auto-indentation will save you time for every line of code you write. Furthermore, it will improve the consistency of your code.</p>
<p><em>Investment</em><br />
This feature requires no time to learn, but you may have to un-train your fingers to not lean on the space key every time after you hit enter.</p>
<p><strong>Code navigation<br />
</strong>A good implementation of code navigation turns your code into a hypertext. For any symbol in your code, you can jump to it&#8217;s declaration or definition in one keystroke. You can jump back to where you were in another keystroke.</p>
<p><em>Argument<br />
</em>&#8220;I don&#8217;t need this; I&#8217;ve memorized where everything is.&#8221; &#8212; That&#8217;s very impressive; let me know how that works out when you inherit a half-million lines of code you have never seen before.</p>
<p><em>Benefits</em><br />
A really good code navigation system makes file boundaries irrelevant, which make it possible for you to focus on the code, not what files the code is stored in. A good implementation does not just use the symbol&#8217;s name, but finds the symbol&#8217;s declaration or definition using the same language specific scoping rules that your compiler uses. A better implementation can also find all references to a symbol. An awesome implementation recognizes that when you navigate to a symbol and then pop back, it can close the file in order not to pollute your working set of open files.</p>
<p><em>Investment</em><br />
In terms of keyboard shortcuts, you need to learn three things: (a) the key to jump to the symbol under the cursor, (b) the key to see all references to the symbol under the cursor, and (c) the key to jump back. If you have not been using code navigation, you are probably finding symbols by manually opening files and poking around, or using grep or another multi-file search to find symbols. In terms of work habits, you may have to train yourself that there is an easier way to do things and use it.</p>
<p><strong>List members and function parameter information<br />
</strong>List members (referred to as Intellisense™ by Microsoft) will display a list of class members in the class when you type a member access operator such as &#8220;.&#8221; or &#8220;-&gt;&#8221; in C++. You can then pick one of the items from the list and the editor will insert it, or you can continue typing the name of the symbol and the list will be filtered down to include only symbols that match what you have typed.</p>
<p>Function parameter information is typically activated when you type the open parenthesis for a function call and will display the prototype for the function being called and highlight the current argument.</p>
<p><em>Argument<br />
</em>&#8220;Those things will just get in my way.&#8221; &#8212; A well designed implementation of list members and function parameter information will not get in your way. List members is typically displayed below the current line, left aligned to the cursor position. Function parameter information is typically displayed below the current line, aligned with the function name. The windows typically have minimal borders and are shrunk down to the minimal size to display the required information. A good implementation works hard to stay out of your way when coding.</p>
<p><em>Benefits<br />
</em>If you do not have list members, you will need to be very good at remembering the names of the members of the classes and structures that you use. Suppose you need to convert a STL string to a character pointer. You may remember that it is done using the &#8220;c_str()&#8221; method. You may have an STL reference manual on your desk and can spend five minutes looking it up. If you have list members, you type &#8220;.&#8221; and then scan through the list and see that &#8220;c_str()&#8221; returns &#8220;const char*&#8221; and remember that is the conversion function.</p>
<p>Likewise, function parameter information brings vital information to you when you need it. Suppose you need to call the standard C library function strncpy(), but you can not remember the order of the arguments. You could look it up in your C book, check MSDN or the man page. That&#8217;s fine if you have five minutes to burn. If you have parameter information, the prototype is displayed for you: &#8220;char* strncpy(char *, const char *, size_t)&#8221;, and you can see immediately that the first argument is the destination (by virtue of being char*), and the second argument is the source string, and the third argument is the max number of chars to copy.</p>
<p><em>Investment<br />
</em>Typically, these features are invoked automatically when you type open parenthesis or member access operators. You will also want to learn two keyboard shortcuts: one to bring up list members manually and one to bring up function help manually. This will be extremely valuable to you when you are editing established code.</p>
<p><strong>Comment and documentation extraction<br />
</strong>Comment and documentation extraction pulls documentation comments from your source code and displays them in conjunction with list members and function parameter information. Really good implementations of this feature will format JavaDoc and XMLdoc comments for you, and highlight function parameter documentation when displaying function parameter information.</p>
<p><em>Argument</em><br />
&#8220;What will I do with all these Java reference manuals?&#8221; &#8212; Build a giant pyramid in your cubical and declare yourself a Java deity.</p>
<p><em>Benefits<br />
</em>If your editor does not have this feature then when you need to see the documentation for a function, you either need to look it up in a reference manual, or jump to that function, read it, remember it, and then jump back to where you were working. Having this feature is like having a really good research assistant who brings exactly what you need directly to you exactly when you need it.</p>
<p>Another nice side-effect of having this feature is that it genuinely encourages you and your whole team to write better documentation comments in your code because you will be seeing them and using them on a regular basis.</p>
<p><em>Investment</em><br />
This feature is typically completely automated.</p>
<p><strong>Macro recording and playback<br />
</strong>This facility allows you to record a sequence of keystrokes and/or editor commands and then play them back later.</p>
<p><em>Argument</em><br />
&#8220;You&#8217;re hurting my head!&#8221; &#8212; No, your head will be fine, and your fingers will also appreciate the break once you master this feature.</p>
<p><em>Benefits<br />
</em>Sometimes you need to make a bunch of very similar changes to code. Macro recording allows you to do it once and repeat the macro instead of tediously doing the same thing over and over again. More powerful editors allow you not only to record macros, but to name them and save them for later. Some even more powerful editors allows you to record not just one, but a suite of macros that you can repeat with a single keystroke.</p>
<p><em>Investment</em><br />
There are, at a minimum, two keyboard shortcuts you need to learn: one to toggle macro recording on and off, and one to repeat the last recorded macro.</p>
<p><strong>Code snippets and other shortcuts<br />
</strong>This feature allows you to define chunks of text that can be expanded using a keyboard shortcut.</p>
<p><em>Argument</em><br />
&#8220;I just copy and paste when I need to create idiomatic code.&#8221; &#8212; The problem with this technique is that, first, it is slow and tedious. Second, it requires you to remember where you can find an example to copy. Third, when you copy and paste chunks of code, you might be copying and pasting chunks of code with errors in it.</p>
<p><em>Benefits</em><br />
This feature helps you build a library of snippets of idiomatic code that you can expand at the touch of a key. To add further power, most editors support parameterized code snippets so you can plug in different variable names, constant values, etc.</p>
<p>In addition, some editors also let you define global shortcuts and use them nearly anywhere in the editor, including the open file dialog. Why type &#8220;/usr/include/sys/&#8221; or fiddle around with the mouse to navigate to that directory if you could just have an alias named &#8220;sys&#8221;, expand it, and continue from there?</p>
<p><em>Investment</em><br />
You need to learn how to create and customize a snippet in your editor, and you need to learn one keyboard shortcut for expanding snippets.</p>
<p><strong>Integrated project build support<br />
</strong>This feature allows you to invoke a compile or a project build from your editor, and correlate the compilation errors with source code.</p>
<p><em>Argument</em><br />
&#8220;We have a custom build system and we can not change it.&#8221; &#8212; In most cases, you do not have to change your build environment; you just have to be able to tell your editor to use your existing build command to build the project.</p>
<p><em>Benefits</em><br />
The first benefit is that you will not have to leave your editor to start a build. You can associate the project build with a keyboard shortcut, such as Control-M (for make). You no longer have to remember the build commands for different, disparate projects. Last, and definitely not least, you can navigate directly to the compilation errors with a single keystroke instead of manually locating the offending file, opening it, jumping to the line number, and then repeating that process for every error.</p>
<p><em>Investment</em><br />
You will need to learn the project system of your new editor; how to create a project, how to specify your build command. You will also need to learn the keyboard shortcut for navigating to the next build error.</p>
<p><strong>Multiple file and window support<br />
</strong>This is really two facilities. One is the ability to open more than one file at a time in your editor and rapidly switch between them. The other is to be able to open multiple windows so that you can look at different files or different parts of the same file at the same time.</p>
<p>In particular, I address this issue for the programmers out there who are still using text mode vi on Unix or notepad on Windows. Noting those exceptions, almost all other modern editors have these capabilities to varying extents. Some support multiple files and windows, but force you to use the mouse to switch buffers or switch windows. Some editors have a tabbed view for quickly seeing what files you have open and modified. Some editors have support for buffer management, so if you navigate to a file and then pop back (see Code navigation, above) the file is automatically closed, keeping your working set of files small and tidy.</p>
<p><em>Argument</em><br />
&#8220;Too much clutter&#8221; &#8212; Some people like to keep things simple, so viewing just one file at a time is great for them, they don&#8217;t need side-by-side windows all the time. But, for those times when you absolutely need it, this is a feature that is well worth having available.</p>
<p><em>Benefits</em><br />
Modern projects are large and encompass many source files, sometimes tens of thousands. You can seldom get a complete understanding of a system looking at just one file at a time. Being able to switch between files with a single keyboard shortcut is more efficient than starting a new editor to view another file. If you have unsaved changes to a file and need to look at another file, what do you do if your editor does not support multiple files?</p>
<p><em>Investment</em><br />
You need to learn a few keyboard shortcuts: (a) to open a file; (b) to cycle through your open files; (c) to split windows horizontally and vertically; (d) to cycle through your open windows; and (e) minimizing and maximizing windows. The first two will get you up and running so that you can maintain a working set of open files. The last three will help you move to the next level.</p>
<p><strong>Conclusion<br />
</strong>It&#8217;s natural to resist change. Learning a new editor requires an investment of time and a change of work habits. You will seldom regain your investment in the timeframe of your <em>first</em> project with a new editor. But the time you will save in the long run will <em>quickly</em> eclipse the small amount of time you invest. Perhaps you feel that you are extremely proficient with your current editor, maybe even working at power programmer level. This may trick you into thinking that you are already working at peak productivity and will not benefit from a better programmer&#8217;s editor. The truth is exactly the opposite, you will benefit even more. Your tools are your foundation. Think of this analogy. No matter how proficient you are at riding a bicycle; you can go further faster on a motorcycle.</p>
<p>The features outlined in this article are things that I have grown to view as essential for writing code proficiently. It can be hard to appreciate exactly how much they help you until you seriously set down to work with these tools in your hands. After which, I can assure you that you will ask yourself how you ever managed to work without them.</p>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Fblog.slickedit.com%2F2007%2F04%2Fwhat-is-a-programmers-editor%2F';
  addthis_title  = 'Is+Your+Editor+Working+Hard+Enough%3F';
  addthis_pub    = '';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://blog.slickedit.com/2007/04/what-is-a-programmers-editor/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Transitioning from CodeWright to SlickEdit is as Easy as 1,2,3&#8230;</title>
		<link>http://blog.slickedit.com/2007/02/transitioning-from-codewright-to-slickedit-is-as-easy-as-123/</link>
		<comments>http://blog.slickedit.com/2007/02/transitioning-from-codewright-to-slickedit-is-as-easy-as-123/#comments</comments>
		<pubDate>Thu, 15 Feb 2007 15:23:11 +0000</pubDate>
		<dc:creator>Jeffrey</dc:creator>
				<category><![CDATA[Code Editors]]></category>

		<guid isPermaLink="false">http://blog.slickedit.com/?p=126</guid>
		<description><![CDATA[Borland® no Longer Engaging in New Development of CodeWright®
Many CodeWright developers became orphans when Borland announced that they would no longer develop or support CodeWright. SlickEdit offers a home for developers and programmers who want a powerful code editor that is actively being developed and supported. Click here to download a free trial of SlickEdit.
CodeWright Emulation [...]]]></description>
			<content:encoded><![CDATA[<p><strong><img border="0" align="right" width="100" src="http://www.slickedit.com/images/stories/products/SlickEdit/SlickEdit2007/se%20100x15.jpg" height="150" />Borland<sup>®</sup> no Longer Engaging in New Development of CodeWright<sup>®<br />
</sup></strong>Many CodeWright developers became orphans when Borland<sup> </sup>announced that they would no longer develop or support CodeWright. SlickEdit offers a home for developers and programmers who want a powerful code editor that is actively being developed and supported. <a href="http://www.slickedit.com/content/view/409/239/">Click here to download a free trial of SlickEdit</a>.</p>
<p><strong>CodeWright Emulation <a href="http://www.slickedit.com/images/stories/products/codewright_emulation.pdf">PDF</a><br />
</strong>No programmer relishes the thought of switching editors. After using an editor for years, the key sequences and operations become second nature. To ease this migration, SlickEdit offers a CodeWright emulation that uses the same key bindings for common operations and provides default behaviors familiar to CodeWright users. This makes you productive right away on SlickEdit. A PDF to the supported CodeWright emulations can be viewed <a href="http://www.slickedit.com/images/stories/products/codewright_emulation.pdf">here</a>.</p>
<p><strong>CodeWright Project Support<br />
</strong>SlickEdit also provides a utility that converts CodeWright workspaces and projects into SlickEdit workspaces and projects. Each CodeWright .psp file is converted to a corresponding SlickEdit .vpw file. Likewise, the CodeWright .pjt files are converted to SlickEdit .vpj files. While this utility doesn’t convert all commands or options, it does save a lot of time setting up the project structure in SlickEdit. From the SlickEdit  menu select Project &gt; Open Other Workspace &gt; Convert CodeWright Workspace.</p>
<p><strong>Why SlickEdit</strong></p>
<p><strong>Speed: </strong>Type fewer characters and make fewer errors using syntax expansion, completions, aliases, and code templates.</p>
<p><strong>Power: </strong>Create and manage large workspaces and projects. Edit files up to 2 GB in size.  </p>
<p><strong>Flexibility: </strong>Code in over 40 languages on 8 platforms. Configure SlickEdit to match your coding style. Choose from 13 editor emulations.</p>
<p>SlickEdit Product Page: <a href="http://www.slickedit.com/content/view/73/60/">http://www.slickedit.com/content/view/73/60/</a></p>
<p>SlickEdit Cool Features Demos: <a href="http://www.slickedit.com/content/view/353/217">http://www.slickedit.com/content/view/353/217</a></p>
<p align="center"><a href="http://www.slickedit.com/content/view/409/239/"><strong>Click here to download a free trial of SlickEdit</strong></a></p>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Fblog.slickedit.com%2F2007%2F02%2Ftransitioning-from-codewright-to-slickedit-is-as-easy-as-123%2F';
  addthis_title  = 'Transitioning+from+CodeWright+to+SlickEdit+is+as+Easy+as+1%2C2%2C3%26%238230%3B';
  addthis_pub    = '';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://blog.slickedit.com/2007/02/transitioning-from-codewright-to-slickedit-is-as-easy-as-123/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
