<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://www.tylercalderone.com/feed.xml" rel="self" type="application/atom+xml" /><link href="https://www.tylercalderone.com/" rel="alternate" type="text/html" hreflang="en" /><updated>2026-05-21T08:19:54-06:00</updated><id>https://www.tylercalderone.com/feed.xml</id><title type="html">Tyler Calderone</title><subtitle>Tyler Calderone — former Apple engineering leader, JibJab technical lead, and founder of Accent Labs Inc. Notes on product judgment, systems engineering, and company formation.</subtitle><author><name>Tyler Calderone</name></author><entry><title type="html">ActiveRecord&apos;s #where &amp;amp; SQL</title><link href="https://www.tylercalderone.com/writing/activerecord-where-sql/" rel="alternate" type="text/html" title="ActiveRecord&apos;s #where &amp;amp; SQL" /><published>2014-12-03T00:00:00-07:00</published><updated>2014-12-03T00:00:00-07:00</updated><id>https://www.tylercalderone.com/writing/activerecord-where-sql</id><content type="html" xml:base="https://www.tylercalderone.com/writing/activerecord-where-sql/"><![CDATA[<p><a href="https://github.com/rails/rails/tree/master/activerecord">ActiveRecord</a> is an
extremely powerful tool, allowing us as developers to be more productive by
writing less and doing more. Most of the time this <em>less</em> works to our
advantage, but sometimes <em>less</em> is not <em>more</em>.</p>

<!-- excerpt -->

<hr />

<p>Imagine you have the following models:</p>

<figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="k">CREATE</span> <span class="k">TABLE</span> <span class="n">books</span> <span class="p">(</span>
  <span class="n">id</span> <span class="n">BIGSERIAL</span> <span class="k">PRIMARY</span> <span class="k">KEY</span><span class="p">,</span>
  <span class="n">title</span> <span class="nb">TEXT</span><span class="p">,</span>
  <span class="n">author</span> <span class="nb">TEXT</span>
<span class="p">);</span>

<span class="k">CREATE</span> <span class="k">TABLE</span> <span class="n">chapters</span> <span class="p">(</span>
  <span class="n">id</span> <span class="n">BIGSERIAL</span> <span class="k">PRIMARY</span> <span class="k">KEY</span><span class="p">,</span>
  <span class="n">book_id</span> <span class="nb">BIGINT</span> <span class="k">REFERENCES</span> <span class="n">books</span><span class="p">(</span><span class="n">id</span><span class="p">)</span> <span class="k">NOT</span> <span class="k">NULL</span><span class="p">,</span>
  <span class="n">title</span> <span class="nb">TEXT</span><span class="p">,</span>
  <span class="n">rank</span> <span class="nb">INTEGER</span>
<span class="p">);</span></code></pre></figure>

<figure class="highlight"><pre><code class="language-ruby" data-lang="ruby"><span class="k">class</span> <span class="nc">Book</span> <span class="o">&lt;</span> <span class="no">ActiveRecord</span><span class="o">::</span><span class="no">Base</span>
  <span class="n">has_many</span> <span class="ss">:chapters</span>
<span class="k">end</span></code></pre></figure>

<figure class="highlight"><pre><code class="language-ruby" data-lang="ruby"><span class="k">class</span> <span class="nc">Chapter</span> <span class="o">&lt;</span> <span class="no">ActiveRecord</span><span class="o">::</span><span class="no">Base</span>
  <span class="n">belongs_to</span> <span class="ss">:book</span>
<span class="k">end</span></code></pre></figure>

<p>Notice that we have a <code class="language-plaintext highlighter-rouge">Book</code> model which has <em>title</em> and <em>author</em> attributes,
as well as a <code class="language-plaintext highlighter-rouge">Chapter</code> model which references a <code class="language-plaintext highlighter-rouge">Book</code> (via <em>book_id</em>) and
<em>title</em> attributes.</p>

<p>Since ActiveRecord provides easy interfaces for querying from our database, we
can quickly find all <code class="language-plaintext highlighter-rouge">Books</code> by an author, title, or containing a <code class="language-plaintext highlighter-rouge">Chapter</code>.</p>

<figure class="highlight"><pre><code class="language-ruby" data-lang="ruby"><span class="o">&gt;</span> <span class="no">Book</span><span class="p">.</span><span class="nf">where</span><span class="p">(</span><span class="ss">author: </span><span class="s2">"H. P. Lovecraft"</span><span class="p">)</span>
<span class="o">=&gt;</span> <span class="c1">#&lt;ActiveRecord::Relation [#&lt;Book id: 1, title: "Necronomicon", author: "H. P. Lovecraft"&gt;, ...]&gt;</span>

<span class="o">&gt;</span> <span class="no">Book</span><span class="p">.</span><span class="nf">find_by</span><span class="p">(</span><span class="s2">"title = 'Necronomicon'"</span><span class="p">)</span>
<span class="o">=&gt;</span> <span class="c1">#&lt;Book id: 1, title: "Necronomicon", author: "H. P. Lovecraft"&gt;</span>

<span class="o">&gt;</span> <span class="n">chapter</span> <span class="o">=</span> <span class="no">Chapter</span><span class="p">.</span><span class="nf">find_by</span><span class="p">(</span><span class="ss">title: </span><span class="s2">"The Call of Cthulhu"</span><span class="p">)</span>
<span class="o">=&gt;</span> <span class="c1">#&lt;Chapter id: 19, book_id: 1, title: "The Call of Cthulhu", rank: 19&gt;</span>
<span class="o">&gt;</span> <span class="n">chapter</span><span class="p">.</span><span class="nf">book</span>
<span class="o">=&gt;</span> <span class="c1">#&lt;Book id: 1, title: "Necronomicon", author: "H. P. Lovecraft"&gt;</span></code></pre></figure>

<p>If you were paying close attention to the above statements, you may have noticed
that two of the arguments were a hash, but one used a string. ActiveRecord
allows developers to pass a SQL string to be executed, among other things. For
the most part, passing a string into ActiveRecord's querying utilities will work
as expected…<em>for the most part</em>.</p>

<hr />

<p>Once we get into more complex queries, ActiveRecord may help us avoid problems
that we're not always weary of. Notice how both of our <code class="language-plaintext highlighter-rouge">Book</code> and <code class="language-plaintext highlighter-rouge">Chapter</code>
models have a <code class="language-plaintext highlighter-rouge">title</code> attribute, what would happen if we tried to <code class="language-plaintext highlighter-rouge">join</code> these
two tables together while querying based on <code class="language-plaintext highlighter-rouge">title</code>?</p>

<figure class="highlight"><pre><code class="language-ruby" data-lang="ruby"><span class="o">&gt;</span> <span class="no">Book</span><span class="p">.</span><span class="nf">joins</span><span class="p">(</span><span class="ss">:chapters</span><span class="p">).</span><span class="nf">find_by</span><span class="p">(</span><span class="s2">"title = 'The Call of Cthulhu'"</span><span class="p">)</span>
<span class="no">PG</span><span class="o">::</span><span class="no">AmbiguousColumn</span><span class="p">:</span> <span class="no">ERROR</span><span class="p">:</span>  <span class="n">column</span> <span class="n">reference</span> <span class="s2">"title"</span> <span class="n">is</span> <span class="n">ambiguous</span>
<span class="no">LINE</span> <span class="mi">1</span><span class="p">:</span> <span class="o">...</span><span class="n">ters</span><span class="s2">" ON "</span><span class="n">chapters</span><span class="s2">"."</span><span class="n">book_id</span><span class="s2">" = "</span><span class="n">books</span><span class="s2">"."</span><span class="nb">id</span><span class="s2">" WHERE (title = '...</span></code></pre></figure>

<p>Ah, an error! It looks like our database did not know which table's <code class="language-plaintext highlighter-rouge">title</code>
attribute we were interested in using. Now lets try the same method, but use a
hash instead.</p>

<figure class="highlight"><pre><code class="language-ruby" data-lang="ruby"><span class="o">&gt;</span> <span class="no">Book</span><span class="p">.</span><span class="nf">joins</span><span class="p">(</span><span class="ss">:chapters</span><span class="p">).</span><span class="nf">find_by</span><span class="p">(</span><span class="ss">title: </span><span class="s2">"The Call of Cthulhu"</span><span class="p">)</span>
<span class="o">=&gt;</span> <span class="kp">nil</span></code></pre></figure>

<p>Nil? Well, at least this didn't raise any exceptions. To better understand what
happened, let's take a look at the generated SQL.</p>

<figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="k">SELECT</span> <span class="nv">"books"</span><span class="p">.</span><span class="o">*</span> <span class="k">FROM</span> <span class="nv">"books"</span> <span class="k">INNER</span> <span class="k">JOIN</span> <span class="nv">"chapters"</span> <span class="k">ON</span> <span class="nv">"chapters"</span><span class="p">.</span><span class="nv">"book_id"</span> <span class="o">=</span> <span class="nv">"books"</span><span class="p">.</span><span class="nv">"id"</span> <span class="k">WHERE</span> <span class="p">(</span><span class="nv">"books"</span><span class="p">.</span><span class="nv">"title"</span> <span class="o">=</span> <span class="s1">'The Call of Cthulhu'</span><span class="p">)</span> <span class="k">LIMIT</span> <span class="mi">1</span></code></pre></figure>

<p>Near the end of the query, we see that ActiveRecord <em>automagically</em> selected our
<code class="language-plaintext highlighter-rouge">Book</code> model to be queried upon. This is very helpful of Rails, but we didn't
want to query by our <code class="language-plaintext highlighter-rouge">Books</code> title, but on our <code class="language-plaintext highlighter-rouge">Chapters</code> title. Enter nested
hashes.</p>

<figure class="highlight"><pre><code class="language-ruby" data-lang="ruby"><span class="o">&gt;</span> <span class="no">Book</span><span class="p">.</span><span class="nf">joins</span><span class="p">(</span><span class="ss">:chapters</span><span class="p">).</span><span class="nf">find_by</span><span class="p">(</span><span class="ss">chapters: </span><span class="p">{</span><span class="ss">title: </span><span class="s2">"The Call of Cthulhu"</span><span class="p">})</span>
<span class="o">=&gt;</span> <span class="c1">#&lt;Book id: 1, title: "Necronomicon", author: "H. P. Lovecraft"&gt;</span></code></pre></figure>

<p>Perfect! Now if we take a look at the generated SQL, we'll see that ActiveRecord
correctly queried by our <code class="language-plaintext highlighter-rouge">Chapters</code> table.</p>

<figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="k">SELECT</span> <span class="nv">"books"</span><span class="p">.</span><span class="o">*</span> <span class="k">FROM</span> <span class="nv">"books"</span> <span class="k">INNER</span> <span class="k">JOIN</span> <span class="nv">"chapters"</span> <span class="k">ON</span> <span class="nv">"chapters"</span><span class="p">.</span><span class="nv">"book_id"</span> <span class="o">=</span> <span class="nv">"books"</span><span class="p">.</span><span class="nv">"id"</span> <span class="k">WHERE</span> <span class="p">(</span><span class="nv">"chapters"</span><span class="p">.</span><span class="nv">"title"</span> <span class="o">=</span> <span class="s1">'The Call of Cthulhu'</span><span class="p">)</span> <span class="k">LIMIT</span> <span class="mi">1</span></code></pre></figure>

<p>Although this won't fix all problems with ActiveRecord, <em>knowing is half the
battle</em>.</p>]]></content><author><name>Tyler Calderone</name></author><summary type="html"><![CDATA[A Rails note on ActiveRecord where clauses, SQL strings, joins, and ambiguous columns.]]></summary></entry><entry><title type="html">Glass at Gold&apos;s</title><link href="https://www.tylercalderone.com/writing/glass-at-golds/" rel="alternate" type="text/html" title="Glass at Gold&apos;s" /><published>2014-01-23T00:00:00-07:00</published><updated>2014-01-23T00:00:00-07:00</updated><id>https://www.tylercalderone.com/writing/glass-at-golds</id><content type="html" xml:base="https://www.tylercalderone.com/writing/glass-at-golds/"><![CDATA[<p>I've had <a href="https://www.google.com/glass/">Google Glass</a> for a few months now, an I'm no stranger to the glaring eyes. After taking a few days for myself to get used to wearing Glass, I realized it would take me longer to get used to the reactions of others.</p>

<!-- excerpt -->

<p>My first week of wearing Glass in public, I was concerned people would label me as a Glasshole and denounce me. They did not, most people were ecstatic to see a pair in person. I've worn them around town, while shopping, and yes, <a href="https://www.theverge.com/2014/1/21/5331748/google-glass-wearing-movie-patron-questioned-for-piracy">even the movies</a>. That abruptly ended today.</p>

<p>I've been wearing my Glass to <a href="https://www.goldsgym.com/">Gold's Gym</a> since I first got it, it makes working out super simple, no more worrying about cables getting stuck in machines, or limiting your reach, as it's bundled securely on your head. When I began wearing them to Gold's, I was frequently asked about them: what they were, how they work, what they were capable of. A few times I've even let complete strangers try them on and test them. I just don't want people to be perturbed by my wearing of them. I'd like to say that a few friends were made, as they're a good conversation starter.</p>

<p>Today, a Gold's Gym employee informed me I was no longer allowed to wear Glass into their facilities. As she threatened that other members may feel uncomfortable due to the outward facing camera on Glass, I noticed she held her phone in hand, camera pointed at me, exactly what she said was not allowed. I questioned her about that, wondering if these numerous peoples taking "selfies" in the mirror, Facebooking their workouts, constantly photographing themselves an others. There are so many other people that use cameras and recoding devices at that gym, I can assure that I've been in numerous photos that I've never given consent to. Why was this emerging technology being regarded as dangerous, and when would people understand it wasn't?</p>

<p>All I could think of was how often I see entire film crews recording at that location. There are constant photos being taken, and <a href="https://www.youtube.com/results?search_query=golds%20gym">videos being filmed</a>, since this is such a well-known gym. Even more recently Arnold Schwarzenegger was at that same Gold's Gym, <a href="https://www.huffingtonpost.com/2014/01/21/arnold-schwarzenegger-reddit-ama_n_4640304.html">doing some undercover recording</a>. Yeah, sure, it's annoying (read: intimidating) when you're working out and a professional bodybuilder is being photographed for a magazine cover, but I've never seen any employee of Gold's say something to them.</p>

<p>I would expect that a place in such a technologically centered community as Venice, with <a href="https://www.google.com/maps/preview/place/Google+Los+Angeles">Google offices right around the corner</a> (which almost <a href="https://www.laweekly.com/informer/2012/05/15/confirmed-google-will-take-over-golds-gym-in-venice-plus-170000-square-feet-of-surrounding-real-estate">bought the location</a>), an a <a href="https://www.yovenice.com/2012/11/12/microsoft-is-moving-to-venice-beach/">Microsoft office</a> within "walking distance", that Gold's Gym employees and members would be much more open to these sorts of things.</p>

<p>If more people understood what Glass was capable, moreover what it isn't, then people would be more accepting of using it in public. There are numerous reasons that I <em>wouldn't</em> and <em>can't</em> record people in the gym, like:</p>

<ul>
  <li>Battery life, especially while listening to music, wouldn't last for very long</li>
  <li>The screen would be lit up, which is easily noticeable</li>
  <li>Recording time is limited to 10 seconds, unless manually overwritten</li>
  <li>Most importantly, I'm in there doing my own thing, not focusing on/staring at others</li>
</ul>

<p>I just wish that the common misconceptions about Glass could be cleared up to avert issues like this from arising in the future. Maybe even just for starters, Gold's Gym could follow their own rules and restrict filming for everybody, or let this new an expanding wearables market progress where it needs to, without this unnecessary battling.</p>

<hr />

<h3 id="update-march-2-2014">Update: March 2, 2014</h3>

<p>I was politely contacted by a manager of Gold's Gym who informed me that the employee did not have the authority, and they did not approve of the banning. I appreciate the followup from Gold's, and hope more people will open up to these emerging technologies.</p>]]></content><author><name>Tyler Calderone</name></author><summary type="html"><![CDATA[A 2014 note about wearing Google Glass at Gold's Gym and the privacy concerns it raised.]]></summary></entry><entry><title type="html">Guy-Manuel Arduino Meetup</title><link href="https://www.tylercalderone.com/writing/guy-manuel-arduino-meetup/" rel="alternate" type="text/html" title="Guy-Manuel Arduino Meetup" /><published>2013-04-26T00:00:00-06:00</published><updated>2013-04-26T00:00:00-06:00</updated><id>https://www.tylercalderone.com/writing/guy-manuel-arduino-meetup</id><content type="html" xml:base="https://www.tylercalderone.com/writing/guy-manuel-arduino-meetup/"><![CDATA[<p>This Thursday I presented my progress on my Guy-Manuel de Homem-Christo helmet, had a blast. For those of you who haven't heard of Guy-Manuel, perhaps you've heard of Daft Punk? If not, then hopefully you'll still find this post interesting.</p>

<!-- excerpt -->

<p>I purchased the base of the helmet in late 2011, but never actually got around to working on it. Finally, back in December, I found some motiviation to begin working on it. Here's the presentation I did at the monthly <a href="https://www.meetup.com/LA-Arduino/">LA Arduino Enthusiasts</a> meetup, for those of you in the area that haven't been, I highly encourage checking it out.</p>

<p>This is an active project, and I will be fully open sourcing my work. Expect my code, schematics, and circuit board designs to be on my GitHub <a href="https://github.com/Tyr0/Guy-Manuel-Helmet">here</a>.</p>

<h3 id="progress-pictures">Progress Pictures</h3>

<figure class="third">
  <a href="/images/guy-manuel-arduino-meetup/guy-manuel-full.jpg">
    <img src="/images/guy-manuel-arduino-meetup/guy-manuel-full.jpg" alt="Left side demo" />
  </a>
  <a href="/images/guy-manuel-arduino-meetup/guy-manuel-hi.jpg">
    <img src="/images/guy-manuel-arduino-meetup/guy-manuel-hi.jpg" alt="HI demo" />
  </a>
  <a href="/images/guy-manuel-arduino-meetup/guy-manuel-helmet.jpg">
    <img src="/images/guy-manuel-arduino-meetup/guy-manuel-helmet.jpg" alt="Left side inside helmet" />
  </a>
  <figcaption></figcaption>
</figure>

<h3 id="first-progress-of-lights-strobing">First Progress Of Lights Strobing</h3>

<iframe src="https://player.vimeo.com/video/64938081?title=0&amp;byline=0&amp;portrait=0" width="500" height="281" frameborder="0" webkitallowfullscreen="" mozallowfullscreen="" allowfullscreen=""></iframe>

<h3 id="volume-reactive-matrix">Volume Reactive Matrix</h3>

<iframe src="https://player.vimeo.com/video/64938080?title=0&amp;byline=0&amp;portrait=0" width="500" height="281" frameborder="0" webkitallowfullscreen="" mozallowfullscreen="" allowfullscreen=""></iframe>

<h3 id="presentation">Presentation</h3>

<iframe width="678" height="381" src="https://www.youtube.com/embed/cSRKLJ8vL0c?list=UUEYadMNDNO-kQEPwybtzmwQ" frameborder="0"> </iframe>]]></content><author><name>Tyler Calderone</name></author><summary type="html"><![CDATA[A progress update and presentation from a Guy-Manuel Arduino helmet project.]]></summary></entry><entry><title type="html">Cocos2D iPhone Programming</title><link href="https://www.tylercalderone.com/writing/cocos2d-iphone-programming/" rel="alternate" type="text/html" title="Cocos2D iPhone Programming" /><published>2009-10-13T00:00:00-06:00</published><updated>2009-10-13T00:00:00-06:00</updated><id>https://www.tylercalderone.com/writing/cocos2d-iphone-programming</id><content type="html" xml:base="https://www.tylercalderone.com/writing/cocos2d-iphone-programming/"><![CDATA[<p>So as you all may, or may not know, I have recently been working on my first iPhone game.</p>

<p>That's right, a game. Some of you may not know that games are <em>much</em> different from regular applications, in the programming aspect. I spent a lot of time researching different techniques for developing iPhone games, and the best one I found was Cocos2d, a free and open source game engine for the iPhone SDK.</p>

<!-- excerpt -->

<p><a href="/images/cocos2d-iphone-programming/cocos2d-banner.jpg">
  <img src="/images/cocos2d-iphone-programming/cocos2d-banner.jpg" alt="Cocos2D Banner" />
</a></p>

<p>Cocos2d is available for download <a href="https://cocos2d-swift.org/">here</a> (for free).</p>

<p>It comes with TONS of example applications, for reference, and knowledge. This application has a slightly different syntax from the standard iPhone SDK Objective-C, but it is very easy to understand and get used to.</p>

<p>One of the other great things about Cocos2d, is that it is easily compatible with Chipmunk, and Box2D. Although I personally haven't messed around with Box2D yet, I know that Chipmunk is a fantastic physics engine. Chipmunk was easily capable of being integrated into the game I was making, and it helped me out greatly. Chipmunk is also open source, and C based. With Chipmunk, you can create gravity, a character, separating the limbs, and giving them their own mass.</p>

<p>I really recommend that anybody looking for a great game engine, to check out Cocos2d for iPhone, and Chipmunk.</p>

<ul>
  <li><a href="https://cocos2d-swift.org/">Cocos2d For iPhone</a></li>
  <li><a href="https://chipmunk-physics.net/">Chipmunk</a></li>
  <li><a href="https://box2d.org/">Box2D</a></li>
</ul>

<p>Feel free to leave a comment, with a request (such as a tutorial) or a question!</p>]]></content><author><name>Tyler Calderone</name></author><summary type="html"><![CDATA[Notes on learning Cocos2D while building a first iPhone game.]]></summary></entry><entry><title type="html">Greatest Book I&apos;ve Ever Read</title><link href="https://www.tylercalderone.com/writing/greatest-book/" rel="alternate" type="text/html" title="Greatest Book I&apos;ve Ever Read" /><published>2009-10-12T00:00:00-06:00</published><updated>2009-10-12T00:00:00-06:00</updated><id>https://www.tylercalderone.com/writing/greatest-book</id><content type="html" xml:base="https://www.tylercalderone.com/writing/greatest-book/"><![CDATA[<p>Growing up in my time, from the early 90’s to now, I have always had a computer by my side. Computers have just been there for me, since the beginning, and I have never questioned their existence. Until now.</p>

<!-- excerpt -->

<p class="pull-right"><a href="/images/greatest-book/iwoz-cover.png">
  <img src="/images/greatest-book/iwoz-cover.png" alt="iWoz Cover" />
</a></p>

<p>iWoz is the autobiography of Steve Wozniak, the creator of what we now call the computer. The book starts off from when Steve was a little kid, and continues through to modern day (or 2006). It goes through Steve’s childhood, and how amazingly gifted he was with electronics. With his father by his side throughout his life, Steve saw through the panels of flashing lights, and punch cards we used to call computers. iWoz is the true story of how Steve Wozniak went from computer geek, to cult icon. It explains how he invented the personal computer, co-founded Apple, and had fun doing it.</p>

<p>Now usually I don’t like to read, but this was an exception. This book was simply amazing. It filled the gap I had, with every tiny little detail. I really recommend this book for all. It is a great read for young, to learn about the past, and for old, to fill in the missing details.</p>

<p>Now, I don’t want to spoil the book for anyone, so <a href="https://www.amazon.com/iWoz-Computer-Invented-Personal-Co-Founded/dp/0393330435">here’s a link</a> to get this FANTASTIC book, I truly recommend it.</p>]]></content><author><name>Tyler Calderone</name></author><summary type="html"><![CDATA[A short recommendation of Steve Wozniak's iWoz and its personal-computing history.]]></summary></entry><entry><title type="html">My First Windows 7 Impressions</title><link href="https://www.tylercalderone.com/writing/windows-7-first-impressions/" rel="alternate" type="text/html" title="My First Windows 7 Impressions" /><published>2009-10-11T00:00:00-06:00</published><updated>2009-10-11T00:00:00-06:00</updated><id>https://www.tylercalderone.com/writing/windows-7-first-impressions</id><content type="html" xml:base="https://www.tylercalderone.com/writing/windows-7-first-impressions/"><![CDATA[<p>I recently received my Windows 7 Ultimate: Signature Edition for signing up to host a Windows 7 House Party.</p>

<p>It came in a box, filled with party favors, which they called the "party pack". Inside it contained:</p>

<!-- excerpt -->

<ul>
  <li>One Windows 7 Poster</li>
  <li>One deck of Windows 7 playing cards</li>
  <li>One puzzle with a Windows 7 desktop design</li>
  <li>Four bags of streamers (Yellow, Green, Red, Blue)</li>
  <li>One bag of assorted color balloons</li>
  <li>One table top centerpiece</li>
  <li>One package of Windows 7 napkins</li>
  <li>Ten Windows 7 tote bags</li>
</ul>

<h2 id="and-most-importantly">And Most Importantly</h2>

<ul>
  <li>Two Windows 7 Discs (32-bit and 64-bit)</li>
</ul>

<figure>
  <a href="/images/windows-7-first-impressions/installing-windows.png">
    <img src="/images/windows-7-first-impressions/installing-windows.png" alt="Installing Windows" />
  </a>
  <figcaption>Installing Windows</figcaption>
</figure>

<p><strong>Immediately after opening</strong>, I wiped my hard drive, and installed a fresh install of Windows 7 Ultimate. The install took around 30 minutes, from start to finish, and it hung on “Expanding files…” at 0% for quite a while. This step was the longest, and when it finished, the installation was almost done.</p>

<p>The install process was by far the hardest part of setting up Windows 7. Normally, when you get a computer, it is filled with spam applications from the manufacture, which takes forever to take off, and really start over. With Windows 7, Microsoft really got some sense knocked into ‘em, and made Windows 7 as light and clean as possible. The moment I booted up for the first time, I fell in love with the layout. The taskbar, with it’s beautiful opacity, was laid out perfectly. They finally beat the organization and style of Apple’s dock, while keeping the Windows look.</p>

<p>Along with new features, Windows 7 brings back old, with the new Windows XP Virtualization. This feature is great, because it makes programs that were only available for Windows XP, available for Windows 7 Ultimate users. Setting up the Windows XP Virtualization was a breeze to set up, all I had to do was download two files directly from the Microsoft website, <a href="http://www.microsoft.com/windows/virtual-pc/download.aspx">here</a>.</p>

<p>All in all, Windows 7 has got to be the best operating system out there…when it’s released on October 22.</p>

<figure class="half">
  <a href="/images/windows-7-first-impressions/activation-successful.png">
    <img src="/images/windows-7-first-impressions/activation-successful.png" alt="Activation Successful" />
  </a>
  <a href="/images/windows-7-first-impressions/windows-desktop.png">
    <img src="/images/windows-7-first-impressions/windows-desktop.png" alt="Windows Desktop" />
  </a>
</figure>

<hr />

<h3 id="update-october-11-2009">Update: October 11, 2009</h3>

<p>After searching around the web a little bit more, and messing around with my computer, I realized I may have missed a few details.</p>

<p>The Taskbar - The major difference in Windows 7 from the previous versions is the taskbar. Although there is a difference in the visual, there is also a few big changes done that take time to notice.</p>

<p>First, the notification area had a total makeover. It now shows the date, as well as time, as default. The notification bubble has also gotten "smarter". When you boot into Windows for the first time, it scans all hardware built in, and connected to your computer and searches the internet for drivers. The main difference is if/when it doesn't, it tells you. AND it tells you how you can get it! It will literally give you step-by-step instructions on how to get the correct drivers for you machine.</p>

<p>Next, the taskbar also automatically groups your open windows. Now, I know that in Windows XP and Vista, grouping was a pain in the @$$, but 7 seems to solve that whole mess. Now, when you have multiple windows open, it automatically groups the windows, and makes it super easy to switch them. When your mouse hovers over the group, it displays a little image of what is in/on each of the windows.</p>]]></content><author><name>Tyler Calderone</name></author><summary type="html"><![CDATA[First impressions after installing Windows 7 Ultimate from a launch party kit.]]></summary></entry><entry><title type="html">Favorite Websites</title><link href="https://www.tylercalderone.com/writing/favorite-websites/" rel="alternate" type="text/html" title="Favorite Websites" /><published>2009-10-07T00:00:00-06:00</published><updated>2009-10-07T00:00:00-06:00</updated><id>https://www.tylercalderone.com/writing/favorite-websites</id><content type="html" xml:base="https://www.tylercalderone.com/writing/favorite-websites/"><![CDATA[<p>I figured since some of you may not know a lot about the "nerd news", and what new devices and gadgets are coming out, or which TV should I get, so I'm going to put together a list of my favorite websites.</p>

<!-- excerpt -->

<h3 id="overall-nerd-news">Overall "Nerd News"</h3>

<ul>
  <li><a href="https://www.theverge.com/">The Verge</a> - From science to gaming, The Verge has it covered</li>
  <li><a href="https://gizmodo.com/">Gizmodo</a> - Hands down best "nerd news" website</li>
  <li><a href="https://www.engadget.com/">Engadget</a> - Another great news site, mainly for gadgets and devices</li>
</ul>

<h3 id="tvs-and-other-electronics">TVs and Other Electronics</h3>

<ul>
  <li><a href="https://twitter.com/AV_Expert">@AV_Expert</a> - Nice place for good Home Theater help, like which TV looks the best, and what BluRay player has the most features</li>
</ul>

<h3 id="iphone-and-ipod-touch">iPhone and iPod Touch</h3>

<ul>
  <li><a href="https://modmyi.com/">modmyi</a> - THE PLACE for all iPhone hackers out there</li>
  <li><a href="https://www.ifans.com/forums/">iFans</a> - Where all iPod Touch users should go</li>
</ul>

<h3 id="helpful-forums">Helpful Forums</h3>

<ul>
  <li><a href="https://iphonedevsdk.com/">iPhoneDevSDK</a> - FANTASTIC iPhone SDK forum, for help with EVERYTHING Warning: There have been hackings reported through visiting this site</li>
</ul>]]></content><author><name>Tyler Calderone</name></author><summary type="html"><![CDATA[A 2009 list of favorite technology, gadget, and iPhone websites.]]></summary></entry><entry><title type="html">iInterrupt Lite out on AppStore!!</title><link href="https://www.tylercalderone.com/writing/iinterrupt-lite-on-appstore/" rel="alternate" type="text/html" title="iInterrupt Lite out on AppStore!!" /><published>2009-06-24T00:00:00-06:00</published><updated>2009-06-24T00:00:00-06:00</updated><id>https://www.tylercalderone.com/writing/iinterrupt-lite-on-appstore</id><content type="html" xml:base="https://www.tylercalderone.com/writing/iinterrupt-lite-on-appstore/"><![CDATA[<p>YAY! Finally!</p>

<p>iInterrupt Lite has finally been put up for, uh… free, on the App Store! It took a while for apple to accept this one to the App Store, I think it was because it was a free app, and Apple doesn't make any money off of it. Well, here's the link, please download it and rate it:</p>

<!-- excerpt -->

<p>http://www.tinyurl.com/iinterruptl</p>]]></content><author><name>Tyler Calderone</name></author><summary type="html"><![CDATA[A short launch note for iInterrupt Lite reaching the App Store.]]></summary></entry><entry><title type="html">iInterrupt out on AppStore!!</title><link href="https://www.tylercalderone.com/writing/iinterrupt-on-appstore/" rel="alternate" type="text/html" title="iInterrupt out on AppStore!!" /><published>2009-06-11T00:00:00-06:00</published><updated>2009-06-11T00:00:00-06:00</updated><id>https://www.tylercalderone.com/writing/iinterrupt-on-appstore</id><content type="html" xml:base="https://www.tylercalderone.com/writing/iinterrupt-on-appstore/"><![CDATA[<p>My first app, iInterrupt, has finally made it out to the AppStore (first try!).</p>

<!-- excerpt -->

<p>Go buy it and rate it (5 Stars). Spread the word! Tweet it, Facebook it, forward it, anything you can do! Just let the world know about it!!!</p>

<p>http://tinyurl.com/iinterrupt</p>]]></content><author><name>Tyler Calderone</name></author><summary type="html"><![CDATA[A short launch note for iInterrupt reaching the App Store.]]></summary></entry><entry><title type="html">Started my website!</title><link href="https://www.tylercalderone.com/writing/started-website/" rel="alternate" type="text/html" title="Started my website!" /><published>2009-06-07T00:00:00-06:00</published><updated>2009-06-07T00:00:00-06:00</updated><id>https://www.tylercalderone.com/writing/started-website</id><content type="html" xml:base="https://www.tylercalderone.com/writing/started-website/"><![CDATA[<p>I just started this website, and I will continue to work on it until it is finished.</p>

<!-- excerpt -->

<p>This website was primarily made because when I uploaded my first application to Apple (iInterrupt), it asked for a website. Now that I have made it, I will keep it and update it often. With technology and all, changing rapidly, I will be posting updates as soon as I find them, to inform others of my knowledge.</p>

<p>For now, be prepared to view changes around this site. I will post an update when finished.</p>]]></content><author><name>Tyler Calderone</name></author><summary type="html"><![CDATA[A first note announcing the original Tyler Calderone website and why it existed.]]></summary></entry></feed>