<?xml version="1.0" encoding="UTF-8"?>
<!--Generated by Squarespace Site Server v5.11.81 (http://www.squarespace.com/) on Mon, 28 May 2012 11:17:41 GMT--><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><title>Blog</title><link>http://steeleprice.net/journal/</link><description></description><lastBuildDate>Wed, 21 Mar 2012 07:32:01 +0000</lastBuildDate><copyright></copyright><language>en-US</language><generator>Squarespace Site Server v5.11.81 (http://www.squarespace.com/)</generator><item><title>VB and Me</title><dc:creator>Steele Price</dc:creator><pubDate>Wed, 21 Mar 2012 07:32:01 +0000</pubDate><link>http://steeleprice.net/journal/2012/3/21/vb-and-me.html</link><guid isPermaLink="false">1145154:13340842:15522914</guid><description><![CDATA[<p>I am about to join a new company in a new position and I had to do the normal thing we all do, update my resume.    <br />This led me to a lot of reflecting on my career and looking at what is relevant and important.</p>  <p>I've been developing databases and software for nearly 30 years, that's more than half my life…</p>  <p>Why do I want to keep doing it?</p>  <div style="padding-left: 20px">   <ul>     <li>I enjoy it immensely </li>      <li>It is my artistic outlet </li>      <li>I'm really good at it </li>      <li>I meet new and interesting people </li>      <li>I can't imagine doing anything else that gives me so much reward in the end </li>      <li>I don't really mean money, but that comes too so, it pays my bills. </li>   </ul> </div>  <p>OK, enough said, it's sort of the core of my being. Back to the reflection… I started thinking &quot;What really launched my career?&quot; I mean, I have gone from a simple kid with no understanding of what I was doing, hacking away at graphics on an <a href="http://oldcomputers.net/atari800.html">Atari 800</a>, to being a major architectural influence (to at least the people I work with).</p>  <p>So how did that happen? Years of study? Intense courses? Well, I admit I have done some of that, but it's not what really made a difference, it usually left me frustrated and confused. I've spent months untangling what I learned into what I could use.</p>  <p>Then what did it?</p>  <p><a href="http://en.wikipedia.org/wiki/Visual_Basic">VB</a>.</p>  <p>VB?!? As in <a href="http://msdn.microsoft.com/en-us/vstudio/hh388568">Visual Basic</a>? Yup. Really? Explain!</p>  <p>OK, I have to digress a little…</p>  <p>In the Late 1980s (before the internet) I was building a point-of-sale company. Way back then we didn't have things like <a href="https://www.paypal.com/">PayPal</a>, <a href="http://quickbooks.intuit.com/">QuickBooks</a>, <a href="https://www.mint.com/">Mint.com</a> and <a href="https://squareup.com/">iPhones with credit card readers in them</a>. After all, the &quot;<a href="http://en.wikipedia.org/wiki/Personal_computer">Personal Computer</a>&quot; was even fairly new. After running a small Computer Store selling <a href="http://en.wikipedia.org/wiki/Kaypro">Kaypro’s</a> and what later became <a href="http://www.dell.com">Dell</a>, I had decided to specialize on point-of-sale instead of being a general PC shop that tried to do everything. Small Business owners had very little choice at the time if they needed cash registers, inventory control, invoicing, employee time keeping, etc. They could buy the &quot;Big Iron&quot; from companies like <a href="http://www.ibm.com/us/en/">IBM</a> and <a href="http://www.ncr.com/">NCR</a> but few could afford it. There was a great demand for someone to come in and serve the Small to Medium Business sector and consolidate all this stuff into something people could understand and afford.</p>  <p>So, I did that. I invented a new Cash Register that was actually made from a PC (Intel 286 actually). This thing was basically a cash drawer with a small computer that sat on top and covered in a shell. The average computer back then was huge. I manufactured the chassis and imported the guts in the form of motherboard, memory and disk drive from a small company in Taiwan and then assembled it all together in the US to make my point-of-sale system.</p>  <p>I found some software to run the thing I had created from nothing. After learning it and getting it to operate my equipment, I bought the rights to the software from the company. I now had an MS-DOS program written in Quick Basic that pretty much did what I needed. I really wanted this to run on Windows which was really new and fighting with Apple for dominance (some things never change…)</p>  <p>At the time, the only way to program for <a href="http://en.wikipedia.org/wiki/Windows_2.1x">Windows 2.0</a> was <a href="http://en.wikipedia.org/wiki/C%2B%2B">C++</a>. So I hired some really smart programmers because I didn't really understand <a href="http://www.cplusplus.com/">C++</a> and didn't want to learn it... Again… I had dabbled with it before, but <a href="http://msdn.microsoft.com/en-us/vstudio/hh388567">C++ for Windows</a> was a beast and I thought I was more of a hardware guy. Bottom line, they pulled it off, at enormous expense, and I didn't really want to be in the hardware business anymore. So what does an entrepreneur do? In 1992 <a href="http://www.escapeartist.com/efam/59/Moving_to_the_Bahamas.html">I sold the company and moved to the Bahamas</a>.</p>  <p>Sounds like you had some success, but what does this have to do with VB? OK, enough digression.</p>  <p>While in the <a href="http://www.bahamas.com/">Bahamas</a> sipping cool beverages on the beach, I heard about this new programming tool called Visual Basic. It sounded like something interesting to me because I knew <a href="http://en.wikipedia.org/wiki/BASIC">BASIC</a> really well. It also was supposed to make programming for Windows easy. I had tried all kinds of things at the time, there where several attempts at making Windows programming easier but they all sucked. I won't bother naming them but there were a bunch (and they all failed and don’t exist anymore) that used a scripting language and either compiled down to C or were so slow they were unusable. They where also what we called <a href="http://en.wikipedia.org/wiki/Computer-aided_software_engineering">CASE tools</a> but these were super complex and expensive.</p>  <p>I flew to Miami and got my hands on a copy of VB installed it on my laptop and started looking at what VB could do.</p>  <p>I could relate most of the stuff I learned from my developers talking about events being different than the procedural stuff we had been using before… This was a weird but entirely fun kind of BASIC. In about and hour I had written a Windows program that could create a Contact, complete with a couple forms, buttons, menus and a dialog box best of all, I didn't need a single pointer of header file. In C++ this would have taken (me) a month. I was sold.</p>  <p>This was in the summer of 1992 and this was VB 1. It was pretty limited in what it could do, but it seriously took the mind numbing drudgery out of making a simple Windows Program. To write real business applications a I really needed some sort of Database. VB didn't have one. I tried my old techniques, writing Linked Lists to disk and that did work for the stuff I mostly needed and I was getting pretty good at this. I moved back to the States and landed in Phoenix. I started automating lots of little business applications and then along came Access. Access had Basic in it, but slightly different from VB and needed a pretty hefty license. About the same time VB upgraded to version 3 with a Jet Interface to Access. Now I was creating real programs for real companies like Intel in no time. Access and VB were really gaining steam and so was I. This was my turning point as I became an <a href="http://en.wikipedia.org/wiki/Software_architect">Architect</a>.</p>  <p>Then what made VB great? Was it Basic? Certainly not, indeed it was easier to use than C. Was it Access? Nope, but it definitely garnered the hobbyist corner and spawned countless developers who got jobs in companies.</p>  <p>It looked like it was <a href="http://www.microsoft.com/sqlserver/en/us/default.aspx">SQL Server</a>. As soon as we learned to connect VB with <a href="http://en.wikipedia.org/wiki/SQL">SQL</a> it was game over. VB shot up to <a href="http://www.tiobe.com/index.php/paperinfo/tpci/(Visual)_Basic.html">one of the the most widely used language at the time</a>. Recently, I started really thinking about this. Was it really SQL? It was, but it wasn't actually SQL, nope.</p>  <p>I now firmly believe it was removing the pain of <a href="http://en.wikipedia.org/wiki/Software_architecture">Architecture</a> as well as the complexity of Windows. Almost everything we wrote was code behind forms straight to a database. Where the programs perfect and did they follow all the patterns of success? Not really, but they got out the door.</p>  <p>In recent times, I have seen teams working in Scrum take a year to put out one Service. Sure they show incremental updates every few weeks to keep the client off their back, but this is not getting things out the door the way that VB did.</p>  <p>I have spent the last 20 years helping to make <a href="http://www.daniweb.com/software-development/cpp/threads/296947/why-does-c-seem-more-complicated-than-visual-basic">VB nearly as complex as C++</a>. It's now on equal parity to <a href="http://en.wikipedia.org/wiki/C_Sharp_(programming_language)">C#</a> (including <a href="http://msdn.microsoft.com/en-us/library/74wy9422(v=vs.90).aspx">pointers</a>, <a href="http://msdn.microsoft.com/en-us/magazine/cc163362.aspx">lambdas</a>, <a href="http://en.wikipedia.org/wiki/Inversion_of_control">Inversion of Control</a> and other seriously complex things…) Is that bad? No, it's most definitely good. The problem is that since VB.Net was introduced that magic that made VB truly great has eroded to the point it has been lost to increased complexity and <a href="http://www.tiobe.com/index.php/paperinfo/tpci/(Visual)_Basic.html">the language has declined dramatically in popularity since 2008</a>.</p>  <p><a href="http://www.microsoft.com/visualstudio/en-us/lightswitch">Lightswitch</a> has tried to garner some of that magic back and has <a href="http://www.danlmoyer.com/?p=19">moderate success in doing so</a>. But I can't easily put <a href="http://www.microsoft.com/visualstudio/en-us/lightswitch">Lightswitch</a> on an <a href="http://www.apple.com/iphone/">iPhone</a> or an <a href="http://www.androidtablets.net/">Android Tablet</a>.</p>  <p>The way professionals do things today isn't a whole lot different than the way they did it 20 years ago. In a professional application we use the same <a href="http://en.wikipedia.org/wiki/Design_Patterns">Design Patterns</a> that have been around and time tested for 20+ years we just do them in VB.Net, C# and JavaScript as well as C++. These Patterns aren't new. <a href="http://en.wikipedia.org/wiki/Moores_law">Moore's Law</a> is still in effect. Technology is still getting faster and cheaper every 18 months and we are now seeing the <a href="http://www.nytimes.com/2012/03/06/technology/as-new-ipad-debut-nears-some-see-decline-of-pcs.html?_r=1">MASS EXODUS from PC to Mobile</a>.</p>  <p>Phones and Tablets change everything, really they do. The customer needs simple and simple is getting met with the Phone and Tablet. At the same time, business needs reliability, accountability and adaptability. If they don't have these things, they are reinventing the wheel every time they write software.</p>  <p>I want THIS: <a href="http://www.youtube.com/watch?v=eaMosTtWz10">http://www.youtube.com/watch?v=eaMosTtWz10</a> What's even more amazing it that I have <a href="http://www.asus.com/Eee/Eee_Pad/Eee_Slate_EP121/">something capable of this that I carry around EVERY DAY</a> and have done so for at least 2 years. Alright, the <a href="http://www.microsoft.com/surface/en/us/default.aspx">hardware is actually available today</a>, the software isn't… and what is isn’t cheap. How are we going to program all that complex stuff? Is it really going to be teams of <a href="http://en.wikipedia.org/wiki/Web_design">Designers</a>, <a href="http://en.wikipedia.org/wiki/Software_developer">Developers</a>, <a href="http://en.wikipedia.org/wiki/Software_architect">Architects</a>, <a href="http://en.wikipedia.org/wiki/Project_manager">PMs</a> and <a href="http://en.wikipedia.org/wiki/Software_quality_assurance">QA</a> for every small application? I seriously doubt it.</p>  <p>That means that our entire mentality about how we write software has to change. <a href="http://en.wikipedia.org/wiki/Software_development_process">WE MUST stop writing software the same way we have been doing it for the last 25+ years</a>. Does this mean dump <a href="http://www.soapatterns.org/service_layers.php">Layered Architectures</a>, <a href="http://en.wikipedia.org/wiki/Inversion_of_control">IoC</a>/<a href="http://en.wikipedia.org/wiki/Dependency_injection">DI</a>, <a href="http://martinfowler.com/books.html#eaa">Design Patterns</a>, <a href="http://www.soapatterns.org/">SOA</a>, <a href="http://en.wikipedia.org/wiki/Unobtrusive_JavaScript">Behaviors</a>, <a href="http://msdn.microsoft.com/en-us/library/system.web.mvc.actionresult.aspx">Commands</a> and all the proven things we have learned? Of course not. It does mean we have to seriously automate all that stuff and we have the tools available to accomplish it.</p>  <p>That automation is not here in a complete package and I don't see an immediate candidate for it yet. Our tools are better, but they are still way too complex and that complexity just keeps rising. We need automated complexity that follows these Design Patterns for us, in the way we need to Architect them, with the mixed languages of our choice. <a href="http://www.springerlink.com/content/a3213003x6268032/">We are on the verge of this</a>, but no one has put it all together yet.</p>  <p>Writing thousands, or even hundreds of lines of handcrafted code has to stop. It's really not necessary any more. This can all be accomplished with <a href="http://en.wikipedia.org/wiki/Domain-specific_language">DSLs</a>, <a href="http://www.microsoft.com/download/en/details.aspx?id=27746">Compiler as a Service</a> <a href="http://blog.stevensanderson.com/2011/04/06/mvcscaffolding-overriding-the-t4-templates/">Templates of well known Patterns</a>, <a href="http://www.codegeneration.net/cg2012/index.php">Code Generation</a>, and proper <a href="http://en.wikipedia.org/wiki/Inversion_of_control">IoC</a>/<a href="http://en.wikipedia.org/wiki/Dependency_injection">DI</a>.</p>  <p>Who is going to write the VB of Modern Software Architecture?</p>  <p>I am working to launch <a href="http://visualbasic.net">The Visual Basic Network</a> to do exactly that. This is about the Magic that was VB, not necessarily the language. Though several parts will be written in VB.Net.</p>  <p>This is an <a href="https://github.com/">Open Source Project</a> that will be pulling in lots of information, sorting, analyzing and forking it to built something truly magical.</p>  <p>Want to be a part of that? Keep checking back as I incrementally release iterative updates.</p>]]></description><wfw:commentRss>http://steeleprice.net/journal/rss-comments-entry-15522914.xml</wfw:commentRss></item><item><title>I've added a Tooling section</title><dc:creator>Steele Price</dc:creator><pubDate>Sun, 11 Mar 2012 03:19:36 +0000</pubDate><link>http://steeleprice.net/journal/2012/3/10/ive-added-a-tooling-section.html</link><guid isPermaLink="false">1145154:13340842:15383127</guid><description><![CDATA[<p>Often I find that the set of tools I am using changes.</p>
<p>This is the list of things I find most useful in my current development efforts outside of MSDN.</p>
<p>If you are developing for the Microsoft Platform, you can't do it professionally without MSDN unless you are insane or have too much time on your hands :-)</p>
<p>&nbsp;</p>]]></description><wfw:commentRss>http://steeleprice.net/journal/rss-comments-entry-15383127.xml</wfw:commentRss></item><item><title>Speaking at the MVP Summit</title><category>#MVP12 Architecture Presentations VB</category><dc:creator>Steele Price</dc:creator><pubDate>Thu, 23 Feb 2012 04:25:56 +0000</pubDate><link>http://steeleprice.net/journal/2012/2/22/speaking-at-the-mvp-summit.html</link><guid isPermaLink="false">1145154:13340842:15152583</guid><description><![CDATA[<p>I'll be <a href="http://www.josephguadagno.net/page/MVP-Summit-2012-MVP-2-MVP-Languages-Sessions.aspx">speaking at the MVP Summit</a> Monday 2/27/2012 at the Juniper Room in the Hyatt.</p>
<h3><span style="font-size: 80%;">Topic</span></h3>
<p>The world is going mobile, is your architectural mindset going with it? The days of the monolithic application and even simple demos are numbered, while these may live on in legacy support for some time, their usefulness will diminish rapidly. How do we change the way we think about building applications in a world filled with Clouds and Mobile Devices yet still provide a powerful desktop experience? Come see how we built a new social application designed and created for just that purpose. I'll show how great architectural principals fit into the Codebase and how to recognize what patterns to use where.  I encourage open discussion in this talk even though it's a lot to fit into 40 minutes.
</p>]]></description><wfw:commentRss>http://steeleprice.net/journal/rss-comments-entry-15152583.xml</wfw:commentRss></item><item><title>Everything is Mobile</title><category>Interesting Ideas</category><category>User Interface</category><dc:creator>Steele Price</dc:creator><pubDate>Sat, 31 Dec 2011 18:43:13 +0000</pubDate><link>http://steeleprice.net/journal/2011/12/31/everything-is-mobile.html</link><guid isPermaLink="false">1145154:13340842:14393265</guid><description><![CDATA[<p>I know I've said this before, but I really want to re-iterate it.</p>
<blockquote>Just this year, computers and the way they are used (by the general population) is very close to what I <i><b>WANTED</b></i> them to be 30 years ago.</blockquote>
<p>I remember walking into a radio shack with my dad in 1978. I was drawn to the blinking cursor of a TRS-80.  I asked dad, what can this do?</p>
<p><i>"Just about anything you want it to"</i> he says.</p>
<p>Really? I say.<br/>
I type... "What is the temperature on Mars?" [RETURN]
<p>It replied...</p>
<p>PROGRAM NOT FOUND</p>
<p>I wasn't impressed and so began my quest of making computers do what I wanted them to do.</p>
<p>Today I carry around a Samsung Focus Windows Phone as well as an iPhone (beacuse I cannot play audible content on my Windows Phone (come on Amazon.... Really? you suck...)</p>
<p>So I am still stuck with the "Program Not Found" Dilemna.</p>
<p>With the millions and millions of apps available, there are still billions and billions of uses that go unfulfilled.</p>
<p>What is the date today? Oh yeah, the day before the year 2012 starts.<br/>
Where is my HAL-9000? My phone is almost as good as a Star Trek Communicator, but I have no ship to talk to. When will this ubiquitous era of computing actually be more fulfilling than frustrating?<p>
<p>Soon, I Believe.</p>
<p>Why do I believe this?</p>
<p>Because the general population is finally carrying around something immensely useful that they depend on every day.  Demand for usefulness will finally outweigh the geekiness computing devices have been relegated to for about 75 years. My mother is completely dependent on a computer, my 2 year old kids know how to and enjoy using one.</p>
<p>I really look forward to this global shift to mobile that will drive the next 10 years of computing the way the Internet drove the last 10.</p>
<p>As an Architect, I have re-thought how I even start to think about developing applications radically over the last few years.  Today the thought of mobile and cloud are first rather than how to shoehorn a legacy app into this new world. This trend will continue to emerge in force in 2012 and massively exciting times are right around the corner.</p>
<p>For those who think it will be ruled by Apple and Google, you may be right, but in all actuality, Microsoft who still owns 80+% of the business market has barely even started their major mobile push, that happens this year with ARM and Windows 8.  If you think this will  be a fizzle then you will most likely be among those who said they would not have a major impact on the Internet in the mid 1990s.</p>
<p>I am very excited about the next few years in computing and have made my mind shift into mobile full force, have you?</p>]]></description><wfw:commentRss>http://steeleprice.net/journal/rss-comments-entry-14393265.xml</wfw:commentRss></item></channel></rss>
