webdu 2012: web developer conference

DopeFly

Some insight into how the Goog sees your feed. You might find it useful for trouble shooting - we certainly do.

Stomach Contents: Structure - struct
description Join Nathan Strutz as he shoots the breeze on techie geeky web dev stuff.
encoding UTF-8
item
Stomach Contents: Structure - array
1
Stomach Contents: Structure - struct
author mrnate@dopefly.com (Nathan Strutz)
category
Stomach Contents: Structure - array
1
Stomach Contents: Structure - struct
value General
comments http://www.dopefly.com/techblog/entry.cfm?entry=366
description
Stomach Contents: Structure - struct
value Here's a note to say that Dopefly is back up. It's been about 3 weeks. Yeesh, awful, I know. Now I'm back up on MySQL, so please drop me a note if you see anything broken around here. A rewrite and redesign is in the works, and may be out sooner than you expect.<br/><br/>Sorry to everyone who missed the content, and especially to Mike Henke who linked my post about <a href="http://www.dopefly.com/techblog/entry.cfm?entry=363">actually understanding closures in ColdFusion 10</a> from <a href="http://coldfusionshow.com/">The ColdFusion Show</a>.<br/><br/>Update: Looks like auto-incrementing PK columns didn't make the migration to MySQL from SQL Server, so I'm going to guess that comments won't work. This post took a lot more work to get published than it should have.
guid
Stomach Contents: Structure - struct
isPermaLink NO
value http://www.dopefly.com/techblog/entry.cfm?entry=366
link http://www.dopefly.com/techblog/entry.cfm?entry=366
pubDate Sun, 08 Apr 2012 09:52:00 GMT
title Good news, Dopefly is back up (mostly)
2
Stomach Contents: Structure - struct
author mrnate@dopefly.com (Nathan Strutz)
category
Stomach Contents: Structure - array
1
Stomach Contents: Structure - struct
value Life Events
comments http://www.dopefly.com/techblog/entry.cfm?entry=365
description
Stomach Contents: Structure - struct
value We're having a hosting change, so expect Dopefly to be down for a couple days while we get it sorted out. Also the azcfug.org site will be down and a few other sites we have hosted here. Thanks to my friend <a href="http://www.stevenbenjamin.com">Steven Benjamin</a> for finding us a new home!
guid
Stomach Contents: Structure - struct
isPermaLink NO
value http://www.dopefly.com/techblog/entry.cfm?entry=365
link http://www.dopefly.com/techblog/entry.cfm?entry=365
pubDate Fri, 16 Mar 2012 18:27:00 GMT
title A couple days of downtime
3
Stomach Contents: Structure - struct
author mrnate@dopefly.com (Nathan Strutz)
category
Stomach Contents: Structure - array
1
Stomach Contents: Structure - struct
value Software Quality
comments http://www.dopefly.com/techblog/entry.cfm?entry=364
description
Stomach Contents: Structure - struct
value A discussion erupted recently, on one of the various discussion groups i subscribe to, about deprecated features that are not really deprecated but more like, not encouraged when thinking about future applications moving forward in development time.<br/><br/>It's hard to explain in a definition, so a case in point is needed.<br/><br/>The Application.cfm file is a ColdFusion construct as old as I can remember. It's not going away, but it is essentially feature complete.<br/><br/>More recently, ColdFusion has given us Application.cfc. The capabilities that gives us are far above and beyond what a had previously, and developers are encouraged to upgrade their applications or at least use Application.cfc in their next projects.<br/><br/>In this case, Application.cfm has been socially deprecated.<br/><br/>Here's another one: Fusebox. It's not a language feature so much as a framework, but if your application uses Fusebox, your program is socially deprecated. Now my friend John is bringing it back, but for the past 5 years, if you have started a new app with Fusebox, you used a socially deprecated framework and your "cool kids" card has been revoked.<br/><br/>using socially deprecated features and frameworks puts your application at risk for falling into technical debt. It's a slow roll down a long hill that will show in bugs that are never fixed, areas of the application that everyone avoids because they are afraid of causing errors, and eventually, lack of knowledgeable developers which will leave you stranded.<br/><br/>The way to avoid social deprecation is to keep engaged with the developer community. Read the blogs, engage in the discussion groups and visit the user groups.<br/><br/>Can you think of anything else that's socially deprecated? I can think of a bunch of things. CFUpdate. Prototype.js. Old stylized code like capitalizing tag and attribute names. Php. Internet Explorer. CFPod. The list goes on and on.<br/>
guid
Stomach Contents: Structure - struct
isPermaLink NO
value http://www.dopefly.com/techblog/entry.cfm?entry=364
link http://www.dopefly.com/techblog/entry.cfm?entry=364
pubDate Tue, 13 Mar 2012 18:03:00 GMT
title Socially Deprecated Features
4
Stomach Contents: Structure - struct
author mrnate@dopefly.com (Nathan Strutz)
category
Stomach Contents: Structure - array
1
Stomach Contents: Structure - struct
value ColdFusion
comments http://www.dopefly.com/techblog/entry.cfm?entry=363
description
Stomach Contents: Structure - struct
value There has been a lot of confusion about closures in ColdFusion 10, and I don't think anyone has done a good enough job explaining it. I'm going to try to make it easy.<br/><br/>First, understand that what we call the closures feature is actually a handful of related ideas: <strong>anonymous functions</strong>, <strong>named function expressions</strong>, <strong>functions as first-class citizens</strong>, <strong>nested functions</strong>, and yes, true <strong>closures</strong>.<br/><br/>An <strong>anonymous function</strong> is simply a function without a name. You define it inline, usually as an argument to a function call or as a function's return value. Eventually it may have a name, but at the time and scope of its creation it does not.<br/><br/>A <strong>named function expression</strong> is another way to define a function. Instead of the classic function operator syntax, <code>function name() {}</code>, you define it a lot like any other variable. Name equals value. <code>var name = function() {};</code>.<br/><br/><strong>Functions as first-class citizens</strong> finally reinforces something we have had unofficially since ColdFusion 6.1, passing a function as an argument. The difference now is there is a function data type. This helps us formalize a functional programming paradigm in a previously object-oriented CFML.<br/><br/>Having <strong>nested functions</strong> means that you can define a function within another. At its most basic, you can categorize you methods, hiding them in another function, and make little helpers that you only call from that defining parent function. You can define them in the classic function operator syntax <code>function name() {}</code> or in the expressed <code>var name = function() {};</code>.<br/><br/>Here is where it gets fun.<br/><br/>That inner function has access to the var scope of the function it was defined from. This is what a <strong>closure</strong> is. It knows about its origin and it doesn't forget. It will always be tied to that same parent var scope.<br/><br/>Combining those ideas, you can define a function within another and pass it out (with or without assigning a variable name to it), then that outbound function can use its closure abilities to reference data in the method it came from. This is where much of the power of Javascript comes from, and provides a good start to doing functional programming.<br/><br/>The similarities between what CFML will do in CF10 and what Javascript does are incredible. I love the direction we have seen so far, and I am excited for the future of ColdFusion!<br/>
guid
Stomach Contents: Structure - struct
isPermaLink NO
value http://www.dopefly.com/techblog/entry.cfm?entry=363
link http://www.dopefly.com/techblog/entry.cfm?entry=363
pubDate Mon, 12 Mar 2012 03:25:00 GMT
title Actually understanding closures in ColdFusion 10
5
Stomach Contents: Structure - struct
author mrnate@dopefly.com (Nathan Strutz)
category
Stomach Contents: Structure - array
1
Stomach Contents: Structure - struct
value AZCFUG
comments http://www.dopefly.com/techblog/entry.cfm?entry=362
description
Stomach Contents: Structure - struct
value Hey, here's a quick note to say we are going to talk about the newly released <a href="http://labs.adobe.com/technologies/coldfusion10/">ColdFusion 10 Beta</a> on Wednesday, February 22nd for this month's AZCFUG meeting. If you're in the Phoenix area, come hang out with us and learn about the new features.<br/><br/>We should take a vote to see what your favorite feature is. For me? There is so much stuff in this release, it's all over the map, I don't know that I can say any one single thing is my favorite. There are new language features, new tags, new functions, new technologies, a new platform, new capabilities - too much for me to pick just one.<br/><br/>Anyways, we'll be talking about it at the usual time and place, <a href="http://maps.google.com/maps?f=q&amp;source=s_q&amp;hl=en&amp;geocode=&amp;q=2625+W.+BASELINE+RD.,+TEMPE,+AZ+85283-1056&amp;sll=37.0625,-95.677068&amp;sspn=46.36116,93.076172&amp;ie=UTF8&amp;hq=&amp;hnear=2625+W+Baseline+Rd,+Tempe,+Maricopa,+Arizona+85283&amp;t=h&amp;z=16">UAT</a>'s main auditorium at 6:30 PM. See you there!
guid
Stomach Contents: Structure - struct
isPermaLink NO
value http://www.dopefly.com/techblog/entry.cfm?entry=362
link http://www.dopefly.com/techblog/entry.cfm?entry=362
pubDate Tue, 21 Feb 2012 23:59:00 GMT
title Let's talk about ColdFusion 10 - AZCFUG Feb 22
6
Stomach Contents: Structure - struct
author mrnate@dopefly.com (Nathan Strutz)
category
Stomach Contents: Structure - array
1
Stomach Contents: Structure - struct
value General
comments http://www.dopefly.com/techblog/entry.cfm?entry=361
description
Stomach Contents: Structure - struct
value So I was doing really great late last year preparing my LESS CSS talk for Adobe MAX, then MAX hit, I finished my presentation on LESS, and I just collapsed. It felt pretty nice, I won't lie. Soon thereafter the holidays started, family activities picked up (did I mention I have 4 kids?). Worse and/or better yet, my fantastic company takes the Christmas through New Year week off and right at the end of that, I got sick with "the Skyrim". It was bad. I still have it, a cough here and there, a sleepless night when I forget my reality pills. I feel bad for all of you who have caught it along with me. It hurts sometimes, but it feels so good when I give in...<br/> <br/>Let me recap a few things I should have already by now.<br/> <br/>Adobe MAX 2011. This was a great conference. Adobe pulls in amazing speakers, authors and technologists. Ray and the unconference crew also had a fantastic lineup, and it was really, really great. The MAX bash this year was over the top and by far the best party I <em>had</em> been to in my entire life.<br/> <br/>Then my boy, Jude, turned seven and we had a Mario party (pun intended), so then I had a new best party ever. Sorry Weezer. Sorry fancy <a href="http://www.flickr.com/photos/greywillfade/6220351149">candy</a> <a href="http://www.flickr.com/photos/adobemax/6212730907">pavillion</a>.<br/> <br/>Alanda, my wife, scored a Kindle Fire for Christmas. She loves it. While I know it's Android under the covers, she never would based on any evidence. It's Kindle through-and-through, and a great all-around device IMO.<br/> <br/>I visited the new Boeing South Carolina 787 factory in late January. It's a beautiful place, and I would move my whole family into that building if I could. About the jet - I am sold on it for sure, and I will buy the first available one as soon as I find the $170m or so that it takes. I am still asking around about the employee discount.<br/> <br/>Finally we come to today. I'm reading The Facts and Fallacies of Software Engineering. I count this as studying for one of my CF.Objective(). talks. Speaking of...<br/> <br/>This May Is CF.Objective()! I have two sessions to call my own - "<a href="http://www.cfobjective.com/sessions/making-software-better/">Making Software Better</a>" and "<a href="http://www.cfobjective.com/sessions/less-css-meet-coldfusion/">LESS CSS, Meet ColdFusion</a>." I'll talk more about these later, but for now this has gone on long enough. Here's to a successful blogging career in 2012!
guid
Stomach Contents: Structure - struct
isPermaLink NO
value http://www.dopefly.com/techblog/entry.cfm?entry=361
link http://www.dopefly.com/techblog/entry.cfm?entry=361
pubDate Sat, 11 Feb 2012 02:09:00 GMT
title Negligence Season 2011/2012
7
Stomach Contents: Structure - struct
author mrnate@dopefly.com (Nathan Strutz)
category
Stomach Contents: Structure - array
1
Stomach Contents: Structure - struct
value General
comments http://www.dopefly.com/techblog/entry.cfm?entry=360
description
Stomach Contents: Structure - struct
value I'm not related to Adobe, but I do co-manage an Adobe software users group for ColdFusion. Adobe has been really good to the group, giving us shirts and pens (swag items), plus two huge software giveaways every year, and lots of other benefits for my co-manager and I. That's my disclaimer. I like Adobe because they like me, and because their software is great.<br/><br/>Another thing I do is school my children at home. Well, who am I kidding, my amazing wife really does all of the hard work! There are a lot of up-sides and down-sides to homeschooling, same as any schooling option, but it's just a choice we made and are taking it year-by-year with each of our kids.<br/><br/>With all that said, I want to highlight a couple things that I found on Adobe.com for home schooling families.<br/><br/>According to Adobe's <a href="http://www.adobe.com/education/purchasing/qualify.html">educational purchasing eligibility</a> page, Adobe's education discounts apply to homeschooled students and their teachers. To prove that you are a valid home school family, about 2/3 down that same page lists the articles you can send Adobe as proof. We are a member of a couple homeschool associations, so I scanned my <a href="http://www.afhe.org/">AFHE</a> ID card.<br/><br/>Now what can you get with it?<br/><br/>Adobe.com has a great site for introducing their software in education, <a href="http://www.adobe.com/education/">Adobe Education</a>. Check it out. From there, I discovered the <a href="http://www.adobe.com/education/purchasing/education_pricing.html">educational price list</a>. You can see it for yourself that the price differences vary. I would say that most of the software is around 60% off, but some is 75% and some only 25%. A few of them are even free!<br/><br/>Those free packages point to the <a href="https://freeriatools.adobe.com/">Free RIA Tools</a> site. You can get ColdFusion 9, ColdFusion Builder 2 and Flash Builder 4.5 for free, just because you homeschool your kids! I made my request last Saturday and was given a serial number today (2 days later).<br/><br/>That's a win, fellow home-schooling families. Very expensive software, yours free.
guid
Stomach Contents: Structure - struct
isPermaLink NO
value http://www.dopefly.com/techblog/entry.cfm?entry=360
link http://www.dopefly.com/techblog/entry.cfm?entry=360
pubDate Mon, 17 Oct 2011 17:39:00 GMT
title Adobe and Homeschool (free and discounted software)
8
Stomach Contents: Structure - struct
author mrnate@dopefly.com (Nathan Strutz)
category
Stomach Contents: Structure - array
1
Stomach Contents: Structure - struct
value CSS
comments http://www.dopefly.com/techblog/entry.cfm?entry=359
description
Stomach Contents: Structure - struct
value Last Wednesday, I had the great pleasure of showing off <a href="http://lesscss.org">LESS CSS</a> to the ColdFusion community at Adobe MAX. I had a good crowd for the unconference area, I would say maybe 40 people. Honestly, that unconference tent was too small for this group, and the area was noisy, but that's all part of the adventure. Anyway, during the presentation I promised I would put all the presentation demo files up on GitHub, so here we go, <a href="https://github.com/NathanStrutz/Write-LESS-CSS-Presentation-Material">Write LESS CSS - Presentation Material</a>.<br/><br/>I'll try to make an official something-or-other review of MAX 2011 in a few days. Stay tuned. Thanks!
guid
Stomach Contents: Structure - struct
isPermaLink NO
value http://www.dopefly.com/techblog/entry.cfm?entry=359
link http://www.dopefly.com/techblog/entry.cfm?entry=359
pubDate Sat, 08 Oct 2011 05:21:00 GMT
title Write LESS CSS - Presentation Files Available
9
Stomach Contents: Structure - struct
author mrnate@dopefly.com (Nathan Strutz)
category
Stomach Contents: Structure - array
1
Stomach Contents: Structure - struct
value CSS
comments http://www.dopefly.com/techblog/entry.cfm?entry=358
description
Stomach Contents: Structure - struct
value Foreword: I am giving a LESS CSS talk at the Adobe MAX 2011 ColdFusion Unconference. Blogging about LESS is just one of my stepping stones to presenting. If you want the really good stuff, you should come to my session!<br/><br/><br/>I recently blogged about <a href="http://www.dopefly.com/techblog/entry.cfm?entry=356">LESS ports to other platforms</a>, and I thought about mentioning Java there, but this is not a port so much as just reusing the native implementation. Let me break it down like this: Yes, LESS runs on the Java Virtual Machine. It's not even that hard. How you may ask? Like this...<br/><br/>Mozilla makes browsers and Javascript engines. One of their Javascript engines is called Rhino, a JSR 223 compliant Javascript engine for the JVM. You can run any Javascript in Rhino, except that there is no browser, no <code>window</code>, no <code>document</code> and no DOM (I know, it sounds like a dream come true). The conflict comes where <a href="https://github.com/cloudhead/less.js/">LESS.js</a> relies on browser constructs to get its job of compiling and preprocessing LESS CSS into plain CSS, so we have to defeat that.<br/><br/>Lucky for us, we live in the future, and along with our flying cars, we also have Google and GitHub, which pointed me to <a href="https://github.com/asual/lesscss-engine">Asual's project, lesscss-engine</a>. Asual is a software company in Bulgaria, and their GitHub projects are run by Rostislav Hristov.<br/><br/>The easiest method of setting up Asual's solution is to download his browser.js and engine.js, then from Rhino, within Java, include them in the order of browser.js, less.js, then engine.js - the order is important. I did this in an Ant build file like this:<br/><br/><pre>&#60;script language=&#34;JavaScript&#34; src=&#34;browser.js&#34; /&#62;<br/>&#60;script language=&#34;JavaScript&#34; src=&#34;less.js&#34; /&#62;<br/>&#60;script language=&#34;JavaScript&#34; src=&#34;engine.js&#34; /&#62;</pre> <br/><br/>From there it's just a matter of calling the engine methods to load LESS CSS code, convert it to CSS and output to a file. Here is how I did it, this is my code that is directly after the script loading:<br/><br/><pre>&#60;script language=&#34;JavaScript&#34;&#62;&#60;![CDATA[<br/> var inputFile = readFile('input.less');<br/> var css = compileString(inputFile);<br/> writeFile('output.css', css);<br/><br/> function writeFile(filename, content) {<br/> var fstream = new java.io.FileWriter(filename);<br/> var out = new java.io.BufferedWriter(fstream);<br/> out.write(content);<br/> out.close();<br/> }<br/>]]&#62;&#60;/script&#62;</pre> <br/>The engine.js has a number of good helper methods (readFile, writeFile, compileString, etc.), I did it this way in case there were more LESS files to compile and I wanted to add it to the same <code>css</code> output string. When you do this, make sure you have the Rhino file, js.jar, in your Ant classpath. In Eclipse I loaded the external jar by adding it to the 'Run as...' dialog when you right-click on your build.xml file. Also make sure you are on Java 1.6+ to support JSR 223 Java Scripting.<br/><br/>You aren't limited to compiling LESS when you do this, you know. You can actually do anything you want in Javascript from right inside your Ant build file. It's fantastic.<br/><br/>There are other methods of accomplishing the same goal. <a href="https://github.com/erwan/">Erwan Loisant</a> did <a href="http://caffeinelab.net/2011/07/18/lesscss-and-rhino/">something similar</a> by altering the core LESS.js files (including the proper pull request). While he calls his release LESS for Rhino, it's really more of LESS for Ant. Even still, it works great as a rhino-javascript-ant all-in-one solution. I especially like his use of an Ant macrodef to create a &#60;lessjs&#62; tag. His examples work straight across from his blog, perfectly.<br/><br/><br/>Not content to rest on my laurels, I went back to the Asual's LESS Engine project to see if I could make a jar and see what I could do with it. I cloned the GitHub repository locally over http, then I added it as a project to Eclipse. I had to install Maven, which was simple with Eclipse's software installer, and running it is almost exactly like running an Ant build. When you build the project you get a few jars in the <code>target/</code> folder. I recommend using the <code>lesscss-engine-1.1.4-jar-with-dependencies.jar</code> file, as it's the most likely to work anywhere you need it.<br/><br/>When I checked the LessEngine class, I noticed a <code>main</code> method that was added recently, which means we can call it from the command line, like so:<br/><br/><pre>java -jar lesscss-engine-1.1.4-jar-with-dependencies.jar input.less output.css</pre> <br/><br/>Incidentally, if Asual (or someone) were to add a -w command line switch to watch the input file for changes, this would essentially make it identical to the Ruby LESS compiler, <code>lessc</code>. Except, of course, it would be much faster. Just a thought.<br/><br/>So we can call it from the command line. The next, most obvious step, is to put this in an Ant build. This was so simple. Here is what I did:<br/><br/><pre>&#60;java jar=&#34;lesscss-engine-1.1.4-jar-with-dependencies.jar&#34; fork=&#34;true&#34; dir=&#34;${basedir}&#34;&#62;<br/> &#60;arg value=&#34;input.less&#34; /&#62;<br/> &#60;arg value=&#34;output.css&#34; /&#62;<br/>&#60;/java&#62;</pre> <br/><br/>Copy and paste that, with the jar, and it will all work as advertised.<br/><br/><br/>To summarize, You can compile LESS on Java. It's fun and easy to do!<br/><br/>If you want to get all the files, or want to see it in action, I'm doing this talk September 28, 2011 at the AZCFUG in Tempe, AZ, then at Adobe Max on October 5th, then again October 12th at the Tucson CFUG. Look forward to more of this kind of chatter here on this blog.<br/>
guid
Stomach Contents: Structure - struct
isPermaLink NO
value http://www.dopefly.com/techblog/entry.cfm?entry=358
link http://www.dopefly.com/techblog/entry.cfm?entry=358
pubDate Wed, 14 Sep 2011 03:23:00 GMT
title LESS in Java: Running LESS CSS on the JVM
10
Stomach Contents: Structure - struct
author mrnate@dopefly.com (Nathan Strutz)
category
Stomach Contents: Structure - array
1
Stomach Contents: Structure - struct
value Software Quality
comments http://www.dopefly.com/techblog/entry.cfm?entry=357
description
Stomach Contents: Structure - struct
value Last July I gave my presentation, Holistic Program Quality and Technical Debt to the <a href="http://www.denvercfug.org/events/22296841/">Denver CFUG</a>, for my friend <a href="http://www.blayter.com/john/">John Blayter</a>. This is cool and stuff, but the truly impressive thing is that the audio and video is consistent all the way through, and the awful jokes were even relatively funny.<br/><br/>If you haven't seen it, this is the definitive version. This is the one to sit through.<br/><br/><a href="http://experts.adobeconnect.com/p1ghwjexomu/">Watch Holistic Program Quality and Technical Debt</a> <br/><br/>Thanks, John, for getting it up there, even though I may have insulted your programming around the 14:30 mark. Yeah, I apologized, then pointed out exactly where I threw you under the bus. That just happened.<br/><br/>Update: You can hear my awesome kids screaming their heads off around 42:00. Fantastic.
guid
Stomach Contents: Structure - struct
isPermaLink NO
value http://www.dopefly.com/techblog/entry.cfm?entry=357
link http://www.dopefly.com/techblog/entry.cfm?entry=357
pubDate Fri, 09 Sep 2011 19:28:00 GMT
title The Definitive Recording of HPQaTD
11
Stomach Contents: Structure - struct
author mrnate@dopefly.com (Nathan Strutz)
category
Stomach Contents: Structure - array
1
Stomach Contents: Structure - struct
value CSS
comments http://www.dopefly.com/techblog/entry.cfm?entry=356
description
Stomach Contents: Structure - struct
value Something I enjoy about LESS</a> is how its ecosystem is a microcosm of a lot of other more well known software ecosystems. There are competitors, contributors, and even ports to other languages. I'm going to talk about those ports today.<br/><br/>Aside from the original Ruby release and the subsequent Javascript browser/Node version which were both written by the creator, <a href="http://twitter.com/cloudhead">Alexis Sellier</a>, there are these other ports.<br/><br/>First, there is <a href="http://leafo.net/lessphp/">LESSPHP</a>. You'll never guess what language that ports to... QBasic! Nah just kidding. There is an obvious benefit to running LESS in PHP, mostly for the fact that your PHP application can now compile the LESS files at the server when they are requested. The JavaScript compiler is great, but doesn't work withthe oldest browsers, and some might take a second glance at having to download another .js file and compiling CSS in the browser. Running PHPLESS will let you get away from the need to eiher preprocess or postprocess your LESS source code. Also, you can invoke it from the command line, and it works just like the Ruby compiler but you only need PHP instead of Ruby.<br/><br/>The second unofficial port is <a href="http://www.dotlesscss.org/">DOTLESS</a>, a port to... DOS batch files! No, just kidding again. Running a native LESS compiler in the CLR is fantastic if you are on Windows or doing .NET development. DOTLESS can run as a filter in IIS that intercepts all .less file requests and translates them on the fly. That also gives way for you to call it programmatically like through a build process, or from the command line in an EXE file, just like the Ruby or PHP command line programs.<br/><br/>Which one of these is better completely depends on what kind of development you do and where you do it. Both projects have their files hosted on GitHub, and they are both very active. It's just good to know there are options.<br/>
guid
Stomach Contents: Structure - struct
isPermaLink NO
value http://www.dopefly.com/techblog/entry.cfm?entry=356
link http://www.dopefly.com/techblog/entry.cfm?entry=356
pubDate Fri, 09 Sep 2011 05:13:00 GMT
title LESS Unofficial Ports
12
Stomach Contents: Structure - struct
author mrnate@dopefly.com (Nathan Strutz)
category
Stomach Contents: Structure - array
1
Stomach Contents: Structure - struct
value CSS
comments http://www.dopefly.com/techblog/entry.cfm?entry=355
description
Stomach Contents: Structure - struct
value You are not as far from using <a href="http://lesscss.org/">LESS CSS</a> as you may think. What does it take to switch from plain CSS to LESS? It's 2 steps.<br/><ol> <li>Rename your .css file to a .less file</li> <li>Include less.js</li> </ol> <br/>That's it! From there, you can start to add some variables and nest your selectors, or get more advanced with mixins and color functions. Oh, and also my favorite thing in the world, the <code>// single line comment</code>!<br/><br/>There are a few cases where your stylesheet won't convert perfectly. I've noticed just a few. They are:<br/><ul> <li>Font sizes with a slash for a combined font-size / line-height, LESS tends to divide; the fix is to escape them, surround some or all of it with ~&#34;tilde quotes&#34;</li> <li>Missing semicolons and sloppy CSS won't compile in LESS; it won't validate either, so you should clean it up anyway</li> <li>IE-specific transformation filters and similar unofficial fringe CSS rules, escape the entire thing with the tilde quotes</li> </ul>
guid
Stomach Contents: Structure - struct
isPermaLink NO
value http://www.dopefly.com/techblog/entry.cfm?entry=355
link http://www.dopefly.com/techblog/entry.cfm?entry=355
pubDate Wed, 07 Sep 2011 03:21:00 GMT
title The Ease of Moving to LESS
13
Stomach Contents: Structure - struct
author mrnate@dopefly.com (Nathan Strutz)
category
Stomach Contents: Structure - array
1
Stomach Contents: Structure - struct
value CSS
comments http://www.dopefly.com/techblog/entry.cfm?entry=354
description
Stomach Contents: Structure - struct
value Foreword: I am giving a LESS CSS talk at the Adobe MAX 2011 ColdFusion Unconference. Blogging about LESS is just one of my stepping stones to presenting. If you want the really good stuff, you should come to my session!<br/><br/>A few weeks ago I stumbled on a CSS shapes demo, <a href="http://css-tricks.com/examples/ShapesOfCSS/">The Shapes of CSS</a> from a great site, <a href="http://css-tricks.com/">CSS-Tricks</a>. It's good code, really good, but nobody wants their shapes the same size or color, and changing these means changing a lot of properties. Say you want three sizes of triangles on your site, you have to do the math three times. That's not a huge deal because it's a simple divide-by-two equation, but the heart shape is going to cause a lot more problems, a lot of rework, and a lot of checking.<br/><br/>The great news for you is that I made a <a href="http://lesscss.org">LESS CSS</a> mixin library that does all this work for you! All the shapes are LESS mixins, so they don't output anything unless you call them explicitly. You can add the library to your project and if you don't use them, it shouldn't add any overhead.<br/><br/>All of the shape mixins take at least 2 optional parameters, size and color. Some of them have additional properties, like width and height instead of size, and angle for some shapes like the parallelogram. The default size is 100px, which means that at least one edge of the shape will be 100px wide. The default color is red.<br/><br/>The best way to see it in action is to check the demo page, affectionately titled, <a href="http://www.dopefly.com/LESS-CSS-Shapes-Library/">The Shapes of LESS CSS</a>.<br/><br/>When you decide it's awesome, check it out, download it and fork it on GItHub:<br/><a href="https://github.com/NathanStrutz/LESS-CSS-Shapes-Library">The LESS CSS Shapes Library</a>.<br/>
guid
Stomach Contents: Structure - struct
isPermaLink NO
value http://www.dopefly.com/techblog/entry.cfm?entry=354
link http://www.dopefly.com/techblog/entry.cfm?entry=354
pubDate Wed, 31 Aug 2011 06:18:00 GMT
title The Shapes of LESS CSS (The LESS CSS Shapes Mixin Library)
14
Stomach Contents: Structure - struct
author mrnate@dopefly.com (Nathan Strutz)
category
Stomach Contents: Structure - array
1
Stomach Contents: Structure - struct
value CSS
comments http://www.dopefly.com/techblog/entry.cfm?entry=353
description
Stomach Contents: Structure - struct
value A couple weeks ago Scott Hanselman blogged <a href="http://www.hanselman.com/blog/JavaScriptIsAssemblyLanguageForTheWebSematicMarkupIsDeadCleanVsMachinecodedHTML.aspx">JavaScript is Assembly Language for the Web</a>. He's right. We now write programs that generate Javascript. We have languages that compile to Javascript, and not just a few! Javascript is our lowest-level language for client-side development.<br/><br/>Scott mentions HTML and Javascript as compiler targets, but he does not mention CSS. It's not a surprise, web developers generally don't think of CSS as a language you can program to. It's not a target you can compile for. CSS has to be hand-crafted over an intensive, grueling, month-long period of awful interaction between designers and developers. Or at least that's the common wisdom of writing a stylesheet.<br/><br/>Of course I'm being facetious. Sarcasm runs deep in my veins. Really deep. Obscure English humor deep.<br/><br/>The truth is, there are a lot of languages that compile to CSS. The overwhelming most popular two being LESS and SASS. I have a list of 14 &#34;CSS Preprocessors,&#34; that I looked at, granted many of them are not worth their weight in magnetic bits... a lot more zeros than ones if you know what I mean. Also, I use &#34;language&#34; in a very liberal sense; none of these are even remotely Turing complete. Only one has the concept of an <em>if</em> or a <em>loop</em>. Semantic detractions aside, CSS is growing up, and our near future has compiled CSS written all over it.<br/><br/>Wouldn't it be dreamy to wake up one day in the future where you didn't have to write all that CSS to get a web page to look nice? Maybe we're close to that dream already. Maybe we're there today.<br/>
guid
Stomach Contents: Structure - struct
isPermaLink NO
value http://www.dopefly.com/techblog/entry.cfm?entry=353
link http://www.dopefly.com/techblog/entry.cfm?entry=353
pubDate Sat, 27 Aug 2011 01:09:00 GMT
title CSS is the styling assembly language of the web
15
Stomach Contents: Structure - struct
author mrnate@dopefly.com (Nathan Strutz)
category
Stomach Contents: Structure - array
1
Stomach Contents: Structure - struct
value CSS
comments http://www.dopefly.com/techblog/entry.cfm?entry=352
description
Stomach Contents: Structure - struct
value Foreword: I am giving a LESS CSS talk at the Adobe MAX 2011 ColdFusion Unconference. Blogging about LESS is just one of my stepping stones to presenting. If you want the really good stuff, you should come to my session!<br/><br/>Today I am making public a tool I created to work with LESS CSS. This is a simple converter that takes your LESS and makes it CSS. It will help you learn and work with the LESS CSS language by showing you how things get converted and displaying any errors as they come across. Here's a screenshot to give you an idea of what you're up against.<br/><br/><img src="http://www.dopefly.com/techblog/lessconverter.png" alt="LESS CSS converter" /> <br/>You can type or paste some LESS code into the box on the left, then click the stupidly large center button to see the CSS that LESS generates in the right box. You can keep the CSS and use it for whatever, that's fine. I have been using it over the past couple weeks to test LESS code snippets - in this case, it's really more like a snippet compiler, a test driver or a debugger. I tried to make sure all the errors come across with as much detail as possible, but that doesn't mean that LESS always gives useful compile errors.<br/><br/>It's up <a href="https://github.com/NathanStrutz/LESS-Converter">on GitHub</a>, so you can download, clone or fork it and make a million dollars, or you can run <a href="http://www.dopefly.com/LESS-Converter/less-converter.html">the LESS CSS JS Converter</a> right here from dopefly.com.<br/><br/>The tool uses the Javascript LESS compiler, so there is no server connection, it's all in your browser. Try it out and see for yourself how fast and easy it is to write LESS CSS!<br/>
guid
Stomach Contents: Structure - struct
isPermaLink NO
value http://www.dopefly.com/techblog/entry.cfm?entry=352
link http://www.dopefly.com/techblog/entry.cfm?entry=352
pubDate Thu, 25 Aug 2011 08:00:00 GMT
title Try the LESS converter, right now!
16
Stomach Contents: Structure - struct
author mrnate@dopefly.com (Nathan Strutz)
category
Stomach Contents: Structure - array
1
Stomach Contents: Structure - struct
value CSS
comments http://www.dopefly.com/techblog/entry.cfm?entry=351
description
Stomach Contents: Structure - struct
value Foreword: I am giving a LESS CSS talk at the Adobe MAX 2011 ColdFusion Unconference. Blogging about LESS is just one of my stepping stones to presenting. If you want the really good stuff, you should come to my session!<br/><br/>A couple years ago I <a href="http://www.dopefly.com/techblog/entry.cfm?entry=297">mentioned the LESS CSS project</a>. I stated one problem with it back then, which was the dependence on Ruby. Creator Alexis Sellier has since moved the project to Javascript, which opens it up to a lot of possibilities, the most magical being that we can run it from our browsers.<br/><br/>The performance that I have seen so far has been nothing short of instantaneous. Even on IE8, the overhead is nil. If you've seen LESS but had reservations like I did, fear not, because LESS has come to you!<br/><br/>LESS has also been ported to PHP and .NET. It has picked up in popularity and community support, and is turning into a great open source software ecosystem.<br/><br/>So, why would you want to use LESS? It's because it makes CSS think like programmers do. Set a variable, Call a function, include a file, these are just the start to the kinds of things you can do when you <a href="http://lesscss.org">use LESS CSS</a>.<br/><br/>
guid
Stomach Contents: Structure - struct
isPermaLink NO
value http://www.dopefly.com/techblog/entry.cfm?entry=351
link http://www.dopefly.com/techblog/entry.cfm?entry=351
pubDate Tue, 23 Aug 2011 07:07:00 GMT
title (re-)Introducing LESS CSS
17
Stomach Contents: Structure - struct
author mrnate@dopefly.com (Nathan Strutz)
category
Stomach Contents: Structure - array
1
Stomach Contents: Structure - struct
value Life Events
comments http://www.dopefly.com/techblog/entry.cfm?entry=350
description
Stomach Contents: Structure - struct
value A little quiet around here for the second half of the year. I hate those blogs that do nothing but apologize for lack of interesting content, and I don't like blogging just because it's been too quiet, but I have a goal for this year, and that's to blog more than last year. I have more than doubled it already, I think I'll beat the last 2 years combined, so I'm able to feel a little smug there. See, I like to set goals that I've already hit. No disappointment that way.<br/><br/>We took a couple vacations over the last couple months. Legoland in May, then San Antonio and Schlitterbahn in July. My wife likes to keep me away from screens when she can. We were supposed to head up to the <a href="http://en.wikipedia.org/wiki/Mogollon_Rim">Rim</a> this weekend but she's going to be busy showing houses. She's planning on closing her first two within the next few weeks, working her tail off. Also, I won a big glass award trophy thing at work for a project I did last year. I need to find a way to top that.<br/><br/>Anyways, before August slips away, <strong>I really do have 3 interesting things to say</strong>.<br/><br/>1. <a href="http://www.azcfug.org/">AZCFUG</a> has famed CF podcaster and presenter <a href="http://blog.dkferguson.com/">Dave Ferguson</a> to talk about <a href="http://www.cfobjective.com/sessions/application-intrusion-detection-and-tracking/">Application Intrusion, Detection and Tracking</a>. If you haven't seen it yet, you should come and catch this talk before he stops giving it! That's next Wednesday, the 24th, check the AZCFUG site for details.<br/><br/>2. Along with Dave and a lot of other really smart people, I am speaking at the Adobe MAX ColdFusion Unconference. The unconference area is where the smartest, coolest, most attractive people hang out, so naturally I'll be there most of the time. My time slot is on Wednesday afternoon, so don't leave the conference early, the best stuff is on the last day! The topic of my talk is <a href="http://lesscss.org/">LESS CSS</a>, being a programmer while working with stylesheets, and doing amazing things with beautiful technology.<br/><br/>3. With all that LESS stuff, I have learned far more than I can put in a single technical presentation, so I'm going to start leaking LESS content onto this blog. Hopefully it will whet your appetite enough to catch my talk. Look forward to it. You will love it. Also you can catch the preview at the CFUG in late September, and after MAX if your local user group or tech conference wants to see it and can book my time.<br/>
guid
Stomach Contents: Structure - struct
isPermaLink NO
value http://www.dopefly.com/techblog/entry.cfm?entry=350
link http://www.dopefly.com/techblog/entry.cfm?entry=350
pubDate Sat, 20 Aug 2011 08:09:00 GMT
title Hey what's happening? (August 2011 edition)
18
Stomach Contents: Structure - struct
author mrnate@dopefly.com (Nathan Strutz)
category
Stomach Contents: Structure - array
1
Stomach Contents: Structure - struct
value Life Events
comments http://www.dopefly.com/techblog/entry.cfm?entry=349
description
Stomach Contents: Structure - struct
value August 1st 2011 is &#34;<a href="http://www.bryantwebconsulting.com/blog/index.cfm/2011/7/20/August-1-2011-is-How-I-Started-ColdFusion-Day">How I started ColdFusion</a>&#34; day, thanks to Steve Bryant.<br/><br/>This may not be entirely fantastic, but it's my story.<br/><br/>I was working at 7x, a start-up web design and development company in Anchorage, AK. there were only a small handful of those when I started out of high school in 1997. Development at 7x was all based on Tango; the &#34;server&#34; was a mac, Tango would crash often and there was only one guy who could hack it. We started hearing about ColdFusion as a better web platform. A little positive press and the CEO was sold.<br/><br/>The following year, 7x sent 3 of us to a week of training in Seattle. The other two with me wore those customer relations, project manager and designer hats, and I was really a web producer or content engineer at the time. My business cards actually said I was the 'Sr Web Slinger'.<br/><br/>Thinking back I can't believe how naive I was at the time. I knew so little. The world was all blurry to me.<br/><br/>The training was an Allaire class put on by a guy who drove down from Vancouver, BC (as opposed to Vancouver WA where I was born). Nice guy, I think his name was Jonathan. We actually went through two classes in the week, first was a web development (in general) class, then the &#34;Cold Fusion&#34; class. I think I was the only one of the three of us from 7x who seemed to really get what was being taught in the CF class. It's that technical brain of mine I guess.<br/><br/>This was my first business trip. We toured Seattle, I visited my uncle in Kirkland, discovered GameWorks and Ikea, and made some life-long friends.<br/><br/>They put me right to work when I came back, working on shopping carts and early CMS-like apps. I sure hope none of that code is still running today.<br/><br/>So, here's to the bright future! I hope I can look back at this time and say &#34;I knew so little&#34; 13 years further down the road.<br/>
guid
Stomach Contents: Structure - struct
isPermaLink NO
value http://www.dopefly.com/techblog/entry.cfm?entry=349
link http://www.dopefly.com/techblog/entry.cfm?entry=349
pubDate Mon, 01 Aug 2011 08:00:00 GMT
title How I got started with ColdFusion
19
Stomach Contents: Structure - struct
author mrnate@dopefly.com (Nathan Strutz)
category
Stomach Contents: Structure - array
1
Stomach Contents: Structure - struct
value IDEs and tools
comments http://www.dopefly.com/techblog/entry.cfm?entry=348
description
Stomach Contents: Structure - struct
value I've been a pretty big fan of <a href="http://en.wikipedia.org/wiki/Revision_control">revision control software</a> since I started hearing about it. It's crazy that I was a developer for so many years before I heard about it at all. I guess that's what I get for keeping my nose to the ground (note to self: write about being a new developer and getting connected).<br/><br/>I thought I had skipped the entire CVS generation until I joined a very large, almost 100 year old company. Boeing loves CVS, I guess just because it's reliable and was around when they set up their servers. My CVS server is doing fine, but it's slated for a migration to a new data center, possibly facing an end-of-life soon; the guy who maintained it left the company over a year ago. Naturally, I looked into Subversion. There is an enterprise hosting group that hosts SVN over SSH, which means SSH software, managing keystores, telnetting, all kinds of things that I am <strong>not</strong> a fan of. I had it working, just barely, only through Tortoise and not Eclipse, but it was hard and I would have to help all my teammates get it to work, too. They're smart, but this setup is harder than I want to work. I would have migrated to SVN, but they made it way, way too hard.<br/><br/>The great news is that they do make Git available to me (if I know where to look [Boeing has a strict software installation policy {I can only install the software they give me &#60;recursive parentheses are fun &#171;sometimes&#187;&#62;}]).<br/><br/>I had big initial troubles with understanding the concepts of Git. Everyone who switches has the same trouble. Expect it and don't let it get you down. Git uses a lot of the same words with different meanings, and the need to branch and manage branches is much more prevalent. I found EGit (the Git plugin for Eclipse) completely confusing and stupid. The command line was out, come on, this is 2011. Even TortoiseGit was acting broken. I needed help, and lots of it.<br/><br/>Thankfully, I got to attend two different hour-long Git sessions with <a href="http://cfmumbojumbo.com">Tim Cunningham</a>, who pointed out some other resources. I watched a few other videos, the best was probably <a href="http://www.yuiblog.com/blog/2011/06/09/video-f2esummit2011-donnelly/">Jenny Donnelly's Introduction to Git</a> from Yahoo. Then I read a lot, practiced some, and finally, here I am - switching!<br/><br/>I came to terms with EGit and TortoiseGit - they both make sense now and they work great. I use the Git Bash shell now and I don't even feel weird about it. I keep <a href="http://blog.fournova.com/2011/06/git-cheat-sheet/">a cheatsheet</a> on my wall and refer to it regularly.<br/><br/>It's at this point that I can look for the real benefits, to see if this little project pays off.<br/><br/>My Git architecture is very simple and based on what Tim showed off. It's simple file shares across the network. At first it sounded awful, but in reality this works like a charm. The shares are backed up. I control file access. I just have to enforce a couple strict pushing practices and everything is gravy.<br/><br/>I think what I most like about this setup with Git is that it inverses the control (IoC! [kind of]) of my source control software. Where before I needed a server, IT hardware support and had one repository, now I make and control the repository when and where I want it. Where before committing to a subversion repo on a flash drive seemed like a half-broken hack and it would never sync to a remote server, now it's a way to win easily. It feels liberating. It's really cool. This developer's tool doesn't need a server anymore. It just needs a capable developer. It's developer's software for developers, and I love it.<br/><br/>As I've progressed with Git, I have branched and merged and pushed and rebased and stashed pulled and diffed. Some of it has been a big challenge, like putting current work aside to get out a quick fix, I had to learn to stash, then make remote branches, and so on. It's tough, but thanks to google's index of stackoverflow, I'm making great progress!<br/><br/>In summary, Git is good, you should learn about it, give it a try and have patience.<br/>
guid
Stomach Contents: Structure - struct
isPermaLink NO
value http://www.dopefly.com/techblog/entry.cfm?entry=348
link http://www.dopefly.com/techblog/entry.cfm?entry=348
pubDate Wed, 27 Jul 2011 04:12:00 GMT
title I am switching to Git
20
Stomach Contents: Structure - struct
author mrnate@dopefly.com (Nathan Strutz)
category
Stomach Contents: Structure - array
1
Stomach Contents: Structure - struct
value Software Quality
comments http://www.dopefly.com/techblog/entry.cfm?entry=347
description
Stomach Contents: Structure - struct
value This month it looks like I'm presenting <em>Holistic Program Quality and Technical Debt</em> (HPQaTD? Can someone pronounce this for me?), twice! If you haven't seen it yet, you have two chances in July.<br/><br/>Tuesday, July 12, for the Denver CFUG and my friend John Blayter. Read about it and RSVP at <a href="http://www.denvercfug.org/events/22296841/">The Denver CFUG's Meetup site</a>. It's at 5:30 PDT / MST, or 6:30 MDT in Colorado. John ran the CFUG in Phoenix for a few years, and actually was my boss at <a href="http://www.interactivesites.com/">Interactive Sites</a> until he moved to Colorado.<br/><br/>Thursday, July 14, for the Central Georgia CFUG and my friend Tim Cunningham. I have not met the user group manager Matt Abbott, but I warn you not to misspell his name. You can see the event and RSVP at <a href="http://cgcfug.groups.adobe.com/index.cfm?event=post.display&#38;postid=37182">The CGCFUG's Adobe Groups site</a>. This one is at 3:30 PDT / MST, or 6:30 ET, Tim hooked me on to this as a trade in services for his presentation on Git at the June Phoenix CFUG.<br/><br/>Both of these are remote presentations. If you want the address, you should <a href="http://twitter.com/nathanstrutz">follow me on twitter</a>, where I tend to post only the most important subjects, and links to cool speeches.<br/><br/>Thanks for the interest in my talk!<br/>
guid
Stomach Contents: Structure - struct
isPermaLink NO
value http://www.dopefly.com/techblog/entry.cfm?entry=347
link http://www.dopefly.com/techblog/entry.cfm?entry=347
pubDate Fri, 01 Jul 2011 06:25:00 GMT
title Presenting HPQaTD twice in July
language en-us
lastBuildDate Fri, 01 Jul 2011 06:06:00 GMT
link http://www.dopefly.com/techblog/
pubDate Mon, 09 Aug 2004 20:00:00 GMT
title dopefly.com: The Dopefly Tech Blog
ttl 30
version rss_2.0
webMaster mrnate@dopefly.com (Nathan Strutz)