<?xml version="1.0" encoding="utf-8"?>          <rss version="2.0">     <channel>     <title>Cozmo&apos;s Dev Blog - Learning</title>     <link>http://www.myinternetisbroken.com/index.cfm</link>     <description>The Dev Blog</description>     <language>en-us</language>     <pubDate>Sun, 05 Sep 2010 09:20:09-0700</pubDate>     <lastBuildDate>Sun, 19 Jul 2009 05:15:00-0700</lastBuildDate>     <generator>BlogCFC</generator>     <docs>http://blogs.law.harvard.edu/tech/rss</docs>     <managingEditor>coz@myinternetisbroken.com</managingEditor>     <webMaster>coz@myinternetisbroken.com</webMaster>          <item>      <title>Why OO Rocks</title>      <link>http://www.myinternetisbroken.com/index.cfm/2009/7/19/Why-OO-Rocks</link>      <description>            It is late, I am really, really, tired but I am going to weigh in on this debate over whether OO is worth it or not. I offer this nugget of fun. I wrote a wrapper for the default CFC&apos;s created by Illudium a while back.   This is all the code I need to do the following database operations with only the contents of a struct (form in this case): INSERT, UPDATE, SELECT, DELETE, &lt;b&gt;AND&lt;/b&gt; UPDATE a many to many look up table &lt;code&gt; &lt;cfscript&gt;   databaseService.Update(MyTable, form);  Select_ARTISTS = databaseService.Select(MyTable, form, orderby, &quot;true&quot;);  databaseService.insertinto(MyTable, form);   databaseService.Delete(MyTable, form);   databaseService.saveManyToMany(&quot;ORDERITEMS&quot;, MyFK, MyFKvalue, manyfield, manyValueList); &lt;/cfscript&gt;   // I even wrote a custom tag for it  &lt;cf_query    dbaction = &quot;select/upsert/delete&quot;  table =&quot;sometable&quot;   variables=&quot;#somestruct#&quot;    cflocation=&quot;#script_name#?event=action.#section#.#nav#&quot; &gt;   &lt;/code&gt;  &lt;br /&gt;  Mind you I am one of those &quot;old skool&quot; CFers that picked up OO in the last couple of years. So it can be done. It just takes some (hard) work, but no harder than learning CF to begin with... No really. It just takes time and deliberate practice and it &lt;b&gt;will&lt;/b&gt; pay off. Just like anything else worth while.  Update: 7/20/2009 8:06:03 PM  I was asked about the wrapper for the Illudium CFC&apos;s and I will be releasing it later on this week   G OUT!!!       </description>            <category>OO</category>                <category>Learning</category>                <category>Meta programming</category>                <category>Working Smart</category>                <pubDate>Sun, 19 Jul 2009 05:15:00-0700</pubDate>      <guid>http://www.myinternetisbroken.com/index.cfm/2009/7/19/Why-OO-Rocks</guid>           </item>          <item>      <title>How to create insane customer loyalty</title>      <link>http://www.myinternetisbroken.com/index.cfm/2009/6/13/How-to-create-insane-customer-loyalty</link>      <description>            I have been a beer aficionado, home brewer, etc for many years.  My favorite beer in the whole wide world is &lt;a href=&quot;http://www.rvinz.com/detail/index.lsd?p=baltika9&quot; target=&quot;_blank&quot;&gt;Baltika No. 9.&lt;/a&gt;  It is a very rich, robust, complex and decidedly strong European Lager. I like beer you have to chew before swallowing  &amp;nbsp;;o). It is imported from Russia and the local shop that I get it from has had a difficult time getting a hold of it over the last year or so. So when ever I stop by, I always ask  &quot;Did my Baltika No. 9 come in yet?&quot;.   So I stopped in yesterday and this is what I saw.  &lt;a href=&quot;/files/koz_baltika_big.jpg&quot; title=&quot;koz_baltika&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;/files/koz_baltika_sm.jpg&quot; width=&quot;500&quot; height=&quot;352&quot; alt=&quot;koz_baltika_sm&quot; /&gt;&lt;/a&gt;   I have been self employed for 13 years and the very existence of my pay check has often depended on my customers being happy... So this really struck me. With a very small, but genuine, personalized, and most importantly, &lt;b&gt; public gesture &lt;/b&gt; they have pretty much insured that I will be a customer for life.   G- OUT       </description>            <category>Learning</category>                <category>Life</category>                <category>Gerneral Coolness</category>                <category>Good Business</category>                <pubDate>Sat, 13 Jun 2009 00:58:00-0700</pubDate>      <guid>http://www.myinternetisbroken.com/index.cfm/2009/6/13/How-to-create-insane-customer-loyalty</guid>           </item>          <item>      <title>The best  part about FOSS (Free and Open Source Software) is not that it is free.</title>      <link>http://www.myinternetisbroken.com/index.cfm/2009/5/7/The-best--part-about-FOSS-Free-and-Open-Source-Software-is-not-that-it-is-free</link>      <description>            I used to look at FOSS as a means to get free software: MySQL, Apache, Eclipse etc... FOSS is part of my day to day affairs and I dare say the best thing to ever happen to software and software developers.  But for me, FOSS is the best programming howto guide there is. It is like a living text book that is always getting better. I have learned more from reading other peoples source code than I have from any book, blog post or article. Being an autodidact, reading source code makes much sense than reading the English words used to describe the programming concepts.  Just this week I was asked to R&amp;D a bunch of stuff and I found solutions for all the CF stuff by going to either CFLib.org or RIAForge.org. (Mad props to Ray Camden for making those sites. You saved my ass twice this week dude! Rock On with your bad ass self!)  Those sites are gold mines for CF programming knowledge. I have been turned on to so many new ideas and concepts by the folks that have shared their work that I want to give a shout out and thank you to y&apos;all. &lt;h3&gt;Thank you!!&lt;/h3&gt; &lt;br /&gt;&lt;br /&gt;       </description>            <category>Working Smart</category>                <category>Tools</category>                <category>Open Sores</category>                <category>Learning</category>                <category>Gerneral Coolness</category>                <category>ColdFusion</category>                <pubDate>Thu, 07 May 2009 02:00:00-0700</pubDate>      <guid>http://www.myinternetisbroken.com/index.cfm/2009/5/7/The-best--part-about-FOSS-Free-and-Open-Source-Software-is-not-that-it-is-free</guid>           </item>          <item>      <title>This is something I would do...</title>      <link>http://www.myinternetisbroken.com/index.cfm/2009/5/3/This-is-something-I-would-do</link>      <description>            And the same thing would happen to me. I have often said that I would write a script to wash my car if I could. It all starts out innocent enough until I have to explain it to the authorities. &lt;a href=&quot;http://xkcd.com/576/&quot; target=&quot;_blank&quot;&gt;At times my life seems to be an exercise in taunting that Murphy&apos;s law fellow. &lt;/a&gt;       </description>            <category>Stupid Shite</category>                <category>Learning</category>                <category>Life</category>                <pubDate>Sun, 03 May 2009 03:55:00-0700</pubDate>      <guid>http://www.myinternetisbroken.com/index.cfm/2009/5/3/This-is-something-I-would-do</guid>           </item>          <item>      <title>A Paradigm shift (Or how to learn OOP on the job with out screwing up).</title>      <link>http://www.myinternetisbroken.com/index.cfm/2009/4/13/A-Paradigm-shift-Or-how-to-learn-OOP-on-the-job-with-out-screwing-up</link>      <description>            I have been banging my head against CFOOP for about a year or two and thought I would share some of my tricks, trials and tribulations.  I just noticed how my thinking has changed when developing apps these days.  Huh... Thinking about thinking is meta-cognition. So what do you call thinking about what you are thinking about when thinking about metadata? I smell a &lt;a href=&quot;http://www.youtube.com/watch?v=oep4mRpmrkQ&amp;feature=related&quot;  target=&quot;_blank&quot;&gt;cognitive infinite recursive loop&lt;/a&gt; in the making. (Note to self.. Tell brain to STFU for a minute so I can finish this blog entry FFS)&lt;br /&gt;&lt;br /&gt; Anyways...  1. I write the procedural code to get the things I need done. I don&apos;t even think about OO at this point.  2. I turn everything into functions and try to atomize things as much as I can (where  it makes sense to at least).  3. Then I create a CFC (or CFCs) to organise my functions  4. Then I rewrite my procedural code to incorporate my cfcs/functions  5. I turn THAT code into another function or set of functions   6. And then I turn THAT set of functions into another CFC (0ne ring to rule them all). IIRC this is your service layer.  I got into this whole head set from reading  &lt;a href=&quot;http://oreilly.com/catalog/9780596008673/&quot; target=&quot;_blank&quot;&gt;Head First Object-Oriented Analysis and Design&lt;/a&gt;. &lt;br /&gt; &lt;br /&gt;Taking on this approach has really helped me a lot. When you are getting into a new discipline /paradigm shift /cognitive restructuring such as OOP it can be *VERY* overwhelming and it is *all too easy* to think yourself utterly stupid to the point where you are a quivering blob of &quot;WTF?&quot; before you even &lt;b&gt;write your first line of code&lt;/b&gt;. So much so that you say fark it and go back to writing code like you used to (not good).   I have seen it time and time again both in my personal life and from reading interblargs. &lt;br /&gt;&lt;br /&gt; What I find with this iterative, incremental approach is that if you get into time crunch, or think yourself stupid, or get in over your head, or get stuck, you can always bail out and still have a functioning app that you can go back to and clean up at a later date.     This approach has really allowed me to push my limits when I can (Read: on the clock) and bail out when I have/need to. And after a while you just start to think differently about code and writing OO code becomes a natural part of your daily affairs. I find myself looking at legacy code and thinking &quot;What can I abstract into a function&quot; or &quot;How can I clean this heaping pile of spaghetti into something more useable&quot;. And the next thing you know you are seeing everything in those terms. Your thinking has changed.  The end result on my last foray into OOP was three tidy function calls to a cfc that turned (what was) 500 lines of copy and paste spaghetti code into:  usercfc.createAccount(somestruct)&lt;br /&gt; usercfc.updateAccount(somestruct)&lt;br /&gt; usercfc.deletedAccount(somestruct)&lt;br /&gt;  &lt;a href=&quot;http://www.mydamnchannel.com/Big_Fat_Brain/You_Suck_at_Photoshop__Season_1/YouSuckAtPhotoshop8_578.aspx&quot; target=&quot;_blank&quot;&gt;&lt;strong&gt;Fergolicious!&lt;/strong&gt;&lt;/a&gt;       </description>            <category>OO</category>                <category>Simplicity</category>                <category>Learning</category>                <category>Working Smart</category>                <pubDate>Mon, 13 Apr 2009 23:25:00-0700</pubDate>      <guid>http://www.myinternetisbroken.com/index.cfm/2009/4/13/A-Paradigm-shift-Or-how-to-learn-OOP-on-the-job-with-out-screwing-up</guid>           </item>          <item>      <title>My Grandfathers diary as a P.O.W. in North Africa during WWII</title>      <link>http://www.myinternetisbroken.com/index.cfm/2009/1/19/My-Grandfathers-diary-as-a-POW-in-North-Africa-during-WWII</link>      <description>            My Grandfather went to work in Africa (from Italy) in order to support his family during the Great Depression. We found his journal after he died. He never spoke a word of it to any of us. After many years it was translated from the original Italian dialect at great expense thanks to my cousin Angelo.  We see these sorts of stories, ones of great suffering, were hundreds or thousands of men die at the hands of their captors on the History Channel and think nothing of it. This is the amazing story of a man who went though a living hell, a story of deep love and incredible sacrifice made by a man (my Grampa), in order to simply feed and support his family.   During these hard times it reminds me of how much we take for granted and have to be grateful for.  &lt;b&gt;&lt;i&gt;&lt;a href=&quot;http://docs.google.com/Doc?id=dhn7948x_167d2f92s3k&quot; target=&quot;_blank&quot;&gt;&quot;A summary of ten years of my military life in Eastern Africa, Ethiopia&quot;&lt;/a&gt;&lt;/i&gt;&lt;BR&gt; By Domenico Franco&lt;/b&gt;       </description>            <category>Learning</category>                <category>Life</category>                <category>Family</category>                <pubDate>Mon, 19 Jan 2009 23:05:00-0700</pubDate>      <guid>http://www.myinternetisbroken.com/index.cfm/2009/1/19/My-Grandfathers-diary-as-a-POW-in-North-Africa-during-WWII</guid>           </item>          <item>      <title>Amazing Website To Build (CF) Eclipse installs</title>      <link>http://www.myinternetisbroken.com/index.cfm/2008/11/2/Amazing-Website-To-Build-CF-Eclipse-installs</link>      <description>            One of the biggest pains in the arse when dealing with some FOSS apps (LAMP especially) is dependency hell. If the app you need is not part of the package manager you can get into a day(s) long hunt for dependencies.  The same is true for Eclipse (to a lesser degree). Or rather it was.  Someone on CF_talk was having problems with installing CFEclipse on the latest version of Eclipse 3.4 (Ganymede). In the past a few people recommended Pulse (myself included) to deal with Eclipse&apos;s dependencies. Pulse is a great app that resolves dependencies (most of the time) when building Eclipse Distros. Pulse is an excellent product but has a bad habit of downloading a gig or more of files (in my case) to its plugin cache (depending on your builds).  Another option, and in my opinion a better option, is yoxos.com&apos;s On Demand website.  &lt;a href=&quot;http://yoxos.com/ondemand/&quot; target=&quot;_blank&quot;&gt;http://yoxos.com/ondemand/&lt;/a&gt;  Yoxos.com&apos;s On Demand website is an online tool for building custom Eclipse distros/installs. This site is one of the most amazing web based apps I have seen to in my life. The front end is damn near that of a desk top app, and the back end is even more impressive. It allows you to pick and choose from hundreds of plugins and automatically resolves dependencies so you can create custom Eclipse installs that you can save, merge and share.  I started messing around with the various plugins and found some of the most amazing tools like editors for PHP, SQL, CSS, (X)HTML, JavaScript and XML with support for Adobe AIR apps, all the major JS/AJAX libraries with code assist and inline help; wussywig HTML editors, JavaScript debuggers, XML schema editors, JavaScript/CSS/html function/property  browsers, Database development tools and editors, snippets etc. etc. Not to mention Eclipse is the defacto standard for Java development and supports most of it&apos;s tool kits as well as having plugins for just about every language under the sun.   And keep in mind that a lot of the above editors are not just text editors with color coding and rudimentary code complete but first class, full featured tools/IDE&apos;s like the ones that we used to (and still do) pay hundreds of dollars for.  Oh yeah. It is all FREE!!! FOSS, me love you long time!!       </description>            <category>CFEclipse</category>                <category>Tools</category>                <category>Open Sores</category>                <category>Learning</category>                <category>Eclipse</category>                <category>Java</category>                <category>Working Smart</category>                <pubDate>Sun, 02 Nov 2008 23:16:00-0700</pubDate>      <guid>http://www.myinternetisbroken.com/index.cfm/2008/11/2/Amazing-Website-To-Build-CF-Eclipse-installs</guid>           </item>          <item>      <title>Money well spent?</title>      <link>http://www.myinternetisbroken.com/index.cfm/2008/4/9/Money-well-spent</link>      <description>            If you spend money for the sole reason of impressing someone (other that a potential  mate) you are an idiot. You are putting other peoples needs and opinions above your own.   IF their opinion matters more than your own.. you are making yourself their bitch.       </description>            <category>Stupid Shite</category>                <category>WTF?</category>                <category>Learning</category>                <category>Life</category>                <pubDate>Wed, 09 Apr 2008 01:55:00-0700</pubDate>      <guid>http://www.myinternetisbroken.com/index.cfm/2008/4/9/Money-well-spent</guid>           </item>          <item>      <title>ColdFusion Rocks</title>      <link>http://www.myinternetisbroken.com/index.cfm/2008/2/28/I-am-so-happy</link>      <description>            I have been fighting it. The FUD, the slim job market, the abuse. But I have given in again to the lure of CF.  I have played with and or made production apps with PHP, ASP, C#/ASP.NET, Java/JSP/Groovy, Ruby, ROR, PERL and so on.  And the one thing I have noticed is that for a lot of the above languages writing a simple app (say in Java/JSP) is like swatting a bug with a sledge hammer.  With ROR, you have to know a bazzion hand shakes to do something that is &lt;B&gt;SUPER SIMPLE&lt;/B&gt;. Like trying to group output by category:  http://instantbadger.blogspot.com/2008/02/i-still-miss-cfoutput.html   Or with PHP where everything is odles of noodles spaghetti.    HTML is spaghetti, SQL is spaghetti, dynamic JS is spaghetti.... You will go blind trying to debug dynamic JS generated by PHP.  ASP? As Sid said in &apos;78: No future for you!  ASPX/C#? Code behind? Poor excuse for OO. It never made sense to me. ASP.NET is smart and well designed but the whole Code behind thing gave me a rash.  I do like the VB and C# syntax. Especially C#  BTW JS browser issues irritates me to no end. i.e. &quot;GODDAMMIT just FARKING WORK!!!!&quot;  But CF? It is so simple, so smart, so damn easy. The easy stuff is idiot proof, the harder stuff is a cake walk compared to other languages. And the hard stuff? Do you even have to ask?  You need to do something? Chances are there is an out of the box tag or function for it. Need to do some heavy lifting? You have COM, the entire Java and .NET library at your command. Not to mention most any Java class including most everything at Apache.org and Source forge. Or you can roll your own.  What else you need?  AJAX? Done. Frameworks? Done.  ORM? Done.  Code Generators? Done.  Scaffolding? Done. Unit Tests? Done.  Ever update a database record with one line of code using three variables?  I didn&apos;t think so.       </description>            <category>OO</category>                <category>Working Smart</category>                <category>Learning</category>                <category>Java</category>                <category>ColdFusion</category>                <pubDate>Thu, 28 Feb 2008 01:17:00-0700</pubDate>      <guid>http://www.myinternetisbroken.com/index.cfm/2008/2/28/I-am-so-happy</guid>           </item>          <item>      <title>I don&apos;t know shit....</title>      <link>http://www.myinternetisbroken.com/index.cfm/2008/2/16/And-one-IDE-to-rule-them-all</link>      <description>            If you are a CF developer (or web developer) and you are still using DreamWeaver or Homesite or CF studio and not using Eclipse or any other of the advanced IDE&apos;s like Komodo, Visual Studio, Aptana, NetBeans etc, &lt;b&gt;*you literally have no idea what you are missing out on*&lt;/b&gt;.   If you use F1 on DreamWeaver, Homesite or CF studio as a  &lt;b&gt;&lt;i&gt;primary source  &lt;/i&gt;&lt;/b&gt; of information about programming, CSS, HTML and your available options  &lt;b&gt;you are also missing a HUGE piece of information &lt;/b&gt;.  I have been using Eclipse for about 9 months now and the one thing it has taught me is how little I know. When I first fired up CF studio some 10 odd years ago I looked at all the CF related buttons and the options and felt clueless.   By using various Eclipse distros like the one provided by Pulse I feel even more clueless than I did 10 years ago. AND I have a working knowledge of web development and client and server side languages like JS, SQL, XML, XSL, HTML, XHTML, CSS, ASP, PHP, RegEx, CFML etc under my belt. As well as being exposed good doses of VB, ASP.NET,  C#, ROR, Java, PERL, Python etc over the years.  The one thing I am finding out that I don&apos;t know shit.  At FSU the is an engraving on Dodd Hall that reads &quot;The half of knowledge is to know where to find knowledge&quot;   Now I know the other half of knowledge is making sure that you are being exposed to *new* knowledge on a regular basis.  If you explore Eclipse it will end up teaching you more than you can possibly imagine.   Literally.       </description>            <category>Open Sores</category>                <category>IDE&apos;s</category>                <category>Eclipse</category>                <category>Learning</category>                <category>CFEclipse</category>                <category>Working Smart</category>                <category>Professional Development</category>                <category>Tools</category>                <category>ColdFusion</category>                <category>Rants</category>                <pubDate>Sat, 16 Feb 2008 03:39:00-0700</pubDate>      <guid>http://www.myinternetisbroken.com/index.cfm/2008/2/16/And-one-IDE-to-rule-them-all</guid>           </item>     </channel></rss>