<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8762997409261323600</id><updated>2012-01-29T19:01:14.421-08:00</updated><category term='saleforce.com'/><category term='3Com'/><category term='cposc'/><category term='Virtual PC'/><category term='commute'/><category term='memory management'/><category term='pentaho'/><category term='etl'/><category term='parallel assignment'/><category term='privacy'/><category term='Windows'/><category term='Z-80'/><category term='coworking'/><category term='Mercurial'/><category term='XAML'/><category term='Gateway'/><category term='encryption'/><category term='co-working'/><category term='git'/><category term='web accessible'/><category term='haskell'/><category term='Ubuntu Server'/><category term='RCU'/><category term='osb11'/><category term='BDUF'/><category term='WinForms'/><category term='FireFox'/><category term='browser standards'/><category term='WebMatrix'/><category term='refactoring'/><category term='Javascript'/><category term='balticon'/><category term='distraction'/><category term='continuing resolution'/><category term='gTablet'/><category term='ShmooCon'/><category term='pair programming'/><category term='Book Thing'/><category term='GnuPG'/><category term='Windows Phone 7'/><category term='NFS'/><category term='VMware'/><category term='SourceSafe'/><category term='Forth'/><category term='urban campus'/><category term='HTML'/><category term='wireless internet'/><category term='version control'/><category term='Sintel'/><category term='virtual machines'/><category term='Ubuntu Server apt'/><category term='conferences'/><category term='osb2011'/><category term='Entity Framework'/><category term='clunky programming'/><category term='recursion'/><category term='LISP'/><category term='web design'/><category term='.NET'/><category term='A20p'/><category term='Bluefish'/><category term='DVCS'/><category term='virtualization'/><category term='Microsoft'/><category term='swab'/><category term='Matlab'/><category term='tablet'/><category term='clarity of source code'/><category term='Oracle'/><category term='Clear wireless'/><category term='Peter Norvig'/><category term='mylene'/><category term='Chrome'/><category term='osb'/><category term='serial assignment'/><category term='Hadoop'/><category term='agile development'/><category term='tail recursion'/><category term='Washington DC'/><category term='aptitude'/><category term='Heel'/><category term='programming languages'/><category term='Android'/><category term='inkscape'/><category term='learning'/><category term='PVCS'/><category term='TriROM'/><category term='HTML5'/><category term='user groups'/><category term='calendars'/><category term='cloud computing'/><category term='budget'/><category term='CMAP'/><category term='oscon'/><category term='TFS'/><category term='programming'/><category term='ssh'/><category term='science fiction conventions'/><category term='refresh'/><category term='tech books'/><category term='Java'/><category term='Baltimore Beehive'/><category term='remote access with X'/><category term='significant figures'/><category term='Octave'/><category term='Sun'/><category term='hello world'/><category term='MFC'/><category term='Stevens'/><category term='CSS3'/><category term='CALUG'/><category term='Linux'/><category term='functional programming'/><category term='IronRuby'/><category term='IE'/><category term='betascape'/><category term='iPhone tracking'/><category term='project management'/><category term='Virtualbox'/><category term='WPF'/><category term='virtua'/><title type='text'>Fitzpatrick's Leap</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default?start-index=101&amp;max-results=100'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>329</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-8003898689204293026</id><published>2012-01-29T19:01:00.000-08:00</published><updated>2012-01-29T19:01:14.432-08:00</updated><title type='text'>A tool to help understand web pages</title><content type='html'>With a little Ruby, a little GNU, and some reading, I built a small utility to help me understand web pages.&lt;br /&gt;&lt;br /&gt;The utility takes the HTML, picks out the links, and draws a map of the web site. It shows which pages link to other pages. (It works only for static pages, not dynamic ones.) The result is a PostScript image with pages listed and arrows connecting the pages.&lt;br /&gt;&lt;br /&gt;I can use this to navigate web pages and get a view from a height. I can also find 'orphan' web pages, pages that are not linked.&lt;br /&gt;&lt;br /&gt;I used a lot of off-the-shelf components: Ruby and its built-in functions for parsing HTML, GNU sort, and GraphViz. The components do the heavy lifting, and save me a lot of time.&lt;br /&gt;&lt;br /&gt;It was a good exercise. I learned a lot, and now I have a useful tool!&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-8003898689204293026?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/8003898689204293026/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2012/01/tool-to-help-understand-web-pages.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/8003898689204293026'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/8003898689204293026'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2012/01/tool-to-help-understand-web-pages.html' title='A tool to help understand web pages'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-4726148125101142443</id><published>2012-01-28T12:06:00.000-08:00</published><updated>2012-01-28T12:06:19.902-08:00</updated><title type='text'>Three years</title><content type='html'>It was three years ago that I started this part of my journey. I left the comfort of a secure position in a large company and struck out in search of new opportunities. At the time, I knew that it was risky, and that it was either a smart thing to do or a very foolish thing to do.&lt;br /&gt;&lt;br /&gt;Looking back, the evidence leans towards the "smart" side. I have acquired a position with a smaller company, and the pay is a little less than before, yet I have met knew people, broadened my view of the technology world, and learned a lot about tech and myself. I am more in touch with the local technology and creative scene. I have a better appreciation for project management and corporate management. I have shed some arrogance and improved my interpersonal skills.&lt;br /&gt;&lt;br /&gt;Looking forward, I am positioned for the coming changes in technology. Mobile computing, cloud-based processing, new languages, big data, and user experience will all change the way we build programs. The old ways of project management won't carry us through the changes. (Yet they are not obsolete. The previous techniques for project management are still useful; they are not enough on their own.)&lt;br /&gt;&lt;br /&gt;I'm looking forward to the next chapters.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-4726148125101142443?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/4726148125101142443/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2012/01/three-years.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/4726148125101142443'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/4726148125101142443'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2012/01/three-years.html' title='Three years'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-1202068961041615928</id><published>2012-01-21T18:34:00.000-08:00</published><updated>2012-01-21T18:34:29.293-08:00</updated><title type='text'>CreateBaltimore</title><content type='html'>I invested time at the CreateBaltimore un-conference today. This was a meeting of folks in Baltimore who consider themselves creative, and who want to help improve the city and the state of its inhabitants. It's a good arrangement: people self-select themselves in, so the attendees are all interested in problems and solutions. (It's also a casual and not glamorous event, so there is no incentive for fame-seekers to attend.)&lt;br /&gt;&lt;br /&gt;The conference started late, due to inclement weather, but it still allowed for a long session (from 10:00 to 17:00) for conference sessions and informal conversations. It was an excellent way to meet folks in the area, folks who want to make a change. (And a few were looking for developers!)&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-1202068961041615928?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/1202068961041615928/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2012/01/createbaltimore.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/1202068961041615928'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/1202068961041615928'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2012/01/createbaltimore.html' title='CreateBaltimore'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-5352877639392955551</id><published>2012-01-11T19:47:00.000-08:00</published><updated>2012-01-11T19:47:54.331-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='version control'/><category scheme='http://www.blogger.com/atom/ns#' term='git'/><title type='text'>A group meeting about git</title><content type='html'>Tonight's CALUG meeting had a presentation on 'git', the version control package. (I am starting to think of software in terms of "packages". Probably an influence of Linux.)&lt;br /&gt;&lt;br /&gt;I like git. I find it easy to use. Yet I think it has a ways to go. A few years ago, I would have thought that git (with its GUI tools) was a sufficient product. Today, after the "tablet revolution", I feel differently.&lt;br /&gt;&lt;br /&gt;Tablet computers have raised the bar for a typical application. Now I expect that an application installs quickly, configures itself (except for a user ID, password, and possibly an update frequency), and handles everything through a simple graphical interface. (Not the command line, and not a complicated multi-dialog interface.)&lt;br /&gt;&lt;br /&gt;I believe that the folks working on git can improve it and make it "first class".&lt;br /&gt;&lt;br /&gt;I will point out that other version control systems have similar challenges. Microsoft's TFS has a good user interface, but requires lots of configuration. Subversion and CVS need bolted-on graphic front ends which work -- more or less -- and they also need a lot of configuring.&lt;br /&gt;&lt;br /&gt;Someone will figure out version control, really figure it out, and then we will have the "iPod of version control". I think that git is in the best position to achieve that goal.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-5352877639392955551?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/5352877639392955551/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2012/01/group-meeting-about-git.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/5352877639392955551'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/5352877639392955551'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2012/01/group-meeting-about-git.html' title='A group meeting about git'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-7113042120976070500</id><published>2012-01-08T10:22:00.000-08:00</published><updated>2012-01-08T10:22:23.531-08:00</updated><title type='text'>Apache and PHP</title><content type='html'>I configured Apache and PHP today, and converted a web page from plain HTML to PHP format. With these changes, we can create templates for web pages and slug in the content that we want. (That's the whole point of PHP.) Separating the content from the HTML will make it easier to update the web page, since we can replace the content file and leave the HTML in place.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-7113042120976070500?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/7113042120976070500/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2012/01/apache-and-php.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/7113042120976070500'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/7113042120976070500'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2012/01/apache-and-php.html' title='Apache and PHP'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-4557395052675492099</id><published>2012-01-07T09:26:00.000-08:00</published><updated>2012-01-07T09:26:35.509-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu Server'/><title type='text'>Changing servers at the new year</title><content type='html'>I'm changing my server configuration at home. These changes will support my efforts with local organizations and their web sites.&lt;br /&gt;&lt;br /&gt;I installed Ubuntu Linux Server on //ophelia (an old Dell Optiplex GX280). This install was quite simple, with a no-nonsense approach and few questions. I picked SSH, LAMP, NFS, Samba, and printer server options. It doesn't include NTP, so I will have add it later.&lt;br /&gt;&lt;br /&gt;My goal is to make //ophelia my main server, hosting my "alternate home" directory and serving web pages. Certainly not the configuration that a real shop would use, but acceptable for my needs.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-4557395052675492099?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/4557395052675492099/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2012/01/changing-servers-at-new-year.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/4557395052675492099'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/4557395052675492099'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2012/01/changing-servers-at-new-year.html' title='Changing servers at the new year'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-5001266744412620907</id><published>2012-01-03T18:52:00.000-08:00</published><updated>2012-01-03T18:52:21.932-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='refactoring'/><title type='text'>Refactoring for fun and profit</title><content type='html'>I have been working on the "convert C++ to C#" project for several months, and this week I have achieved the "factor out code to objects" level. It has been a long, long wait, as I converted code and divided the poorly-organized C++ into better-organized (although not perfect) C# code.&lt;br /&gt;&lt;br /&gt;Today I was ready to refactor code into smaller classes. I had the code converted to C#, and tests to ensure that refactoring would change no functionality, and I was looking at the code... and the changes just came to me. It was a no-brainer, an obvious operation. I was able to separate three sections of code into distinct classes -- but the last class needs a bit of work, given the (ugly) API that it requires. But I am even happy with that, since the API is obviously ugly and a sure sign that a better design is waiting.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-5001266744412620907?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/5001266744412620907/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2012/01/refactoring-for-fun-and-profit.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/5001266744412620907'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/5001266744412620907'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2012/01/refactoring-for-fun-and-profit.html' title='Refactoring for fun and profit'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-86318034479799055</id><published>2011-12-30T05:47:00.000-08:00</published><updated>2011-12-30T05:47:48.821-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='browser standards'/><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='web design'/><category scheme='http://www.blogger.com/atom/ns#' term='IE'/><category scheme='http://www.blogger.com/atom/ns#' term='Chrome'/><category scheme='http://www.blogger.com/atom/ns#' term='FireFox'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><title type='text'>Fun with HTML and JavaScript</title><content type='html'>I've been working on a web site for a local charity.&lt;br /&gt;&lt;br /&gt;The project has been mostly fun, with a small amount of hair-pulling. My forte is "traditional" non-web programs, written in Java or C# to read and write files. The web with its design and layout concepts and its HTML, CSS, and JavaScript is different. I have leveraged my collection of O'Reilly books and the web to overcome the difficulties.&lt;br /&gt;&lt;br /&gt;My current challenge is with a specific browser layout issue: a horizontal list of compound items. Each item is an image and text description; I want a set of these across the screen with the text below its corresponding picture. Easy enough to do with a few well-designed lists, at least in some browsers. I can render the list as I want it in Chrome, in FireFox, and ReKonq. But rendering the list in IE eludes me. IE apparently sees a compound list element as a thing that needs a new line, and insists on displaying the list vertically. No combination of list tags and "display: inline" or "display: inline-block" appeases IE.&lt;br /&gt;&lt;br /&gt;Grr. More research and experimenting is in order.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-86318034479799055?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/86318034479799055/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2011/12/fun-with-html-and-javascript.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/86318034479799055'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/86318034479799055'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2011/12/fun-with-html-and-javascript.html' title='Fun with HTML and JavaScript'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-5204267241313478502</id><published>2011-12-26T18:11:00.000-08:00</published><updated>2011-12-26T18:11:17.673-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SourceSafe'/><category scheme='http://www.blogger.com/atom/ns#' term='version control'/><category scheme='http://www.blogger.com/atom/ns#' term='git'/><category scheme='http://www.blogger.com/atom/ns#' term='TFS'/><category scheme='http://www.blogger.com/atom/ns#' term='PVCS'/><title type='text'>Git for version control</title><content type='html'>I successfully installed and used "git" tonight. (I'm working on a set of web pages for a friend, and I need version control.)&lt;br /&gt;&lt;br /&gt;Wow, git makes version control easy. I'm used to the old, heavyweight version control systems (PVCS, SourceSafe, TFS) which require an elaborate install and a more elaborate configuration before one can even begin to use them. I installed git in less than a minute (mostly due to the package manager in Linux) and configured it for my project in less than ten seconds (the one command is "git init" -- with no options or questions).&lt;br /&gt;&lt;br /&gt;My old saying was "if your version control system isn't giving you heartburn, you're either doing it wrong or you don't understand version control". With git, I can discard that saying.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-5204267241313478502?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/5204267241313478502/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2011/12/git-for-version-control.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/5204267241313478502'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/5204267241313478502'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2011/12/git-for-version-control.html' title='Git for version control'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-1327582089971649923</id><published>2011-12-14T19:50:00.000-08:00</published><updated>2011-12-14T19:50:36.850-08:00</updated><title type='text'>Arduino and Beaglebone</title><content type='html'>Tonight's CALUG meeting had a presentation on the Arduino and BeagleBone processors. They are small processors that can do a fair amount of work, and they have hardware for interfacing with sensors and devices like motors and LEDs. The topic was not strictly Linux, since these processors are supported under Linux, Windows, and Mac OSX, but that didn't bother the audience. People were interested and several folks stayed for after-meeting conversations.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-1327582089971649923?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/1327582089971649923/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2011/12/arduino-and-beaglebone.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/1327582089971649923'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/1327582089971649923'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2011/12/arduino-and-beaglebone.html' title='Arduino and Beaglebone'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-5671262929794540398</id><published>2011-12-11T12:42:00.001-08:00</published><updated>2011-12-11T12:46:49.303-08:00</updated><title type='text'>Success with web stuff</title><content type='html'>Success this week, with web pages and web servers. I successfully composed a web page for my friend, and successfully installed the Apache web server to serve up the web page.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This is not new for me; I have installed Apache before and created web pages before. But no web site is quite like another (perhaps they are snowflakes) and this project had its interesting aspects. First, I used CSS for a lot of the formatting. (And it worked quite well.) Second, I used port forwarding to make the web site visible to my friend. (Before, I was using web pages within the intranet.)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Web "programming" -- I suppose a better term might be "composing" -- and administration is quite different from the traditional desktop programming. Yet possible, with the right resources. I used a number of resources this weekend, mostly O'Reilly books and Google.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-5671262929794540398?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/5671262929794540398/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2011/12/success-with-web-stuff.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/5671262929794540398'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/5671262929794540398'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2011/12/success-with-web-stuff.html' title='Success with web stuff'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-6050405477431056999</id><published>2011-12-07T03:16:00.001-08:00</published><updated>2011-12-07T03:22:37.369-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='user groups'/><category scheme='http://www.blogger.com/atom/ns#' term='CMAP'/><title type='text'>Time constraints on user group meetings</title><content type='html'>I attended the CMAP meeting last night -- and left early. This was unusual for me. I have attended CMAP meetings for somewhat more than two years, and I have consistently stayed at meetings until their ends. The last event of the meeting is a raffle of prizes.&lt;br /&gt;&lt;br /&gt;Last night I made the decision to leave early. I had arrived slightly early to chat with people at the meeting, which for me is the most important part of the meeting. With other tasks pressing on my schedule, I had to leave before the end of the meeting.&lt;br /&gt;&lt;br /&gt;The presentation was on Microsoft's MVC Scaffolding, a set of assistants for application development. The speaker knew his material and presented it well. I have no complaint about the material, except perhaps that it doesn't apply to my current assignment.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-6050405477431056999?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/6050405477431056999/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2011/12/time-constraints-on-user-group-meetings.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/6050405477431056999'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/6050405477431056999'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2011/12/time-constraints-on-user-group-meetings.html' title='Time constraints on user group meetings'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-4780496792027206509</id><published>2011-12-03T14:43:00.001-08:00</published><updated>2011-12-03T15:02:42.037-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Bluefish'/><category scheme='http://www.blogger.com/atom/ns#' term='web design'/><category scheme='http://www.blogger.com/atom/ns#' term='Chrome'/><category scheme='http://www.blogger.com/atom/ns#' term='Heel'/><title type='text'>A step away from C# and towards the web</title><content type='html'>Today I stepped away from "classic" programming in C#/.NET and moved into the world of web design.&lt;br /&gt;&lt;br /&gt;A friend asked me to create a web page from a mock-up. A simple task, yet for me a good challenge. Web page design is quite a different mode of thought than the programming on my current assignment. (That programming is object-oriented programming with immutable objects. A step into functional programming, but still quite different from HTML.)&lt;br /&gt;&lt;br /&gt;I used several tools for this project: Chrome; Rekonq, the Kubuntu browser; Bluefish, an HTML editor; and Heel, the Ruby-based web server for static pages. They all served well.&lt;br /&gt;&lt;br /&gt;I was pleased with the Bluefish editor. It's quite like the old Homesite program (made by Allaire, which was bought by Macromedia) in its simplicity and hands-on approach to web page design. It understands CSS and can edit more than HTML.&lt;br /&gt;&lt;br /&gt;I was also pleasantly surprised, and impressed, with Chrome's inspection capabilities.&lt;br /&gt;&lt;br /&gt;The 'heel' project made viewing web pages easy. I could avoid the effort of configuring a full web server (Apache) and focus my efforts on the web page.&lt;br /&gt;&lt;br /&gt;My success was also due to the information resources available. The web with its forums (and Google's search engine) was important, but also important were the O'Reilly books on my shelf. &lt;a href="http://shop.oreilly.com/product/9780596009878.do"&gt;Web Design in a Nutshell&lt;/a&gt;, &lt;a href="http://shop.oreilly.com/product/9780596527327.do"&gt;HTML and XHTML: The Definitive Guide&lt;/a&gt;, and "Cascading Style Sheets: The Definitive Guide" were all helpful.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-4780496792027206509?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/4780496792027206509/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2011/12/step-away-from-c-and-towards-web.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/4780496792027206509'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/4780496792027206509'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2011/12/step-away-from-c-and-towards-web.html' title='A step away from C# and towards the web'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-1183490024294607484</id><published>2011-11-28T18:20:00.001-08:00</published><updated>2011-11-28T19:25:27.008-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='clarity of source code'/><category scheme='http://www.blogger.com/atom/ns#' term='programming languages'/><title type='text'>The loss of WYSIWYG in programming languages</title><content type='html'>As programming languages have evolved, we have moved from static languages to dynamic languages. These new languages offer new capabilities, but at a price. That price includes performance (perhaps not a great cost, given advances in hardware) but also the ease of understanding code.&lt;br /&gt;&lt;br /&gt;Early programming languages of FORTRAN and COBOL were quite easy to understand. They did not allow for recursion (the early versions, at least), and offered static, up-front at compile/link time memory layout. You knew (or the linker knew) the location of every variable and every subroutine when the program was built. You knew the destination of every jump and the meaning of every statement. (Yes, COBOL had the 'ALTER' keyword, and FORTRAN had the "assigned goto", but they were proscribed in civilized shops.)&lt;br /&gt;&lt;br /&gt;Of all languages, BASIC (prior to Visual Basic) was probably the most easily understood. It had a specific set of keywords, no pre-processor, strongly-typed variables, and no dynamic aspects.&lt;br /&gt;&lt;br /&gt;The C language was one of the last languages in which "what you saw was what you got".&amp;nbsp;A colleague referred to his "cortex compiler" when discussing the clarity of C code.&amp;nbsp;One could look at source code and know the actions performed by the computer.&amp;nbsp;(I am ignoring the effects of the pre-processor here. Poorly-design -- or even well-designed -- #define macros can change the normal meaning of C code and stymie all but the most careful analysis.)&lt;br /&gt;&lt;br /&gt;Things changed with object-oriented languages.&amp;nbsp;In object-oriented languages, one can look at the source code, but the action taken by the computer is not always obvious. To understand polymorphic code one must understand the&amp;nbsp;inheritance hierarchy. To understand operators one must understand the class and its ancestors. Multiple inheritance (multiple implementation&amp;nbsp;inheritance, as in C++) is rife with ambiguity.&lt;br /&gt;&lt;br /&gt;(I'm ignoring LISP in this sequence. LISP, which dates back to the days of FORTRAN and COBOL, offered the same flexibility and dynamic constructs that it does today. But most programmers ignored it then, too.)&lt;br /&gt;&lt;br /&gt;Java kept object-oriented programming but mercifully&amp;nbsp;implemented multiple interface inheritance (and not multiple implementation inheritance) and&amp;nbsp;eliminated the pre-processor and operator overloading, all which made it more obvious than C++.&lt;br /&gt;&lt;br /&gt;Dynamic languages are now in the ascendant. Perl allows for lots of un-obvious constructs (some will snarkily comment that the entire language is un-obvious). Ruby lets one define or modify classes -- even the "standard" classes -- during run-time. (The shades of COBOL's 'ALTER' haunt us still.)&lt;br /&gt;&lt;br /&gt;The trend may be towards dynamic languages, but not everything is moving in that direction. The up-and-coming functional programming languages (Haskell, Erlang) take a different approach and enforce strict definitions of functions and their results. Their syntax and organization is different from object-oriented programs, and can be difficult for those trained in O-O programming constructs. Despite the differences, I expect that these languages will, in the long run, be considered the more "obvious".&lt;br /&gt;&lt;br /&gt;And we may, once again, have programs that are obviously understood, capable of being processed by our "cortex compilers".&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-1183490024294607484?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/1183490024294607484/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2011/11/loss-of-wysiwyg-in-programming.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/1183490024294607484'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/1183490024294607484'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2011/11/loss-of-wysiwyg-in-programming.html' title='The loss of WYSIWYG in programming languages'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-5843852430807834588</id><published>2011-11-20T12:55:00.001-08:00</published><updated>2011-11-20T12:58:18.790-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tablet'/><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><title type='text'>Android success</title><content type='html'>I successfully wrote an Android app today, and downloaded it to my tablet. It installs and runs! Woot!&lt;br /&gt;&lt;br /&gt;OK, the app is simple -- trivial, really. It is a simple "Hello, world!" app that displays the "hello" message and the screen resolution.&lt;br /&gt;&lt;br /&gt;I was impressed with how easy it was to test the app in the Eclipse simulator. I was also impressed with the ease of installation: on the PC copy the .apk file to the tablet and then on the tablet click on the .apk file.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-5843852430807834588?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/5843852430807834588/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2011/11/android-success.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/5843852430807834588'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/5843852430807834588'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2011/11/android-success.html' title='Android success'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-2897051720335669589</id><published>2011-11-13T08:23:00.001-08:00</published><updated>2011-11-13T08:37:55.442-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='remote access with X'/><category scheme='http://www.blogger.com/atom/ns#' term='ssh'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu Server apt'/><category scheme='http://www.blogger.com/atom/ns#' term='aptitude'/><title type='text'>Playing with X</title><content type='html'>I took some time this week-end to play with X and remote access to computers.&lt;br /&gt;&lt;br /&gt;First, I set up a virtual machine running Ubuntu Server edition 11.11. The server edition is plain Ubuntu without the Gnome front-end. It's a much better configuration for a server -- although it does require that one perform administration tasks on the command line. I had to refresh my memory of the 'apt' and 'aptitude' commands.&lt;br /&gt;&lt;br /&gt;Second, I configured the virtual machine with a bridged network connection, so it will appear on my local network.&lt;br /&gt;&lt;br /&gt;Then I configured Ubuntu Server to use a static IP address. That took some research (a minimal amount, thanks to Google) and some experiments (keep the "auto eth0" line in /etc/network/interfaces) and some tests with 'wget' to ensure that the configuration was correct.&lt;br /&gt;&lt;br /&gt;Finally I installed ssh-server and 'xclock' on the Ubuntu Server and tried some connections. Connecting from a Windows PC running Xming and putty worked, and I was able to see the clock. Connecting from an Ubuntu PC failed at first; I had to use the 'ssh -X' command to connect, an 'export DISPLAY=192.168.1.102:0.0' command to identify my display, and also the 'xhosts +' command to allow connections.&lt;br /&gt;&lt;br /&gt;I want to create an /etc/X0.hosts file; that should eliminate the need for the 'xhosts +' command. I'm not sure how I can auto-configure the DISPLAY variable... or if that is even desirable.&lt;br /&gt;&lt;br /&gt;All in all, I feel pretty good about my accomplishments. Remote access with Linux is quite different from sharing desktops in Windows. The Linux approach has more possibilities: run X applications in my local display, share a KDE session, or share the whole desktop. Windows seems to be limited to the 'share a desktop' approach. (Can one SSH into Windows? That is, get just terminal -- a CMD.EXE terminal -- session?)&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-2897051720335669589?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/2897051720335669589/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2011/11/playing-with-x.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/2897051720335669589'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/2897051720335669589'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2011/11/playing-with-x.html' title='Playing with X'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-2637634044543042269</id><published>2011-11-01T19:52:00.000-07:00</published><updated>2011-11-01T19:52:06.963-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CSS3'/><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='inkscape'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML5'/><title type='text'>Looking at HTML5 and CSS3 with the .NET folks</title><content type='html'>I attended tonight's CMAP meeting, with a presentation on HTML5, CSS3, and Javascript. The meeting was well-attended, perhaps the best attendance I have seen. Apparently lots of Microsoft tech fans are interested in the subject.&lt;br /&gt;&lt;br /&gt;And they should be. Microsoft let the cat out of the bag earlier this year, announcing that their new development platform supported HTML5 and Javascript. (That announcement may have been premature, but the direction seems correct.)&lt;br /&gt;&lt;br /&gt;Tonight's meeting was about HTML5 and CSS3 and Javascript, and had very little about Microsoft tools. (It was given by a Microsoft employee and evangelist, so it seems credible.) The programming paradigm of HTML5 and CSS3 is very different from the old world of WPF and XAML. It is not specific to Windows or Internet Explorer -- it is cross-platform.&lt;br /&gt;&lt;br /&gt;Interestingly, the presenter mentioned "inkscape" as a tool for experimenting with SVG. (Apparently Microsoft has no SVG editor.)&lt;br /&gt;&lt;br /&gt;We are in a new world, a world of multiple technologies and multiple environments. Mobile phones, tablets, desktops, and servers all interact as part of your system. This new configuration is bigger than any one company.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-2637634044543042269?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/2637634044543042269/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2011/11/looking-at-html5-and-css3-with-net.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/2637634044543042269'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/2637634044543042269'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2011/11/looking-at-html5-and-css3-with-net.html' title='Looking at HTML5 and CSS3 with the .NET folks'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-1898337864174959834</id><published>2011-10-23T17:36:00.000-07:00</published><updated>2011-10-23T17:36:46.661-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='virtual machines'/><category scheme='http://www.blogger.com/atom/ns#' term='user groups'/><title type='text'>Local Linux, Cloud, and Virtual Machines</title><content type='html'>This past week I accomplished a number of things.&lt;br /&gt;&lt;br /&gt;I attended the local Linux user group. They are going through a transition, expanding their focus from Linux to open source. The change makes sense; when they were formed, Linux was a difficult beast and one needed a lot of technical knowledge. In today's world, the modern distros install themselves. (I recently installed Kubuntu 11.10 and the process was simple.)&lt;br /&gt;&lt;br /&gt;The change in focus requires a new focus, and the challenge to the group is to identify it. No one is stepping forward to claim ownership, and the transition has stalled. I have considered stepping up, but I have no clear vision for the group, no "itch" that I want to "scratch". As such, I consider myself an inappropriate candidate.&lt;br /&gt;&lt;br /&gt;The cloud computing meeting had an informative presentation on database.com, a "spin-off" of the salesforce.com folks. I chatted with a number of folks; these meetings attract people with varying degrees of experience.&lt;br /&gt;&lt;br /&gt;The cloud computing group was in the Washington area, and it highlights the challenge of my living and working arrangements. Living in Baltimore and working in Washington leads to a long commute, even on the train. It also locks me out of a number of activities -- I arrive in Baltimore too late to participate, and I must leave too early to participate in Washington events.&lt;br /&gt;&lt;br /&gt;As to virtual machines, I made modest progress with my local tests. I successfully connected to a virtual machine with remote access software. I had to completely disable the firewall on the host system, and the color palette leaves a bit to be desired. But it is success, and I am looking forward to tuning the arrangement, adjusting the firewall to allow access and handling the color palette. I also found instructions for creating a headless virtual machine, which makes a lot of sense for remote operation. I'll have to read up on the process; it is something more than simple.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-1898337864174959834?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/1898337864174959834/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2011/10/local-linux-cloud-and-virtual-machines.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/1898337864174959834'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/1898337864174959834'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2011/10/local-linux-cloud-and-virtual-machines.html' title='Local Linux, Cloud, and Virtual Machines'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-5604142795868772686</id><published>2011-10-09T18:02:00.000-07:00</published><updated>2011-10-09T18:02:50.665-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VMware'/><category scheme='http://www.blogger.com/atom/ns#' term='Virtualbox'/><category scheme='http://www.blogger.com/atom/ns#' term='virtualization'/><title type='text'>Revisiting virtualization</title><content type='html'>I dusted off some virtual machines today. They are experiments, to see how virtualization performs in different environments.&lt;br /&gt;&lt;br /&gt;I use VMware and Oracle's Virtualbox. Both had updates; new versions of the virtual machine software.&lt;br /&gt;&lt;br /&gt;The updates for Virtualbox ran a bit smoother than VMware. Both programs alerted me to the new version, and let me download them. Both updates were replacements and not patches. That is, both un-installed the old version and then installed the new version. And both new versions had new "inside helper" packages, utilities that install drivers inside the guest operating system to help the "outside" virtualization program.&lt;br /&gt;&lt;br /&gt;It was the installation of helper utilities that Oracle beat VMware. With VMware, you have to run a script, answer several prompts, and let the script compile several modules for your system. (The questions have default answers, but they are sensible only to a sysadmin.) Virtualbox, on the other hand, installed the helper utilities without prompts or compiling.&lt;br /&gt;&lt;br /&gt;For both VMware and Virtualbox, the improvements were evolutionary, not revolutionary: small improvements to the GUI, noticeable changes in support for devices.&lt;br /&gt;&lt;br /&gt;And for VMware and Virtualbox, performance was acceptable. Virtual machines run a little slower than a "real" machine, but the difference is small.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;I don't use Microsoft's Virtual PC, as it refuses to run on my hardware. My PC is a two-year-old SystemMax PC with a nice Intel processor and 4 GB RAM, but apparently it lacks something that Virtual PC needs. So I limit my tests to VMware and Virtualbox.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-5604142795868772686?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/5604142795868772686/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2011/10/revisiting-virtualization.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/5604142795868772686'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/5604142795868772686'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2011/10/revisiting-virtualization.html' title='Revisiting virtualization'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-1873284480266140589</id><published>2011-10-04T19:15:00.000-07:00</published><updated>2011-10-04T19:15:06.411-07:00</updated><title type='text'>Sharing evil plans</title><content type='html'>I attended the GBTC meeting for "Evil Plans" tonight. This was a meeting of meetings; a parliament of local groups to discuss meetings and schedules. Baltimore has enough special-interest technical groups that our schedules collide. This meeting was to introduce the groups and let them work out their scheduling conflicts. (Working out non-conflicting schedules is to every group's benefit, since other events pull people away.)&lt;br /&gt;&lt;br /&gt;About fifty people attended, all creative in their own way. Some were hard-core programmers, others web developers, and others teachers. It was a creative mix of creative people!&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-1873284480266140589?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/1873284480266140589/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2011/10/sharing-evil-plans.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/1873284480266140589'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/1873284480266140589'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2011/10/sharing-evil-plans.html' title='Sharing evil plans'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-3750938413703172955</id><published>2011-09-25T18:25:00.000-07:00</published><updated>2011-09-25T18:25:18.620-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='betascape'/><category scheme='http://www.blogger.com/atom/ns#' term='conferences'/><title type='text'>Betascape</title><content type='html'>I attended the Baltimore conference Betascape this Saturday. Betascape is a small conference for creative people: artists, writers, programmers, designers... you name it.&lt;br /&gt;&lt;br /&gt;It's an informal conference; the small cons can be informal. Yet while informal, it had interesting sessions and was run efficiently.&lt;br /&gt;&lt;br /&gt;There were lectures, conversations, workshops, and of course the "hallway track". The last is a feature at all conferences, although not all conferences recognize its importance and accommodate it. The venue for Betascape was multiple buildings, so the hallway track was actually the "sidewalk track". The weather was pleasant and chatting outside worked well.&lt;br /&gt;&lt;br /&gt;I attended several sessions, including "How gadgets can change our culture", "Visual Design: Why It's Necessary", "Now that the internet has arrived, are writers dead?", and "What happens when everyone is a publisher?" Beyond the sessions, I contributed to a project at the con: a person is constructing a reading of a book, with people reading one sentence each. (I read sentence number 13.)&lt;br /&gt;&lt;br /&gt;Betascape is an enjoyable conference. I had short notice of it this year and could attend only a fraction; next year I will block out the entire week-end.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-3750938413703172955?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/3750938413703172955/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2011/09/betascape.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/3750938413703172955'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/3750938413703172955'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2011/09/betascape.html' title='Betascape'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-7946462202988919690</id><published>2011-09-21T16:35:00.000-07:00</published><updated>2011-09-21T16:35:58.811-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><category scheme='http://www.blogger.com/atom/ns#' term='XAML'/><category scheme='http://www.blogger.com/atom/ns#' term='WinForms'/><category scheme='http://www.blogger.com/atom/ns#' term='clunky programming'/><category scheme='http://www.blogger.com/atom/ns#' term='MFC'/><title type='text'></title><content type='html'>Today was a day of technical development.&lt;br /&gt;&lt;br /&gt;For the past few years, I have avoided Microsoft's WPF and the associated .NET technologies. I would see presentations at user groups and read about it in magazines, but I didn't use it.&lt;br /&gt;&lt;br /&gt;I wasn't keen on it. The more I saw of it, the less I liked it. I felt that it was cumbersome and required a lot of typing.&lt;br /&gt;&lt;br /&gt;Today, I used it. I used WPF and XAML and a few other things. Invested the entire afternoon building a simple application for Windows. Got the application to work -- or at least perform the basics. It's not fancy, but it gets the job done.&lt;br /&gt;&lt;br /&gt;I'm still not impressed with WPF and XAML. Oh, It's better than the previous WinForms, since it transports to web apps. And it's way better than the old MFC applications.&lt;br /&gt;&lt;br /&gt;But it still feels clunky. I feel that I am doing too much work, writing too much code.&lt;br /&gt;&lt;br /&gt;Perhaps the new world of HTML5 and Javascript is what I am seeking.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-7946462202988919690?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/7946462202988919690/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2011/09/today-was-day-of-technical-development.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/7946462202988919690'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/7946462202988919690'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2011/09/today-was-day-of-technical-development.html' title=''/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-6794879130142568320</id><published>2011-09-20T18:47:00.001-07:00</published><updated>2011-09-21T16:35:58.815-07:00</updated><title type='text'>BaltoLUG meeting</title><content type='html'>I attended the monthly meeting for BaltoLUG, the Linux User Group here in Baltimore. This was an administration meeting, since we did not have a speaker.It was a good meeting, with a lot of ideas about the direction of the group. One topic was the limitation of Linux items; our presentations tend to run with open source but not restricted to Linux.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-6794879130142568320?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/6794879130142568320/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2011/09/baltolug-meeting.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/6794879130142568320'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/6794879130142568320'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2011/09/baltolug-meeting.html' title='BaltoLUG meeting'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-8112834713713081008</id><published>2011-09-12T13:09:00.000-07:00</published><updated>2011-09-12T13:09:53.651-07:00</updated><title type='text'>Betascape, courtesy of Facebook</title><content type='html'>Facebook earned its pay today. It notified me of the &lt;a href="http://www.betascape.org/"&gt;Betascape event&lt;/a&gt; here in Baltimore, through one of the local technology groups. Without it, I would not have known about the event.&lt;br /&gt;&lt;br /&gt;Betascape is later this month. It runs on the same weekend as the annual book fair, which is an interesting choice. (I expect that the audience for Betascape would like to visit the book fair. But the two events are fairly close, so perhaps the thinking is that people will come and attend both.)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;This will be my first Betascape (is this the first Betascape ever?) and I am looking forward to it. It seems to be a mix of crafts, technologists, and hackers (the good kind, who like to mix-and-match tech).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Thank you, Facebook groups!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-8112834713713081008?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/8112834713713081008/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2011/09/facebook-is-plus.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/8112834713713081008'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/8112834713713081008'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2011/09/facebook-is-plus.html' title='Betascape, courtesy of Facebook'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-285474633614610131</id><published>2011-08-25T18:09:00.000-07:00</published><updated>2011-08-25T18:16:54.674-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='etl'/><category scheme='http://www.blogger.com/atom/ns#' term='swab'/><category scheme='http://www.blogger.com/atom/ns#' term='pentaho'/><title type='text'>Pentaho</title><content type='html'>I sat in on a meeting to review the Pentaho tools. It's an impressive set of tools.&lt;br /&gt;&lt;br /&gt;We focussed on the "Kettle" and "Spoon" tools (Pentaho uses a kitchen motif for their names). "Spoon" offers an easy-to-use interface for the configuration (it's too easy to be programming) of an ETL operation. The tools make for easy extraction, transformation, and loading (which is what ETL is all about).&lt;br /&gt;&lt;br /&gt;Way back when, we called these tools "swabbers" (from "swap bytes A and B"). They were much simpler but did the same task: read data from a source, transform it, and send it to a destination. The Pentaho suite handles neat things like parallel threads and multiple sources and destinations and scheduled jobs.&lt;br /&gt;&lt;br /&gt;Not a bad hour to invest.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-285474633614610131?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/285474633614610131/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2011/08/pentaho.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/285474633614610131'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/285474633614610131'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2011/08/pentaho.html' title='Pentaho'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-7753984852706433517</id><published>2011-08-18T20:02:00.000-07:00</published><updated>2011-08-18T20:24:06.196-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pair programming'/><category scheme='http://www.blogger.com/atom/ns#' term='project management'/><title type='text'>Pair programming trade-offs</title><content type='html'>I attended the local cloud computing group meeting tonight. The presentation was on pair programming, one of the elements of agile development. The concepts were familiar to me, yet I took home a few thoughts:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Pair programming requires you to work with another person:&lt;/b&gt; You have to put aside your ego and listen to the other person. This idea goes back to at least the 1970s; Gerald Weinberg wrote about egoless programming in his "The Psychology of Computer Programming".&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Pair programming affects productivity:&lt;/b&gt; Managers take note, because this affects the project schedule. With pair programming, time for development increases. It takes longer to implement the same features, compared to solo programming.  (But not twice as long, oddly. The initial increase is sixty percent,  but drops to twenty percent as people become comfortable with working in pairs.)&lt;br /&gt;&lt;br /&gt;While the development time increases, so does the quality. The increased quality means fewer defects and therefore less time and effort for testing.  Thus, pair programming shifts the effort from testing to development, with an overall reduction in effort (and time). The project manager must weigh the benefits and costs of this trade-off.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-7753984852706433517?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/7753984852706433517/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2011/08/pair-programming-trade-offs.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/7753984852706433517'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/7753984852706433517'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2011/08/pair-programming-trade-offs.html' title='Pair programming trade-offs'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-8161260524689015471</id><published>2011-08-17T20:16:00.000-07:00</published><updated>2011-08-17T20:22:29.156-07:00</updated><title type='text'>Recruiters and user groups</title><content type='html'>I chatted informally with a recruiter today. They informed that they had few openings for C++ in the area. I suspected that the demand for C++ would drop, but I thought it would be a gradual decrease, not the sharp drop we are seeing.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This evening I attended the BaltoMSDN group meeting. It was an open discussion about future technologies, with discussions on HTML5, Sharepoint, Silverlight, database administration, Gartner Group reports, and Windows Phone 7. It was a lively discussion, with lots of creative ideas. (This was a treat for me, as I can rarely attend these meetings.)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-8161260524689015471?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/8161260524689015471/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2011/08/recruiters-and-user-groups.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/8161260524689015471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/8161260524689015471'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2011/08/recruiters-and-user-groups.html' title='Recruiters and user groups'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-108990504682780671</id><published>2011-08-08T04:49:00.000-07:00</published><updated>2011-08-08T04:58:02.551-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CMAP'/><category scheme='http://www.blogger.com/atom/ns#' term='agile development'/><title type='text'>Agile Development presentation at CMAP</title><content type='html'>The CMAP group had a presentation on agile development techniques. For those familiar with agile development techniques, there were no surprises.&lt;br /&gt;&lt;br /&gt;The key ideas from the presentation:&lt;br /&gt;&lt;br /&gt;- Software development uses the metaphors of building construction, which serve us poorly. Software development is similar to a journey of exploration, not building a well-defined thing.&lt;br /&gt;&lt;br /&gt;- The "big design up front" approach fails not from lack of planning or poor planning skills, but from our inability to predict the future. Project plans do not account for every possible event -- and never will.&lt;br /&gt;&lt;br /&gt;- Allow for change and respond to it&lt;br /&gt;&lt;br /&gt;- Revise the plan as you gain information&lt;br /&gt;&lt;br /&gt;- Build features of the system, not layers. You can build a feature in layers, but the objective is to build the feature.&lt;br /&gt;&lt;br /&gt;- Use feedback loops to ensure that you progress towards your goals&lt;br /&gt;&lt;br /&gt;- Agile techniques are not tied to specific development tools&lt;br /&gt;&lt;br /&gt;I was happy to see the CMAP group (a Microsoft-centered technology group) look at agile development.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-108990504682780671?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/108990504682780671/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2011/08/agile-development-presentation-at-cmap.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/108990504682780671'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/108990504682780671'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2011/08/agile-development-presentation-at-cmap.html' title='Agile Development presentation at CMAP'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-1499586316770266266</id><published>2011-08-02T20:46:00.000-07:00</published><updated>2011-08-02T20:52:00.091-07:00</updated><title type='text'>OSCON 2011</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: 'times new roman', 'new york', times, serif; "&gt;&lt;div&gt;&lt;span&gt;I attended OSCON, the O'Reilly-run conference on open source software.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;There were four "take-aways" from the conference:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;div&gt;&lt;span&gt;&lt;b&gt;Java has renewed interest, due to Oracle&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman', 'new york', times, serif; "&gt;Oracle purchased Sun Microsystems, and acquired Java in the process. Oracle has invested in Java, and the results show it. Java is not open source, and relations between Oracle and the open source community are uneasy, but as one person put it: "People are afraid of Oracle and its reputation of money-grubbing, hard-business operations. But it is precisely those money-grubbing, hard-business operations that allows Oracle the resources to invest in Java." Oracle has invested in Java. Recent changes to the JVM allow for dynamic languages, something that will enable open source projects.&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman', 'new york', times, serif; "&gt;&lt;span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman', 'new york', times, serif; "&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman', 'new york', times, serif; "&gt;&lt;b&gt;Open source has matured to a respectable choice for development&lt;/b&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman', 'new york', times, serif; "&gt;&lt;span&gt;&lt;div&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;Open source has changed its status. In the past, open source was a subversive movement, a "rebel alliance", against the empires of commercial software. That has changed. &lt;/span&gt;Open source is now a respected alternative for software. Its success with projects such as Apache, Linux, and Android have demonstrated that it can deliver workable solutions.&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman', 'new york', times, serif; "&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, serif; "&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman', 'new york', times, serif; "&gt;&lt;div&gt;&lt;span&gt;&lt;b&gt;Open source is the research arm of the software industry&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman', 'new york', times, serif; "&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Open source has become the research laboratory for software. There are projects for large and small efforts, in various areas of software development. They explore new ideas and techniques, and release software quickly. Some recent accomplishments:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Scripting languages:&lt;/b&gt; Perl, Python, and Ruby are all open source projects. While Perl has been released slowly (version 6.0 has taken over a decade) the other languages have seen a number of revisions. The languages are capable and usable.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Future languages:&lt;/b&gt; There are open source implementations of a number of new languages. Some of these fall in the "functional programming" category, and offer efficiencies for cloud computing. The company that wants to get an early grasp of these languages can evaluate them today, thanks to open source.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Databases:&lt;/b&gt; The "NoSQL" data store concept was built in open source. This idea of a database abandons the SQL language and the relational organization of databases in exchange for performance and flexibility. NoSQL databases don't enforce a structure on the data and therefore can store varied information. They are often used for high-performance, large user base applications.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Distributed version control:&lt;/b&gt; Expanding version control for distributed projects, these DVCSs (distributed version control systems) allow people to work independently in distant locations. The DVCS coordinates updates from multiple people without the need for constant contact with the central database.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, serif; "&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman', 'new york', times, serif; "&gt;&lt;div&gt;&lt;span&gt;&lt;b&gt;Open source is allowing companies to thrive in the current economic environment&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman', 'new york', times, serif; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Numbers can tell the story better than words. Of the two dozen exhibitor companies, over half were hiring. The hiring companies included small, obscure companies (Azur, Neustar, Percona, and Linbit) and large, well-known companies (the New York Times, O'Reilly, and Facebook). Some folks were at the conference for the express purpose of hiring -- no product demos, no sales pitches... just recruiting.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Hiring was competitive enough to spark a good-natured "recruitment war" during one of the closing sessions. Two companies (Grant Street Group and Booking.com) made multiple requests, advertising their hiring packages. Grant Street Group offered generous salaries and medical benefits; Booking.com offered to re-locate people to Amsterdam. No other companies joined the debate; perhaps they were overwhelmed by the competition.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-1499586316770266266?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/1499586316770266266/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2011/08/oscon-2011.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/1499586316770266266'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/1499586316770266266'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2011/08/oscon-2011.html' title='OSCON 2011'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-147072928160661889</id><published>2011-07-15T04:20:00.000-07:00</published><updated>2011-07-15T04:22:39.072-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hadoop'/><title type='text'>Cloud computing group</title><content type='html'>Yesterday I attended a meeting of the Capital Cloud user group. Since I arrived early, I was pressed into service as a volunteer at the check-in desk. (Sound familiar? The same thing happened at OSB back in June.)&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The Capital Cloud group is a small, "young" group, and getting a good start. They have interesting presentations (last night was Hadoop) and they also have a good networking session prior to the presentation.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-147072928160661889?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/147072928160661889/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2011/07/cloud-computing-group.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/147072928160661889'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/147072928160661889'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2011/07/cloud-computing-group.html' title='Cloud computing group'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-3305618413739796319</id><published>2011-07-13T20:26:00.000-07:00</published><updated>2011-07-13T20:34:29.680-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='encryption'/><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><category scheme='http://www.blogger.com/atom/ns#' term='gTablet'/><category scheme='http://www.blogger.com/atom/ns#' term='GnuPG'/><title type='text'>GnuPG and Android tablet</title><content type='html'>I attended the CALUG meeting tonight, with its talk on GnuPG and public key cryptography. It was a good presentation, and the most pleasing aspect was that I knew most of the concepts. (So my studies have been successful.) I also had some nice chats with other folks there, about things technical and non.&lt;br /&gt;&lt;br /&gt;At home, I have been playing with the Viewsonic gTablet, an Android tablet that has wifi but not cell net. It's fairly nice, but takes some time to familiarity. Viewsonic implemented Android with a slightly different design than my cell phone. I made the mistake of thinking that my cell phone was &lt;b&gt;the&lt;/b&gt; implementation of Android, when it is &lt;b&gt;an&lt;/b&gt; implementation. The gTablet does not use the Android market; it routes you to handango.com. (Possibly because it has no gmail.com ID.) I spent some time looking for the New York Times app until I realized that I didn't need it -- I could use the browser.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I'm beginning to like the gTablet. I've downloaded and installed the Andiko e-reader and loaded an O'Reilly book. The reader has its quirks (or maybe the .epub file has its quirks) but it is usable.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-3305618413739796319?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/3305618413739796319/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2011/07/gnupg-and-android-tablet.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/3305618413739796319'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/3305618413739796319'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2011/07/gnupg-and-android-tablet.html' title='GnuPG and Android tablet'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-5327031577325255616</id><published>2011-07-05T19:45:00.000-07:00</published><updated>2011-07-05T19:49:30.955-07:00</updated><title type='text'>AOP and MS Azure fabric</title><content type='html'>I attended the CMAP meeting tonight. I enjoyed the presentation on Aspect-Oriented Programming (AOP) and Microsoft Azure fabric. The presenter knew his material and demonstrated the need for AOP and the proper use of it. I came away with a good understanding of how MS implements AOP in .NET and some of the extra tools needed to make it happen. (Interestingly, you cannot do it with just Microsoft tools. Or so I currently believe.)&lt;br /&gt;&lt;br /&gt;After the meeting I chatted with a few folks about programming, assignments, and non-techie stuff.&lt;br /&gt;&lt;br /&gt;All in all, a good meeting.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-5327031577325255616?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/5327031577325255616/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2011/07/aop-and-ms-azure-fabric.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/5327031577325255616'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/5327031577325255616'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2011/07/aop-and-ms-azure-fabric.html' title='AOP and MS Azure fabric'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-3771342736044938623</id><published>2011-06-28T19:39:00.000-07:00</published><updated>2011-06-28T19:44:55.272-07:00</updated><title type='text'>Only two years behind</title><content type='html'>I was going to comment that the "Square object is not a Rectangle object" problem is solved by using immutable objects, an insight I had on this evening's commute home, but others have beaten me to it. And more eloquently than I would be.&lt;br /&gt;&lt;br /&gt;There is one &lt;a href="http://www.blogger.com/cafe.elharo.com/programming/a-square-is-not-a-rectangle"&gt;here&lt;/a&gt;, and another one &lt;a href="http://www.blogger.com/21ccw.blogspot.com/2009/01/is-square-rectangle.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;On the other hand, I'm still happy that I had the insight.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-3771342736044938623?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/3771342736044938623/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2011/06/only-two-years-behind.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/3771342736044938623'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/3771342736044938623'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2011/06/only-two-years-behind.html' title='Only two years behind'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-5162232998179485951</id><published>2011-06-20T21:28:00.000-07:00</published><updated>2011-06-20T21:30:35.988-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='osb2011'/><category scheme='http://www.blogger.com/atom/ns#' term='osb11'/><title type='text'>Open Source Bridge 2011</title><content type='html'>I'm attending the Open Source Bridge conference in Portland OR this week. I've been to this conference in the past. The conference is small and casual, with sessions on technology and also social change. The presenters and attendees are passionate about their work, and conversations are always interesting.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-5162232998179485951?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/5162232998179485951/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2011/06/open-source-bridge-2011.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/5162232998179485951'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/5162232998179485951'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2011/06/open-source-bridge-2011.html' title='Open Source Bridge 2011'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-7493253425137683486</id><published>2011-06-08T03:12:00.000-07:00</published><updated>2011-06-08T03:19:13.963-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hello world'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Phone 7'/><title type='text'>Windows Phone 7 demos</title><content type='html'>I attended the CMAP meting last night. The presentation was on Windows Phone 7. it was a disappointment.&lt;br /&gt;&lt;br /&gt;The WP7 platform seems powerful enough, although programming requires a lot of different concepts (GUI design, web services, .NET, C#, and Microsoft's XAML are all necessary) and a simple program is complex.&lt;br /&gt;&lt;br /&gt;Part of my disappointment is with the demo. The presenter built a "typical" application, using the above-mentioned technologies. The process took almost an hour, and in the end the program did not work. The presenter had to display a previously built program, a trick used by cooking shows on television.&lt;br /&gt;&lt;br /&gt;Microsoft would benefit from the concept of "Hello, World". Their demonstrations of new tech are complex and pull together multiple technologies. Good in that it shows the total power of the platform, but it misses the immediate gratification and confirmation of the new tool.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-7493253425137683486?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/7493253425137683486/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2011/06/windows-phone-7-demos.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/7493253425137683486'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/7493253425137683486'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2011/06/windows-phone-7-demos.html' title='Windows Phone 7 demos'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-5591305000052479185</id><published>2011-05-30T18:34:00.000-07:00</published><updated>2011-05-30T18:43:38.340-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='science fiction conventions'/><title type='text'>Science fiction convention</title><content type='html'>I visited the local science fiction convention (Balticon) this week-end. A good decision.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The "con" was filled with science fiction enthusiasts. Many were people involved in IT; I talked with several folks about programming technology. Mind you, I made it easy to spot me as a computer geek. I wore t-shirts with computer programmer themes and carried the trusty HP-35 calculator. The shirts and calculator were conversation-starters, and I talked with people about things from FORTRAN to Python.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The con had a lot of creative and smart people. It had sessions for science fiction, hard science, culture, and writing/publishing. I looked for the sessions with the odd-sounding titles; I've found that those are the sessions with the new and different ideas.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It was good to get away from the office and talk with other people about the future of computing.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-5591305000052479185?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/5591305000052479185/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2011/05/science-fiction-convention.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/5591305000052479185'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/5591305000052479185'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2011/05/science-fiction-convention.html' title='Science fiction convention'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-2546096983833387560</id><published>2011-05-26T19:19:00.001-07:00</published><updated>2011-05-26T19:24:26.369-07:00</updated><title type='text'>Lunch among techies</title><content type='html'>I lunched with a long-former co-worker, someone from a mid-career UPS project. He was a contractor on that project while I was an employee. Now he is an employee at NCQA in Washington, and I am a contractor at a government agency. Odd how situations change!&lt;br /&gt;&lt;br /&gt;We had a nice lunch, talking about things technical and fun. The ability to meet folks for lunches like this is one of the reasons I like this assignment.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-2546096983833387560?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/2546096983833387560/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2011/05/lunch-among-techies.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/2546096983833387560'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/2546096983833387560'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2011/05/lunch-among-techies.html' title='Lunch among techies'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-7715025809368918249</id><published>2011-05-14T19:19:00.000-07:00</published><updated>2011-05-14T19:32:01.348-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VMware'/><category scheme='http://www.blogger.com/atom/ns#' term='Virtualbox'/><category scheme='http://www.blogger.com/atom/ns#' term='virtualization'/><category scheme='http://www.blogger.com/atom/ns#' term='Virtual PC'/><title type='text'>Fun with virtual machines</title><content type='html'>I spent some time with virtual machines today. It was interesting comparing the behavior of VMware's VMware Player against Oracle's Virtualbox.&lt;br /&gt;&lt;br /&gt;I'm using VMware Player 3.1.4 and Virtualbox 4.0.6. (Microsoft's Virtual PC refuses to run on my PC. Apparently my hardware is not worthy of such a lofty program.)&lt;br /&gt;&lt;br /&gt;I have VMware and Virtualbox running on Windows 7. I created virtual machines for Ubuntu and Kubuntu in each virtual environment, four machines in all. My experience has been good with both VMware and Virtualbox. I can install the guest operating system, configure it, get updates, and install new packages.&lt;br /&gt;&lt;br /&gt;There are some differences between the two.&lt;br /&gt;&lt;br /&gt;The machines under Virtualbox can use bridged networking to find my DHCP server; the machines under VMware cannot and must use NAT.&lt;br /&gt;&lt;br /&gt;The installs for Ubuntu went well. The installs for Kubuntu were a little rougher for VMware. The VMware Tools package expects gcc and make, neither of which was installed by default. Running the Kubuntu Software Management package solved the problem easily.&lt;br /&gt;&lt;br /&gt;Performance is acceptable but not stupendous. This is due, I am sure, to my equipment. The PC is a fairly recent one (about two years old) but it is not the datacenter-class server designed for hosting virtual machines.&lt;br /&gt;&lt;br /&gt;Overall, I am pleased. I can work with the virtual environments, which is my goal.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-7715025809368918249?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/7715025809368918249/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2011/05/fun-with-virtual-machines.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/7715025809368918249'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/7715025809368918249'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2011/05/fun-with-virtual-machines.html' title='Fun with virtual machines'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-2220793674118102580</id><published>2011-05-11T21:05:00.000-07:00</published><updated>2011-05-13T13:31:15.720-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IBM'/><category scheme='http://www.blogger.com/atom/ns#' term='z/OS'/><category scheme='http://www.blogger.com/atom/ns#' term='cloud computing'/><title type='text'>IBM z/OS</title><content type='html'>I attended the CALUG (Columbia Area Linux User Group) meeting tonight. The presentation was on IBM z/OS and virtual Linux machines.&lt;br /&gt;&lt;br /&gt;It was a good presentation! A clear overview and lots of technical details. More impressive than the presentation was the set of questions asked by members of the audience. They knew their stuff, from old IBM mainframe concepts (partitions, microcode, and DASD) to the new concepts (virtual machines, Linux instances, and databases). OK, perhaps the concept of a virtual machine is not that new. But the audience was interested and inquisitive.&lt;br /&gt;&lt;br /&gt;I left with a lot of information about z/OS and Linux. IBM has made some good choices with its technologies, and I think they are well-positioned to leverage their tech for cloud apps.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-2220793674118102580?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/2220793674118102580/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2011/05/ibm-zos.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/2220793674118102580'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/2220793674118102580'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2011/05/ibm-zos.html' title='IBM z/OS'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-7774737286826283935</id><published>2011-05-10T19:42:00.000-07:00</published><updated>2011-05-10T19:46:51.762-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cloud computing'/><title type='text'>Into the cloud</title><content type='html'>I am building a vision of my next set of technology. Here's what I have:&lt;br /&gt;&lt;br /&gt; - Tablet for user interface (the "front end"), probably Android&lt;br /&gt; - Cloud for data storage and processing (the "back end"), probably Amazon.com EC2&lt;br /&gt;&lt;br /&gt;I have considered other platforms (Google App Engine, Azure) and interfaces (iPhone, Windows Phone). My picks seem the easiest for starting a new venture. In part, I follow the path of least resistance. I will say that my experience with the Android phone was an influence in my choices.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-7774737286826283935?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/7774737286826283935/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2011/05/into-cloud.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/7774737286826283935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/7774737286826283935'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2011/05/into-cloud.html' title='Into the cloud'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-6823670544977326190</id><published>2011-05-03T20:16:00.000-07:00</published><updated>2011-05-03T20:25:54.431-07:00</updated><title type='text'>Code but no coding</title><content type='html'>I attended the CMAP meeting tonight and heard a presentation on MVC 3 from Microsoft. MVC 3 is a web development thing, allowing you to build web applications. it takes advantage of .NET, HTML 5, jQuery, and a few Microsoft-specific packages. Using the packages and tools, one can assemble a slick web application quickly.&lt;br /&gt;&lt;br /&gt;The presenter walked us through the development a calendar application. It took all of about 90 minutes.&lt;br /&gt;&lt;br /&gt;My impression: easy to use, lots of code, but very little coding. There was code on the screen (C# and HTML) but not much in the way of creating code. The wizards did a lot of the work, and the work was mostly connecting existing pieces, not writing functions, methods, or classes.&lt;br /&gt;&lt;br /&gt;Is this the future of coding? I guess it is, in Microsoft's view. This is coding so simple that anyone can do it -- as long as the understand the components that are available. Sixty years ago, coding was in assembly language and you had to know the processor architecture and the operating system calls. Forty years ago, coding was in a high-level language and you had to know the language and its (rather limited) library. Now you have to know the language syntax and a large collection of library classes and their methods, and most of the effort is for the libraries.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-6823670544977326190?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/6823670544977326190/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2011/05/code-but-no-coding.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/6823670544977326190'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/6823670544977326190'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2011/05/code-but-no-coding.html' title='Code but no coding'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-8538507189882577542</id><published>2011-04-25T19:00:00.000-07:00</published><updated>2011-04-25T19:03:38.122-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='haskell'/><title type='text'>Haskell, improved</title><content type='html'>I showed my Haskell program to a co-worker today. As we were looking at it, we noticed some possible improvements. (Surprising, since neither of us are Haskell programmers.)&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I tried the changes this evening, and they do indeed work. We've simplified the program and made the logic clearer. I also expanded the program to handle a list of payment values, and not assume that each payment is the same value. It was quite easy to do -- much easier than similar changes to a C++ or C# program.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-8538507189882577542?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/8538507189882577542/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2011/04/haskell-improved.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/8538507189882577542'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/8538507189882577542'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2011/04/haskell-improved.html' title='Haskell, improved'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-9198865038033037234</id><published>2011-04-23T12:14:00.000-07:00</published><updated>2011-04-23T12:28:34.080-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='functional programming'/><category scheme='http://www.blogger.com/atom/ns#' term='haskell'/><title type='text'>Haskell for real</title><content type='html'>Today was the day that I wrote a 'real' -- that is a non-trivial, example-from-the-book -- program. It was an exhilarating experience.&lt;br /&gt;&lt;br /&gt;The program (actually three functions) computes the price of a stream of payments.&lt;br /&gt;&lt;br /&gt;I was inspired by a task at the office: review code that computes the price of the stream of payments. The code was in two forms: Java and Fortran. The code also came with the math for the calculations, and I immediately thought of functional programming.&lt;br /&gt;&lt;br /&gt;Today I set aside some time and dug out the one book on Haskell in my library. It had enough to get me started. With the book and the math, I was on a programming adventure!&lt;br /&gt;&lt;br /&gt;Programming in Haskell is a trip. Just as object-oriented programming was alien to my brain trained in procedural programming, functional programming is alien to my brain now trained in object-oriented programming. I struggled a bit with the syntax and with the design of the program, and emerged victorious! I had a set of functions that performed the desired calculations. (I checked them with math calculated in a spreadsheet.)&lt;br /&gt;&lt;br /&gt;The Haskell version is shorter and cleaner than the procedural versions. (The Fortran version is obviously procedural, and the Java version makes no use of object-oriented constructs.) The procedural version uses a loop and a temporary variable that is assigned at the end of the loop so that it can be used the *next* time through the loop.&lt;br /&gt;&lt;br /&gt;The Haskell version has no loops and no assign-at-the-end distraction. If you know the syntax, it is straightforward and easy to understand. I believe it to be less efficient than the procedural versions (efficient meaning 'less CPU time') so with Haskell I have gained programmer time at the expense of CPU time, a trade-off that I am willing to accept.&lt;br /&gt;&lt;br /&gt;I will say that I don't fully understand the Haskell version. That is, I am not fluent in the syntax. I have internalized the syntax of Fortran, C, Java, and other languages so I can look at the code and know what it does without thinking. I am still in the "think about the code" stage with Haskell. (And that's OK. I expect a ramp-up time with a new language.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-9198865038033037234?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/9198865038033037234/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2011/04/haskell-for-real.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/9198865038033037234'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/9198865038033037234'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2011/04/haskell-for-real.html' title='Haskell for real'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-8959766450565513200</id><published>2011-04-21T19:59:00.000-07:00</published><updated>2011-04-21T20:19:03.985-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhone tracking'/><category scheme='http://www.blogger.com/atom/ns#' term='privacy'/><title type='text'>Privacy? What privacy?</title><content type='html'>The news that the iPhone was tracking your location in a "secret" file had barely broken when more news came out that Android phones are doing the same thing. And then we had the news that yes, Apple and Google are collecting this location data, and in sum, know where we are.&lt;br /&gt;&lt;br /&gt;Some folks will cry "havoc" and let slip the dogs of war for privacy. But let's be honest: we knew that something like this was coming. We in the tech industry know that service providers (in the larger sense, from cell phone companies to banks to game vendors) collect data on customers. On-line web sites have been collecting data about customers, from their e-mail addresses to their click-through habits. And government officials have subpoenaed that information and used it for criminal prosecutions (and possibly other purposes).&lt;br /&gt;&lt;br /&gt;The advocates of this data collection will say (or perhaps only some will say): "If you don't want your data collected, don't use a cell phone." This is similar to saying, "If you don't like the high cost of gasoline, don't drive a car -- use public transit." In this country, not driving is practical in a small subset of geography; cell phones are about to become a necessity perhaps greater than an automobile.&lt;br /&gt;&lt;br /&gt;I'm afraid that Mark Zuckerberg of Facebook was correct. We will sell our privacy for shiny applications and the ability to look cool in front of our friends.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-8959766450565513200?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/8959766450565513200/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2011/04/privacy-what-privacy.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/8959766450565513200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/8959766450565513200'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2011/04/privacy-what-privacy.html' title='Privacy? What privacy?'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-3448957441713444514</id><published>2011-04-21T19:53:00.000-07:00</published><updated>2011-04-21T19:59:33.586-07:00</updated><title type='text'>More cloud stuff</title><content type='html'>I attended the Capital Area Cloud User Group meeting tonight. (My, that's a lot of syllables!)&lt;br /&gt;&lt;br /&gt;This was the group's first meeting at their new location in Rosslyn. I find this location more convenient -- and more spacious. I think that it is a good change for them.&lt;br /&gt;&lt;br /&gt;The presentation was on Salesforce.com and some recent changes that improve their web UI. I am impressed with their selection of improvements. One feature (they call it "inline editing") enables the in-form editing of fields without round-trips to the server. (So I infer that they are using AJAX and probably jQuery.) Enabling this feature is easy, much easier than anything I have seen in the Microsoft world. (Yes, you can do it with Microsoft's tech, but it ain't pretty to code.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-3448957441713444514?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/3448957441713444514/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2011/04/more-cloud-stuff.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/3448957441713444514'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/3448957441713444514'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2011/04/more-cloud-stuff.html' title='More cloud stuff'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-1692772995683112118</id><published>2011-03-09T19:51:00.000-08:00</published><updated>2011-03-09T19:55:34.655-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cloud computing'/><category scheme='http://www.blogger.com/atom/ns#' term='conferences'/><title type='text'>CloudCamp</title><content type='html'>I attended the local CloudCamp un-conference tonight. It was a good con, with an opening session, some lightning talks, and un-panel, and then some un-conference sessions.&lt;br /&gt;&lt;br /&gt;It was also well attended, with somewhat more than 200 people at the con.&lt;br /&gt;&lt;br /&gt;The most interesting aspect of the con: no one talked about programming languages. They talked about databases (MySQL, Oracle, etc.), cloud providers (Amazon, Google, Microsoft, etc.), public and private clouds, provisioning, and big data. But not about programming languages. Nor version control, or agile development, or requirements analysis, or user interface design. As if all of these things were givens.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-1692772995683112118?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/1692772995683112118/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2011/03/cloudcamp.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/1692772995683112118'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/1692772995683112118'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2011/03/cloudcamp.html' title='CloudCamp'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-1923933790742574134</id><published>2011-03-01T20:16:00.000-08:00</published><updated>2011-03-01T20:19:50.190-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DVCS'/><category scheme='http://www.blogger.com/atom/ns#' term='continuing resolution'/><category scheme='http://www.blogger.com/atom/ns#' term='budget'/><category scheme='http://www.blogger.com/atom/ns#' term='Mercurial'/><title type='text'>CMAP and Mercurial</title><content type='html'>I attended the CMAP (Central Maryland Association of .NET Programmers) tonight, and heard a presentation on the 'Mercurial' distributed version control system (DVCS).&lt;br /&gt;&lt;br /&gt;I'm glad that I went. I chatted with a bunch of folks and learned about DVCSs. (Actually, a few lights went on tonight, and I want to think a bit more about DVCSs.)&lt;br /&gt;&lt;br /&gt;And today the US House of Representatives passed a two-week continuing resolution. The Senate will probably approve the bill, and I suspect that President Obama will sign it. Which means that we may be back to nail-biting in two weeks, on St. Patrick's Day.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-1923933790742574134?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/1923933790742574134/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2011/03/cmap-and-mercurial.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/1923933790742574134'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/1923933790742574134'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2011/03/cmap-and-mercurial.html' title='CMAP and Mercurial'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-219132164543689539</id><published>2011-02-21T18:07:00.001-08:00</published><updated>2011-02-21T18:17:41.185-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Virtualbox'/><category scheme='http://www.blogger.com/atom/ns#' term='virtualization'/><category scheme='http://www.blogger.com/atom/ns#' term='Virtual PC'/><title type='text'>Virtual machines</title><content type='html'>This morning I planned to spend some time at the co-working site. After reviewing the work before me, I decided to stay at home. Some things are possible at the co-working site, and some tasks are better at the co-working site, but some are best (and some possible only) at my home systems. So pragmatism ruled!&lt;br /&gt;&lt;br /&gt;I attempted to use Microsoft's Virtual PC. The package is interesting: it's not a Windows Application. Instead of installing as a regular application, it merges into Windows. There is no entry in the "Installed Programs" list for Virtual PC. Shades of the old "Internet Explorer is part of Windows and cannot be removed" argument.&lt;br /&gt;&lt;br /&gt;Despite it's merging into Windows, installing the thing is not particularly easy. You have to find the download site, then specify the version of your operating system (Home, Pro, or Enterprise) and the word size (32-bit or 64-bit), and the language. And then you have to go through a little ActiveX dance to ensure your Windows is genuine. Only then can you install it. And after installation do you learn that Virtual PC is fussy about hardware and requires hardware support for virtualization. When I ran it, it did nothing but display a little dialog that says, effectively, "I won't run, because your hardware is lame". And then you learn that you cannot un-install the beast.&lt;br /&gt;&lt;br /&gt;Oracle's Virtualbox, in contrast, was easy to install and as a bonus it actually works. While Microsoft's Virtual PC supports Windows guests and only Windows guests, Virtualbox lets you run just about anything as a guest. So my experiments with virtualization can start.&lt;br /&gt;&lt;br /&gt;I had lunch with former co-worker Don today, at the local burrito place. It was a good lunch and we talked about several things. At the (old) office, things have changed little.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-219132164543689539?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/219132164543689539/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2011/02/virtual-machines.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/219132164543689539'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/219132164543689539'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2011/02/virtual-machines.html' title='Virtual machines'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-2597444205570844804</id><published>2011-02-17T20:33:00.000-08:00</published><updated>2011-02-17T20:39:35.626-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cloud computing'/><title type='text'>Cloud computing group</title><content type='html'>I attended the Capital Cloud Computing Group meeting tonight. It was a good session, with a presentation by World Wide Technology and their "server room in a box" solution: everything you need in a shipping container. It is an interesting idea, but one that has a limited life span.&lt;br /&gt;&lt;br /&gt;One slide showed a typical rack with blade servers, network equipment, and a NAS. When I saw the diagram, I immediately thought of the old DEC PDP-8 and PDP-12 computers. They, too, were rack-mounted hardware with CPU, storage (disk or tape), and communications equipment. Yet in ten short years, they were replaced by the modern PC.&lt;br /&gt;&lt;br /&gt;So I'm thinking that in ten years (maybe less) we will see a cloudframe (CPUs, storage, and communications) all in a current-day PC tower. And a few years after that, it will be in an Apple Mac Mini box. Eventually it will be the size of an HP calculator.&lt;br /&gt;&lt;br /&gt;Is that a cloud in your pocket?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-2597444205570844804?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/2597444205570844804/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2011/02/cloud-computing-group.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/2597444205570844804'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/2597444205570844804'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2011/02/cloud-computing-group.html' title='Cloud computing group'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-6366629017629606817</id><published>2011-02-15T19:33:00.001-08:00</published><updated>2011-02-15T19:36:17.064-08:00</updated><title type='text'>Budget cuts</title><content type='html'>I attended the local Linux user group meeting tonight. There was no speaker, and the meeting transformed from a regular monthly meeting into a planning session. We discussed several good ideas, from sponsors to lightning talks.&lt;br /&gt;&lt;br /&gt;In other news, the federal budget process is beginning, and things look a bit dark for my contract. The agency will be getting a reduced budget; how much is yet to be decided. I may be considered expendable. Such is the life of a contractor!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-6366629017629606817?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/6366629017629606817/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2011/02/budget-cuts.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/6366629017629606817'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/6366629017629606817'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2011/02/budget-cuts.html' title='Budget cuts'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-8500308351093735620</id><published>2011-02-09T20:00:00.000-08:00</published><updated>2011-02-09T20:03:11.133-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CALUG'/><category scheme='http://www.blogger.com/atom/ns#' term='RCU'/><title type='text'>Geek connections</title><content type='html'>I attended the CALUG (Columbia Area Linux User Group meeting tonight. The presentation was on RCU (Read-Copy-Update) synchronization techniques. Quite a geeky subject, yet it spurred a good conversation.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I arrived early and chatted with a few folks. The CALUG members are a diverse crowd, and each are well-versed in their own areas.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-8500308351093735620?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/8500308351093735620/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2011/02/geek-connections.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/8500308351093735620'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/8500308351093735620'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2011/02/geek-connections.html' title='Geek connections'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-3109371053232444263</id><published>2011-02-06T20:14:00.001-08:00</published><updated>2011-02-06T20:32:49.179-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='memory management'/><category scheme='http://www.blogger.com/atom/ns#' term='programming languages'/><title type='text'>Housekeeping</title><content type='html'>In programming, one trend is the removal of "housekeeping" tasks.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The transition from assembly language to high-level languages saw the elimination of register and stack frame management. This was a big change, but not the only change in housekeeping tasks. FORTRAN and COBOL eliminated a lot of housekeeping for files.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The C programming language (and the UNIX operating system) made file operations even easier, allowing the command shell to handle files for the "stdin" and "stdout" channels.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The introduction of Java saw the elimination of memory management. Prior languages (C, C++, and Pascal) forced the programmer to allocate, track, and release memory. (The early Pascal had a very clumsy "mark and release" model.) Every language introduced after Java has included memory management.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Eliminating housekeeping tasks is usually a good thing. There are some specialized applications that require the complete control of memory allocation, file operations, and even register allocation. But these applications are few. For the mainstream, less housekeeping is better. Housekeeping distracts us from the problem at hand.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Once eliminated, we don't re-introduce housekeeping tasks. We're not going to use (with any degree of popularity) a language that requires us to track and free memory, or jump through hoops to perform file operations, or to manually specify register usage. Future languages will keep the automatic transmissions that we have built.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Which means that the hard-won skills for housekeeping in languages -- even modern languages -- has limited usefulness. Memory allocation skills in C++ were not needed in Java or C#. (It may be useful to know them, to understand the actions occurring "under the hood", but it is not necessary.)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Housekeeping skills have limited life. Skills of longer duration are of lasting value. These include algorithm design, simplification of code, understanding business requirements, communicating with team members (technical, artistic, and management members), project management, cost estimating, and problem diagnosis.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So... what kind of skills do you have?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-3109371053232444263?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/3109371053232444263/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2011/02/housekeeping.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/3109371053232444263'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/3109371053232444263'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2011/02/housekeeping.html' title='Housekeeping'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-8216212227396665956</id><published>2011-02-04T03:19:00.000-08:00</published><updated>2011-02-04T03:23:32.326-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='commute'/><title type='text'>Evening event in WAS</title><content type='html'>I attended Ignite/DC last night. This was a bit of an experiment, attending an event in WAS rather than in BAL. It went well, although I had to leave early in order to catch a train home.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Living in BAL and working in WAS puts a strain on my schedule. I am reluctant to stay in WAS because of the train schedule. I am often late to events in BAL... due to the train schedule.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Driving offers little help. The time for driving is longer than the train. The train allows me to read or eat; I cannot while driving.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-8216212227396665956?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/8216212227396665956/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2011/02/evening-event-in-was.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/8216212227396665956'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/8216212227396665956'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2011/02/evening-event-in-was.html' title='Evening event in WAS'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-6293076136478826433</id><published>2011-01-23T10:43:00.000-08:00</published><updated>2011-01-23T10:49:09.024-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wireless internet'/><category scheme='http://www.blogger.com/atom/ns#' term='Clear wireless'/><title type='text'>Wireless internet</title><content type='html'>After a bit of thought, I committed to wireless internet with Clearwire. I'm pleased with the result. I have a faster internet connection and with no fuss!&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Clearwire uses a network of transmitters throughout the area. Instead of running a wire to your home and supplying you with a "modem", Clearwire broadcasts the signal and supplies you with a "modem". (The modems are really routers.) The wireless router plugs in to your home network (or your sole PC) and you can start using it without any configuration. For those who are network admins, you *can* program the router for a specific subnet, for serving DHCP, and for port forwarding.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I still have the DSL internet service. I may keep it as a backup service, or I may keep it for the one client that insists on "no wireless".&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-6293076136478826433?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/6293076136478826433/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2011/01/wireless-internet.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/6293076136478826433'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/6293076136478826433'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2011/01/wireless-internet.html' title='Wireless internet'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-215877760349113073</id><published>2011-01-20T18:38:00.001-08:00</published><updated>2011-01-20T18:46:35.161-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='virtua'/><category scheme='http://www.blogger.com/atom/ns#' term='co-working'/><category scheme='http://www.blogger.com/atom/ns#' term='Baltimore Beehive'/><title type='text'>Ruby at the Hive</title><content type='html'>I'm working at the Baltimore Beehive tonight. This was a special night-hours session, with a bunch of people attending. The Beehive is a co-working facility, with tables, chairs, power, monitors, and network access (wi-fi and wired). And tonight they have chill/ambient music, which supports programming and design.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Most folks here (all but one) are using Apple computers. (And I am not the one! I have my old Apple MacBook.)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I'm working on the virtual microcomputer project from a while back. I call it "virtua". It's in Ruby, and it is bigger than I would like it to be. I have processors for the 8080, Z-80, 6502, 6800, and a phone one that I call a KA68. Each processor needs a definition, an assembler, and an absolute loader. And each of those needs a set of tests. It's more than I want, and I think that I can re-organize things to simplify this arrangement.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The experience of working at the Beehive is a good one. There are fewer distractions, and the chairs are better for long programming sessions.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-215877760349113073?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/215877760349113073/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2011/01/ruby-at-hive.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/215877760349113073'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/215877760349113073'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2011/01/ruby-at-hive.html' title='Ruby at the Hive'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-1257857135486867204</id><published>2011-01-15T18:15:00.000-08:00</published><updated>2011-01-15T18:23:37.121-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='A20p'/><category scheme='http://www.blogger.com/atom/ns#' term='mylene'/><category scheme='http://www.blogger.com/atom/ns#' term='Clear wireless'/><title type='text'>PCs and networks</title><content type='html'>I attempted to install Linux on the old IBM A20p Thinkpad today. Several times. I tried Ubuntu, Kubuntu, and SuSE. Each of them failed. During one re-start, the PC displayed the message "Extended ROM failure" with some additional diagnostics. This is bad. The extended ROM is a ROM BIOS thing, not a Linux thing or a driver thing. I'm writing the A20p off as unusable. (I'm sorry to see it go. It had a nice keyboard and a fabulous screen. Today's laptops all have the wide -- or short-height -- screens, and the older, taller displays are better for programming.)&lt;br /&gt;&lt;br /&gt;I also visited the local store -- CyberGuys -- and checked out replacement laptops. They have a few, but all in the short-height flavor.&lt;br /&gt;&lt;br /&gt;While there, I looked into the Clear Wireless ISP. I have been considering them as a replacement for Verizon DSL, and they seem reasonable. They offer faster speed (4-5 Mbps) at a decent price ($45/month). I checked the configuration settings for the router and it will work with my home network.&lt;br /&gt;&lt;br /&gt;So if I start Clear, how long do I keep Verizon DSL? Should I keep it as a backup? Or for work in the office? (The office wants no wireless connection.) A little more thought is needed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-1257857135486867204?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/1257857135486867204/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2011/01/pcs-and-networks.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/1257857135486867204'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/1257857135486867204'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2011/01/pcs-and-networks.html' title='PCs and networks'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-1333941284493225909</id><published>2011-01-13T18:58:00.000-08:00</published><updated>2011-01-13T19:09:55.998-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web accessible'/><category scheme='http://www.blogger.com/atom/ns#' term='refresh'/><title type='text'>Refresh meeting</title><content type='html'>I attended the Baltimore Refresh meeting this evening. This was a group of smart people, in a unique building, with an interesting topic.&lt;br /&gt;&lt;br /&gt;The smart people were the Refresh Meetup group. They are a diverse set of folks: different ages, skill levels, and areas of interest. Some are web developers, others designers, and some teachers.&lt;br /&gt;&lt;br /&gt;The unique building was the MICA main building, an old building from Baltimore's "Medieval period" when buildings were designed to look like old castles. Its also convenient, being close to Penn Station to allow me to attend right after work.&lt;br /&gt;&lt;br /&gt;The topic was "web accessibility" -- making web sites that can be accessed by people with disabilities. The speaker was blind and used a laptop PC running Windows and JAWS to demonstrate well-designed and poorly designed web sites.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-1333941284493225909?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/1333941284493225909/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2011/01/refresh-meeting.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/1333941284493225909'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/1333941284493225909'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2011/01/refresh-meeting.html' title='Refresh meeting'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-703487435783500619</id><published>2011-01-13T18:33:00.000-08:00</published><updated>2011-01-13T18:36:51.112-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='recursion'/><title type='text'>A better recursive mood</title><content type='html'>Today I thought about my palindrome detection function, and revised it.&lt;br /&gt;&lt;br /&gt;func bool IsPalindrome(s)&lt;br /&gt;&lt;br /&gt;return true if s.length &lt; 2&lt;br /&gt;&lt;br /&gt;return false if s[0] != s[-1]&lt;br /&gt;&lt;br /&gt;return IsPalindrome(s.substring(1, s.length - 1))&lt;br /&gt;&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;This version separates the "no brainer" conditions from the recursive call. It also uses tail recursion.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-703487435783500619?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/703487435783500619/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2011/01/better-recursive-mood.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/703487435783500619'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/703487435783500619'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2011/01/better-recursive-mood.html' title='A better recursive mood'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-2293734749297689534</id><published>2011-01-12T16:56:00.000-08:00</published><updated>2011-01-12T17:02:55.756-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='functional programming'/><title type='text'>Thinking in a recursive mood</title><content type='html'>A colleague issued me a lunch-time challenge today: Write a program to detect palindromes. After a few minutes of thought, I wrote a small program that used a single function to detect palindromes. It is a very functional-programming design, looking like this:&lt;br /&gt;&lt;br /&gt;func bool IsPalindrome(s)&lt;br /&gt;&lt;br /&gt;  return true if (s.length &lt; 2)&lt;br /&gt;&lt;br /&gt;  return IsPalindrome(s.substring(1, s.length - 1) if s[0] == s[-1]&lt;br /&gt;&lt;br /&gt;  return false&lt;br /&gt;&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;No looping! All objects are immutable!&lt;br /&gt;&lt;br /&gt;What surprised me is that I thought of this solution quickly, and without thinking specifically about functional programming. It came to me, rather than me sitting down and deliberately looking for a function-programming solution.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-2293734749297689534?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/2293734749297689534/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2011/01/thinking-in-recursive-mood.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/2293734749297689534'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/2293734749297689534'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2011/01/thinking-in-recursive-mood.html' title='Thinking in a recursive mood'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-1417587424430930365</id><published>2011-01-09T16:12:00.000-08:00</published><updated>2011-01-09T16:16:04.321-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NFS'/><category scheme='http://www.blogger.com/atom/ns#' term='co-working'/><category scheme='http://www.blogger.com/atom/ns#' term='Baltimore Beehive'/><title type='text'>Beehive for co-working</title><content type='html'>The Baltimore Beehive (http://beehivebaltimore.org/) is considering night-owl hours. This solves a number of problems. I plan on attending.&lt;br /&gt;&lt;br /&gt;In other news, I attempted to set up NFS on //ophelia, a Dell GX280 running SuSE Linux 11.0. I'm almost there -- I have the NFS daemons installed and configured, and other systems can see it, but they cannot write to the directory.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-1417587424430930365?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/1417587424430930365/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2011/01/beehive-for-co-working.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/1417587424430930365'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/1417587424430930365'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2011/01/beehive-for-co-working.html' title='Beehive for co-working'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-3240035925345321890</id><published>2011-01-08T17:29:00.001-08:00</published><updated>2011-01-08T17:37:55.692-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='osb'/><category scheme='http://www.blogger.com/atom/ns#' term='balticon'/><category scheme='http://www.blogger.com/atom/ns#' term='oscon'/><category scheme='http://www.blogger.com/atom/ns#' term='cposc'/><category scheme='http://www.blogger.com/atom/ns#' term='conferences'/><title type='text'>Because learning never stops</title><content type='html'>I'm planning to attend four conferences this year: three for software and one for science fiction.&lt;br /&gt;&lt;br /&gt;The software conferences are: OSCON, Open Source Bridge, and the Central PA Open Source conference. The science fiction con is BaltiCon, and it is more of a writer's convention than science fiction convention.&lt;br /&gt;&lt;br /&gt;I've looked at the costs, and I think that I can swing all of these. Of course, I plan to use my tricks for minimizing the cost of conferences. Those tricks are:&lt;br /&gt;&lt;br /&gt; - Plan ahead&lt;br /&gt; - Register early (and get reduced, early-bird rates)&lt;br /&gt; - Use 'alumni' discounts, if available (O'Reilly conferences usually offer them)&lt;br /&gt; - Book travel early (and get reduced fares)&lt;br /&gt; - Use public transit (to avoid car rental and parking fees)&lt;br /&gt;&lt;br /&gt;OSCON is in July, OSB is in June, CPOSC is in October, and BaltiCon is at the end of May.&lt;br /&gt;&lt;br /&gt;Why attend conferences? Three reasons:&lt;br /&gt;&lt;br /&gt; - Learn new things (or at least learn that there &lt;span style="font-style:italic;"&gt;are&lt;/span&gt; new things)&lt;br /&gt; - Get away from the daily routine&lt;br /&gt; - Meet smart, interesting people&lt;br /&gt;&lt;br /&gt;Learning never stops. We can always learn, always do something new.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-3240035925345321890?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/3240035925345321890/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2011/01/because-learning-never-stops.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/3240035925345321890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/3240035925345321890'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2011/01/because-learning-never-stops.html' title='Because learning never stops'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-5023926158464686338</id><published>2011-01-04T19:38:00.000-08:00</published><updated>2011-01-04T19:40:55.470-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CMAP'/><title type='text'>.NET meeting</title><content type='html'>I attended the CMAP meeting tonight. The presentation was a group of speakers talking about tips for .NET development. The major topics were jQuery, an Extension loader for Visual Studio, and Silverlight. More interesting were the side conversations with people. One convo was about the format of XLS and XLSX files!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-5023926158464686338?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/5023926158464686338/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2011/01/net-meeting.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/5023926158464686338'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/5023926158464686338'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2011/01/net-meeting.html' title='.NET meeting'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-5230449154280473105</id><published>2011-01-03T17:43:00.000-08:00</published><updated>2011-01-03T17:46:20.055-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NFS'/><category scheme='http://www.blogger.com/atom/ns#' term='learning'/><title type='text'>Fun with network shares</title><content type='html'>This past week-end I had quite the fun with network shares. I configured several Linux systems to auto-mount an NFS shared directory on another PC. I configured Ubuntu Linux, Kubuntu Linux, and Xubuntu Linux. On each system, I made a mistake, and had to check my work. What was nice was that I made different mistakes on the different systems. We learn from our mistakes, so I learned a lot!&lt;br /&gt;&lt;br /&gt;And now all three systems are working with the shared directory.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-5230449154280473105?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/5230449154280473105/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2011/01/fun-with-network-shares.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/5230449154280473105'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/5230449154280473105'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2011/01/fun-with-network-shares.html' title='Fun with network shares'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-4200903618443548526</id><published>2011-01-02T13:43:00.000-08:00</published><updated>2011-01-02T13:51:06.012-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='significant figures'/><title type='text'>A little bit of fun</title><content type='html'>For fun, I wrote a little class in C# to handle arithmetic with significant figures. This is one of my goals for the new year. (I'm already getting one of them done! Wow, I am productive!)&lt;br /&gt;&lt;br /&gt;I used Visual Studio Express for C#, which is simpler than the full Visual Studio package yet powerful enough to handle this task. The Express edition works almost identically to the Professional edition, so I was familiar with the environment.&lt;br /&gt;&lt;br /&gt;The solution consists of a small class to handle the arithmetic and a small program to invoke the class. I don't have any test cases; I want to create some as I am uncomfortable working without them.&lt;br /&gt;&lt;br /&gt;But the class does what it is supposed to do. The result of 1000 (1 sig-fig) plus 20 is 1000, not 1020 as one would expect. The answer should be 1000 since you must keep the number of significant figures at 1 and not expand it. Which means that 1000 plus 200 is also 1000, and 1000 + 200 + 200 + 200 + 200 + 200 is still 1000 although 200 + 200 + 200 + 200 + 200 + 1000 results in 2000, since the '200' amounts add up to 1000 and then the second 1000 yields 2000.&lt;br /&gt;&lt;br /&gt;Leaving the oddities of sig-fig math, and coming back to programming, it was a fun project. Now perhaps I will port the solution to a few other languages.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-4200903618443548526?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/4200903618443548526/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2011/01/little-bit-of-fun.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/4200903618443548526'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/4200903618443548526'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2011/01/little-bit-of-fun.html' title='A little bit of fun'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-8797927709124272270</id><published>2011-01-01T09:49:00.001-08:00</published><updated>2011-01-01T10:05:03.219-08:00</updated><title type='text'>Looking forward</title><content type='html'>As a contractor, I must serve two masters: the client of today and the client of tomorrow. I recognize that there are no guarantees for the length of any contract, and I must be prepared for a new client. That preparation includes keeping abreast of current technologies. (It also includes connections and business relationships, but that is for another time.)&lt;br /&gt;&lt;br /&gt;The turn of the year is a good reminder to look ahead and identify technologies and skills to learn. Here's my list for 2011:&lt;br /&gt;&lt;br /&gt;- Functional programming languages&lt;br /&gt;- Dynamic programming languages&lt;br /&gt;- Virtualization&lt;br /&gt;- Programming for Mac OSX&lt;br /&gt;- Conferences&lt;br /&gt;- Cloud computing&lt;br /&gt;- Fun projects that aren't necessarily client-based&lt;br /&gt;&lt;br /&gt;First, programming languages. I'm convinced that functional programming will be the new big thing, replacing object-oriented programming. I've already started by using Haskell on my home PC. I also have a few old projects with Ruby, and I want to re-start them.&lt;br /&gt;&lt;br /&gt;Virtualization has been a challenge for me, mostly due to hardware. My PCs are not-quite-enough to support virtualized PCs. In addition, the three virtualization engines that I attempted in the past (that was, um, two years ago) were not quite willing to work for me. Two years and several Linux upgrades later, things may be different.&lt;br /&gt;&lt;br /&gt;I've attended conferences in the past, and I expect to attend them this year. I miss the "Software Development" conferences run by Miller-Freeman; they covered different technologies and vendors without a specific agenda. In their place, I find the open source cons educational and informative. I'm looking at OSCON, Open Source Bridge, and the Central PA Open Source Conference for this year.&lt;br /&gt;&lt;br /&gt;Cloud computing is the up-and-coming thing, and I would like to examine cloud-based processing. Perhaps with Google's App Engine, or maybe Salesforce.com.&lt;br /&gt;&lt;br /&gt;For the fun projects, I'm looking at a software and hardware. For the software, I'm thinking of a class to perform arithmetic operations that respect significant figures. The math for "sig figs" is almost identical to "infinite precision" math, but the rounding is different. I may create something in C++ and then port it to Java, C#, Python, or Ruby. (Or perhaps several!)&lt;br /&gt;&lt;br /&gt;The hardware project will be an HP scanner and some OCR software. I'd like to scan some pages from old programming texts and try out the programs.&lt;br /&gt;&lt;br /&gt;All in all, this could be a very educational year.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-8797927709124272270?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/8797927709124272270/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2011/01/looking-forward.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/8797927709124272270'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/8797927709124272270'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2011/01/looking-forward.html' title='Looking forward'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-1917748644243041041</id><published>2010-12-20T19:47:00.001-08:00</published><updated>2010-12-20T19:49:28.583-08:00</updated><title type='text'>Haskell, the language</title><content type='html'>I started getting serious about Haskell tonight. I have Graham Hutton's book "Programming In Haskell", and I installed hugs and started going through the exercises in the book. (I finished the Matlab book last week.) The installation on my Xubuntu system worked without problems (as usual) and I had fun with the first chapter.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-1917748644243041041?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/1917748644243041041/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2010/12/haskell-language.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/1917748644243041041'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/1917748644243041041'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2010/12/haskell-language.html' title='Haskell, the language'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-5105510529037650879</id><published>2010-12-12T16:14:00.000-08:00</published><updated>2010-12-12T16:47:54.467-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='parallel assignment'/><category scheme='http://www.blogger.com/atom/ns#' term='Octave'/><category scheme='http://www.blogger.com/atom/ns#' term='serial assignment'/><title type='text'>More fun with matrices</title><content type='html'>I'm more impressed with Matlab and Octave.&lt;br /&gt;&lt;br /&gt;Octave (Matlab also) has a small language that lets one build scripts. This language has two features that give Octave (and Matlab) its advantages.&lt;br /&gt;&lt;br /&gt;The first feature is parallel assignment. Programming languages have had serial assignment since the early days of COBOL and FORTRAN. Serial assignment moves one item in a statement, like BASIC's&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    LET A = B + C&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It is a simple operation, easy to program and easy to understand.&lt;br /&gt;&lt;br /&gt;Parallel assignment moves multiple items in one statement. Perl has it, and the typical example is&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    ($a, $b) = ($b, $a);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;to swap to values. The corresponding code with serial assignment is:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    temp = a;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    a = b;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    b = temp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Notice that one line of parallel assignment requires three lines (and an extra variable) in serial assignment.&lt;br /&gt;&lt;br /&gt;(Actually, COBOL had a sophisticated "MOVE CORRESPONDING" operation that is rarely discussed. It moved one record to another record of a different structure, moving fields based on their names, which meant that COBOL "did the right thing", all in one line.)&lt;br /&gt;&lt;br /&gt;The second feature is the colon operator, which generates a sequence of numbers. The expression "1:10" generates a list of numbers from 1 to 10. A variant on the syntax allows you to specify the interval size, so the expression "1:0.5:10" generates the numbers from 1 to 10 in steps of 0.5 in size.&lt;br /&gt;&lt;br /&gt;An expression that generates a list is more powerful than one might think. After all, you can generate a sequence of numbers in a loop and every programming language has basic looping. But the expression that generates a list is a compact thing, roughly the equivalent to C's pointer arithmetic. Just as C can use pointer arithmetic for&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    while (*d++ = *s++);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Octave can use the colon operator for&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    list = 1:7:365&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;for a list of numbers that might represent days in the year.&lt;br /&gt;&lt;br /&gt;Combining parallel assignment with the colon operator provides for some powerful programming constructs. Where in other languages we would need to set up loops and control variables, in Octave we can perform a single operation:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    output(10:20) = data(1:11);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This moves eleven items from 'data' into 'output'. Without parallel assignment and the list generator, we would need:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    for (int i = 10; i &amp;lt;= 20; i++)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;        output(i) = data(i - 9);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now, one might argue that the difference between these two code snippets is small, with the difference being one line of code and the latter using familiar constructs. Yet I find the Octave version much easier to read -- once I learned the 'lingo' of Octave.&lt;br /&gt;&lt;br /&gt;And programs that are easier to read are easier to write, easier to understand, and easier to debug.&lt;br /&gt;&lt;br /&gt;So I'm impressed with Octave.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-5105510529037650879?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/5105510529037650879/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2010/12/more-fun-with-matrices.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/5105510529037650879'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/5105510529037650879'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2010/12/more-fun-with-matrices.html' title='More fun with matrices'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-7140789434407970173</id><published>2010-12-09T03:21:00.000-08:00</published><updated>2010-12-09T03:26:07.711-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Octave'/><category scheme='http://www.blogger.com/atom/ns#' term='Matlab'/><title type='text'>Fun with matrices</title><content type='html'>I did some work with Octave (the GNU variant of Matlab) last night. I performed one of the exercises in book "Engineering Problem Solving with Matlab". It was fun, working on a new tool and on a problem different from the normal work-day problems.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I found one difference in the book's description of Matlab and the performance of Octave, and that was in the zeros() function. This might be due to a difference between Octave and Matlab, or a difference in  a later version of Octave (and a later version of Matlab), or possibly an error in the book. Solving this challenge and seeing the plot come out was the most fun of the exercise.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-7140789434407970173?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/7140789434407970173/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2010/12/fun-with-matrices.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/7140789434407970173'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/7140789434407970173'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2010/12/fun-with-matrices.html' title='Fun with matrices'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-756747569086471474</id><published>2010-12-08T19:22:00.000-08:00</published><updated>2010-12-08T19:26:45.110-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CALUG'/><category scheme='http://www.blogger.com/atom/ns#' term='Sintel'/><category scheme='http://www.blogger.com/atom/ns#' term='calendars'/><title type='text'>Calendars and dragons</title><content type='html'>I attended the CALUG (Columbia Area Linux User Group) meeting tonight. We had an open conversation about calendar tools and then watched the movie "Sintel". Both were educational. The first was less about technology and more about business models and group psychology; the latter was impressive in the tech and the artistry.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-756747569086471474?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/756747569086471474/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2010/12/calendars-and-dragons.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/756747569086471474'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/756747569086471474'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2010/12/calendars-and-dragons.html' title='Calendars and dragons'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-7931764806290474438</id><published>2010-12-07T19:46:00.001-08:00</published><updated>2010-12-07T19:54:19.682-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WebMatrix'/><category scheme='http://www.blogger.com/atom/ns#' term='CMAP'/><category scheme='http://www.blogger.com/atom/ns#' term='IronRuby'/><category scheme='http://www.blogger.com/atom/ns#' term='ShmooCon'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>Microsoft WebMatrix</title><content type='html'>I attended the CMAP (Central Maryland Association of .NET Professionals) tonight. The presentation was on Microsoft's new "WebMatrix" development tool, a low-end web page/app editor/builder.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;WebMatrix is pretty nice, for what it does. The description "low-end app builder" is perhaps not quite accurate, nor is "high-powered HTML editor". WebMatrix is an IDE and a set of libraries that sit on top of .NET, run under IIS, and serve dynamic web pages. You can program web pages with this funny little language (like PHP or ASP or JSP) and get results pretty quickly. I got a lot out of the presentation.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I also chatted with a bunch of folks, including my friend Ben who wants to attend ShmooCon. Apparently the tickets have already sold out, and he missed the small window.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;And bonuses: I picked up a copy of a book on IronRuby (the .NET implementation from Microsoft) and a USB memory stick with Microsoft Windows Phone stuff on it.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;All in all, a good evening.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-7931764806290474438?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/7931764806290474438/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2010/12/microsoft-webmatrix.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/7931764806290474438'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/7931764806290474438'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2010/12/microsoft-webmatrix.html' title='Microsoft WebMatrix'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-4362755572011813801</id><published>2010-12-05T13:56:00.000-08:00</published><updated>2010-12-05T18:38:24.491-08:00</updated><title type='text'>Adventures with MatLab</title><content type='html'>&lt;p&gt;On a recent trip to the Book Thing, I found a copy of "Engineering Problem Solving with MatLab", a dual introduction to engineering problems and the MatLab software. For me, the engineering is a stroll down memory lane; MatLab is the new experience.&lt;/p&gt;&lt;p&gt;I installed Octave, the GNU equivalent of MatLab. Octave performed some basic functions identically to MatLab, which got me excited. I have yet to try the advanced features.&lt;/p&gt;&lt;p&gt;The book contains a floppy disk with programs and data (I assume) for its exercises. The Linux systems (//desdemona and //delilah) refuse to mount the disk. Perhaps it is no longer readable -- the book was published in 1993. I may have to get the data from another source.&lt;/p&gt;&lt;p&gt;My plan is to perform the exercises in the book. The idea excites me -- it's a fun, geeky way to learn a new language!&lt;/p&gt;&lt;p&gt;Edit: Apparently the exercises use very little in the way of data from the floppy disk. I had some fun this evening, entering data and displaying graphs. Whee!&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-4362755572011813801?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/4362755572011813801/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2010/12/adventures-with-matlab.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/4362755572011813801'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/4362755572011813801'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2010/12/adventures-with-matlab.html' title='Adventures with MatLab'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-715964921126856925</id><published>2010-12-04T17:01:00.000-08:00</published><updated>2010-12-04T17:03:37.352-08:00</updated><title type='text'>Sharing is nice</title><content type='html'>&lt;p&gt;I did a little bit of technical work at home today: I configured a Linux system to automatically mount a share from another Linux system. It took less than 30 minutes, even with my fumbling searches for information on the web.&lt;/p&gt;&lt;p&gt;This change makes my home systems a little more web-like, in that the data is not stored on the local PC but on the server -- even though the server is less than four feet away.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-715964921126856925?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/715964921126856925/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2010/12/sharing-is-nice.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/715964921126856925'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/715964921126856925'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2010/12/sharing-is-nice.html' title='Sharing is nice'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-6455450378248555265</id><published>2010-11-18T19:39:00.000-08:00</published><updated>2010-11-18T19:47:21.072-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='user groups'/><category scheme='http://www.blogger.com/atom/ns#' term='saleforce.com'/><category scheme='http://www.blogger.com/atom/ns#' term='cloud computing'/><title type='text'>Cloud computing user group</title><content type='html'>I attended a meeting of a the Capitol Area Cloud Computing user group. The presentation was on salesforce.com, a platform for building cloud-based apps.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I was impressed with the product. It's more than a sales or CRM tool; it is an application platform that can be used for a number of things.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I was also impressed with the enthusiasm of the attendees. They were much more "into it" than last night's audience for the Windows Phone 7 meeting. They salesforce.com crowd was also more diverse, with recruiters, newbies, and experienced developers. (The Windows Phone 7 meeting had only experienced developers.)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This is a likable group, and I plan to attend future meetings. Next month will have a presentation on Amazon.com's cloud offerings.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-6455450378248555265?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/6455450378248555265/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2010/11/cloud-computing-user-group.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/6455450378248555265'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/6455450378248555265'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2010/11/cloud-computing-user-group.html' title='Cloud computing user group'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-3143667388318479608</id><published>2010-11-17T20:17:00.000-08:00</published><updated>2010-11-17T20:21:38.295-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='user groups'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><title type='text'>Microsoft User Group</title><content type='html'>I attended the BaltoMSDN user group meeting tonight. BaltoMSDN is a local group interested in all things Microsoft, and mostly the developer tools such as Visual Studio and .NET technologies.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Tonight's meeting morphed from a .NET meeting into a Windows Phone 7 meeting. The conversations were interesting, but as I am not a Windows Phone developer, not particularly pertinent to my work.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The meeting was held at the Baltimore Emerging Technology Center, which was part of the appeal of the meeting. They have had meetings outside of Baltimore, and I find it easier to attend meetings in the city. And the ETC is a nice space.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I had some good conversations with the folks at the meeting.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-3143667388318479608?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/3143667388318479608/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2010/11/microsoft-user-group.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/3143667388318479608'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/3143667388318479608'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2010/11/microsoft-user-group.html' title='Microsoft User Group'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-5237551076862208318</id><published>2010-11-16T19:53:00.000-08:00</published><updated>2010-11-16T19:59:42.143-08:00</updated><title type='text'>Linux is not Windows</title><content type='html'>I attended the BaltoLUG Linux User Group meeting tonight. They had no speaker, but an open discussion about Linux distributions and the features that people liked or wanted in distros. It was a lively discussion with various tangent ramblings.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;One idea that came out of the meeting was: Linux is not Windows. More specifically, lots of corporate support sites know how to fix problems with Windows installations and only Windows installations. They are set up with prepared scripts and Windows-specific training; they cannot handle problems for Linux systems, or Mac systems.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Using Linux, as a person, means that you are a pioneer. Linux requires a sense of rugged self-sufficiency, where you can handle just about any problem. Some corporations can handle Linux and Mac issues, but many cannot. (And expecting them to handle Linux is unrealistic, given the demographics of the market.)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Not a happy thought, but a realistic one.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-5237551076862208318?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/5237551076862208318/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2010/11/linux-is-not-windows.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/5237551076862208318'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/5237551076862208318'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2010/11/linux-is-not-windows.html' title='Linux is not Windows'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-2989152004037177809</id><published>2010-11-11T17:26:00.000-08:00</published><updated>2010-11-11T17:34:46.230-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='coworking'/><category scheme='http://www.blogger.com/atom/ns#' term='Sun'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><category scheme='http://www.blogger.com/atom/ns#' term='Baltimore Beehive'/><title type='text'>Networking and co-working facility in Baltimore</title><content type='html'>&lt;p&gt;Today is Veteran's Day, or as some call it, Armistice Day. A holiday for the federal government, and therefore a free day for me. I did what I could with it.&lt;/p&gt;&lt;p&gt;I lunched with former co-workers today. Yummy burgers! And speculation on the future of tech. We all agree that Java needs a "2.0" version, something that moves Java up from its current level to compete with .NET. We consider the current Java (and its JVM and libraries) as "Java 1.0". It showed that the virtual processor was feasible, and usable, and even profitable. Microsoft .NET is a competent product and Sun (now Oracle) must step up and improve Java to match .NET.&lt;/p&gt;&lt;p&gt;I also visited the Baltimore Beehive, a co-working location. For a modest fee, one gains access to the facility, which is a large room with tables, chairs, monitors, power, and network access. I see several advantages to working in the Beehive over working at home: fewer distractions, better furniture, a collection of books, and interaction with other folks at the facility.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-2989152004037177809?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/2989152004037177809/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2010/11/networking-and-co-working-facility-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/2989152004037177809'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/2989152004037177809'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2010/11/networking-and-co-working-facility-in.html' title='Networking and co-working facility in Baltimore'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-4118949878310812456</id><published>2010-11-09T19:43:00.001-08:00</published><updated>2010-11-09T19:49:15.506-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='urban campus'/><category scheme='http://www.blogger.com/atom/ns#' term='Washington DC'/><category scheme='http://www.blogger.com/atom/ns#' term='Stevens'/><title type='text'>Stevens in Washington DC</title><content type='html'>I attended a gathering at Stevens tonight. Not in Hoboken, but in Washington.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The gathering was to recognize the role Stevens has played and continues to play in educating and supporting veterans. The crowd was a good size, with perhaps 30 alumni attending (and possibly that many staff).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Stevens in Washington is not a full stand-alone campus. It is space in the Ronald Reagan building. They have one classroom and some offices. This is the new "urban school" model, which uses office space but doesn't require the acres of greensward for frisbee games. For graduate programs, I think this model makes sense.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I chatted with a bunch of folks, including my old class-mate Bill Accardi.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-4118949878310812456?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/4118949878310812456/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2010/11/stevens-in-washington-dc.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/4118949878310812456'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/4118949878310812456'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2010/11/stevens-in-washington-dc.html' title='Stevens in Washington DC'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-1778003580375641706</id><published>2010-11-04T20:48:00.000-07:00</published><updated>2010-11-04T20:55:38.629-07:00</updated><title type='text'>An orchestra in a box, and smart people</title><content type='html'>I attended a meeting at Loyola College this evening. I had heard about it through a random e-mail, and had it scheduled on my calendar.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The presentation was on "Simfonia", a PC-based music synthesizer. It's an impressive package, given the challenges of creating music that sounds real. It can synthesize music for many different instruments, and the authors are working on the problem of "liveness" to music. (They know the desired effect and the problems, but the solutions are difficult.)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The meeting was a pleasant experience. The folks were *smart*. Within five minutes, we talked about synthesizing music, the Turing Test, and rounding issues. It's nice to chat with knowledgeable people!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-1778003580375641706?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/1778003580375641706/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2010/11/orchestra-in-box-and-smart-people.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/1778003580375641706'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/1778003580375641706'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2010/11/orchestra-in-box-and-smart-people.html' title='An orchestra in a box, and smart people'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-3823264393672906247</id><published>2010-11-03T03:19:00.000-07:00</published><updated>2010-11-03T03:25:47.325-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='co-working'/><category scheme='http://www.blogger.com/atom/ns#' term='CMAP'/><category scheme='http://www.blogger.com/atom/ns#' term='Entity Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='Baltimore Beehive'/><title type='text'>Professional meeting, Microsoft, and networking</title><content type='html'>I attended the CMAP meeting last night. I chatted with some folks before the meeting started, and listened to the presentation on Microsoft's "Entity Framework 4". (The previous version was Entity Framework 1"; Microsoft changed to version 4 to match the version number of C# and .NET Framework.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The presentation went at a slow pace, and gave me some time to think about the Baltimore Beehive, the local co-working location. If I get the opportunity to work there (say, one day every other week) I would need a PC. My trusty IBM ThinkPad just died, so it won't be that one. I could replace is, or I could use the Apple MacBook. Or, I could get a tablet, although I think a computer with a keyboard would be better for coding.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A day at the Beehive would also give me the opportunity to network with other folks, perhaps at lunchtime meetings.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-3823264393672906247?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/3823264393672906247/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2010/11/professional-meeting-microsoft-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/3823264393672906247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/3823264393672906247'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2010/11/professional-meeting-microsoft-and.html' title='Professional meeting, Microsoft, and networking'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-4563633176842291228</id><published>2010-10-27T18:05:00.000-07:00</published><updated>2010-10-27T18:15:20.549-07:00</updated><title type='text'>Two more steps towards functional programming</title><content type='html'>&lt;p&gt;I took two steps towards functional programming today.&lt;/p&gt;&lt;p&gt;First, I read a bit of "Pearls of Functional Algorithm Design", a book of essays on functional programming and modelled after Jon Bentley's "Programming Pearls" book. "PFAD" is written with examples in Haskell, and I have enough knowledge to follow the text but not enough for full comprehension. I'm not worried; my early experiences with object-oriented programming were similar. I plan to read up on Haskell a bit more, continue reading the text, and if I can find the time write some examples in Haskell myself.&lt;/p&gt;&lt;p&gt;Second, I continued my re-design of a program at the office, converting it to a modest form of functional programming. A very modest form. I call it "constructor programming", and attempt to push all code (well, all non-trivial code) into the constructor for objects. Using this techniques, I can use plain object-oriented languages (like C++ and C#) yet still get a feel for functional programming. (Or what I currently thing of as functional programming.)&lt;/p&gt;&lt;p&gt;The re-design work was helpful. It forced me to think about the classes and the true problem. I ended with a cleaner design, or so I like to think -- I have no measurements for complexity. (Come to think of it, I do have a utility to measure class interface complexity, and perhaps I should use that to measure my progress.)&lt;/p&gt;&lt;p&gt;I'm happy with the direction the code is taking. The code is clean and easy to understand. I think we could explain it to the business users and they would understand it. This is a big win, as the current system is quite opaque.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-4563633176842291228?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/4563633176842291228/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2010/10/two-more-steps-towards-functional.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/4563633176842291228'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/4563633176842291228'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2010/10/two-more-steps-towards-functional.html' title='Two more steps towards functional programming'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-8232624939487336674</id><published>2010-10-20T18:59:00.001-07:00</published><updated>2010-10-20T19:14:56.939-07:00</updated><title type='text'>Inching towards functional programming</title><content type='html'>&lt;p&gt;My recent work has been in object-oriented programming, but I'm interested in functional programming. I've read about it, talked with people about it, and I think it has a lot of promise. But working on it is tricky. The "regular work" during the day is in object-oriented programming, due to the tools, existing code, and talent of the rest of the team.&lt;/p&gt;&lt;p&gt;Despite the limitations, I can take some aspects of functional programming and use them in plain object-oriented code. Today I worked on the aspect of immutable objects. I've been designing (and re-designing) some classes, and I have been designing them to use immutable objects. The exercise has been enlightening, and I have gotten a better design out of it too.&lt;/p&gt;&lt;p&gt;So my recent efforts have been, effectively, to gradually transition from object-oriented programming to functional programming.&lt;/p&gt;&lt;p&gt;I followed a similar strategy when I moved from procedural to object-oriented programming. At the time, I was working in C. The client's shop was heavily regulated (by internal folks, not the government) and the corporate standards group strictly controlled the software installed on their PCs. (They still strictly govern software.) This was also prior to the great revolution of the internet, the web, and the open source movement. Acquiring software was harder (and more expensive) in those days.&lt;/p&gt;&lt;p&gt;I started my move from procedural code to object-oriented code by doing three things: reading about it, attending conferences, and programming in the style of object-oriented programming with the tools we were allowed to use. I didn't create anything as elaborate as the cfront compiler. Instead, I designed function calls that worked like object-oriented code. I called it "thing-oriented programming", and it was somewhere in between procedural programming and true object-oriented programming. Like today's efforts, it was enlightening and gave me better designs.&lt;/p&gt;&lt;p&gt;I'm excited about the future of functional programming. And with the internet and open source efforts, I should be able to try some real functional languages at home. The biggest challenge there will be time.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-8232624939487336674?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/8232624939487336674/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2010/10/inching-towards-functional-programming.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/8232624939487336674'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/8232624939487336674'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2010/10/inching-towards-functional-programming.html' title='Inching towards functional programming'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-6818308503313463595</id><published>2010-10-19T20:09:00.000-07:00</published><updated>2010-10-19T20:16:04.580-07:00</updated><title type='text'>With vim</title><content type='html'>&lt;p&gt;Attended the monthly BaltoLUG meeting tonight. It was easy; the new location is downtown, about ten blocks away.&lt;/p&gt;&lt;p&gt;The meeting was held at the Baltimore Node, a hacker space. This was my first visit. The space is a large workroom with various bits of electronics on tables, stored in bins, and tacked onto the walls. Not elegant but very practical.&lt;/p&gt;&lt;p&gt;The presentation was on VIM, the improved VI editor that is shipped with just about every distro of Linux. It's a powerful editor, and reminds me of TECO on the DECsystem-10. It can handle regular expressions and it has a macro-programming tool.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-6818308503313463595?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/6818308503313463595/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2010/10/with-vim.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/6818308503313463595'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/6818308503313463595'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2010/10/with-vim.html' title='With vim'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-4210904307281426629</id><published>2010-10-18T18:36:00.000-07:00</published><updated>2010-10-18T18:40:19.641-07:00</updated><title type='text'>Hardware fun</title><content type='html'>&lt;p&gt;I did some hardware work tonight.&lt;/p&gt;&lt;p&gt;I replaced a failing DVD reader on //ophelia (a Dell GX280 that was gifted to me). It came with a CD reader, and I had installed an old used DVD reader. That reader worked for a while, but recently failed. The failure was physical; there was something preventing the drive tray from opening.&lt;/p&gt;&lt;p&gt;A quick stop by the Radio Shack web page got a new DVD reader on its way to me. (Although there was only the one selection for internal DVD readers. I suspect that DVD readers will soon disappear, replaced by USB drives and network connections.)&lt;/p&gt;&lt;p&gt;With the new DVD reader installed, I was able to upgrade the operating system to SuSE 11.3. The upgrade went smoothly, and I like the look of the new KDE desktop.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-4210904307281426629?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/4210904307281426629/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2010/10/hardware-fun.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/4210904307281426629'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/4210904307281426629'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2010/10/hardware-fun.html' title='Hardware fun'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-2677255159264823856</id><published>2010-10-17T13:18:00.000-07:00</published><updated>2010-10-17T13:19:29.569-07:00</updated><title type='text'>Open source in Pennsylvania</title><content type='html'>This Saturday I attended CPOSC, the Central Pennsylvania Open Source Conference.&lt;br /&gt;&lt;br /&gt;CPOSC is different from most conferences. It's small, with a maximum of 150 attendees. It's run by volunteers. It lacks the pizazz and glitz of the big conferences. It focusses on open source software, avoiding proprietary and commercial solutions.&lt;br /&gt;&lt;br /&gt;Despite the unusual approach, it has interesting sessions and good speakers, on par with those at the larger conferences. I attended several sessions and they were just as good as sessions at the Microsoft or O'Reilly conferences.&lt;br /&gt;&lt;br /&gt;The sessions I attended included:&lt;br /&gt;&lt;br /&gt;- A review of Java, the Tomcat web server, and the Eclipse IDE and how they work together.&lt;br /&gt;- "One-line" programs that do useful things in Perl&lt;br /&gt;- Javasript and how it can be used effectively&lt;br /&gt;- A review of the latest version of Wordpress, which is growing from a blogging framework into a content management system.&lt;br /&gt;- A summary of new features in Rails version 3&lt;br /&gt;- Writing internet applications in Python using the "Twisted" framework. This framework is much easier than the Java RMI or the Microsoft .NET solutions for internet client/server applications.&lt;br /&gt;- A list of collaboration tools for organizing and managing projects with distributed teams&lt;br /&gt;&lt;br /&gt;The schedule is too fast to learn any topic in depth. Sessions run for fifty minutes, which is too short to discuss deep technical issues. Effective participants use the sessions as highlights for solutions, noting promising ideas and investigating them later.&lt;br /&gt;&lt;br /&gt;CPOSC is targeted to practitioners. The speakers and attendees are practitioners, and can interact and share knowledge. It is a conference run by geeks for geeks. Managers (non-geek managers) may not want to attend, but they should consider sending their teams.&lt;br /&gt;&lt;br /&gt;This was the third CPOSC; a fourth is planned for sometime late in 2011. I'm already pencilling it onto my schedule.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-2677255159264823856?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/2677255159264823856/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2010/10/open-source-in-pennsylvania.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/2677255159264823856'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/2677255159264823856'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2010/10/open-source-in-pennsylvania.html' title='Open source in Pennsylvania'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-1511878810786482342</id><published>2010-10-13T18:49:00.000-07:00</published><updated>2010-10-13T18:54:35.960-07:00</updated><title type='text'>Meetings and tech - single packet authentication</title><content type='html'>&lt;p&gt;I attended the CALUG (Columbia Area Linux Users Group) meeting tonight. The presentation was on Single Packet Authentication (SPA), a successor to port-knocking for granting access to selected users and hiding open ports from other users.&lt;/p&gt;&lt;p&gt;A somewhat scary aspect of the meeting was the fact that I could keep up with the discussion. I'm not much of a network geek (programming is my thing) yet at this meeting I quickly understood the concepts of port-knocking and SPA. Some folks knew it better than I, yet a bunch of folks asked questions that I felt I could answer. So I must be learning something about network configurations!&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-1511878810786482342?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/1511878810786482342/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2010/10/meetings-and-tech-single-packet.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/1511878810786482342'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/1511878810786482342'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2010/10/meetings-and-tech-single-packet.html' title='Meetings and tech - single packet authentication'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-4852852928110033386</id><published>2010-10-12T18:43:00.000-07:00</published><updated>2010-10-12T18:50:09.164-07:00</updated><title type='text'>Thinking before acting</title><content type='html'>&lt;p&gt;I've been working on a prototype of the next version of a finance model for the office. The old model is in C++ and the new model will be in C# or Java.&lt;/p&gt;&lt;p&gt;The prototype has advanced to the point that we need unit tests and system tests. We've been building system tests as we built the prototype, so they are in place. We now have a need for unit tests, or more specifically, class-specific tests. We need these tests to exercise features of classes before they are integrated into the system.&lt;/p&gt;&lt;p&gt;Our framework (a home-grown thing) is capable of such tests, and we can add them with a little effort. The unit tests will give us finer resolution on changes and faster feedback on changes. We're keeping the system tests; they exercise specific business cases and connect us to the users.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-4852852928110033386?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/4852852928110033386/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2010/10/thinking-before-acting.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/4852852928110033386'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/4852852928110033386'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2010/10/thinking-before-acting.html' title='Thinking before acting'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-4858558955158979341</id><published>2010-10-11T17:34:00.000-07:00</published><updated>2010-10-11T17:42:21.307-07:00</updated><title type='text'></title><content type='html'>&lt;p&gt;At the last CMAP meeting, I picked up a DVD with Microsoft's Visual Studio on it. The DVD has a timed edition, good for 90 days.&lt;/p&gt;&lt;p&gt;So far, I haven't installed it.&lt;/p&gt;&lt;p&gt;I will install it; I want to set up a time to use it. This week is busy for me. Installing the software now would simply mean throwing away one or two precious weeks of available time. Better to wait for a better schedule.&lt;/p&gt;&lt;p&gt;I'm thinking that this is not good for Microsoft. If you want people to try software, you want them to install the software and try it, not delay and worry about maximizing the demo time. Any time that is spent not running the software is... well, not running the software.&lt;/p&gt;&lt;p&gt;Getting back to me...&lt;/p&gt;&lt;p&gt;Perhaps I will install it next week. My week-days are busy, and the long commute takes a good chunk out of the day. Week-ends are better for experiments. This Saturday I will be out of town, attending the Central Pennsylvania Open Source Conference, so Sunday is the earliest day that makes sense.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-4858558955158979341?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/4858558955158979341/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2010/10/at-last-cmap-meeting-i-picked-up-dvd.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/4858558955158979341'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/4858558955158979341'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2010/10/at-last-cmap-meeting-i-picked-up-dvd.html' title=''/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-6426878977589540628</id><published>2010-10-05T19:26:00.000-07:00</published><updated>2010-10-05T19:31:06.299-07:00</updated><title type='text'>The .NET meeting gives me a book on... Ruby</title><content type='html'>I attended the CMAP (Central Maryland Association of .NET Professionals) tonight. The presentation was on jQuery, which isn't a .NET technology nor even a Microsoft thing. And while I didn't win anything during the raffle I did pick up Thomas and Hunt's "Programming Ruby" (also not a .NET or Microsoft thing).&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I did talk we a few other folks. My friend Ben is considering a position in Washington, but is not happy with the commute. (And it *is* a long commute.)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-6426878977589540628?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/6426878977589540628/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2010/10/net-meeting-gives-me-book-on-ruby.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/6426878977589540628'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/6426878977589540628'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2010/10/net-meeting-gives-me-book-on-ruby.html' title='The .NET meeting gives me a book on... Ruby'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-8228760406019908367</id><published>2010-10-01T19:03:00.000-07:00</published><updated>2010-10-01T19:10:32.742-07:00</updated><title type='text'>To list on the resume or not</title><content type='html'>&lt;p&gt;I've been working with Microsoft VBA for Excel. The biggest benefit of this experience has been to refresh myself on the reasons for leaving VBA and using other languages. VBA is this horrid mutation of Visual Basic that loosens data typing, while retaining the frustrating VB6 editor that tries to be smart about syntax. The run-time engine has vague messages that amount to liitle more than "something went wrong".&lt;/p&gt;&lt;p&gt;The question before me is: do I add VBA to my resume? On the positive side, it shows that I have experience with different languages and platforms. On the negative side, someone might actually want me to work on VBA applications.&lt;/p&gt;&lt;p&gt;So perhaps I will, with the condition that jobs that ask for VBA skills get the "special" hourly rate.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-8228760406019908367?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/8228760406019908367/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2010/10/to-list-on-resume-or-not.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/8228760406019908367'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/8228760406019908367'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2010/10/to-list-on-resume-or-not.html' title='To list on the resume or not'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-5740396649364165733</id><published>2010-09-30T20:29:00.001-07:00</published><updated>2010-09-30T20:31:32.379-07:00</updated><title type='text'>Ignite Baltimore</title><content type='html'>I attended the Ignite Baltimore presentations tonight. (Finally!) They were quite good, and my friend Heather H. gave a presentation! I also chatted with a few folks and re-connected with Peter from the old Java user Group days.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-5740396649364165733?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/5740396649364165733/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2010/09/ignite-baltimore.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/5740396649364165733'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/5740396649364165733'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2010/09/ignite-baltimore.html' title='Ignite Baltimore'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-935328532835847058</id><published>2010-09-26T13:42:00.001-07:00</published><updated>2010-09-26T13:54:04.434-07:00</updated><title type='text'>Book fair and lunch</title><content type='html'>&lt;p&gt;I attended the local book fair this week-end. This is an annual street fair, with booksellers, authors hawking books, writers organizations, the local library, local museums, authors reading their books, some stages with musicians, and a set of food carts (complete with unhealthy food). The weather was warm and sunny and the fair was well-attended. I bumped into one person with a "I see dead code" T-shirt. We chatted briefly.&lt;/p&gt;&lt;p&gt;Today I lunched with a former co-worker. We talked about a number of things from technology to politics. We both agree that the economy is improving, albeit slowly. We also discussed offshore IT contract work, and can see some benefits and some costs. The costs seem to be harder to measure, so the easy-to-measure lower salaries tend to outweigh the decline in quality. Savvy development managers will see the problems and get a full understanding; inexperienced managers will miss the problems and eventually wonder at the later production problems and customer incidents. A bleak scenario indeed!&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-935328532835847058?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/935328532835847058/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2010/09/book-fair-and-lunch.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/935328532835847058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/935328532835847058'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2010/09/book-fair-and-lunch.html' title='Book fair and lunch'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-5223367040103693069</id><published>2010-09-21T19:48:00.000-07:00</published><updated>2010-09-21T19:52:21.268-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Forth'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='LISP'/><category scheme='http://www.blogger.com/atom/ns#' term='Z-80'/><category scheme='http://www.blogger.com/atom/ns#' term='Peter Norvig'/><category scheme='http://www.blogger.com/atom/ns#' term='tail recursion'/><title type='text'>Linux and LISP</title><content type='html'>&lt;p&gt;I attended a meeting of BaltoLUG tonight. They are the Baltimore area Linux User Group. The presentation was on LISP.&lt;/p&gt;&lt;p&gt;I like the BaltoLUG meetings. The conversations take unusual turns and go to unexpected places. Beyond the basic LISP talk, we discussed the FORTH language, the Python language, Peter Norvig and Google, tail recursion, and possible meeting places. Our next meeting will be at the Baltimore Node hackerspace. (A location much more convenient for me.)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-5223367040103693069?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/5223367040103693069/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2010/09/linux-and-lisp.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/5223367040103693069'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/5223367040103693069'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2010/09/linux-and-lisp.html' title='Linux and LISP'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-8796242526312450609</id><published>2010-09-18T12:21:00.000-07:00</published><updated>2010-09-18T12:24:33.690-07:00</updated><title type='text'>Subversion</title><content type='html'>&lt;p&gt;I set up a Subversion server this week. This was an experiment at home to review the steps (and effort) for Subversion. We may be using Subversion in the office, and familiarity with it will help me in my job.&lt;/p&gt;&lt;p&gt;The installation and configuration went well. Much better than the first time, which was over a year ago. Perhaps I am more comfortable with the concepts of client and server, perhaps it was just plain remembering what I did last time. I did consult my notes, and record my steps.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-8796242526312450609?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/8796242526312450609/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2010/09/subversion.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/8796242526312450609'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/8796242526312450609'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2010/09/subversion.html' title='Subversion'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-2216636321900488502</id><published>2010-09-15T18:36:00.000-07:00</published><updated>2010-09-15T18:43:25.182-07:00</updated><title type='text'>Experiments with C# and .NET</title><content type='html'>&lt;p&gt;I've been working with C# and .NET this week. The project is a conversion of the current C++ software to C# and the .NET framework. The first step is a prototype to prove that basic functionality is possible. (And so far, it is.)&lt;/p&gt;&lt;p&gt;I'm actually happy to be working with C#. It's an easier language (and environment) than Visual Studio's C++ side, with better auto-completion and better debugging options. Microsoft has done a good job with C++, but a more complete job with C#.&lt;/p&gt;&lt;p&gt;I won't compare C# to Java, as I have not used Java or Eclipse for quite some time. (Note to self: try out the latest Eclipse.) Comparing C# to C++ finds me at least fifty percent more effective with the former. While C#/.NET is a verbose and long-name environment, Visual Studio helps with most of it. (Although sometimes the auto-completions guesses wrong, which is frustrating.)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-2216636321900488502?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/2216636321900488502/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2010/09/experiments-with-c-and-net.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/2216636321900488502'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/2216636321900488502'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2010/09/experiments-with-c-and-net.html' title='Experiments with C# and .NET'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-8136362198248371067</id><published>2010-09-14T16:23:00.000-07:00</published><updated>2010-09-14T16:27:34.029-07:00</updated><title type='text'>A short lunch to discuss business</title><content type='html'>&lt;p&gt;I had lunch with Eric from Apptis today. Eric is the account executive for my contract. (After almost a year, we finally meet!) We had a good conversation about the state of the contract, its renewal, and some organizational changes. In sum: nothing that affects me, and it looks like we will have a contract for another 12 months. (Woo-hoo!)&lt;/p&gt;&lt;p&gt;One item he mentioned was Ruby on Rails, which is missing from my skill set. I have wanted to get invovled with RoR for some time; today's conversation gives me another push. The question is: how to fit it into my schedule? Evenings? Week-ends? It will have to be one of the two.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-8136362198248371067?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/8136362198248371067/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2010/09/short-lunch-to-discuss-business.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/8136362198248371067'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/8136362198248371067'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2010/09/short-lunch-to-discuss-business.html' title='A short lunch to discuss business'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-3431505093685023443</id><published>2010-09-08T19:46:00.000-07:00</published><updated>2010-09-08T19:58:00.813-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CALUG'/><category scheme='http://www.blogger.com/atom/ns#' term='user groups'/><category scheme='http://www.blogger.com/atom/ns#' term='BDUF'/><category scheme='http://www.blogger.com/atom/ns#' term='CMAP'/><title type='text'>Another geek meeting</title><content type='html'>&lt;p&gt;I attended the CALUG meeting tonight. It made an interesting contrast to the CMAP meeting of last night. The CMAP meetings are a bit more organized (structured) and presentations are a bit more formal. CALUG tends towards the informal end of the spectrum.&lt;/p&gt;&lt;p&gt;CMAP and CALUG both offer attendees free pizza and soda. I find CALUG's pizza a bit more digestible, but that may simply be due to different vendors. (CMAP uses Papa John and CALUG uses a local shop.)&lt;/p&gt;&lt;p&gt;I find the folks at CALUG more approachable. It's easier to start conversations. The conversations are generally deeper and more meaningful. Folks at CALUG focus on the art of programming (or sysadmin-ing, or management) and folks at CMAP focus more on careers. Well, the 'P' in CMAP stands for 'professionals' so perhaps a professional is one who keeps his career in mind.&lt;/p&gt;&lt;p&gt;The CALUG meeting had a presentation on GNU Screens and Byobu. GNU Screens lets you multiplex a terminal session, and byobu lets you manage the configuration. A "repeat" talk, but still interesting.&lt;/p&gt;&lt;p&gt;More interesting were the side conversations. One with a Tenable employee about talent, management, and angry drivers. We also chatted about Agile Development techniques and their advantages over "Big Design Up Front". Another conversation was with some DP veterans (I say "DP" because in their day that's what it was called) about the Ada programming language, DVD players, lucky finds, and early personal computers such as the Commodore PET and the Radio Shack TRS-80 model I.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-3431505093685023443?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/3431505093685023443/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2010/09/another-geek-meeting.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/3431505093685023443'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/3431505093685023443'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2010/09/another-geek-meeting.html' title='Another geek meeting'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-3377759600110172985</id><published>2010-09-07T19:25:00.001-07:00</published><updated>2010-09-07T19:36:52.491-07:00</updated><title type='text'>Local group, global software from Microsoft</title><content type='html'>&lt;p&gt;I attended a meeting of CMAP (Central Maryland .NET Professionals) tonight. They had a presentation on Microsoft's Managed Extensibility Framework (MEF).&lt;/p&gt;&lt;p&gt;First impressions are that MEF isn't fully baked. It's a collection of add-in classes to C# (not sure that it works with any other .NET language) that lets you build components and connect to them at run-time. In many ways, it is like the concept of a DLL for the initial version of Windows.&lt;/p&gt;&lt;p&gt;Like any technology, it has its upsides and downsides. First the downs:&lt;/p&gt;&lt;p&gt;MEF imposes a fair amount of work on the user; it bleeds into your application, requiring you to code a bit of plumbing. It allows you to mix the plumbing and your business logic; there is nothing to help you separate them. It relies on attributes, those square-bracketed phrases which pollute your code. The code you add is verbose, with long namespace names and long class names.&lt;/p&gt;&lt;p&gt;On the upside, it lets you build applications that bind to objects at runtime. Nifty, yet I'm not sure that this is such a good thing. It seems to have the same problems as the early implementation of DLLs. They, too, let your application bind to objects at runtime. But the incompatibilities between versions lead to many broken applications and the eventual coining of the phrase "DLL hell".&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-3377759600110172985?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/3377759600110172985/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2010/09/local-group-global-software-from.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/3377759600110172985'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/3377759600110172985'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2010/09/local-group-global-software-from.html' title='Local group, global software from Microsoft'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-457356838409198908</id><published>2010-08-29T12:43:00.000-07:00</published><updated>2010-08-29T12:57:02.134-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Book Thing'/><category scheme='http://www.blogger.com/atom/ns#' term='tech books'/><title type='text'>Books on tech</title><content type='html'>&lt;p&gt;A visit to the Book Thing yielded some interesting books. (The Book Thing gives away books, mostly used books from different vintages. You can find them here: http://www.bookthing.org)&lt;/p&gt;&lt;p&gt;I came home with a several recent books and a couple of "early vintage" books. The recent ones include:&lt;/p&gt;&lt;p&gt;"Mac OS X Hacks"&lt;br /&gt;"Python Cookbook"&lt;br /&gt;"lex and yacc"&lt;br /&gt;"Practical C++ Programming"&lt;br /&gt;&lt;/p&gt;&lt;p&gt;These are all from O'Reilly, the well-known and well-respected publisher.&lt;/p&gt;&lt;p&gt;The early vintage books (from the pre-PC era, in my mind) include:&lt;/p&gt;&lt;p&gt;"The Joy of Minis and Micros" by Stein and Shapiro&lt;br /&gt;"Human Performance Engineering" by Robert W. Bailey&lt;br /&gt;"Programming Business Computers" by McCracken, Weiss, and Lee&lt;br /&gt;&lt;/p&gt;&lt;p&gt;"Joy" and "HPE" are from 1981 and 1982, so possibly not strictly from the pre-IBM PC era, but neither talk about IBM PCs, MS-DOS, Windows, or the internet. Indeed, "HPE" is more about psychology than technology.&lt;/p&gt;&lt;p&gt;"Programming Business Computers" is a very nice text and I picked it up after I saw the name "McCracken" on the spine. I have a few books by him on Fortran and I find his books both informative and readable. (More readable than many of the O'Reilly books.) I guess that is known as star power -- I picked up the book because of the author, not the content. (I find the content informative, although a bit dated. Yet I enjoy the reading of the book. Reading tech books as literature?)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-457356838409198908?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/457356838409198908/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2010/08/books-on-tech.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/457356838409198908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/457356838409198908'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2010/08/books-on-tech.html' title='Books on tech'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-1599905555857769996</id><published>2010-08-25T19:23:00.000-07:00</published><updated>2010-08-25T19:27:22.793-07:00</updated><title type='text'>Networking</title><content type='html'>&lt;p&gt;I attended the "Innovate Baltimore" social this evening. It was held at Red Maple, a bar/club that is within walking distance of my apartment. (How could I not attend?)&lt;/p&gt;&lt;p&gt;The event saw a fair number of people (perhaps fifty?) from various tech areas of Baltimore. There were graphics designers, startup entrepreneurs, and even folks providing a physics engine for game deverlopers. I talked with a number of folks (no, not all fifty of them) and even some folks from UPS.&lt;/p&gt;&lt;p&gt;It's nice to see these events here in Baltimore. We need a group to pull together the startups and small technical companies.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-1599905555857769996?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/1599905555857769996/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2010/08/networking.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/1599905555857769996'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/1599905555857769996'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2010/08/networking.html' title='Networking'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8762997409261323600.post-6670980626213583438</id><published>2010-08-20T20:48:00.000-07:00</published><updated>2010-08-20T20:56:35.464-07:00</updated><title type='text'>Less is more</title><content type='html'>I accomplished a lot today, although the numbers would indicate otherwise. In truth, it really depends on the numbers you choose to examine.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I made some code changes that fixed some defects. The number of changes and the number of lines of code changed were small. I changed perhaps thirty lines of code across five modules. A manager using lines-of-code or lines-of-code-changed metrics would say that I did very little this day.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The number of defects fixed was small. You could say that it was really only one defect, which expressed itself in several scenarios. So the number-of-defects metric also indicates that I did very little today.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Yet my changes transformed the program from not-useful to useful. The defects prevented us from using the program -- the calculations were wrong -- and my changes fixed the defect. So the metric of "can we use it" went from "no" to "yes", which means a lot to people.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It's not how many lines of code one writes, its &lt;i&gt;which&lt;/i&gt; lines of code.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8762997409261323600-6670980626213583438?l=fitzleap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://fitzleap.blogspot.com/feeds/6670980626213583438/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://fitzleap.blogspot.com/2010/08/less-is-more.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/6670980626213583438'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8762997409261323600/posts/default/6670980626213583438'/><link rel='alternate' type='text/html' href='http://fitzleap.blogspot.com/2010/08/less-is-more.html' title='Less is more'/><author><name>John Fitzpatrick</name><uri>https://profiles.google.com/107581467000658179451</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-5D9EGpHFutY/AAAAAAAAAAI/AAAAAAAAAAA/b_m9XxsvaFE/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry></feed>
