<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
    xmlns:admin="http://webns.net/mvcb/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:content="http://purl.org/rss/1.0/modules/content/">

    <channel>
    
    <title>daniel t ott</title>
    <link>http://dtott.site/</link>
    <description></description>
    <dc:language>en</dc:language>
    <dc:rights>Copyright 2012</dc:rights>
    <dc:date>2012-01-25T16:10:23+00:00</dc:date>
    <admin:generatorAgent rdf:resource="http://expressionengine.com/" />
    

    <item>
      <title>Fun with 3D CSS Shapes</title>
      <link>http://dtott.com/thoughts/2012/01/25/fun-with-3d-css-shapes</link>
      <guid>http://dtott.com/thoughts/2012/01/25/fun-with-3d-css-shapes#When:16:10:23Z</guid>
      <description><![CDATA[<p>About a year and a half ago, I had some ideas about using 3D CSS to create nonstandard 3D shapes, but never got around to writing a post about it. However, inspired by the incredibly impressive <a href="http://acko.net/blog/making-love-to-webkit/">Acko.net redesign</a>, I decided to finally clean it up and share it with you. Here it is.</p>
<p><a href="http://x.dtott.com/3d/"><img src="http://x.dtott.com/3d/3dshapes.png" alt="3D Shapes" /></a></p>
<p>By stacking and rotating elements in 3D space, you can create some new shapes out of pure CSS. It&#8217;s not practical or useful in the least, but it is interesting. These examples work best in Safari, but they will mostly work in Chrome. Check it out: <a href="http://x.dtott.com/3d/">Pure CSS 3D Shapes</a> (remember to click and drag to rotate. Thanks to <a href="http://www.eleqtriq.com/">Dirk Weber</a>&#8216;s <a href="http://www.eleqtriq.com/2011/11/traqball-2-0/">traqball.js</a> for that little bit of magic).</p>

<h2>What the heck is going on here?</h2>

<p>We&#8217;re basically stacking or rotating many elements to create each shape.</p>
<h3>cylinder</h3>
<p>The jist of the cylinder code goes like this:</p>

<pre><code>#cylinder div{
 border: 5px solid blue;
 -webkit-border-radius: 100px;
 height: 100px;
 width: 100px;
 position: absolute;
 top: 0;
 left: 0;
}
#cylinder .slice-2{ -webkit-transform: translateZ(2px); }
#cylinder .slice-3{ -webkit-transform: translateZ(3px); }
#cylinder .slice-4{ -webkit-transform: translateZ(4px); }
#cylinder .slice-5{ -webkit-transform: translateZ(5px); }
#cylinder .slice-6{ -webkit-transform: translateZ(6px); }
#cylinder .slice-7{ -webkit-transform: translateZ(7px); }
#cylinder .slice-8{ -webkit-transform: translateZ(8px); }
#cylinder .slice-9{ -webkit-transform: translateZ(9px); }
...
</code></pre>

<p>What we&#8217;re doing is setting all of the elements to the same 2D space, and then moving them along the Z-axis to create our cylinder.</p>

<h3>Sphere(s)</h3>
<p>In the sphere (and watermelon), we take a different approach:</p>
<pre><code>#sphere div{
 border-width: 1px;
 border-color:#900;
 border-style: solid;
 -webkit-border-radius: 100px;
 height: 100px;
 width: 100px;
 position: absolute;
 top: 0;
 left: 0;
 -webkit-transform-origin: center center 0;
}
.sphere .slice-0{ -webkit-transform: rotateY(0deg); }
.sphere .slice-1{ -webkit-transform: rotateY(1deg); }
.sphere .slice-2{ -webkit-transform: rotateY(2deg); }
.sphere .slice-3{ -webkit-transform: rotateY(3deg); }
.sphere .slice-4{ -webkit-transform: rotateY(4deg); }
.sphere .slice-5{ -webkit-transform: rotateY(5deg); }
.sphere .slice-6{ -webkit-transform: rotateY(6deg); }
...
</code></pre>

<p>In this case, instead of stacking elements along the Z-axis, we&#8217;re rotating them 1 degree each along the Y-axis, thus getting ourselves a nice sphere.</p>
<h2>But&#8230;why?</h2>
<p>Absolutely no reason. I haven&#8217;t thought of any practical application, and I doubt there really is any. But it was a good exercise to try to push 3D CSS to it&#8217;s limit, and it was fun. That&#8217;s reason enough, right there.</p>
<p>As a bonus, if you&#8217;re still paying attention - I present to you the pure <a href="http://x.dtott.com/3d/solar-system.html">CSS 3D solar system</a>. Please do us all a favor and open this in Safari (Chrome just isn&#8217;t up to it yet). Be warned, this is A) not to scale, and B) likely to slow down and/or crash your browser.</p>]]></description>
      <dc:subject>Front End, css,</dc:subject>
      <dc:date>2012-01-25T16:10:23+00:00</dc:date>
    </item>

    <item>
      <title>Announcing LESS CSS Toolkit</title>
      <link>http://dtott.com/thoughts/2011/12/06/announcing-less-css-toolkit</link>
      <guid>http://dtott.com/thoughts/2011/12/06/announcing-less-css-toolkit#When:21:31:15Z</guid>
      <description><![CDATA[<p>I've recently starting developing using LESS CSS (<a href="http://lesscss.org">lesscss.org</a>), and quickly decided that I would benefit from a toolkit containing mixins that I would use over and over, such as border-radius or box-shadow.</p>
<p>Enter <a href="https://github.com/danieltott/Less-CSS-Toolkit" target="_blank">LESS CSS Toolkit</a>. You can import this file at the beginning of your LESS project, and then have access to the following mixins:</p>
<h2>What you get:</h2>

<ul>
<li><a href="#lessAnimation">Animation</a></li>
<li><a href="#lessBackground">Background Properties</a></li>
<li><a href="#lessBorderImage">Border Image</a></li>
<li><a href="#lessBorderRadius">Border Radius</a></li>
<li><a href="#lessBoxShadow">Box Shadow</a></li>
<li><a href="#lessBoxSizing">Box Sizing</a></li>
<li><a href="#lessColumns">CSS Columns</a></li>
<li><a href="#lessEasyclear">Easy Clear</a></li>
<li><a href="#lessFlexbox">FlexBox Properties</a></li>
<li><a href="#lessGradient">Gradient</a></li>
<li><a href="#lessTransform">Transform Properties</a></li>
<li><a href="#lessTransitions">CSS Transitions</a></li>
</ul>


<h3 id="lessAnimation">Animation</h3>
<p><code>.animation(@name, @duration, @iteration-count, @timing)</code></p>
<h4>Usage:</h4>
<pre><code>.myElement{ .animation(myAnimationName, .5s, 1, ease-in-out); }</code></pre>
<p>Will result in</p>
<pre><code>.myElement{
  -moz-animation-name: myAnimationName;
  -moz-animation-duration: 0.5s;
  -moz-animation-iteration-count: 1;
  -moz-animation-timing-function: ease-in-out;
  -webkit-animation-name: myAnimationName;
  -webkit-animation-duration: 0.5s;
  -webkit-animation-iteration-count: 1;
  -webkit-animation-timing-function: ease-in-out;
  -ms-animation-name: myAnimationName;
  -ms-animation-duration: 0.5s;
  -ms-animation-iteration-count: 1;
  -ms-animation-timing-function: ease-in-out;
  -o-animation-name: myAnimationName;
  -o-animation-duration: 0.5s;
  -o-animation-iteration-count: 1;
  -o-animation-timing-function: ease-in-out;
  animation-name: myAnimationName;
  animation-duration: 0.5s;
  animation-iteration-count: 1;
  animation-timing-function: ease-in-out;
}
</pre></code>
<p><a href="#entry">back to top</a></p>
<h3 id="lessBackground">Background Properties</h3>
<p><code>.background-clip(@clip)</code>, <code>.background-origin(@origin)</code> and <code>.background-size(@size)</code></p>

<h4>Usage:</h4>
<pre><code>.myElement{ .background-clip(padding-box); .background-origin(border-box) .background-size(250px 150px);</code></pre>
<p>Will result in</p>
<pre><code>.myElement{
    -moz-background-clip: padding-box;
    -webkit-background-clip: padding-box;
    background-clip: padding-box;

    -moz-origin-size: border-box;
     -o-origin-size: border-box;
     -webkit-origin-size: border-box;
     origin-size: border-box;

    -moz-background-size 250px 150px;
     -o-background-size: 250px 150px;
     -webkit-background-size: 250px 150px;
     background-size: 250px 150px;
}
</code></pre>

<p><a href="#entry">back to top</a></p>
<h3 id="lessBorderImage">Border Image</h3>
<p><code>.border-image(@img, @number, @repeat: stretch)</code></p>
<h4>Usage:</h4>
<pre><code>.myElement{ .border-image(url(img.gif), 25 25 25 25, round round); }</code></pre>
<p>Will result in:</p>
<pre><code>.myElement{
 -moz-border-image: url(img.gif), 25 25 25 25, round round;
    -webkit-border-image: url(img.gif), 25 25 25 25, round round;
    -ms-border-image: url(img.gif), 25 25 25 25, round round;
    -o-border-image: url(img.gif), 25 25 25 25, round round;
    border-image: url(img.gif), 25 25 25 25, round round;
}
</code></pre>

<p><a href="#entry">back to top</a></p>
<h3 id="lessBorderRadius">Border Radius</h3>
<p><code>.border-radius(@radius)</code></p>
<h4>Usage:</h4>
<pre><code>.myElement{ .border-radius(5px); }</code></pre>
<p>Will result in:</p>
<pre><code>.myElement{
 -moz-border-radius: 5px;
    -webkit-border-radius: 5px;
    -o-border-radius: 5px;
    border-radius: 5px;
}
</code></pre>

<p><a href="#entry">back to top</a></p>
<h3 id="lessBoxShadow">Box Shadow</h3>
<p><code>.box-shadow(@shadow)</code></p>
<h4>Usage:</h4>
<pre><code>.myElement{ .box-shadow(3px 3px 2px rgba(0,0,0,.3)); }</code></pre>
<p>Will result in:</p>
<pre><code>.myElement{
    -webkit-box-shadow: 3px 3px 2px rgba(0,0,0,.3);
    -moz-box-shadow: 3px 3px 2px rgba(0,0,0,.3);
    box-shadow: 3px 3px 2px rgba(0,0,0,.3);
}
</code></pre>

<p><a href="#entry">back to top</a></p>
<h3 id="lessBoxSizing">Box Sizing</h3>
<p><code>.box-sizing(@sizing)</code></p>
<h4>Usage:</h4>
<pre><code>.myElement{ .box-sizing(border-box); }</code></pre>
<p>Will result in:</p>
<pre><code>.myElement{
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
}
</code></pre>

<p><a href="#entry">back to top</a></p>
<h3 id="lessColumns">CSS Columns</h3>
<p><code>.columns(@columnValue, @gap: normal, @rule: none)</code></p>
<h4>Usage:</h4>
<pre><code>.myElement{ .columns(3); }</code></pre>
<p>Will result in:</p>
<pre><code>.myElement{
 -moz-columns: 3;
    -moz-column-gap: normal;
    -moz-column-rule: none;
    
    -webkit-columns: 3;
    -webkit-column-gap: normal;
    -webkit-column-rule: none;
    
    columns: 3;
    column-gap: normal;
    column-rule: none;
}
</code></pre>

<p><a href="#entry">back to top</a></p>
<h3 id="lessEasyclear">Easy Clear</h3>
<p><code>.easyclear()</code></p>
<p>Applies an updated easy clear fix to the :after psuedo-element (for times when <code>overflow:auto</code> isn't an option)</p>
<h4>Usage:</h4>
<pre><code>.myElement{ .easyclear; }</code></pre>
<p>Will result in:</p>
<pre><code>
.myElement:after{
 visibility: hidden; display: block; font-size: 0; content: " "; clear: both; height: 0;
}
</code></pre>

<p><a href="#entry">back to top</a></p>
<h3 id="lessFlexbox">FlexBox Properties</h3>
<p><code>.flexbox(@orient: horizontal, @pack: start, @align: stretch, @direction: normal)</code></p>
<p><code>.box-flex(@flex: 1)</code></p>
<h4>Usage:</h4>
<pre>
<code>.myElement{ .flexbox; }</code>
<code>.myElement div{ .box-flex; }</code>
</pre>
<p>Will result in:</p>
<pre><code>.myElement{
    display: -webkit-box;
    -webkit-box-orient: horizontal;
    -webkit-box-pack: start;
    -webkit-box-align: stretch;
    -webkit-box-direction: normal;
    
    display: -moz-box;
    -moz-box-orient: horizontal;
    -moz-box-pack: start;
    -moz-box-align: stretch;
    -moz-box-direction: normal;

    display: -ms-box;
    -ms-box-orient: horizontal;
    -ms-box-pack: start;
    -ms-box-align: stretch;
    -ms-box-direction: normal;
    
    display: -o-box;
    -o-box-orient: horizontal;
    -o-box-pack: start;
    -o-box-align: stretch;
    -o-box-direction: normal;
    
    display: box;
    box-orient: horizontal;
    box-pack: start;
    box-align: stretch;
    box-direction: normal;
}
.myElement div{
    -moz-box-flex: 1;
    -webkit-box-flex: 1;
    -ms-flex: 1;
    -o-flex: 1;
    box-flex: 1;
}
</code></pre>

<p><a href="#entry">back to top</a></p>
<h3 id="lessGradient">Gradient</h3>
<p><code>.gradient(@startcolor, @stopcolor, @startpoint: center top, @endpoint: center bottom)</code></p>
<p>This creates a simple, two-color gradient. It defaults to top-to-bottom.</p>
<h4>Usage:</h4>
<pre><code>.myElement{ .gradient(#000, #fff); }</code></pre>
<p>Will result in:</p>
<pre><code>.myElement{
    background: -webkit-gradient(linear, center top, center bottom, color-stop(0, #000), color-stop(0.5, #fff));
    background: -webkit-linear-gradient(center top , #000, #fff);
    background: -o-linear-gradient(center top , #000, #fff);
    background: -moz-linear-gradient(center top , #000, #fff);
    background: linear-gradient(center top , #000, #fff);
}
</code></pre>

<p><a href="#entry">back to top</a></p>
<h3 id="lessTransform">Transform Properties</h3>
<p><code>.transform(@transform)</code></p>
<p><code>.transform-origin(@origin)</code></p>
<h4>Usage:</h4>
<pre><code>.myElement{ .transform(rotate(45deg)); .transform-origin(center center) }</code></pre>
<p>Will result in:</p>
<pre><code>.myElement{
 -moz-transform: rotate(45deg);
    -webkit-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
    transform: rotate(45deg);

    -moz-transform-origin: center center;
    -webkit-transform-origin: center center;
    -ms-transform-origin: center center;
    transform-origin: center center;
}
</code></pre>

<p><a href="#entry">back to top</a></p>
<h3 id="lessTransitions">CSS Transitions</h3>
<p><code>.transition(@transition)</code></p>
<h4>Usage:</h4>
<pre><code>.myElement{ .transition(all ease-out .5s); }</code></pre>
<p>Will result in:</p>
<pre><code>.myElement{
 -webkit-transition: all ease-out .5s;
    -moz-transition: all ease-out .5s;
    -o-transition: all ease-out .5s;
    -ms-transition: all ease-out .5s;
    transition: all ease-out .5s;
}
</code></pre>

<h2>That's all for now</h2>
<p>This is a work in progress, so keep track of the project on github as I'll probably be adding to it down the line. Any suggestions are always welcome.</p>]]></description>
      <dc:subject>Front End, css,</dc:subject>
      <dc:date>2011-12-06T21:31:15+00:00</dc:date>
    </item>

    <item>
      <title>CSS3 PIE &#45; It Works, Use It.</title>
      <link>http://dtott.com/thoughts/2011/03/15/css3-pie-it-works-use-it</link>
      <guid>http://dtott.com/thoughts/2011/03/15/css3-pie-it-works-use-it#When:14:42:51Z</guid>
      <description><![CDATA[<p>We all have various tools in our box to deal with the constant headache that is Internet Explorer. Browser hacks, conditional comments, filters, pounding our heads against the wall, etc (wait, is it possible that&#8217;s where the headaches come from? I&#8217;ll look into it and get back to you).</p>
<p>This situation gets even worse when one wants to use some of the fantastic techniques available to us in CSS3, like border radius, drop shadows, and gradients. In the past, we had to use images for all of these design elements, but now it&#8217;s possible to have a fancy, shiny button that uses only a <code>&lt;button&gt;</code> element and some css. Well, possible except in IE. Enter <a href="http://css3pie.com">CSS3 PIE</a>.</p>
<p>CSS3 PIE allows us to use these new shinies without reservation by inserting VML elements into the page on the fly that mimic the styles we&#8217;re going for, and all it takes for us is  to simply include some extra lines in our IE stylesheets. That&#8217;s it. It even takes care of transparent PNG support for EI6.</p>

<p>The best part of CSS3 PIE is that, since it&#8217;s loaded through the proprietary CSS <code>behavior:</code> property, it is active over all parts of your site, even elements added to the DOM later through javascript. You don&#8217;t need to baby it through AJAX events, or really do anything at all except load an IE stylesheet.</p>

<p>I could go over examples, but they&#8217;re all on the <a href="http://css3pie.com/documentation/">online documentation</a>, so check it out for yourself, and have some PIE!</p>

<p>&nbsp;</p>]]></description>
      <dc:subject>Front End, css hack, css, ie6,</dc:subject>
      <dc:date>2011-03-15T14:42:51+00:00</dc:date>
    </item>

    <item>
      <title>CSS/Javascript Word Clock</title>
      <link>http://dtott.com/thoughts/2010/02/26/css-javascript-word-clock</link>
      <guid>http://dtott.com/thoughts/2010/02/26/css-javascript-word-clock#When:16:09:43Z</guid>
      <description><![CDATA[<img src="/images/uploads/clock2.png" class="insetRight"  alt="CSS Clock"  />
<p>A little experiment I built: <a href="http://x.dtott.com/clock/">a word clock</a> using CSS3 transforms and a little Javascript to run the actual clock. Useful? Maybe not. Fun? Definitely.</p>
<p>The code behind it is fairly straight-forward. Let's take a peak:</p>
<h2>CSS</h2>
<p>The first thing we need to do is set a base set of styles for each arm of the clock.</p>
<pre><code>
li{ 
    position: absolute;  width: 150px;
    text-transform: lowercase; 
    -webkit-transform-origin: 0 center;
    -moz-transform-origin: 0 center;
    color: rgba(255,255,255,.1);
    position: absolute; left: 0; top: 0;
}
</code></pre>
<p>This is basically saying for each arm, position it at the top of the clock body, and then rotate around left side, so that we have uniform rotations.</p>
<p>Then, for each arm, we set the actual rotation. Here is the HTML for the "hour" arms:</p>
<pre><code>
&lt;ol id="hours"&gt;
        &lt;li&gt;&lt;span&gt;One&lt;/span&gt;&lt;/li&gt;
        &lt;li&gt;&lt;span&gt;Two&lt;/span&gt;&lt;/li&gt;
        &lt;li&gt;&lt;span&gt;Three&lt;/span&gt;&lt;/li&gt;
        &lt;li&gt;&lt;span&gt;Four&lt;/span&gt;&lt;/li&gt;
        &lt;li&gt;&lt;span&gt;Five&lt;/span&gt;&lt;/li&gt;
        &lt;li&gt;&lt;span&gt;Six&lt;/span&gt;&lt;/li&gt;
        &lt;li&gt;&lt;span&gt;Seven&lt;/span&gt;&lt;/li&gt;
        &lt;li&gt;&lt;span&gt;Eight&lt;/span&gt;&lt;/li&gt;
        &lt;li&gt;&lt;span&gt;Nine&lt;/span&gt;&lt;/li&gt;
        &lt;li&gt;&lt;span&gt;Ten&lt;/span&gt;&lt;/li&gt;
        &lt;li&gt;&lt;span&gt;Eleven&lt;/span&gt;&lt;/li&gt;
        &lt;li&gt;&lt;span&gt;Twelve&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
</code></pre>
<p>And, the corresponding CSS:</p>
<pre><code>
#hours > li{ padding: 0 0 0 80px; }
#hours > li:nth-child(1){ -webkit-transform: rotate(-60deg); -moz-transform: rotate(-60deg); }
#hours > li:nth-child(2){ -webkit-transform: rotate(-30deg); -moz-transform: rotate(-30deg); }
#hours > li:nth-child(3){ -webkit-transform: rotate(0deg); -moz-transform: rotate(0deg); }
#hours > li:nth-child(4){ -webkit-transform: rotate(30deg); -moz-transform: rotate(30deg); }
#hours > li:nth-child(5){ -webkit-transform: rotate(60deg); -moz-transform: rotate(60deg); }
#hours > li:nth-child(6){ -webkit-transform: rotate(90deg); -moz-transform: rotate(90deg); }
#hours > li:nth-child(7){ -webkit-transform: rotate(120deg); -moz-transform: rotate(120deg); }
#hours > li:nth-child(8){ -webkit-transform: rotate(150deg); -moz-transform: rotate(150deg); }
#hours > li:nth-child(9){ -webkit-transform: rotate(180deg); -moz-transform: rotate(180deg); }
#hours > li:nth-child(10){ -webkit-transform: rotate(210deg); -moz-transform: rotate(210deg); }
#hours > li:nth-child(11){ -webkit-transform: rotate(240deg); -moz-transform: rotate(240deg); }
#hours > li:nth-child(12){ -webkit-transform: rotate(270deg); -moz-transform: rotate(270deg); }
</code></pre>
<p>The first line sets the padding, so that each hour arm begins 80px from the center. The rest set up the individual rotations for each arm, at 30 degrees each. The minute and second hands have more padding, and rotate 6 degrees for each arm. The rest of the CSS in the file is used to style the clock, and to show/hide the extra text.</p>

<h2>Javascript</h2>
<p>All we need to do for the javascript is create a function that sets class="active" on each arm of the current time. So, at 12:45 and 20 seconds, the 12 hour arm, the 45 minute arm, and the 20 second arm have class="active", and the rest are normal. Then we simply set an interval to run every second.</p>

<pre><code>
$(function(){
        var hours = $("#hours"), minutes = $("#minutes"), seconds = $("#seconds");
        
        //these are default grabs so that the first time it runs, it doesn't throw an error
        //after that, we use them to cache the current active arm for each group, so that we
        //don't have to waste time searching
        var cHour = $("html"), cMinute = $("html"), cSecond = $("html");
        
        var setCurrentTime = function(){
            //establish what the time is
            var currentTime = new Date();
            var hour = currentTime.getHours() - 1;
            if(hour == -1){ hour = 11; }
            var minute = currentTime.getMinutes() - 1;
            if(minute == -1){ minute = 59; }
            var second = currentTime.getSeconds() - 1;
            if(second == -1){ second = 59; }
            var ampm = "am";
            if(hour > 11){
                ampm = "pm";
                hour = hour-12;
            }
            if(hour == 11){
                ampm = "pm";
            }
            
            //remove the active class, and add it to the new time
            cHour.removeClass("active");
            cHour = hours.children(":eq(" + hour + ")").addClass("active");
            
            cMinute.removeClass("active");
            cMinute = minutes.children(":eq(" + minute + ")").addClass("active");
            
            cSecond.removeClass("active");
            cSecond = seconds.children(":eq(" + second + ")").addClass("active");
            
            $("body").removeClass("am").removeClass("pm").addClass(ampm);
        
        };
        //set the interval to run each second
        setInterval(setCurrentTime,1000);
    
    });

</code></pre>

<p>It's a fun little experiment that doesn't have any real value on it's own, but it's a good exercise and as good of an excuse as any to play around with CSS transforms.</p>

<p>The full CSS file can be found <a href="http://x.dtott.com/clock/clock.css">here</a>, and the javascript can be found <a href="http://x.dtott.com/clock/clock.js">here</a></p>]]></description>
      <dc:subject>css, html, javascript,</dc:subject>
      <dc:date>2010-02-26T16:09:43+00:00</dc:date>
    </item>

    <item>
      <title>A New Start</title>
      <link>http://dtott.com/thoughts/2010/02/04/a-new-start</link>
      <guid>http://dtott.com/thoughts/2010/02/04/a-new-start#When:15:30:46Z</guid>
      <description><![CDATA[<p>It&#8217;s been quiet around here for a few months. Part of that, of course, is the holidays and all the craziness that comes with them. But the main reason is that I&#8217;ve spent most of my free computer time on this: my new site.</p>

<p>It&#8217;s built on the mostly awesome but sometimes infuriating <a href="http://ExpressionEngine.com">ExpressionEngine</a>, and features some stuff that I&#8217;m fairly proud of: </p>
<ul>
<li>Brand new design, by yours truly</li>
<li>Javascript/CSS - based fluid layout (check out the <a href="http://dtott.com">home page</a> for the best example).</li>
<li>The <a href="http://dtott.com/work">portfolio section</a> features some custom javascript if you&#8217;re in a decent browser. Safari, especially, will give you a treat.</li>
<li>Some cool stuff like <a href="http://typekit.com">Typekit</a> and <a href="http://Modernizr.com">Modernizr</a> (and of course <a href="http://jquery.com">jQuery</a> and <a href="http://jqueryui.com">jQuery UI</a>)</li>
<li>Some fun HTML5 and CSS3 stuff throughout</li>
</ul>

<p>I&#8217;d like to thank <a href="http://minchdesign.com">Craig Minch</a> for periodically guiding me in the right direction, and my wife Emily for being so awesome and being my Official Design Consultant on this project.</p>

<p>I&#8217;ll most likely be posting about different aspects of the site; but please feel free to drop a comment if you&#8217;d like to know more about anything in particular.</p>

<p>Take a look around, and enjoy(:</p>]]></description>
      <dc:subject>General, Blogging,</dc:subject>
      <dc:date>2010-02-04T15:30:46+00:00</dc:date>
    </item>

    <item>
      <title>IE6 Cheatsheet</title>
      <link>http://dtott.com/thoughts/2009/09/24/ie6-cheatsheet</link>
      <guid>http://dtott.com/thoughts/2009/09/24/ie6-cheatsheet#When:14:09:05Z</guid>
      <description><![CDATA[<p>There's <a href="http://www.virtuosimedia.com/tutorials/ultimate-ie6-cheatsheet-how-to-fix-25-internet-explorer-6-bugs#javascript-detection">a great collection of IE6 fixes</a> up on <a href="http://www.virtuosimedia.com/">Virtuosi Media</a> that is worth a bookmark. If you've ever stepped into IE6 (and, chances are, you have) you know that it can be a mess. This cheatsheet is a very nice roundup of IE6 bugs in HTML/CSS/Javascript, plus a few more goodies.</p>
<p>None of this information is new at all, but it's very nice having it all in one place, and you can just have one bookmark for IE6 fixes instead of an entire folder full of them(:</p>
<p>(via <a href="http://www.wait-till-i.com/2009/09/24/ttmmhtm-chrome-for-ie-3d-for-safari-and-firefox-nes-for-js-and-accessibility-and-an-open-internet-for-all/">Chris Heilmann</a>)</p>]]></description>
      <dc:subject>Front End, ie6, linked,</dc:subject>
      <dc:date>2009-09-24T14:09:05+00:00</dc:date>
    </item>

    <item>
      <title>VanadiumJS &#45; Client&#45;side validation made easy (and pretty cool)</title>
      <link>http://dtott.com/thoughts/2009/09/18/vanadiumjs-client-side-validation-made-easy-and-pretty-cool</link>
      <guid>http://dtott.com/thoughts/2009/09/18/vanadiumjs-client-side-validation-made-easy-and-pretty-cool#When:14:52:05Z</guid>
      <description><![CDATA[<p>Client-side validation (checking for things like required fields, valid email address, etc) is always one of those sort of pain in the butt, last minute, only because i have to sort of things. It's not usually fun or flashy, it's just one of those things you have to do. Enter <a href="http://vanadiumjs.com/">VanadiumJS</a>, a new library just released by <a href="http://lambder.com/">Daniel Kwiecinski</a>. </p>
<p>Aside from having a cool-looking website, Vanadium looks like it will ease <em>all </em> of your validation woes, and make it easy and fun (you know, if you're in to that sort of thing) again. Worth checking out / bookmarking / using.</p>]]></description>
      <dc:subject>javascript, linked,</dc:subject>
      <dc:date>2009-09-18T14:52:05+00:00</dc:date>
    </item>

    <item>
      <title>More Drawing in Canvas</title>
      <link>http://dtott.com/thoughts/2009/09/10/more-drawing-in-canvas2</link>
      <guid>http://dtott.com/thoughts/2009/09/10/more-drawing-in-canvas2#When:17:00:28Z</guid>
      <description><![CDATA[<p>Speaking of HTML5 and <code>canvas</code>, <a href="http://carsonified.com/blog/dev/html-5-dev/how-to-draw-with-html-5-canvas/">Carsonified has a nice little tutorial</a> to get started with <code>canvas</code>.  This article includes a good overview of where you can use <code>canvas</code> (anywhere), which browsers support it (most of them, at least with a little help (even IE6!)), and how to get going with some easy stuff. </p>]]></description>
      <dc:subject>javascript, linked,</dc:subject>
      <dc:date>2009-09-10T17:00:28+00:00</dc:date>
    </item>

    <item>
      <title>Dive into HTML5</title>
      <link>http://dtott.com/thoughts/2009/09/09/dive-into-html52</link>
      <guid>http://dtott.com/thoughts/2009/09/09/dive-into-html52#When:18:50:17Z</guid>
      <description><![CDATA[<p><a href="http://diveintohtml5.org/">Dive Into HTML5</a> is a thoroughly beautiful site by <a href="http://diveintomark.org/">Mark Pilgrim</a> that houses text from his upcoming book of the same name. </p><br/><p>Aside from containing great information, it really is a pleasure to look at (check out those font stacks!). Two chapters are available right now: <a href="http://diveintohtml5.org/detect.html">Detecting HTML5 Features</a>, which is really an in-depth explanation of how <a href="http://www.modernizr.com/">Modernizr</a> works, and <a href="http://diveintohtml5.org/canvas.html">Let’s Call It A Draw(ing Surface)</a>, which contains some good stuff on the <code>canvas</code> element.</p>
<p>This is the sort of thing that makes me want to work on my redesign(:</p>]]></description>
      <dc:subject>Front End, html, linked,</dc:subject>
      <dc:date>2009-09-09T18:50:17+00:00</dc:date>
    </item>

    <item>
      <title>Firefox 3.5 &#45; CSS3 Boogaloo</title>
      <link>http://dtott.com/thoughts/2009/07/01/firefox-3.5-css3-boogaloo</link>
      <guid>http://dtott.com/thoughts/2009/07/01/firefox-3.5-css3-boogaloo#When:19:24:52Z</guid>
      <description><![CDATA[<p>As I'm sure you're aware, Firefox 3.5 was released recently. If you haven't already, I would suggest updating(:</p><br/><br/><p>A large bonus is their support for a whole slew of CSS 3 features. Their <a href="https://developer.mozilla.org/En/Firefox_3.5_for_developers">developers page for 3.5</a> serves as a great resource for checking the <code>-moz</code> specific CSS features, as well as a nice refresher on some of the more complicated CSS 3 features in general. This plus Safari 4's ongoing CSS 3 awesomeness opens plenty of doors for doing some cool stuff. With the two main (good) browsers supporting so many CSS 3 features, plus Firefox's astronomical update rate, the time to start using this stuff is now.</p>]]></description>
      <dc:subject>linked,</dc:subject>
      <dc:date>2009-07-01T19:24:52+00:00</dc:date>
    </item>

    
    </channel>
</rss>
