<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-13508012</id><updated>2011-07-07T20:40:12.649-04:00</updated><category term='obama'/><category term='reading'/><category term='economics'/><category term='funny'/><category term='law'/><category term='rights'/><category term='politics'/><category term='bailout'/><category term='social'/><category term='advertising'/><category term='relationships'/><category term='philosophy'/><category term='review'/><category term='writing'/><category term='life'/><category term='nanowrimo'/><title type='text'>Ranting and Raving for the Better</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>71</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-13508012.post-5693345597925558406</id><published>2010-02-28T17:58:00.001-05:00</published><updated>2010-02-28T17:58:22.786-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='law'/><category scheme='http://www.blogger.com/atom/ns#' term='life'/><category scheme='http://www.blogger.com/atom/ns#' term='rights'/><category scheme='http://www.blogger.com/atom/ns#' term='philosophy'/><title type='text'>We Are Responsible For Life</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: verdana, arial, helvetica, sans-serif; font-size: small;"&gt;Man created god. Life created man. The universe created life. We are endowed by these rights because they foster the best life, and we are responsible for self policing the universe in terms of these rights. As creations of life, we are responsible for the fostering of our, other, and new life. Our rights come then from an understanding, which we have evolved the intelligence to obtain, of how best to maintain, continue, and improve all live among this and all worlds.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-5693345597925558406?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/5693345597925558406/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=5693345597925558406' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/5693345597925558406'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/5693345597925558406'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2010/02/we-are-responsible-for-life.html' title='We Are Responsible For Life'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-916465309011286847</id><published>2009-03-28T11:35:00.002-04:00</published><updated>2009-03-29T00:16:54.223-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='economics'/><category scheme='http://www.blogger.com/atom/ns#' term='obama'/><category scheme='http://www.blogger.com/atom/ns#' term='bailout'/><category scheme='http://www.blogger.com/atom/ns#' term='politics'/><title type='text'>I am not a Party Goer</title><content type='html'>I have never been a party person. I can't say anything original about why the party system ruins our politics. No, the two-party system does not ruin it: the &lt;i&gt;party&lt;/i&gt; system ruins it. They may be a natural growth of the connections and deals politicians will make to push their agendas. I can't associate with any party. I want to point out that I hate writing this, because while this may be a "rant" blog, I do intend to mean something with what I say and this is very hard to write without sounding like regurgitated echos.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I'm scrambling to describe my thoughts about this. I don't like not being able to pour the words into the &amp;lt;textarea&amp;gt; and just keep rambling on with at least some feeling that I'm keeping coherent thoughts.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I associate mostly with democrats, but its a deal made good by volume more than quality. I see benefits in ideals of democrats, republicans, libertarians, socialists, communists, etc. I suppose conservatives are the only group I can't find a shred of understanding with. Is &lt;i&gt;The Right&lt;/i&gt; fighting the bailouts and government expansion in a weak attempt to push themselves back in power? I don't know. I do know that I see some merit. I want to socialize a lot of services, but I don't want to support the failing banks. The problem is not just the usual situation of no one party doing everything I like, but not even doing the few things I like for the reasons that I would. I don't want to let the banks and insurance companies fail because it is capitalism at its finest. I don't believe in loans and insurance and want to see them abolished, and if the free market has done that, so be it. If it won't, I support making them illegal and that is content for another post.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Obama has really disappointed me, sort of. I expected it, so i guess its not a disappointed to get the same frustrations you already expected. I did think that the support of Lessig would mean he gives a fairer chance to free software and the end of copyright chaos, but his RIAA friends are just going to run wild now. More later.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Bachmann is a crazy lunatic, but she's right about one thing: Orderly Revolution is good every now and then. Is it a revolution if you do it legally, within the powers of democracy?&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-916465309011286847?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/916465309011286847/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=916465309011286847' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/916465309011286847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/916465309011286847'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2009/03/i-am-not-party-goer.html' title='I am not a Party Goer'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-4165194177181129332</id><published>2009-03-26T18:43:00.003-04:00</published><updated>2009-03-26T20:12:33.663-04:00</updated><title type='text'>The Return of the Rant</title><content type='html'>There is too much going on in the world not to rant anymore, and this is the place for me to do it. Will more come of this or do I simply need to vent? I neither nor or care, because at this exact moment there is simply the need to rant.&lt;br /&gt;&lt;br /&gt;I don't know if the bailout was the savior or damnation of our society and I'm just going to come out and say that I don't care either way. The issues at hand are too complicated for any one or few people to really understand, and beyond the few people it is too complicated to coordinate them to do anything about it. The companies are not too big to fail, but any sufficiently large group of people is. What is being "too big to fail"? If you're one person and you loose your job or small business, you look for another job. Simple. A small company might look for acquisition and a non-profit for donations. International corporations and giant governments aren't too big to fail, we just have no idea how to go about it. They are giant complex beasts.&lt;br /&gt;&lt;br /&gt;If our government "crumbled", what would happen?&lt;br /&gt;&lt;br /&gt;The military would not go home, and without the budget and resource pipelines they would follow existing or spontaneous plans to secure the means to keep the armed forces active, because that is their job. Even if the people controlling them lost power, they can't just disband.&lt;br /&gt;&lt;br /&gt;The post office operates under its own revenue, some years being more profitable than others. Without a federal government telling it what to do, there is no reason they would stop doing what they already do.&lt;br /&gt;&lt;br /&gt;Regulatory bodies like the FCC and FDA would continue to exist, striking deals with the corporations they regulate to pay fees that keep their doors open, in exchange for an authority to rule in cases against their competitors. This is no different than industry groups that corporations form and use to make deals with one another for even playing fields. Well, even for the competitors you let in...&lt;br /&gt;&lt;br /&gt;The same is largely true for corporations. People are going to try to keep doing what they do every day and the people "in charge" are going to be proven largely irrelevant, until there are disputes and we put new people "in charge" and forget all about everything and pretend like they have real authority again. In the end, the greatest authority is habit.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-4165194177181129332?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/4165194177181129332/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=4165194177181129332' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/4165194177181129332'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/4165194177181129332'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2009/03/return-of-rant.html' title='The Return of the Rant'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-4050094929739139079</id><published>2008-12-07T17:44:00.003-05:00</published><updated>2008-12-07T18:12:20.778-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='funny'/><category scheme='http://www.blogger.com/atom/ns#' term='review'/><category scheme='http://www.blogger.com/atom/ns#' term='reading'/><title type='text'>Why To Read "Help Is On The Way" Volume One</title><content type='html'>&lt;span class="Apple-style-span" style="font-style: italic;"&gt;Oh, the time it has been since I've posted here! This is not my lately more-used blog, Raving Techno Rant. This is for non-software, non-technical postings. This may even become a more usual thing! Imagine, the scandal.&lt;/span&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Scott Meyer is endorsed by Scott Adams. Scott Adams is both smart and funny. Scott Meyer is both funny and probably smart. Therefor, you should read &lt;span class="Apple-style-span" style="font-style: italic;"&gt;Help is on the Way&lt;/span&gt;. It is an excellent collection of strips from his &lt;span class="Apple-style-span" style="font-style: italic;"&gt;Basic Instructions&lt;/span&gt; web comic. I found myself chortling often.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Read it. Laugh. Enjoy.&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;iframe src="http://rcm.amazon.com/e/cm?t=ravtecran-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=as1&amp;amp;asins=1593079958&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;iframe src="http://rcm.amazon.com/e/cm?t=ravtecran-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=as1&amp;amp;asins=0740777351&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;iframe src="http://rcm.amazon.com/e/cm?t=ravtecran-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=as1&amp;amp;asins=0740774638&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-4050094929739139079?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/4050094929739139079/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=4050094929739139079' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/4050094929739139079'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/4050094929739139079'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2008/12/why-to-read-help-is-on-way-volume-one.html' title='Why To Read &quot;Help Is On The Way&quot; Volume One'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-7193855972388586651</id><published>2008-10-12T21:56:00.003-04:00</published><updated>2008-10-12T22:04:58.972-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='nanowrimo'/><category scheme='http://www.blogger.com/atom/ns#' term='writing'/><title type='text'>Resurrection</title><content type='html'>So I'm blogging again. See me blog? Here I am blogging. Blog blog blog.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I've been really neglecting my &lt;a href="http://techblog.ironfroggy.com/"&gt;code blog&lt;/a&gt; and ignored this one for much longer. How to change that has been something that hits my mind often, and then I forget about it completely. This weekend I decided to take part in this year, and it seemed like a fitting event to renew my blogging efforts on. This is an annual event of thousands of writers, potential writers, and wannabe writers trying to write a novel in one month. The goal is 50,000 words. You don't need to submit your month-end work as a final revision to a publisher or even have to hit the 50,000 words at all. The point is the effort and the experience, and I need both.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If anyone else is paricipating, I'd like to have some writing buddies. Check out my &lt;a href="http://www.nanowrimo.org/eng/user/300386"&gt;author profile&lt;/a&gt; if you're interested.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-7193855972388586651?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/7193855972388586651/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=7193855972388586651' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/7193855972388586651'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/7193855972388586651'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2008/10/resurrection.html' title='Resurrection'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-7692254876870520083</id><published>2008-07-04T13:05:00.001-04:00</published><updated>2008-07-04T13:12:56.257-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='politics'/><title type='text'>Why Flip-Flopping Politicians Are Great</title><content type='html'>The term "flip-flop" is a political black mark, but one that is probably said (truthfully) about every single politician, at some point in their career. Still, we act surprised and hurt when one of our representatives changes their mind. Do you know what we get when our politicians don't flip-flop? We get people in power like George Walker Bush, our current Commander in Stubborness.&lt;br /&gt;&lt;br /&gt;As a nation (or as a world) we need to learn to embrace the flip-flop. This is the great ability human beings, including politicians, need to have. This is the ability to change your mind. Be it because the facts changed, the information you had at hand changed, or because &lt;span style="font-style:italic;"&gt;political pressure demands it&lt;/span&gt;. Now, I emphasized that last part. Why? Because flip-flopping for political reasons is the &lt;span style="font-style:italic;"&gt;best&lt;/span&gt; reason to do it! As our representative, these politicians are supposed to stand for what their constituents want them to support. Swaying for political pressure is a sign that the politician knows their place in the machine: our voice. They aren't supposed to have hard-wired positions they won't back down on.&lt;br /&gt;&lt;br /&gt;Embrace the candidate who changes their mind for the most votes, because that is the voter-pleaser. Bush doesn't care about pleasing the voters, and that fact is his biggest mistake. The lack of being able to change his mind when the people do is what continues to distance him from even those who put him where he is today.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-7692254876870520083?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/7692254876870520083/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=7692254876870520083' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/7692254876870520083'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/7692254876870520083'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2008/07/why-flip-flopping-politicians-are-great.html' title='Why Flip-Flopping Politicians Are Great'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-8039015988491397084</id><published>2008-02-18T23:42:00.001-05:00</published><updated>2008-02-18T23:42:39.467-05:00</updated><title type='text'>Some People Say Its Good For Your Hair</title><content type='html'>&lt;object width="510" height="295"&gt;&lt;param name="movie" value="http://www.hulu.com/embed/Dp9cEx2bv2I1PCPavMTESw"&gt;&lt;/param&gt;&lt;param name="flashvars" value="st=1091&amp;et=1101"&gt;&lt;/param&gt;&lt;embed src="http://www.hulu.com/embed/Dp9cEx2bv2I1PCPavMTESw" type="application/x-shockwave-flash" flashvars="st=1091&amp;et=1101" width="510" height="295"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-8039015988491397084?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/8039015988491397084/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=8039015988491397084' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/8039015988491397084'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/8039015988491397084'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2008/02/some-people-say-its-good-for-your-hair.html' title='Some People Say Its Good For Your Hair'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-1364936407964969712</id><published>2008-02-13T23:16:00.000-05:00</published><updated>2008-02-13T23:17:13.422-05:00</updated><title type='text'>Neil Gaiman To Release Free Novel | How To Split An Atom</title><content type='html'>&lt;a href="http://howtosplitanatom.com/news/neil-gaiman-to-release-free-novel/"&gt;Neil Gaiman To Release Free Novel | How To Split An Atom&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;One of my favorite author's makes moves are new release models. I really hope more big names can make a difference in changing the publication business for the better.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-1364936407964969712?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/1364936407964969712/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=1364936407964969712' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/1364936407964969712'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/1364936407964969712'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2008/02/neil-gaiman-to-release-free-novel-how.html' title='Neil Gaiman To Release Free Novel | How To Split An Atom'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-2416386837806913885</id><published>2008-02-07T09:58:00.001-05:00</published><updated>2008-02-07T09:59:49.446-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='advertising'/><title type='text'>Why I Need To Stock More Alcohol</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.ilovebacon.com/020708/vodka.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px;" src="http://www.ilovebacon.com/020708/vodka.jpg" alt="" border="0" /&gt;&lt;/a&gt;Why can't we make such honest advertising in the US? It doesn't do us any good. Maybe all those women on their knees after a dozen shots had no idea what would happen, because the advertising just told them it would be an innocent, conversation filled party. Truth is powerful!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-2416386837806913885?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/2416386837806913885/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=2416386837806913885' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/2416386837806913885'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/2416386837806913885'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2008/02/why-i-need-to-stock-more-alcohol.html' title='Why I Need To Stock More Alcohol'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-9208940795633967597</id><published>2008-01-26T14:22:00.000-05:00</published><updated>2008-01-26T15:06:35.502-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='relationships'/><title type='text'>Why My Weekend Is Lonely and Happy</title><content type='html'>This weekend is long and lonely and happy.&lt;br /&gt;&lt;br /&gt;My weekend started very early on Friday night, getting Caelan dressed and in the car to drive his mother to the airport in Greensboro, an hour and a half away. Amazing what and when you'll drive for $25 dollar tickets. Heather has never flown before, so I did my best to keep her feeling confident and walked her all the way to the security check. Everything was in order, I took the baby home and went to sleep for the first time that night, and woke up with panicked messages from Brandy, who didn't know why &lt;span style="font-style: italic;"&gt;Heather never got off the plane in Ohio&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Needless to say, I was curious.&lt;br /&gt;&lt;br /&gt;Granted, Heather could have noticed the flight was not correct, but she was incredibly nervous and even fearful of her first time on a plane, so I don't blame her for it. The airline, however, really shouldn't let people on planes who don't have a ticket to be on that plane. Cried all her make-up when she got to Boston, 700 miles from the intended Columbus, OH destination. I was frantic up until getting that call from her, when she finally touched down at the right airport, hours later than expected. Poor Heather. At least she got there, eventually, and could start enjoying her weekend.&lt;br /&gt;&lt;br /&gt;So, I'm on baby duty and getting work done from home over a four-day weekend. I'm keeping myself busy around the house, and at the computer, and with the kid. Trying to keep myself occupied. I don't sleep along very often, usually when I stay up very late and actually get a chance to sleep in the next morning, which is exceedingly rare. Several days alone, in a row, is a different thing. I'm glad that Brandy and Heather have this time, and at least they don't have to sleep alone. Get your mind out of the gutter, guys. I get messages from one or the other of them from time to time, so at least it is nice to hear that they are having a good time, and that Heather loves the kids, and that hopefully the carnivores won't mind a good dish of Soy Chili.&lt;br /&gt;&lt;br /&gt;Looking forward to Heather's return, but I'm really happy she is enjoying herself. I like the one-on-one time with Caelan, anyway.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;On a side note, I'm planning to blog more on here, now. I have too many times I want to write about something that just doesn't fit for the tech blog, so I need a revival here.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-9208940795633967597?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/9208940795633967597/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=9208940795633967597' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/9208940795633967597'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/9208940795633967597'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2008/01/why-my-weekend-is-lonely-and-happy.html' title='Why My Weekend Is Lonely and Happy'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-2674997829518406208</id><published>2007-06-11T01:29:00.001-04:00</published><updated>2007-06-11T01:29:34.601-04:00</updated><title type='text'>Presidental Approval Over The Decades</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;There is an interesting article over at &lt;a href='http://www.bspcn.com/'&gt;The Best Article Every Day&lt;/a&gt; that &lt;a href='http://www.bspcn.com/2007/06/08/how-the-presidents-stack-up/'&gt;plots the approval ratings&lt;/a&gt; for US Presidents from Truman to Bush Jr. I wanted to comment on some interesting trends I noticed.&lt;br&gt;&lt;/br&gt;&lt;ul&gt;&lt;li&gt;From Truman to Reagan, every President ends with a much lower rating than they begin, and their replacements always come into office with a higher rating than who they replaced.&lt;/li&gt;&lt;li&gt;Clinton is the &lt;span style='font-style: italic;'&gt;only&lt;/span&gt; one to leave office with a higher rating than he entered with.&lt;/li&gt;&lt;li&gt;Somehow, Clinton's rating climbed when the Lewinski allegations were made and yet dropped when he was cleared of charges. Do we actually want a dirty President?&lt;/li&gt;&lt;li&gt;Bush is the &lt;span style='font-style: italic;'&gt;only&lt;/span&gt; one to enter office with a lower approval rating than who he replaced.&lt;br&gt;&lt;/br&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-2674997829518406208?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/2674997829518406208/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=2674997829518406208' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/2674997829518406208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/2674997829518406208'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2007/06/presidental-approval-over-decades.html' title='Presidental Approval Over The Decades'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-7322248152928304870</id><published>2007-06-10T18:04:00.001-04:00</published><updated>2007-06-10T18:05:33.828-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='politics'/><title type='text'>Upgrade Your Democracy</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;Seth Godin is a bright guy. I thought so yesterday and I think so more today. Having your views paralleled and expressed when you haven't found how or where to do so is great. Few other experiences are as refreshing as unannounced, welcome company.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Read is post on why our outdated politics need to adapt, which a far truer thing than most of us realize: &lt;a href="http://sethgodin.typepad.com/seths_blog/2007/06/1840s_democracy.html"&gt;Seth's Blog: 1840s democracy&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;My favorite two points involve the outdated geographical systems of our districts and candidate ranking versus voting.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;To quote Seth, "&lt;i&gt;Our issues aren't farm-based any more.&lt;/i&gt;" I agree on more issues with people in entirely different locations than I ever will with people next door or even in the same town. New communications make connecting those people all the more easy, and yet we need to struggle, all of us, to gain ground mixed in with so many people in our locale. Popular opinion does not walk or run, but it does fly right over your neighbor's head and to you.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Saying anything about how bad our bipartisan system is won't do any good and won't include anything original, but candidate ranking replacing candidate voting would only improve the situation. How many of us either throw out vote away on a minor-party candidate or refuse to give them any help at all out of fear of throwing away that vote? Ranking solves the issue, because even if the Greene Party has far too few votes to get an official elected, they can still get their second choice into power. &lt;i&gt;Bush would not have happened with a ranking electoral process. Period.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Definitely some things to think about.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Technorati Tags: &lt;a rel="tag" href="http://technorati.com/tag/politics" class="performancingtags"&gt;politics&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="poweredbyperformancing"&gt;Powered by &lt;a href="http://scribefire.com/"&gt;ScribeFire&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-7322248152928304870?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/7322248152928304870/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=7322248152928304870' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/7322248152928304870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/7322248152928304870'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2007/06/promoting-feeds-by-including-treats.html' title='Upgrade Your Democracy'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-1002635980885677589</id><published>2007-05-02T01:25:00.000-04:00</published><updated>2007-05-02T01:26:19.173-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='social'/><title type='text'>Twitter</title><content type='html'>I twitter now.&lt;br /&gt;&lt;a href="http://www.twitter.com/ironfroggy"&gt;http://www.twitter.com/ironfroggy&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-1002635980885677589?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/1002635980885677589/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=1002635980885677589' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/1002635980885677589'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/1002635980885677589'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2007/05/twitter.html' title='Twitter'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-115864877293422404</id><published>2006-09-19T02:50:00.000-04:00</published><updated>2006-09-19T02:52:52.946-04:00</updated><title type='text'>First Sketch in Probably a Year</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/1723/1190/1600/sept-19-06-desklamp-robot-on-curb.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/1723/1190/320/sept-19-06-desklamp-robot-on-curb.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I honestly can't remember having sketched anything in at least a year, much less completed any artwork for quite some time. I grabbed some paper and a pencil and just did this because I had to. Hopefully I can start to pry open the gates of my artistic well again.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-115864877293422404?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/115864877293422404/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=115864877293422404' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/115864877293422404'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/115864877293422404'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2006/09/first-sketch-in-probably-year.html' title='First Sketch in Probably a Year'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-114097336836718287</id><published>2006-02-26T11:44:00.000-05:00</published><updated>2006-02-26T12:07:33.106-05:00</updated><title type='text'>The Collector of Junk</title><content type='html'>I am the Wonderful Collector of Junk You Never Wanted. Being a bit of a packrat was handed down to me by my father, who has a garage and a large, two-story shed full of "junk", and that's when keeping it at bay with near-daily yardsales through spring and summer every single year. Obviously, I've got some strong habits to break this Cycle so that Caelan doesn't have to. We're trying to get things shaped up and ready so we can deal better when he is born.&lt;br /&gt;&lt;br /&gt;I have a very large collection of movies, and its been the subject of "discussion" several times in the marriage, if you know what I mean by "discussion". Needing to get things organized and prepared for the baby, and my wife spending 90% of her TV time watching TLC's &lt;span style="font-style: italic;"&gt;Clean House&lt;/span&gt;, has brought this subject back into the light. Of course, I rejected any thoughts of getting rid of my wonderous collection. Why, I have movies in there you could never find. I have  &lt;span style="font-style: italic;"&gt;both&lt;/span&gt; editions the classics &lt;span style="font-style: italic;"&gt;Hercules&lt;/span&gt; and &lt;span style="font-style: italic;"&gt;Hercules Unchained&lt;/span&gt;. I have &lt;span style="font-style: italic;"&gt;Barbarella &lt;/span&gt;and &lt;span style="font-style: italic;"&gt;Forbidden Planet&lt;/span&gt;. I even have movies so obscure, that &lt;span style="font-style: italic;"&gt;I&lt;/span&gt; don't even want to watch them! Yeah, maybe I got a problem.&lt;br /&gt;&lt;br /&gt;The thing is, I really like having the movies. Not the individual titles, and not to be able to watch them, which I admit I rarely do, but to have the collection as a whole, is a very nice thing, which I enjoy, for some reason. Rationality ate at my unnecessary ties to the collection and I may or may not have gotten overly mad at the idea of getting rid of them. I may or may not have thrown the first VHS I decided I never watched and never wanted to and never will watch into the box. Twice...&lt;br /&gt;&lt;br /&gt;Packrats out there, we got a problem. Do what I did, and what I need to keep doing. Go through one group of things at a time, and really consider if you need each individual one. Try and cut it down by at least half, and later you can even cut that half down another 50%. Progress is the keyword here, and eventually that progress will lead you to something you never knew you needed: spacious tranquility.&lt;br /&gt;&lt;br /&gt;I feel better looking at the shelf without two layers of tapes of DVDs on it and more stacked ontop of each row and on top of the whole shelf unit. Yick.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-114097336836718287?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/114097336836718287/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=114097336836718287' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/114097336836718287'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/114097336836718287'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2006/02/collector-of-junk.html' title='The Collector of Junk'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-114093767053728032</id><published>2006-02-26T01:58:00.000-05:00</published><updated>2006-02-26T02:07:50.536-05:00</updated><title type='text'>Cringley doesn't think Google is doing TV right</title><content type='html'>In a conviniently timed &lt;a href="http://www.pbs.org/cringely/pulpit/pulpit20060216.html"&gt;article&lt;/a&gt;, Cringley talks about how the server-client methodologies will not hold if internet distribution of video is to reach any ammount that would impress the media producers. Since I was just posting about Google TV, I thought I'd put up some related thoughts.&lt;br /&gt;&lt;br /&gt;There are a lot of things to agree with and to disargee with. On the one hand, I can see that the current methods wont last if the userbase grows large enough to care about. On the other hand, I know those execs are afraid of the term "P2P" so lets keep away from it, or it just won't happen.&lt;br /&gt;&lt;br /&gt;The majority of the content is pre-recorded, so we aren't talking about live streams; this is stuff that can be downloaded ahead of time and watched from your local cache, so that's in our favor. Also remember that current broadband can bring in a lot video faster than you can watch it, so the servers aren't even supporting the users for the entire duration of their entertainment time. This, at best, can double the number of viewers a data center can support.&lt;br /&gt;&lt;br /&gt;So the current ways might live for a little longer than Cringley thinks, but in the long run he is probably right. Of course, this kind of thing won't be available easily and universally until its built in at a lower level. What we need is something like HTTP can operate very easily, be implemented quickly, and adopted by everyone. Most importantly, it needs to be transparent to everyone but the network admins and browser/player developers.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.gridnetworks.com"&gt;Grid Networks&lt;/a&gt; looks cool. When I get my new Windows box, I'll try out the demo and see what kind of content they have available.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-114093767053728032?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/114093767053728032/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=114093767053728032' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/114093767053728032'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/114093767053728032'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2006/02/cringley-doesnt-think-google-is-doing.html' title='Cringley doesn&apos;t think Google is doing TV right'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-114056222649612449</id><published>2006-02-21T17:45:00.000-05:00</published><updated>2006-02-21T17:50:26.530-05:00</updated><title type='text'>Google Video needs to be Google TV</title><content type='html'>With Google Video, the G People are already building a humble video distribution chain, but they have some steps to take before it is ready for prime time. Here is just what I think would make Google Video worthy of being called Google TV:&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;At least a Mac OS X player, if not a Linux player, too.&lt;/li&gt;   &lt;li&gt;Ad-supported viewing of for-pay content for one-time-view only. In other words, watch an advertisement before a set of music videos you want to see.&lt;/li&gt;   &lt;li&gt;Channels. Although "On Demand" video services are a wonderful thing, sometimes I just don't want to decide and I want to watch "whatevers on".&lt;/li&gt;   &lt;li&gt;Original Programming that isn't just a collection of internet clips. We need to see the formation of a Google Studios, that would produce news clips, documentaries, a sitcom, a drama, a cartoon, and a soap opera, to start with.&lt;/li&gt;   &lt;li&gt;The ever-predicted Google TV Box for my grandmother.&lt;/li&gt; &lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-114056222649612449?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/114056222649612449/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=114056222649612449' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/114056222649612449'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/114056222649612449'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2006/02/google-video-needs-to-be-google-tv.html' title='Google Video needs to be Google TV'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-113908962516077462</id><published>2006-02-04T16:33:00.000-05:00</published><updated>2006-02-04T16:47:05.300-05:00</updated><title type='text'>Pandora, Personal Media, and Integration</title><content type='html'>I have two wonderful sources of music while I'm on the computer and working: Pandora and my personal MP3 collection. Now, often when I am listening to Pandora, I think to myself "I'm in the mood for a few songs from Tangible (of 8bit People)" and sometimes, when listening to my MP3s of Harvey Danger's latest release, I get in the mood for some songs from my personal Ventures radio station on Pandora. Makes me really wish there was someway I could keep a list of Media Resources registered on my computer, with a player that can be set to randomly request tracks from each of them, randomly. Request a random track to be played from Pandora, then one from my own collection, then play a song from one of my favorite Shoutcast stations, a few from Pandora and my harddrive again, then maybe something from my computer's Radio Tuner. Anything like this around? Does anyone know where to look into this sort of thing, existing or in some form that could evolve to this?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-113908962516077462?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/113908962516077462/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=113908962516077462' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113908962516077462'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113908962516077462'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2006/02/pandora-personal-media-and-integration.html' title='Pandora, Personal Media, and Integration'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-113880555139686028</id><published>2006-02-01T09:52:00.000-05:00</published><updated>2006-02-01T09:52:36.386-05:00</updated><title type='text'>Less signs, less accidents</title><content type='html'>&lt;a href="http://37signals.com/svn/archives2/less_signs_less_accidents.php"&gt;Less signs, less accidents&lt;/a&gt;: "Roads Gone Wild is a piece in Wired from December 2004 that a reader just brought to my attention. I love it. Here’s why:&lt;br /&gt;&lt;br /&gt;Hans Monderman is a traffic engineer who hates traffic signs. Oh, he can put up with the well-placed speed limit placard or a dangerous curve warning on a major highway, but Monderman considers most signs to be not only annoying but downright dangerous. To him, they are an admission of failure, a sign - literally - that a road designer somewhere hasn’t done his job. “The trouble with traffic engineers is that when there’s a problem with a road, they always try to add something,” Monderman says. “To my mind, it’s much better to remove things.” "&lt;br /&gt;&lt;br /&gt;Signal vs. Noise is a great blog about well thought design, and although it is the blog of 37 Signals, a software company, they appriciate design in all of its forms. For some reason, I really liked this piece, talking about the designers of roads. Who ever really thought of traffic as a medium of art? Well, when you read this, you can see how one would think that way. I enjoy finding something that I don't normally find interesting turned on a new corner to suddenly become interesting from a context I can grok and appriciate.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-113880555139686028?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/113880555139686028/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=113880555139686028' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113880555139686028'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113880555139686028'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2006/02/less-signs-less-accidents.html' title='Less signs, less accidents'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-113791631443200907</id><published>2006-01-22T02:50:00.000-05:00</published><updated>2006-01-22T02:52:43.210-05:00</updated><title type='text'>Blog Splitting</title><content type='html'>I've started a second blog for programming related posts over at (&lt;a href="http://ironfroggy-code.blogspot.com/"&gt;http://ironfroggy-code.blogspot.com/&lt;/a&gt;). Start reading there. This blog will remain for social commentary, political outbursts, and personal reflection.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-113791631443200907?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/113791631443200907/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=113791631443200907' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113791631443200907'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113791631443200907'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2006/01/blog-splitting.html' title='Blog Splitting'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-113757007675171544</id><published>2006-01-18T02:38:00.000-05:00</published><updated>2006-01-18T02:41:16.763-05:00</updated><title type='text'>Where Have I Been?</title><content type='html'>Mostly sitting right here. Things have been going on. I now know that my child will be a boy, and his name will be Caelan Mathew Spealman. I got my self my first contract programming job, developing a site called MMOUpdate.com, which is basically like Allakazahm or tthotbot. Anyway, I'm gonna try to get back to my blogging more. Hopefully if this contract work goes well I can do that full time soon. If I get a good contract for at least three months of work before this current job is finished, I may take the plunge. It may be a risk, but the freedom is worth that.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-113757007675171544?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/113757007675171544/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=113757007675171544' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113757007675171544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113757007675171544'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2006/01/where-have-i-been.html' title='Where Have I Been?'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-113518625730496798</id><published>2005-12-21T12:26:00.000-05:00</published><updated>2005-12-21T12:30:57.306-05:00</updated><title type='text'>Mono-compliant Development Platform</title><content type='html'>There is a growing and unseen need for a Mono-compliant development platform. This would be something like Eclipse, but much lighter in base. This would allow people to extend it very easily in pretty much any language and a lot of different targets could be found. Extensability needs to go very far, too. Syntax highlighting and code-folding rules is not enough. If I want to define that all lists and tuples be displayed an element-a-line and no more than 5 lines used (with an embedded scrollbar to go through it) then let me do that. If I want dictionary literals to be displayed as tables, then so be that. If I want to very the if and else blocks side-by-side in color-coded boxes, then let me do that, too.&lt;br /&gt;&lt;br /&gt;Just a thought.&lt;br /&gt;&lt;br /&gt;No, this should not use Gtk+, because that isn't productive (.Net has a GUI API, already!).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-113518625730496798?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/113518625730496798/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=113518625730496798' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113518625730496798'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113518625730496798'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2005/12/mono-compliant-development-platform.html' title='Mono-compliant Development Platform'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-113518581409396351</id><published>2005-12-21T12:19:00.000-05:00</published><updated>2005-12-21T12:23:34.093-05:00</updated><title type='text'>My Name is not Scott</title><content type='html'>Some may know and now all will, that my name is Calvin. Over the years of working in various positions that require me to deal with lots of people over the phone (fielding calls from customers managing the furniture store, dealing with vendors and carriers for K-Mart, now) I have noticed a very odd and very consistent trend.&lt;br /&gt;&lt;br /&gt;I tell them my name, "Calvin", and they persist to call me "Scott". How on Earth does anyone mistake the two? Now, many people (just ask my wife) will tell you that I speak softly and sometimes am misunderstood. But "Scott" for "Calvin" just doesn't make any sense, especially for the pure consistency of the occurrence! What is going on here?&lt;br /&gt;&lt;br /&gt;People of Earth: My name is Calvin. Not Scott. It is Calvin.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-113518581409396351?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/113518581409396351/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=113518581409396351' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113518581409396351'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113518581409396351'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2005/12/my-name-is-not-scott.html' title='My Name is not Scott'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-113518554089994006</id><published>2005-12-21T12:02:00.000-05:00</published><updated>2005-12-21T12:19:00.936-05:00</updated><title type='text'>Paint.Net on Mono</title><content type='html'>I technically admire the &lt;a href="http://www.microsoft.com/net/default.mspx"&gt;.Net platform&lt;/a&gt;, although I don't use it much myself, except following the &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/csref/html/vcoricsharptutorials.asp"&gt;tutorials on MSDN for C#&lt;/a&gt;, which I compile and run with &lt;a href="http://www.mono-project.com/Main_Page"&gt;Mono&lt;/a&gt;. Part of this is subscribing to the feed from the MS blogs, just to see if there is anything interesting going on. Through this I found Paint.Net, a nice little project that started small and seems to be growing nicely. I looked into running it on Mono, and was very discouraged to find the developers don't care and don't seem to want it to run on anything but the official .Net implementation on Windows. They act like Mono is a nothing to the side to whisk away like dust on the floor.&lt;br /&gt;&lt;br /&gt;Now, am I wrong in expecting anything more? I don't think they should all install Fedora and start using Linux, but as long as they are developing a .Net project, couldn't they at least open the door a little? Their installer even refuses to install with Mono, so I can't even test the damn thing.&lt;br /&gt;&lt;br /&gt;That's too bad, because I'm disliking GIMP more and more every day.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-113518554089994006?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/113518554089994006/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=113518554089994006' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113518554089994006'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113518554089994006'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2005/12/paintnet-on-mono.html' title='Paint.Net on Mono'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-113487581618899181</id><published>2005-12-17T21:29:00.000-05:00</published><updated>2005-12-21T12:25:02.470-05:00</updated><title type='text'>Linux Packaging and Autopackage</title><content type='html'>I got a comment on my previous little quip about the problems with Linux-based operating systems. It was just a link to the &lt;a href="http://www.autopackage.org/"&gt;Autopackage website&lt;/a&gt;. I find it odd, as I had just got wind of &lt;a href="http://kbrooks.ath.cx/blog/index.php/archives/12"&gt;Kyle Brooks&lt;/a&gt; response to some of the negative commentary about Autopackage. So, basically I agree with everything Kyle said and I know things like Autopackage exist. But, the user still needs to know how to run the .package, which is more difficult on some systems than others. Of course, a quick google of autopackage will tell them, but how will they know to google for autopackage? Now, some distros might be able to configure KDE or GNOME to look at the first line of the file and see its actually a shell script, but I believe most would not. Of course, doing so might open up some security holes, but if the user is running as the root user, they're screwed anyway.&lt;br /&gt;&lt;br /&gt;Now, why do we even need things like Autopackage and why is there such controversy over it. (Yes, there is controversy) Quoting mike from the Autopackage forums:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span class="postbody"&gt;&lt;span style="font-style: italic;"&gt;As you may have realized, many Linux developers are very conservative. Some feel autopackage is bad, others just feel that software installation is not their problem.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;The culture of "my responsibility ends once I upload a tarball" is very deeply ingrained in the open source landscape I'm afraid - over a decade of distros controlling everything has made any true innovation in this field nearly impossible.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt; &lt;div style="text-align: left;"&gt;&lt;span class="postbody"&gt;&lt;/span&gt;In the beginning there was source code in a tarball and it wasn't good. Programmers would release a tarball, and maybe some compiling tips, and others would acquire the code from an FTP server at 150 baud or mail-order a copy of the code on magnetic tape storage. Systems were varied and different and often a user would work hard to build the program for his (or her) particular setup. Some did this so much, that they developed little scripts and tools and practices to make the whole thing a little easier, and organizations and businesses that adopted this software would follow the same lines. These evolved into the idea of distributions, which made it easier to do all this work.&lt;br /&gt;&lt;br /&gt;Free Software/Open Source operating system distributions can be traced back to the three major BSD derivatives: FreeBSD, NetBSD, and OpenBSD. These used the Ports system to control the compiling of software for the system. Guidelines about library locations and configuration files were created and software intended for a particular distribution would follow those guidelines. However, due to the days before real distributions, the developers were not directly targeting these distributions. As many distributions came to be, their volunteers and employees would port useful software, making just enough changes to get it to work on their distribution. Sometimes this would make it to the main source, but usually it would be bundled in some way, such as a tarball, along with installation scripts for their distribution, like Ports for the BSDs. These were called packages. The users were happy because they had good software, the distros were happy because they had users, and the developers were happy because they didn't have to do the work to make the software run on all those different distros.&lt;br /&gt;&lt;br /&gt;Fast forward twenty years or so and we haven't come far. Developers find it hard to package for so many targets and many refuse to do so, even believing they have no such responsibility. And, why should they? Most are working for free, anyway. Reducing the number of targets is an option, but anyone is free to make more and that is a large portion of the value of free software.&lt;br /&gt;&lt;br /&gt;Through these years, those standards and guidelines have converged in many ways. Something like autopackage was finally possible and perhaps we need it.&lt;br /&gt;&lt;br /&gt;Let me tell you what bugs the crap out of me. I hate finding a good program on-line and then having to open up a terminal and typing "emerge search foobar" to find this app. I hate having to tell my roommate, who uses an extra computer of mine, how he has to go through Mandriva's software management app to find out if that game has a package available or not.&lt;br /&gt;&lt;br /&gt;I welcome Autopackage, but we need cooperation from the community and the distributions to make it work. Perhaps work like Autopackage can converge the much repeated work of packaging all this software and we can reduce distributions to installation auxiliary scripts.&lt;br /&gt;&lt;br /&gt;All I know is I am tired of waiting for a package after the tarball is released.&lt;br /&gt;&lt;span class="postbody"&gt;&lt;/span&gt;&lt;/div&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-113487581618899181?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/113487581618899181/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=113487581618899181' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113487581618899181'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113487581618899181'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2005/12/linux-packaging-and-autopackage.html' title='Linux Packaging and Autopackage'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-113420350252623532</id><published>2005-12-10T03:28:00.000-05:00</published><updated>2005-12-10T03:31:42.546-05:00</updated><title type='text'>What's wrong with Linux</title><content type='html'>I love Linux and the community it spawned and so much about it. However, overall, I've grown increasingly distressed. Things only seem to go downhill, and everyone just keeps on cheering.&lt;br /&gt;&lt;br /&gt;Binary support is in desperate need and barely cared about. Packaging is a complete joke. The distributions are a mess.&lt;br /&gt;&lt;br /&gt;I shall elaborate.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-113420350252623532?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/113420350252623532/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=113420350252623532' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113420350252623532'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113420350252623532'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2005/12/whats-wrong-with-linux.html' title='What&apos;s wrong with Linux'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-113351244746337249</id><published>2005-12-02T03:28:00.000-05:00</published><updated>2005-12-02T03:34:07.566-05:00</updated><title type='text'>Pat 0.5.0 for this Weekend</title><content type='html'>This weekend I'll release Pat 0.5.0 with the following features (and more?):&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;Selection from multiple tables with a From(table1, table2).select(table1.colA) type syntax&lt;/li&gt;   &lt;li&gt;Column instansiations to pass to insert and update operations, such as table1.colA("foo")&lt;/li&gt;   &lt;li&gt;Streamlined and cleaned up unittests&lt;/li&gt;   &lt;li&gt;More complete unittests&lt;/li&gt;   &lt;li&gt;Deletion of rows&lt;/li&gt; &lt;/ul&gt; And, possibly some other things. This should be good enough that I'll return my focus to Involgo, which is also about to shape up into a nice prototype of what I'm trying to accomplish. Hopefully, by the end of 2005, I'll be able to show what I've been trying to acheive, and maybe I can actively search for some VC to put my work to better potential.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-113351244746337249?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/113351244746337249/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=113351244746337249' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113351244746337249'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113351244746337249'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2005/12/pat-050-for-this-weekend.html' title='Pat 0.5.0 for this Weekend'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-113342395585763953</id><published>2005-12-01T02:56:00.000-05:00</published><updated>2005-12-01T02:59:16.000-05:00</updated><title type='text'>Pat 0.5 Not Released on Time!</title><content type='html'>I was going to release Pat 0.5.0 tonight, with full support for multiple table queries with From(tbl1, tbl2).select() syntax, but its getting late. I've gotten selection working fine. I need to centralize all query generation and keep things cleaner, and that also includes migration of the update query generation to the new From class, which will control all CRUD, now. Internally, single table operations will just create a From with themselves to handle the request. This should all be operation by tomorrow and I'll release then.&lt;br /&gt;&lt;br /&gt;I may have broken my release-a-day spree with Pat, but at least I did make progress tonight, and that's the important part.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-113342395585763953?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/113342395585763953/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=113342395585763953' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113342395585763953'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113342395585763953'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2005/12/pat-05-not-released-on-time.html' title='Pat 0.5 Not Released on Time!'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-113334120342083676</id><published>2005-11-30T03:58:00.000-05:00</published><updated>2005-11-30T04:00:03.533-05:00</updated><title type='text'>Pat 0.4.1 Released</title><content type='html'>Twenty minutes ago, I realized I forgot to update Pat today. So, I fixed a small bug, and released a minor update that allows column-column comparison clauses. I added unittests, made sure it all worked right. It does. Another day, another release. At least until Pat reaches maturity for my purposes, I'll keep this up.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-113334120342083676?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/113334120342083676/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=113334120342083676' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113334120342083676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113334120342083676'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2005/11/pat-041-released.html' title='Pat 0.4.1 Released'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-113325247663420537</id><published>2005-11-29T03:19:00.000-05:00</published><updated>2005-11-29T03:21:16.686-05:00</updated><title type='text'>Pat 0.4 Released</title><content type='html'>Following my "at least one release a day" pattern with Pat, I've released yet another version. Version 0.4, which supports multiple chained select calls, easier selecting by passing multiple Clause and Column objects in any order, and more, is now available &lt;a href="http://cheeseshop.python.org/pypi?name=Pat+%28Python%27s+Easy+Tables%29&amp;version=0.4&amp;amp;:action=display"&gt;at the cheeseshop&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-113325247663420537?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/113325247663420537/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=113325247663420537' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113325247663420537'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113325247663420537'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2005/11/pat-04-released.html' title='Pat 0.4 Released'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-113316459051586566</id><published>2005-11-28T02:47:00.000-05:00</published><updated>2005-11-28T02:58:51.293-05:00</updated><title type='text'>Pat 0.3 Released</title><content type='html'>What a busy weekend. I wonder if it was worth it. I spent most of the actual weekend working on my sub-project, Pat. It works very well now, and with only a single more release, I'll move back to Involgo, which will be using Pat to manage its SQL more cleanly.&lt;br /&gt;&lt;br /&gt;Three releases in just over thirty hours. That's a record for me, but I may have wasted my weekend. A few hours after releases Pat 0.3, I caught a &lt;a href="http://www.advogato.org/person/titus/diary.html?start=128"&gt;blog entry&lt;/a&gt; by &lt;a href="http://www.advogato.org/person/titus/"&gt;titus&lt;/a&gt; mentioning something called &lt;a href="http://www.sqlalchemy.org/"&gt;SQLAlchemy&lt;/a&gt;. It seems to be pretty much what Pat would become, if I put a lot more work into it. It includes things like joins and seems a mix of my model and the basic Python dbapi, with execute() and fetchone() methods.&lt;br /&gt;&lt;br /&gt;It makes me question things. Have I broken the TOOWTDI rule? Did I waste those thirty hours? Should I continue with Pat or put her to rest in favor of a more complete solution?&lt;br /&gt;&lt;br /&gt;If I had spent the same amount of time learning SQLAlchemy, would I have gotten to the point with it that I am now with Pat? Also, I don't know if it uses pysqlite2 or the sqlite module, where I requre the prior. I will have to look into this other contender and decide my course of action. For now, I should probably sleep. I should have done that hours ago.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-113316459051586566?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/113316459051586566/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=113316459051586566' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113316459051586566'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113316459051586566'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2005/11/pat-03-released.html' title='Pat 0.3 Released'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-113307548887816763</id><published>2005-11-27T02:06:00.000-05:00</published><updated>2005-11-27T02:11:28.893-05:00</updated><title type='text'>Pat 0.2 Released</title><content type='html'>A very busy day I've had. Started on Pat, my little database module, and I've made two releases already. It can now generate table creation queries, can select individual column names, define tables by subclasses Table, do updates and more. It still has some major limitations, like it only can match columns by equality.&lt;br /&gt;&lt;br /&gt;The next release should move from the keyword interface to passing things like UserTable.username=="Bob" or CustomerTbl.customerForYears&gt;10. It will also support deletion of rows (which I just forgot for this one, oops) and default column values and specified text lengths.&lt;br /&gt;&lt;br /&gt;As it is, it should prove useful. It can already do enough for my current purposes. Hopefully, someone else will find it useful. Let me know if you do. If not, let me know why!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://cheeseshop.python.org/pypi?name=Pat+%28Python%27s+Easy+Tables%29&amp;version=0.2&amp;amp;:action=display"&gt;Pat 0.2 Release at the Cheeseshop&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-113307548887816763?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/113307548887816763/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=113307548887816763' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113307548887816763'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113307548887816763'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2005/11/pat-02-released.html' title='Pat 0.2 Released'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-113304691922940190</id><published>2005-11-26T17:45:00.000-05:00</published><updated>2005-11-26T18:15:19.263-05:00</updated><title type='text'>PAT, Python's Easy Tables</title><content type='html'>I started to get a little tired with SQLObject. Although it is nice for most uses, it can be overkill and can be difficult when you dont actually want an ORM, but just a better way than writing all of your own queries. So, I looked around, couldn't find a simple table wrapping module, and wrote my own. The result is Pat, which stands for "&lt;span style="font-weight: bold;"&gt;P&lt;/span&gt;ython's &lt;span style="font-weight: bold;"&gt;E&lt;/span&gt;asy &lt;span style="font-weight: bold;"&gt;T&lt;/span&gt;ables".&lt;br /&gt;&lt;br /&gt;Pat is very easy to use, but still pretty rough around the edges. It is very much a prototype, but as they say, "Release Early, Release Often", so I'm doing that. I've registered the project at the cheeseshop.&lt;br /&gt;&lt;br /&gt;What it Doesn't Do:&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;Create tables&lt;/li&gt;   &lt;li&gt;Verify integrity&lt;/li&gt;   &lt;li&gt;Bake cookies like Grandma makes&lt;/li&gt;   &lt;li&gt;A lot of things&lt;/li&gt; &lt;/ul&gt; What it Does Do:&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;Represent named tables with python objects&lt;/li&gt;   &lt;li&gt;Allow you to &lt;span style="font-family: courier new;"&gt;&lt;span style="font-weight: bold;"&gt;table.where(id=5)&lt;/span&gt; to select rows&lt;/span&gt;&lt;/li&gt;   &lt;li&gt;&lt;span style="font-family: courier new;"&gt;Allow you to &lt;span style="font-weight: bold;"&gt;T.where(id=1).update(name="One")&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;   &lt;li&gt;&lt;span style="font-family: courier new;"&gt;You can string multiple &lt;span style="font-weight: bold;"&gt;where&lt;/span&gt; calls and end with an &lt;span style="font-weight: bold;"&gt;update&lt;/span&gt; and only trigger a single query, as all the where clauses are combined. No query is done on a select until you actually iterate over the returned &lt;span style="font-weight: bold;"&gt;Results&lt;/span&gt; object.&lt;/span&gt;&lt;/li&gt; &lt;/ul&gt; &lt;a href="http://cheeseshop.python.org/pypi?name=Pat+%28Python%27s+Easy+Tables%29&amp;version=0.1&amp;amp;:action=display"&gt;Project Page&lt;/a&gt;&lt;br /&gt;&lt;a href="http://cheeseshop.python.org/packages/source/P/Pat%20%28Python%27s%20Easy%20Tables%29/pat-0.1.tar.bz2"&gt;Pat 0.1 (source)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Please, send me any bug reports, comments, complaints, etc.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-113304691922940190?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/113304691922940190/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=113304691922940190' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113304691922940190'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113304691922940190'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2005/11/pat-pythons-easy-tables.html' title='PAT, Python&apos;s Easy Tables'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-113233614801426489</id><published>2005-11-18T12:45:00.000-05:00</published><updated>2005-11-18T12:49:08.013-05:00</updated><title type='text'>Move away from Blogger and Blogspot?</title><content type='html'>I've settled in nicely to this blog. I disliked Blogger at first, as it seemed oddly limited, but I dealt with those limitations and I hadn't cared about them for a while. Now I do, again.&lt;br /&gt;&lt;br /&gt;I've been messing around with an account on blogsome.com, which uses the popular WordPress blog system. I like it. It seems a little less intuitive than Blogger sometimes, like not being able to explicity order links, or edit my templates directly. But, it does allow for catagories, which is the big thing I don't like missing from Blogger.&lt;br /&gt;&lt;br /&gt;I have a meager, if existing at all, group of readers. So I guess I'm not abandoning much. I'll give this some thought and do some more testing with blogsome. If I make the move, I'll probably run my own WordPress server from home. We'll see...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-113233614801426489?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/113233614801426489/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=113233614801426489' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113233614801426489'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113233614801426489'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2005/11/move-away-from-blogger-and-blogspot.html' title='Move away from Blogger and Blogspot?'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-113220668888653114</id><published>2005-11-17T00:48:00.000-05:00</published><updated>2005-11-18T12:38:45.986-05:00</updated><title type='text'>Improving the Self in a Structured Manner</title><content type='html'>&lt;a href="http://dirtsimple.org/2005/10/self-version-20.html"&gt;Self, version 2.0&lt;/a&gt;&lt;br /&gt;&lt;a href="http://dirtsimple.org/2005/08/multiple-self.html"&gt;The Multiple Self&lt;/a&gt;&lt;br /&gt;&lt;a href="http://dirtsimple.org/2005/11/refactored-self-part-1.html"&gt;The Refactored Self (part 1)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;These three posts are wonderful. The ideas are solid, and I've found most of them to be true on my own before finding them put to such great description and clearity. Moving in the direction of being more agressive with this would be a good thing for most of us.&lt;a href="http://dirtsimple.org/2005/11/refactored-self-part-1.html"&gt;&lt;span class="" style="display: block;" id="formatbar_CreateLink" title="Link" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;&lt;/span&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-113220668888653114?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/113220668888653114/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=113220668888653114' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113220668888653114'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113220668888653114'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2005/11/improving-self-in-structured-manner.html' title='Improving the Self in a Structured Manner'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-113220527725918049</id><published>2005-11-17T00:27:00.000-05:00</published><updated>2005-11-17T01:29:37.430-05:00</updated><title type='text'>About Me</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/1723/1190/1600/imag0017.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/1723/1190/320/imag0017.jpg" alt="" border="0" /&gt;&lt;/a&gt;My name is Calvin Spealman, and I am known in online forums as "ironfroggy" and in gaming circles as "NeverDead". I am an amature programmer, trying to get my foot in the door of the industry with my own start-up. This blog is largely a journal of that quest, and other tech-related postings.&lt;br /&gt;&lt;br /&gt;I develope primarily in the &lt;a href="http://www.python.org/"&gt;Python&lt;/a&gt; programming language. My work is database and web related. I also do some minor work with Visual Basic and Microsoft Access and Excel, to make my "real job" easier.&lt;br /&gt;&lt;br /&gt;Aside from the technical side, I also have an artistic flare. You can see some of my art on my &lt;a href="http://ironfroggy.deviantart.com/"&gt;DeviantArt page&lt;/a&gt;. I also have a &lt;a href="http://mentaloutlash.blogspot.com/"&gt;second blog&lt;/a&gt; for political commentary, media reviews and quips, and things that just don't belong elsewhere.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-113220527725918049?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/113220527725918049/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=113220527725918049' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113220527725918049'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113220527725918049'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2005/11/about-me.html' title='About Me'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-113212670382835959</id><published>2005-11-16T02:35:00.000-05:00</published><updated>2005-11-16T02:38:23.840-05:00</updated><title type='text'>People are Security Flaw of the Network</title><content type='html'>Today I grabbed some papers from the printer at work, looking for something I was waiting on. There were only papers for a co-worker, so I took them to her (as is customary at work). The first thing I saw when I looked to see if it was mine, is that the e-mail contained a username and password for a user on the &lt;span style="font-style: italic;"&gt;corporate network&lt;/span&gt;. The user wasn't even one that seemed to be included in the e-mail. Even worse, it was a multi-recipient mail to many clerks from a supervisor. The SAs would have a damn fit if they saw that. No matter what security measurements they might take, people will still e-mail other people's passwords, which they shouldn't even have.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-113212670382835959?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/113212670382835959/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=113212670382835959' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113212670382835959'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113212670382835959'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2005/11/people-are-security-flaw-of-network.html' title='People are Security Flaw of the Network'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-113212220347627432</id><published>2005-11-16T00:45:00.000-05:00</published><updated>2005-11-16T01:23:23.530-05:00</updated><title type='text'>Selfish Sharing</title><content type='html'>&lt;a class="offsite" href="http://www.broofa.com/"&gt;Robert Kieffer&lt;/a&gt; and &lt;a class="offsite" href="http://www.nedbatchelder.com/"&gt;Ned Batchelder&lt;/a&gt; sparked a &lt;a class="offsite" href="http://www.nedbatchelder.com/blog/20051114T204716.html"&gt;discussion&lt;/a&gt; that has interested a good many people. They were discussing the sharing of information we work to provide and the selfishness of keeping one's self as the only source and control of information that we share to everyone. Selfishly sharing information: what does it mean?&lt;br /&gt;&lt;br /&gt;A good example is that I'm posting this article instead of just commenting on the page like everyone else. Of course, those comments aren't this long. So, I'll convince myself I have some justification. Why do I need to justify these actions to myself?&lt;br /&gt;&lt;br /&gt;Many of us have websites. They are a bit of a status symbol these days, and something anyone can create. But, a site that is &lt;span style="font-style: italic;"&gt;important&lt;/span&gt; can not be created by anyone, it can only be created by everyone. Only in the value of the audience do we feel a real value for our own websites and the information we provide within them.&lt;br /&gt;&lt;br /&gt;So, although we want to give the content away, we want to keep close hold on the credit. We want everyone to value the content and to know that &lt;span style="font-style: italic;"&gt;we&lt;/span&gt; were responsible for its creation and for its continued availability to them. As long as the content remains on our websites, we have value in the value the audience holds in our website.&lt;br /&gt;&lt;br /&gt;Where does this leave projects like Wikipedia and more focused efforts like the Python Wiki? Although the spirit of sharing urges us to combine our collective content where everything can be found together, we are greedy for self value. We may even make such meager claims such as, "Google pulls the information together as well as a wiki", in order to justify our actions of keeping our content out of the wikies.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: right;"&gt;&lt;span style="font-style: italic;"&gt;(what is the plural of "wiki"?)&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;The first thing that springs to my mind when pondering it, and the first thing that I thought of when reading the post on Ned's blog, is, "why do we need to make this distinction and this discission at all?". Content may be served from multiple physical servers, and available from multiple logical URIs, but why does this entail that it must be acredited to one person or organization for each source we can obtain it from? Why do we have to have such a hard line between our site and World Wide Web? The WWW was meant to be a sharing of information, and many people say that the Wiki is the heart of the spirit of the web. But people need some value in both the obtaining of information and the free distribution of information to others. It has to work both ways, and as we know, what each is giving must be worth less to that individual than what they get in return.&lt;br /&gt;&lt;br /&gt;What I am getting at, is why can't Ned's &lt;span style="font-style: italic;"&gt;Python Parsers&lt;/span&gt; page exist as both a page on his website and as a page on the wiki simultaniously? I won't go into implementation details, but he should be able to write the page on his website, and then submit it as a page on the wiki. If anyone wants to make changes to the wiki, they can. If we wants to merge changes in from the wiki, he should be able to. If he makes changes while his and the wiki-version are synced, they should show up on both, otherwise he or someone else might merge them in some semi-manual manner.&lt;br /&gt;&lt;br /&gt;In any case, this would all be through good standards. There would not be any central servers involved. Neither individual or organization would have to do anything manual unless they themselves are changing something.&lt;br /&gt;&lt;br /&gt;If we want to truely share, why do we have to give it away? Is it really sharing if we ourselves can not share in &lt;span style="font-style: italic;"&gt;all&lt;/span&gt; of the value. Sharing by putting the content into something like a wiki allows everyone to share in the value of obtaining the content, but there is a lack of balance in the value of providing that content to those who would wish to obtain it.&lt;br /&gt;&lt;br /&gt;We must share both the value of the content and the credit for that content.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-113212220347627432?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/113212220347627432/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=113212220347627432' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113212220347627432'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113212220347627432'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2005/11/selfish-sharing.html' title='Selfish Sharing'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-113199238976769506</id><published>2005-11-14T13:14:00.000-05:00</published><updated>2005-11-14T13:19:49.783-05:00</updated><title type='text'>Decoupled Designs and Modularity: Do they get in the way of the job?</title><content type='html'>So, I've been hacking away at Involgo as regularly as I can manage. During this prototyping phase, I'm just implementing everything in pure python objects and using the cPickle module for persistance of the database (or &lt;span style="font-style: italic;"&gt;store&lt;/span&gt; as I call them in Involgo). I'm reaching the point where I want to move from this to a more robust backend, most likely using SQLite to store all the data.&lt;br /&gt;&lt;br /&gt;This leads me to two related issues: I don't want to break the pickle code, because it may still be useful, mostly for in-memory, never-persisted stores that could be useful. And, I may at some point move to something other than SQLite. So, it seems I should decouple the backend that stores the data from the interface to the store, and everything else in the project, as much as possible. This is taking some time, both in design and implementation.&lt;br /&gt;&lt;br /&gt;I just begin to wonder, when am I spending to much on good design and not enough on actually getting the work done, because I want to make sure its done right? What good is it to plan how to do it just right, if the work isn't getting done?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-113199238976769506?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/113199238976769506/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=113199238976769506' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113199238976769506'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113199238976769506'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2005/11/decoupled-designs-and-modularity-do.html' title='Decoupled Designs and Modularity: Do they get in the way of the job?'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-113190767906838476</id><published>2005-11-13T13:41:00.000-05:00</published><updated>2005-11-13T13:49:18.276-05:00</updated><title type='text'>Pandora Impresses Me Again</title><content type='html'>Pandora, which I have written about before, does not cease to impress. Aside from an ever enjoyable experience, they really seem to listen to their users. I was thrilled to have the first comment on my blog be from none other than Pandora CTO, Tom Conrad. Nice way to make those early adoptors feel welcome.&lt;br /&gt;&lt;br /&gt;I was even more impressed when I received an e-mail from Tim Westergren, Founder of Pandora, announcing the new Pandora 2.0, which is very nice, and has a lot of great improvements over an already wonderful system. What impressed me was the generous upgrade of my three month subscription to an annual one, free of charge. Wow. I only did a quarterly subscription because my trial ran out, I hungered for more, and I don't like to spend too much money without saying something to my wife.&lt;br /&gt;&lt;br /&gt;My only fear is that as Pandora grows, this kind of personal touch will be lost. It is nearly inevitable, but how can any growing company continue to live small to the people?&lt;br /&gt;&lt;br /&gt;Now, if only my speakers hadn't broken.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-113190767906838476?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/113190767906838476/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=113190767906838476' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113190767906838476'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113190767906838476'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2005/11/pandora-impresses-me-again.html' title='Pandora Impresses Me Again'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-113155605107252006</id><published>2005-11-09T11:51:00.000-05:00</published><updated>2005-11-09T12:07:31.093-05:00</updated><title type='text'>Linux Driver ABI Stability</title><content type='html'>There has been a &lt;a href="http://www.kroah.com/log/2005/11/03/"&gt;spark&lt;/a&gt; unleashing flames across many blogs, slashdot comments, mailing lists, and forums. Everyone is abuzz over the issue of the Linux kernel's ABI for device drivers.&lt;br /&gt;&lt;br /&gt;The current Linux kernels do not define a stable ABI. Between releases, small tweaks to drivers are often necessary to keep up with little changes in the interface between those drivers and the kernel core. This means that every driver must be compiled for exactly the same version of Linux, and it makes for a difficult situation for hardware developers, who want to support Linux.&lt;br /&gt;&lt;br /&gt;Now, everyone has something to say about it and no one seems pleased. Either you're outraged at the very suggestion of allow binary drivers to work reliably without releasing source code so customers can recompile their drivers with every kernel upgrade, or you can't possibly comprehend how anyone finds it a bad idea for manufacturers to be able to develop one binary driver they can release with their product and know that it will work when the user plugs in the card and copies the driver over.&lt;br /&gt;&lt;br /&gt;Well, there are some points on both sides. While it is true that it violates the GPL to distribute binary only drivers with the Linux kernel, &lt;span style="font-style: italic;"&gt;we don't have to distribute the drivers with the kernel&lt;/span&gt;. When you pick up a cheap Ethernet card and open the box, do you know what's on that little disc thingy? Drivers. We don't have to distribute drivers for every known hardware with every release of the kernel. Besides, I'm tired of downloaded ham radio drivers over and over. I never use them.&lt;br /&gt;&lt;br /&gt;What baffles me is how no one seems to grasp the simple concept that if it is illegal to distribute them so, they won't (successfully) do so, without a battle they'll loose. That leaves the only benefits all for the users and kernel developers. The users will have better hardware support, and be able to get cousin Mindy to try Linux, finally. The developers can stop redeveloping drivers for devices that already have drivers, but for whatever reason do not have (good) Linux drivers, and they can then focus on the kernel itself.&lt;br /&gt;&lt;br /&gt;Everyone wins with binary ABI stability. While we're at it, maybe we can get the ABI implemented in Vista and OS X, but with the best native implementation in Linux, of course.&lt;br /&gt;&lt;br /&gt;A key thing to remember here is this: users do &lt;span style="font-style: italic;"&gt;not&lt;/span&gt; want to recompile &lt;span style="font-style: italic;"&gt;anything&lt;/span&gt;. Period. Source is nice to be available, and I think it should be, but source should be the option, not the necessity.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-113155605107252006?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/113155605107252006/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=113155605107252006' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113155605107252006'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113155605107252006'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2005/11/linux-driver-abi-stability.html' title='Linux Driver ABI Stability'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-113146547651621122</id><published>2005-11-08T10:56:00.000-05:00</published><updated>2005-11-08T10:57:56.516-05:00</updated><title type='text'>Second Blog</title><content type='html'>I and a friend have started a new blog, &lt;a href="http://mentaloutlash.blogspot.com"&gt;Mental Outlash&lt;/a&gt;. This is where I'll be posting non-tech stuff, such as my political commentaries, media reviews, and anything else along those lines.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-113146547651621122?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/113146547651621122/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=113146547651621122' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113146547651621122'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113146547651621122'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2005/11/second-blog.html' title='Second Blog'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-113146486576054526</id><published>2005-11-08T10:39:00.000-05:00</published><updated>2005-11-08T10:48:02.776-05:00</updated><title type='text'>Python Equality, Comparison, and Hashing</title><content type='html'>There has been a &lt;a href="http://article.gmane.org/gmane.comp.python.devel/72822"&gt;lot&lt;/a&gt; of talk on python-dev about the behavior of the default __eq__ and __hash__ and the comparison of objects, specifically with the concepts of "Identity Objects" and "Value Objects".&lt;br /&gt;&lt;br /&gt;This brings me to think about something I've pondered, and I'm sure has been discussed before: does a programming langauge have to compare apples and oranges? Perhaps it is a historical artifact that everything can be compared. When everything is just a representation of byte patterns, everything can be compared numerically, but this doesn't always make sense for what is being compared. Boolean logic is tied into nearly every computer langauge, so that everything can be considered true or false. Well, what about raising an exception on 1=="1" instead of just resolving to False? How about denying a conversion of an object to true or false, where it has no logical boolean equivalent?&lt;br /&gt;&lt;br /&gt;Why does everything have to boil down to black or white?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-113146486576054526?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/113146486576054526/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=113146486576054526' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113146486576054526'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113146486576054526'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2005/11/python-equality-comparison-and-hashing.html' title='Python Equality, Comparison, and Hashing'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-113134977192256036</id><published>2005-11-07T02:49:00.000-05:00</published><updated>2005-11-07T12:12:51.930-05:00</updated><title type='text'>Repetitive Information Injury</title><content type='html'>I &lt;a href="http://www.randsinrepose.com/archives/2005/11/02/repetitive_information_injury.html"&gt;read&lt;/a&gt;, &lt;a href="http://del.icio.us/url/a9a346b2711af769b7bd1650b29fc66a"&gt;tagged&lt;/a&gt;, and blogged about RII, a restult of &lt;a href="http://www.randsinrepose.com/archives/2003/07/10/nadd.html"&gt;NADD&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I quickly realized that I am a sufferer of this condition. I waste many nights that could have been spent working on something, because I do just what this article describes. I don't have much to say about it, just read it, please.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-113134977192256036?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/113134977192256036/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=113134977192256036' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113134977192256036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113134977192256036'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2005/11/repetitive-information-injury.html' title='Repetitive Information Injury'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-113112295461393464</id><published>2005-11-04T11:43:00.000-05:00</published><updated>2005-11-04T12:26:35.893-05:00</updated><title type='text'>GPL 3.0 Will Highlight the FSF's Misdirection</title><content type='html'>The drafting of the GNU General Public License's second major revision is to begin in the near future. This third version will be good for solidifying what the GNU Project, the Free Software Foundation, and Richard Stallman, the man behind it all, truely stand for in the area of software users' rights. The next revision will be good for the FSF, but bad for nearly &lt;span style="font-style: italic;"&gt;everyone&lt;/span&gt; who uses their license.&lt;br /&gt;&lt;br /&gt;The GNU GPL has four main clauses, if you look at it in a simplified manner.&lt;br /&gt;&lt;ol&gt;   &lt;li&gt;The right to use the software for any reason&lt;/li&gt;   &lt;li&gt;The right to my copies of the software&lt;/li&gt;   &lt;li&gt;The right to modify the software&lt;/li&gt;   &lt;li&gt;The right to redistribute the original or modified versions of the software&lt;/li&gt; &lt;/ol&gt; Number four is pretty much the gotcha for most people. It is what keeps many companies, who are interested in open source and free software, away from using the GNU GPL, and sometimes for releasing source code at all. Who wants to release code to a community who think they should have the right to pass it along to those who did not pay for it?&lt;br /&gt;&lt;br /&gt;This last clause is the one I've always had trouble agreeing with. I think I should be able to make copies of software, if I have a desktop and a laptop, for example. I should be able to use it for anything, because if I bought it, that copy is mine. If they want to limit the warranty to certain uses, that's OK, but they shouldn't limit &lt;span style="font-style: italic;"&gt;me&lt;/span&gt; to certain uses. There may be something I don't like about the software, or maybe I don't entirely trust it. In either case, I should have the option to see and modify the source code, to ensure I know what it is doing, or that it is doing what they say it is. But, they worked hard making that software and need to make a living to feed their families and pay off that house, so what right do I or should I have to say to my pal, who wants a copy of the software, "Sure, I'll send you a copy. Don't worry about buying it for yourself!".&lt;br /&gt;&lt;br /&gt;I believe the forth clause is a mistake, not only in that Richard Stallman keeps it in there, but that he brought it into the license in the first place. There is some history behind this opinion that is very important to the issue at hand.&lt;br /&gt;&lt;br /&gt;When the GNU General Public License was first created, and back in the days when Richard Stallman was jumpstarting the Free Software movement and founding the Free Software Foundation, the software and technology world was a very different picture. When the first users of Stallman's Emacs wanted to acquire a copy, they didn't download the source or prepackaged RPMs from the FSF website, or their distributions automatic package manager. They wrote him a letter, including a blank data tape and money to return it through post, and Stallman would copy the source code onto the tape and mail it back to them. Those days, I don't think there had to be much worry if someone redistributed your software, because distributing it was so difficult for both you and for them.&lt;br /&gt;&lt;br /&gt;What this begs us to ask, however, is, "why is this still a GPL clause and why does anyone think its essential?" All of the other clauses of the GPL are enough. That last clause brings about all the problems. User's should have every right to make their own personal copies, to modify source code, and to use the software in any way. But copyright law is there for a reason, and I want to pay of that new car. Redistribute patches, if you'd like, but developers who can't or won't do it all for free, deserve to be compensated for their work.&lt;br /&gt;&lt;br /&gt;And, yes, I know there are ways to make money on GPL software, but it much more difficult and risky. Developers deserve the same kind of per-consumer compensation as creators in any other medium.&lt;br /&gt;&lt;br /&gt;The problem with the GPL's new version is that the changes will only strengthen this problem's hold on the GPL. More provisions will be put in place to ensure the users' rights of redistribution and the circumvention of the developers' rights to control the distribution of their own intellectual property.&lt;br /&gt;&lt;br /&gt;I know what you're saying, "So, don't use the GPL!" And, I won't. My problem with all this is that many do and will continue to use the GPL misguidedly, and that the GPL symbollically stands for the concept of free software and open source licenses, so this huge error just reflects badly upon the whole community. Stallman may have started it, but at this rate he'll lead the movement to its end in his blindness and inability to admit that, though he had a good idea, he made one or two mistakes in the initial executions of that idea. Idealism is nice when you're ideals are grounded, but dangerous when you follow them simply because they are your ideals.&lt;br /&gt;&lt;br /&gt;Rethink what your thought, and always make sure you still know what you're doing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-113112295461393464?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/113112295461393464/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=113112295461393464' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113112295461393464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113112295461393464'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2005/11/gpl-30-will-highlight-fsfs.html' title='GPL 3.0 Will Highlight the FSF&apos;s Misdirection'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-113077251935839623</id><published>2005-10-31T10:28:00.000-05:00</published><updated>2005-11-07T12:27:16.923-05:00</updated><title type='text'>Brian Ray's Blog : Python: IPython as primary Shell</title><content type='html'>&lt;a href="http://brianray.chipy.org//Python/IPythonShell.html"&gt;Brian Ray's Blog : Python: IPython as primary Shell&lt;/a&gt;: "IPython , a Python interactive shell developed for the scientific computing community by Fernando Perez is such a powerful tool, I just may replace my default login settings from just bash [1] directly to IPython over bash.&lt;br /&gt;&lt;br /&gt;How may people do this? I mean really! Is it practical to cross this line?&lt;br /&gt;&lt;br /&gt;If you are new to IPython, there is a decent intro article from ONLamp. Although, I fail to see how this article fits into the LAMP [2] world. Still, it unveils some need features like: magic: Quickly assess special IPython features. Tab Completion: auto-complete code attributes, classnames, methods, and more Introspection: Easy access to Doc Strings and internal documentation History: store a dumpable session of commands Debugger Access: internal access to pdb Run: a safe way to run a file and ignore the __name__ == '__main__', trick Macros: capture command history into a macro&lt;br /&gt;&lt;br /&gt;All great stuff. Also mentioned in the article is System Shell Access. For example, you can use cd, pwd, and ls directly in IPython. To escape to the shell use '!' or '!!'.&lt;br /&gt;&lt;br /&gt;The IPython Manual notes in the section IPython as system shell. I loose job control if I use iPython this way. Although, I haven't had many issues so far.&lt;br /&gt;&lt;br /&gt;Starting IPython with 'ipython -p pysh', creates a special envirom"&lt;br /&gt;&lt;br /&gt;&lt;p&gt;I found this interesting because of recent ideas I've been drawing up for a Python Embedded Shell. The Python syntax for `foo` being taken as repr(foo) is to be removed, so I thought, "Why not have a special interpretter to expand `foo` to execute a program named `foo`?"&lt;/p&gt;&lt;br /&gt;&lt;p&gt;I went into it more in my mind, so I'll lay out the ideas here.&lt;/p&gt; &lt;ul&gt;   &lt;li&gt;foo=10 would be taken as normal&lt;/li&gt;   &lt;li&gt;print $foo would be used to print it to the terminal&lt;/li&gt;   &lt;li&gt;foo would just run the program, foo (I updated from the original thoughts)&lt;/li&gt;   &lt;li&gt;$foo would run a program stored in the string foo by name&lt;/li&gt;   &lt;li&gt;if, while, def, class, elif, else, and for all work as they currently do.&lt;/li&gt;   &lt;li&gt;That $ syntax is only needed where it would be otherwise confused for a program name.&lt;/li&gt;   &lt;li&gt;`foo` would resolve to a special object representing a new process running by executing foo. This process object would have stdin, stdout, and stderr file-like object attributes. It would also have kill, pause, and continue methods.&lt;/li&gt;   &lt;li&gt;New operators exist for piping. Such as foo-&gt;bar to pipe stdout of foo to stdin of bar. foo!-&gt;bar pipes stderr, instead. null is known as a built-in process object, which just pipes everthing to /dev/null or an equivalent.&lt;/li&gt; &lt;/ul&gt; Very basic, not well polished. Besides, I think I like &lt;a href="http://arstechnica.com/guides/other/msh.ars"&gt;Monad, the Microsoft Shell&lt;/a&gt;, which is still in Beta, a lot better than my idea or any command line I've ever used. Sorry, my Linux buddies, but a good idea is a good idea, no matter who comes up with it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-113077251935839623?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/113077251935839623/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=113077251935839623' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113077251935839623'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113077251935839623'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2005/10/brian-rays-blog-python-ipython-as.html' title='Brian Ray&apos;s Blog : Python: IPython as primary Shell'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-113069268966052639</id><published>2005-10-30T12:13:00.000-05:00</published><updated>2005-10-30T12:19:11.900-05:00</updated><title type='text'>Dynamic Linking for Module Attributes</title><content type='html'>In much Python code, &lt;span style="font-family: courier new;"&gt;foo.bar&lt;/span&gt; refers to some attribute of the imported module "foo". There is only ever one instance of any module, so could attributes of modules be given pointers somewhere in the module object (internally) and thus importing scripts can be compiled such that &lt;span style="font-family: courier new;"&gt;foo.bar&lt;/span&gt; would be resolved to some new bytecode that says "load the object pointed to at this location". The location would be null when compiled, but importing would consult a table mapping the module's attribute references in the script to the locations in the bytecode of those null pointers. This would effectively work like dynamic linking in C/C++, and would reduce a lot of attribute lookups to a pair of pointer dereferences.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-113069268966052639?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/113069268966052639/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=113069268966052639' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113069268966052639'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113069268966052639'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2005/10/dynamic-linking-for-module-attributes.html' title='Dynamic Linking for Module Attributes'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-113056888268171204</id><published>2005-10-29T02:49:00.000-04:00</published><updated>2005-10-29T02:54:42.696-04:00</updated><title type='text'>Focus, Direction, and Real Life</title><content type='html'>My wife and I have a baby on the way, my best friend moved in with us after running into some hard times, co-workers are causing my daily headaches, and my car broke down in my driveway. Where do I find time to code?&lt;br /&gt;&lt;br /&gt;As it is I seem to barely have time for my code, and I wasn't making the progress I'd like even when I was impressed with the progress I was making.  Factor in my continuing frustrations over the lack of writing and art I've been able to spend time on, and my output just looks dismal. Real Life, the good and the bad, are cutting into the things I always though real life would be made of, for me.&lt;br /&gt;&lt;br /&gt;I pretty much know that until I can support myself and my family independantly, I don't have time for coding, writing, and art. I only have time for one. It forces me to look at it from a bussiness aspect, of which would bring me money quick enough to allow me to resurrect my other hobbies? It also instills growing fears of loss if I fail at any of them. Not only will I continue to work a dead job, but I'll continue to have no time for creativity.&lt;br /&gt;&lt;br /&gt;Where's a grant when you need one?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-113056888268171204?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/113056888268171204/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=113056888268171204' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113056888268171204'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/113056888268171204'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2005/10/focus-direction-and-real-life.html' title='Focus, Direction, and Real Life'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-112987720710498808</id><published>2005-10-21T02:40:00.000-04:00</published><updated>2005-10-21T02:46:47.116-04:00</updated><title type='text'>Python Coroutines Schedulers</title><content type='html'>Just wanted to post a quick thought, mostly so I would remember it. I want to try to write a small decorator to turn any function into a coroutine, associated with a particular scheduler. When called, the coroutine would return a handler, and the scheduler would continue normally. it would be able to tell when a coroutine was called by another, and handle that appropriately, allowing the yields of the inner call to be yielded by the handler as an iterator. This would allow coroutines to be called pretty much just like functions, with everything being scheduled in the background pretty nicely.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-112987720710498808?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/112987720710498808/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=112987720710498808' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/112987720710498808'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/112987720710498808'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2005/10/python-coroutines-schedulers.html' title='Python Coroutines Schedulers'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-112952710911103875</id><published>2005-10-17T01:27:00.000-04:00</published><updated>2005-10-17T01:31:49.120-04:00</updated><title type='text'>PyPy and More Platforms</title><content type='html'>PyPy is coming along nicely. It gets closer to matching CPython for speed every day, but it still has its problems. It brings more questions to my mind about the matter of duplicated efforts with all of these Python implementations.&lt;br /&gt;&lt;br /&gt;What we really need is a standardized from of representing Python code in Python code. Things like a Statement class and Expression instances, for example. This would allow people to easily write code to optimize and analyze code parsed by any front-end and compiled to any back-end.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-112952710911103875?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/112952710911103875/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=112952710911103875' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/112952710911103875'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/112952710911103875'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2005/10/pypy-and-more-platforms.html' title='PyPy and More Platforms'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-112892779863750707</id><published>2005-10-10T03:00:00.000-04:00</published><updated>2005-10-10T03:03:18.643-04:00</updated><title type='text'>Helping a Friend</title><content type='html'>A very good friend of mine has moved in with us this weekend. Some hard times, which were severely drawn out, lead to a four-hundred mile relocation back home, so I've cleaned out my office and set up the spare bed, to make him feel at home. Hopefully, things will get better in fast time. At least it all doesn't seem to be getting to him. Maybe, I'll get back to my old gamer-self with someone to thrash on in Halo, again.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-112892779863750707?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/112892779863750707/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=112892779863750707' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/112892779863750707'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/112892779863750707'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2005/10/helping-friend.html' title='Helping a Friend'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-112867251260869360</id><published>2005-10-07T02:54:00.000-04:00</published><updated>2005-10-07T04:08:32.633-04:00</updated><title type='text'>My Take on Python Concurrency</title><content type='html'>The mailing lists and blogs have been abuzz lately with discussions, arguments, and good and bad ideas about how to deal with concurrency in Python. There is a general distaste against using vanilla threads, due to the difficulty in managing shared resources. Generators are an increasingly popular option, but they don't offer any pre-emptive nature, if you are into that sort of thing. And, of course, the Global Interpreter Lock is bashed and many pray for its removal, but that will only happen if a real concurrency mechanism is added not just as some library, but into the library itself.&lt;br /&gt;&lt;br /&gt;Now, off the bat I'll say that I don't hate threads, but I really wish there was a better alternative. I do want to see the GIL go away. Finally, I don't like having to explicitly suspend my task every so often to allow something else to process for a while. This is tedious and does not always reflect the nature of the task well.&lt;br /&gt;&lt;br /&gt;Active Objects seems like the most Pythonic approach, and like they could work well with existing, non-concurrent code. With Active Objects, you have objects designed to work concurrently. Calls to their methods are typically queued so that only one method of one active object will be executing at a single time. Thus, the active object does not need to syncronize on its internal state data. Extended loops in a method could get greedy, however, but that is a small matter.&lt;br /&gt;&lt;br /&gt;The biggest issue is dealing with shared objects, which happens so much in Python's pass-everything-by-reference world. Methods can be crafted to be safer, such as by taking only basic types (integers and strings) and containers of those or containers (lists of strings and tuples of dictionaries mapping strings to booleans, etc.). But, inevitably, you will have to pass something more to a method.&lt;br /&gt;&lt;br /&gt;One approach could be to copy objects before passing them, even to deep copy them all. Another would be to create special shallow objects that represent the state of the original without copying all of it. But, perhaps the best choice is to simply use more active objects. If we pass one active object to the method of another, and are accessing all data through their "active methods", then syncronization is generally secured. Perhaps it would also be beneficial to define a common locking API for all active objects.&lt;br /&gt;&lt;br /&gt;Python is a wonderful, dynamic language, but there is some speculation that the very dynamic rules that make Python great, are also making it so difficult to settle on a good concurrency mechanism and to allow safe, concurrent code. Many Pythoneers scuff at the idea of true protected and private attributes, but maybe that's just what we need.&lt;br /&gt;&lt;br /&gt;The ability to modify everything may be useful, but maybe it should be controlled a little more. We should be able to execute code in the context of protections on certain objects, like giving read-only versions of modules or write-locked lists. This becomes faulty when you realize you can just call object.__getattribute__, but I have a possible solution: the protected class. It would be a new built-in class, and anything inheriting it would be given special abilities: object's methods would treat is specially and following its access rules (properties would be immutable, exception through the functions defined for them, for example) even when using object methods directly, or other introspection mechanisms. Combining this with crafted globals and built-ins for 'jailed' code, could be a sucessful way to execute multiple lines of code in parellel without worrying they will step on each others' toes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-112867251260869360?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/112867251260869360/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=112867251260869360' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/112867251260869360'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/112867251260869360'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2005/10/my-take-on-python-concurrency.html' title='My Take on Python Concurrency'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-112829169423901101</id><published>2005-10-02T18:19:00.000-04:00</published><updated>2005-10-02T18:21:34.246-04:00</updated><title type='text'>Python Object Space Demo</title><content type='html'>I've whipped up a little test of object spaces. You can create global contexts and run code within that context. You can also queue functions to be called (the API forbids multiple threads per space), and set response functions to be called at the return of a function called in context of the space. It is very simple, but effective, I like to think. The initial code is available &lt;a href="http://www.ironfroggy.com/space.py"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-112829169423901101?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/112829169423901101/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=112829169423901101' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/112829169423901101'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/112829169423901101'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2005/10/python-object-space-demo.html' title='Python Object Space Demo'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-112814120185489032</id><published>2005-10-01T00:29:00.000-04:00</published><updated>2005-10-01T00:33:21.880-04:00</updated><title type='text'>Branching out with Blogging</title><content type='html'>I may be creating some new blogs. I hold back posting some things, because I want to post on so many topics. I'm considering keeping this blog for general ranting, political commentary, and the like. I may also create the following blogs:&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;Ranting and Raving about Games and Movies&lt;br /&gt;  &lt;/li&gt;   &lt;li&gt;Ranting and Raving about Software&lt;/li&gt;   &lt;li&gt;Ranting and Raving about Art&lt;/li&gt; &lt;/ul&gt; The last one is likely not to be created, although I may resume my art and end my very long hiatus from Deviant Art (see my DA page here). This will allow me to more easily and openly blog about more specific things more often, without worrying that no one will read a blog so mixed with topics so unrelated.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-112814120185489032?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/112814120185489032/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=112814120185489032' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/112814120185489032'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/112814120185489032'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2005/10/branching-out-with-blogging.html' title='Branching out with Blogging'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-112806437848355074</id><published>2005-09-30T03:10:00.000-04:00</published><updated>2005-09-30T03:12:58.483-04:00</updated><title type='text'>Weekend Involgo Plans</title><content type='html'>With some luck and determination, I'll be able to make some good progress over the weekend. I've had overtime all week, and I still have to come in for a full shift on Saturday, but I'll have some time before work then and again on Sunday, and I'll have a prototype of my Involgo database working by the end of the weekend, I believe. Depending on the exact conditions of the prototype at that point, I may or may not be posting a link to an initial alpha release. We'll see.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-112806437848355074?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/112806437848355074/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=112806437848355074' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/112806437848355074'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/112806437848355074'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2005/09/weekend-involgo-plans.html' title='Weekend Involgo Plans'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-112792699563645671</id><published>2005-09-28T12:57:00.000-04:00</published><updated>2005-09-28T13:03:15.646-04:00</updated><title type='text'>Will XForms eliminate XUL?</title><content type='html'>Will the introduction of a complete XForms implementation in the Mozilla platform eliminate the need for XUL? I wouldn't be surprised if the current implementation uses XUL for the actual rendering of the forms, but wouldn't it make sense to work toward eliminating XUL from the Mozilla platform, in favor of a standard alternative? On a related note, it seems there could be plans to incorporate OpenGL or some similar API to the new canvas element, which would mean that if you allowed document rendering to a canvas element (XML is finally looking cool) you could have the entire window just be a big canvas element, render the browser's own XForm document to it (which would render the pages in their own canvas elements!) and all of this, being drawn with a clean and proper API, could be hardware accelerated, where such is available on Mac OS X, Windows with Avalon, and decent configurations of X.org.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-112792699563645671?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/112792699563645671/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=112792699563645671' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/112792699563645671'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/112792699563645671'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2005/09/will-xforms-eliminate-xul.html' title='Will XForms eliminate XUL?'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-112768147775002952</id><published>2005-09-25T20:02:00.000-04:00</published><updated>2005-09-25T17:01:37.503-04:00</updated><title type='text'>Pandora Take Two</title><content type='html'>Since my &lt;a href="http://ironfroggy.blogspot.com/2005/09/pandora-makes-me-want-to-spend-money.html"&gt;last post about the service&lt;/a&gt;, I got a comment from &lt;a href="http://tomconrad.blogspot.com/"&gt;Tom Conrad&lt;/a&gt;, the CTO of &lt;a href="http://www.pandora.com/"&gt;Pandora&lt;/a&gt;. I've had more time to think about the service, its good qualities, and its drawbacks. I'm sure Tom keeps a custom blog aggregator to find &lt;a href="http://del.icio.us/tconrad/pandora-music"&gt;anyone posting&lt;/a&gt; about Pandora, but I'm still honored for that to be my first post (not counting the Blog Comment Spam I had to delete). I'm surprised I don't see any posts by Tom on &lt;a href="http://www.nedbatchelder.com/blog/"&gt;Ned's blog&lt;/a&gt;, though, I guess Tom just peeks around on &lt;a href="http://www.blogspot.com/"&gt;Blogspot&lt;/a&gt; and doesn't catch the independents.&lt;br /&gt;&lt;br /&gt;Anyway, Tom did say to feel free to continue blogging about Pandora, which I will do, because I have some more thoughts I'd like to share, especially knowing that he is listening.&lt;br /&gt;&lt;br /&gt;Pandora is great. Its the best online music service I've found, and possible the greatest source of music I have, next to listening to &lt;a href="http://www.nightswithalicecooper.com/"&gt;Nights with Alice Cooper&lt;/a&gt; on the nights at work when I get the desk with the radio. When I say something is the best I've found, that doesn't really say a lot. It does in Pandora's case, but I'll clear it all up here.&lt;br /&gt;&lt;br /&gt;What Pandora does right:&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.openlaszlo.org/"&gt;Deployment as a web app&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Multiple stations&lt;/li&gt;   &lt;li&gt;More fine grained than genre and year&lt;span class="" style="display: block;" id="formatbar_CreateLink" title="Link" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;&lt;/span&gt;&lt;/li&gt;   &lt;li&gt;Finds new music&lt;/li&gt;   &lt;li&gt;Dirt cheap subscription ($36/year or $12/quarter)&lt;br /&gt;&lt;/li&gt;  &lt;/ul&gt;What Pandora does wrong:&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;Can't listen by genre and/or year&lt;/li&gt;   &lt;li&gt;Think computers are the best at organizing music&lt;/li&gt;   &lt;li&gt;Pass up on the greatest source of music listening habits since &lt;a href="http://www.apple.com/itunes/"&gt;iTunes&lt;/a&gt;. Maybe better than iTunes.&lt;/li&gt; &lt;/ul&gt; The last point is where I'm going, so bare with me. Let me go over the good in more detail. I'm giddy over the pricing. I can't believe people really pay $.99 a song from Apple, and I'm sickened that the music execs actually &lt;a href="http://www.google.com/search?hl=en&amp;lr=&amp;amp;q=itunes+price+increase&amp;btnG=Search"&gt;think that isn't enough&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I love when Pandora plays a song, and I think, "Hey, this is pretty good, who are these guys?" Of course, I also get &lt;a href="http://www.tivo.com/"&gt;Tivo&lt;/a&gt; flashbacks when I think, "Hey, why are you playing &lt;span style="font-style: italic;"&gt;that&lt;/span&gt;?" It does find some nice tunes and I would be out of my league to acquire and organize a playlist of that quality and size. Now, I'm a &lt;a href="http://www.google.com/search?sourceid=navclient-ff&amp;ie=UTF-8&amp;amp;q=linux"&gt;Linux&lt;/a&gt; user (though more and more distastefully), so I'm happy Pandora went the web app route. It makes it so much easier to refer the service to my friends, who can just go to &lt;a href="http://www.pandora.com/"&gt;www.pandora.com&lt;/a&gt; and start listening, just like that. And, thank god they don't just group by year and genre, because I might be in the mood often for 80's music, but lots of music not made in the 80's will fit that class of music.&lt;br /&gt;&lt;br /&gt;Sometimes, I just want to listen to 80's music, and how do I tell Pandora that? I can't seem to search for shared stations by name so I can just find anyone's "80's Music Mix" station. The redefinition of the very meaning of a station is a god-send, I must say. I can listen to the same station as thousands of people, and skip over any song I don't like. That freaking rules, because I hate when the radio plays something I don't like.&lt;br /&gt;&lt;br /&gt;Now, what is the biggest thing that Pandora is missing? First of all, let me say this is speculation on some level, because if they take advantage of this, it must be completely on the internal level. They have thousands of listeners voting songs in and out of various groupings and all of this is stored into a wonderful database of golden information. So, Tom Conrad, I ask you, where is the "Play what other's like to listen to with this" option? The Music Genome Project may be a great venture and successful at what it does, but nothing beats a fellow human with a common taste in music. How about mining that database for common listening patterns, generating collective stations?&lt;br /&gt;&lt;br /&gt;I'm sure they may find this a scary idea, because in essence it seems to go against the very beginnings and roots of Pandora itself, but it is also quite possibly the biggest value in the service for the company behind it, and to not take advantage of this would be, to put it simply, kind of stupid. (Sorry, Tom)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-112768147775002952?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/112768147775002952/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=112768147775002952' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/112768147775002952'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/112768147775002952'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2005/09/pandora-take-two.html' title='Pandora Take Two'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-112754120794777911</id><published>2005-09-25T18:56:00.000-04:00</published><updated>2005-09-25T15:55:44.596-04:00</updated><title type='text'>C#, .Net, and Mono</title><content type='html'>So, I've been doing some tutorials on MSDN on the C# language. It seems like Java without the emphasis on a virtual machine. Or, like C++ with emphasis on portability of &lt;span style="font-style: italic;"&gt;useful&lt;/span&gt; code. Either way, the gun is in a lock box instead of just having the safety on or being taken away completely. I'm going to be looking into Python.Net and IronPython very soon, as well, and the Boo programming language, which is a Python-ish .Net language.&lt;br /&gt;&lt;br /&gt;So, from the get-go, I admit that I do like C# for what it is. I've been looking for a compiled language for those cases when I would care to have one, and maybe it would be a good way to diversify my skill set. I've even considered an eventual implementation of Involgo in C#. With Python.Net I can wrap a .Net assembly for Involgo into the original Python API, and let any existing code still work, but likely faster.&lt;br /&gt;&lt;br /&gt;C# looks like it would let me do a lot of the things that I like Python for, but without making them too difficult to manage like some other compiled languages. Delegates are nifty for passing function-like objects. I can pass objects without a specific type when I really need to, or have static typing when I need/want/think I want it. And, the automatic usability from so many languages is just "to die for".&lt;br /&gt;&lt;br /&gt;I do wonder, however, what the consensus among the .Net community is for the Mono project. Most .Net users are definitely Microsoft users, so what do they think about us "others"? In the FS/OS world, the community is king. In their world, the community is surely strong, but it is far different. I wonder often about this rift between geeks. We're all after the same thing, we just think there are different ways to go about it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-112754120794777911?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/112754120794777911/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=112754120794777911' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/112754120794777911'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/112754120794777911'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2005/09/c-net-and-mono.html' title='C#, .Net, and Mono'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-112754521110815391</id><published>2005-09-24T02:50:00.000-04:00</published><updated>2005-09-24T03:00:11.693-04:00</updated><title type='text'>Lepers in America</title><content type='html'>Before Leprosy was cured, all the lepers would be sent to live together, away from the rest of the world. It might seem cruel by todays standards, but a horrible, killing disease is what it is. And, someone infected might as well be that disease walking.&lt;br /&gt;&lt;br /&gt;Today we have several horrible diseases plaguing the planet. We have HIV spreading across the globe, for example. We don't put people with HIV into special camps. No, instead we just tell them, "remember to wrap it before you tap it." Meanwhile, the little AIDS demons continue to laugh at the world they may some day cripple.&lt;br /&gt;&lt;br /&gt;Now, I'm not suggesting that we lock every with an STD up, but shouldn't there be some accountability? If you are walking around able to cause such an ammount of death and destuction, you'd think someone would say, "Hey, you better own up to this."&lt;br /&gt;&lt;br /&gt;Crazy people are still punished for killing people, but is it a crime to know you have HIV and sleep around anyway? If you knock someone up, you have to support the child, but do you have to pay for their HIV medications if you infect them? People in this country won't even where protective masks when they have a bad cold, so why should I expect anything reasonable?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-112754521110815391?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/112754521110815391/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=112754521110815391' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/112754521110815391'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/112754521110815391'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2005/09/lepers-in-america.html' title='Lepers in America'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-112754172862178613</id><published>2005-09-24T01:56:00.000-04:00</published><updated>2005-09-24T13:35:10.560-04:00</updated><title type='text'>Pandora makes me want to spend money on music again</title><content type='html'>I love music, and I hate to buy a CD. To think how much I'm paying for that CD, with the full knowledge of how much it really costs to make, and how much the bands I love even get from the sales. I'd rather buy &lt;a href="http://www.vorbis.com/"&gt;Ogg Vorbis&lt;/a&gt; streams directly from the band members, but that won't happen while the &lt;a href="http://www.eff.org/IP/P2P/riaa-v-thepeople.php"&gt;RIAA&lt;/a&gt; is still running this country.&lt;br /&gt;&lt;br /&gt;Still, &lt;a href="http://www.pandora.com/"&gt;Pandora&lt;/a&gt; has given me the desire to spend money on music again, by giving me &lt;a href="http://blog.pandora.com/faq/index.html#13"&gt;actual value&lt;/a&gt; in its service. Thanks, &lt;a href="http://www.nedbatchelder.com/"&gt;Ned&lt;/a&gt;, for blogging about this.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-112754172862178613?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/112754172862178613/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=112754172862178613' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/112754172862178613'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/112754172862178613'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2005/09/pandora-makes-me-want-to-spend-money.html' title='Pandora makes me want to spend money on music again'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-112754134222092209</id><published>2005-09-24T01:53:00.000-04:00</published><updated>2005-09-24T03:04:08.213-04:00</updated><title type='text'>Is there room in the bubble?</title><content type='html'>There never really was 'a' bubble, and so 'the' bubble didn't really burst. There were bubbles, and there were a lot of them and a lot of them got big, and a lot of them burst. There are still a lot of bubbles.&lt;br /&gt;&lt;br /&gt;Do any of these bubbles have room for me? Can I make my own little bubble and hope I don't pop it myself?&lt;br /&gt;&lt;br /&gt;I'm evaluating my options for a start-up. I'm considering costs, estimating revenues, and trying to decide the timetable in which I could make it actually work. I'm doing my best to balence a quick turn around with a solid investment of my money and time.&lt;br /&gt;&lt;br /&gt;Lots of geeks have done this, and I'd like to think I could be one of them who succeeds. And, I do think that I will, too.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-112754134222092209?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/112754134222092209/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=112754134222092209' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/112754134222092209'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/112754134222092209'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2005/09/is-there-room-in-bubble.html' title='Is there room in the bubble?'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-112736560657548749</id><published>2005-09-22T01:03:00.000-04:00</published><updated>2005-09-22T01:06:46.593-04:00</updated><title type='text'>Involgo Progress from Scratch</title><content type='html'>I made plans, I designed things, and I spent lots of time making very little progress. Finally, thanks to a suggestion on IRC, I just dove in, scrapping the ill-fating code I already had, and just making things work. My little object database now works, kind of. It doesn't store data between sessions, it just keeps them as Python objects in memory. I'm able to easily and quickly add in all the features, debug the database, and iron out my ideas. When the major features are generally operational, I'll add some basic persistance for more testing. Dive in: procrastination is the disease of the failures.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-112736560657548749?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/112736560657548749/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=112736560657548749' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/112736560657548749'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/112736560657548749'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2005/09/involgo-progress-from-scratch.html' title='Involgo Progress from Scratch'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-112728119046322002</id><published>2005-09-21T01:12:00.000-04:00</published><updated>2005-09-21T10:50:06.490-04:00</updated><title type='text'>C-Pound is Looking Sharp</title><content type='html'>&lt;p&gt;I took the time to view the &lt;a href="http://channel9.msdn.com/showpost.aspx?postid=114680"&gt;video interview&lt;/a&gt; about the LINQ project and C# 3.0's first-class query mechanisms. I was actually impressed with it, and it solved some problems I have with Python. It also made me think how the same solutions could be applied in Python, or any such dynamic language.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;What is most interesting about LINQ, I couldn't be sure of from the video. Does it pull in all the data and apply the anonymous functions to it for conditional filtering, or does it take the where clause and actually generate that into a request to the server? Now, this doesn't matter for XML documents and especially direct queries on CRL objects, but with relational tables it really is important.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;This is what Python needs: a generalized way to generate patterns to match, using existing operators. There are some tricks available, like allowing &lt;span style="font-family:courier new;"&gt;sometype==value&lt;/span&gt; to return a callable that can be passed an instance of &lt;span style="font-family:courier new;"&gt;sometype&lt;/span&gt; and return &lt;span style="font-family:courier new;"&gt;True&lt;/span&gt; if it equals value. This can be used to generate lots of pattern matchers. The problem is that some things aren't so easily redefined, like &lt;span style="font-family:courier new;"&gt;and&lt;/span&gt; and &lt;span style="font-family:courier new;"&gt;or&lt;/span&gt; operators, and it isn't easy to define that operation if you also want &lt;span style="font-family:courier new;"&gt;==&lt;/span&gt; for instances of &lt;span style="font-family:courier new;"&gt;sometype&lt;/span&gt;. That requires defining an instance method and class method of the same name for one type. Possible, but very tricky.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;It would be very useful to add first-class pattern matching to Python. I'm thinking of a syntax along the lines of &lt;span style="font-family:courier new;"&gt;?==x&lt;/span&gt; to generate a pattern object representing the pattern needed. What is important, however, is that it would create more than an object that can be called to test if something matches the pattern, but other code would be able to introspect the pattern, merge patterns together, generate SQL code from them, etc.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;I wonder how well the community would respond to this. It would probably be best to promote a common and hopefully standard pattern package, and to propose syntax integration of the module at a later date. That would also give time for the pattern matchings to evolve. Hopefully this will happen, because Python is improving every day, but if it doesn't do so in the right places, it will fall from its rising seat of glory.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;(More examples of the Pattern Syntax)&lt;br /&gt;(All comparison operators work as expected, such as `?&gt;10' to test for values greater than 10)&lt;br/&gt;&lt;br /&gt;`?foo' to test for an instance of foo&lt;br/&gt;&lt;br /&gt;`?is foo' to test is something is foo&lt;br/&gt;&lt;br /&gt;`?in foo' to test is something is in foo&lt;br/&gt;&lt;br /&gt;`?contains foo' to test if foo is something&lt;br/&gt;&lt;br /&gt;`?hasattr foo' to test if something has the attribute 'foo'&lt;br/&gt;&lt;br /&gt;`?attr foo ?==10' to test if something's 'foo' attribute is equal to 10&lt;br/&gt;&lt;br /&gt;`bar?foo' to test if bar is of type foo, where bar is the name of an iterated object, such as in a for loop or list comprehension. This can be used to clarify when there are more than one object per loop to test.&lt;br/&gt;&lt;br /&gt;`?[4]?=="four"' to test if the 4th item in a list-like object is equal to the string "four".&lt;br/&gt;&lt;br /&gt;`?foo,bar' test if something is of type foo or type bar&lt;br/&gt;&lt;br /&gt;`?all foo,bar' test if something is of both type foo and type bar&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Any thoughts on this?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-112728119046322002?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/112728119046322002/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=112728119046322002' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/112728119046322002'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/112728119046322002'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2005/09/c-pound-is-looking-sharp.html' title='C-Pound is Looking Sharp'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-112403549609173934</id><published>2005-08-14T12:02:00.000-04:00</published><updated>2005-08-14T12:04:56.096-04:00</updated><title type='text'>Fan-Tab-ulous!</title><content type='html'>I've always found myself to be a proponent of tabs in favor of spaces in source code. It makes more sense, because the reader can choose whatever tab-width they want, so it makes the source code more accessable, with a properly configured editor. Lately, though, I find myself using two spaces instead of a tab character. I still feel tabs are better, so why am I using spaces?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-112403549609173934?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/112403549609173934/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=112403549609173934' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/112403549609173934'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/112403549609173934'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2005/08/fan-tab-ulous.html' title='Fan-Tab-ulous!'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-112403325369645207</id><published>2005-08-14T10:09:00.000-04:00</published><updated>2005-08-14T11:27:33.740-04:00</updated><title type='text'>On Game Ratings, Companies, and Retailers</title><content type='html'>There is a three-fold source to the recent debates and arguments surrounding the video game world. Most people who care, and plenty who don't, have heard about the scandles with Grand Theft Auto: San Andreas and the Hot Coffee mod. That isn't what I want to focus on, because that has already been blogged to hell and back.&lt;br /&gt;&lt;br /&gt;The system is broken. While most studies show the average gamer as being 34 years old, the industry is still trying to sell games to kids and teenagers. Now, I have no trouble with giving a game an AO rating, but why do retailers have a problem selling them? They sure are cutting out a huge section of their consumer base. Besides, Wal-Mart actually does card for M games, last I checked, so why not sell AO games and card them as well?&lt;br /&gt;&lt;br /&gt;The bottom line is this: if most of the people buying games are adults, why should they always aim for a rating that lets teens buy it (T or M is usually the highest rating they want)? The answer is that the stores don't carry AO games, but that just brings back the questions about the average gamer age.&lt;br /&gt;&lt;br /&gt;In the end, we just need to work to make everyone realize that AO games aren't bad. You can carry them in your store and card anyone who looks too young, just like smokes. Only AO games don't kill people, they help stressed out adults relax after a long day of working as a productive member of society.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-112403325369645207?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/112403325369645207/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=112403325369645207' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/112403325369645207'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/112403325369645207'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2005/08/on-game-ratings-companies-and.html' title='On Game Ratings, Companies, and Retailers'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-112352355179619401</id><published>2005-08-08T12:07:00.000-04:00</published><updated>2005-08-10T02:03:08.776-04:00</updated><title type='text'>The Perfect Python IDE</title><content type='html'>There are a lot of things I look for in a good IDE. Looking for those things, I've tried &lt;a href="http://kate.kde.org/"&gt;Kate&lt;/a&gt;, &lt;a href="http://www.kdevelop.org/"&gt;KDevelop&lt;/a&gt;, &lt;a href="http://www.die-offenbachs.de/detlev/eric3.html"&gt;Eric3&lt;/a&gt;, &lt;a href="http://www.activestate.com/Products/Komodo/"&gt;Komodo&lt;/a&gt;, and &lt;a href="http://boa-constructor.sourceforge.net/"&gt;Boa-Constructor&lt;/a&gt;, to name only a few. Some of them give me a few things I like, each one giving different things. But, none of them have all of the core features I really want in a Python editor.&lt;br /&gt;So, here I am laying them out. Maybe an IDE will be developed meeting these requests, or maybe I'll do it myself eventually, possibly joining one of the above mentioned projects.&lt;br /&gt;Such an imaginary program we will call, for the time being, The Perfect Python IDE.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Indentation is important in Python programs. The fact that one can not mix tabs and spaces brings hardship to anyone who commonly edits multiple projects' files simultaneously, when they use different indenting rules. The Perfect Python IDE sees what kind of indenting is being used in the current file, and auto-indent following that style.&lt;/li&gt;   &lt;li&gt;indentation exists both in the actual code and in how the code is displayed. Sometimes a line may be lengthy on a particular display, or when I'm using a horizontally split view. The Perfect Python IDE dynamically wraps the line's display without affecting the source code itself, and even indents the following line for clarity.&lt;br /&gt;&lt;/li&gt;   &lt;li&gt;Of course, The Perfect Python IDE knows that if any feature gets in the way, its not a feature; it is a bug. That's why it only follows through with an auto-completion when I explicitly tell it to, and it always implicitly goes away the moment it sees I don't want auto-completion.&lt;/li&gt; &lt;li&gt;Even the smallest of projects needs a sense of history. You never know when you'll want to undo something you saved a week ago, so version control is a must. An IDE should naturally compliment such a system, like CVS or Subversion. The Perfect Python IDE only asks me for a path to the local working copy, or a svn+ssh:// URL to the repository, so it can just keep the working copy files hidden while I work on them.&lt;br /&gt;&lt;/li&gt;   &lt;li&gt;As long as I'm just giving The Perfect Python IDE the URL to the repository, there isn't a need for any silly project files.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Now that my files are stored in a repository on a remote server, interested people might work on the code, too. They'll probably want the code to work when they update their working copies, so I'd better test before every time I commit something. The Perfect Python IDE can see my test/ directory and my test_*.py scripts and run them, being sure to set the PYTHONPATH for my package.&lt;/li&gt;&lt;li&gt;UnitTests being run is one thing, but doing something with them when the tests fail is something to be really proud of. The Perfect Python IDE extracts the tracebacks and bookmarks all the lines in the call stack. It even numbers them and displays local values at the time of error.&lt;/li&gt;   &lt;li&gt;The Perfect Python IDE may be perfect, but part of that is being exactly what I want it to be, or what you want it to be. Those things may be different, but The Perfect Python IDE can be different, too. It can be customized at any point; and, it can be customized in Python. Of course, it is used as an editor of those very same customization scripts.&lt;br /&gt;&lt;/li&gt; &lt;li&gt;Not everything needs custom code to make it act right. The settings and configuration can go a long way, too. The Perfect Python IDE never asks me to restart it for settings to take affect, and it always lets me know exactly what any particular setting does.&lt;br /&gt;&lt;/li&gt;     &lt;/ul&gt;Do I ask too much? I could probably ask for more. Did I not specify well enough what I want? I'm mostly listing it to get things straight in my own head. Does something already exist that does this all? I haven't it. Do Vim or (X)Emacs do the things I ask? They're ugly. I pay for high-end computers and large monitors for graphical interfaces, not consoles.&lt;br /&gt;Yeah, they both have GUI modes, but they kind of suck. They're little more than terminal emulators enhanced for that particular program. Either of them could be a good GUI IDE, but communities around them just don't seem to understand the reason to make it looks "pretty", so I doubt they will, at least, not for a very long time. Despite what many techno-machos say, programs really are better when they're pretty.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-112352355179619401?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/112352355179619401/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=112352355179619401' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/112352355179619401'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/112352355179619401'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2005/08/perfect-python-ide.html' title='The Perfect Python IDE'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-112296252071478776</id><published>2005-08-02T01:54:00.000-04:00</published><updated>2005-08-02T02:02:00.716-04:00</updated><title type='text'>Lonely Coding</title><content type='html'>There are a lot of interested I've carried throughout my life. I've dabbled in so many arts and craftworkings and skills, but never really mastered anything. I've wanted to be a writter, a painter, a movie director, a programmer, and probably a dozen other creative endevours. I've shared all these with someone.&lt;br /&gt;&lt;br /&gt;There are three people in my life that I've ever really considered my best friends. Unlike the childhood movies you might be used to, we weren't like the four musketeers. As a matter of fact, for the most part they barely know each other. But what they all have in common is that at one point, we were supposed to do something big.&lt;br /&gt;&lt;br /&gt;I was supposed to start a successful art career alongside Ben.&lt;br /&gt;&lt;br /&gt;Matt and I were planning to build a solid tech company from our ideas.&lt;br /&gt;&lt;br /&gt;And, along with David, I may have made gripping films of a powerful nature.&lt;br /&gt;&lt;br /&gt;None of it came to pass, even though we are still great friends. Ben doesn't draw anymore, David never finishes any stories he writes, and Matt might be a decent SysAdmin, but he can't code a lick.&lt;br /&gt;&lt;br /&gt;So where does this leave me? After much of my life looking forward to realizing a dream of potential alongside one of my best friends, how do I drag myself through it alone? It makes me wonder how much I wanted to success, and how much I wanted it alongside a really good friend.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-112296252071478776?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/112296252071478776/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=112296252071478776' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/112296252071478776'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/112296252071478776'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2005/08/lonely-coding.html' title='Lonely Coding'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-112100407284434416</id><published>2005-07-10T09:55:00.000-04:00</published><updated>2005-07-10T10:01:12.850-04:00</updated><title type='text'>Blogger not cutting it</title><content type='html'>I don't think this website/blog is going to last any longer than any other I've had. I'm going back to the homegrown path. I've been finally learning how to use Atop and Nevow, and I'm on the path to building a decent and usable system with it.&lt;br /&gt;All the blog services I've looked into just lack something I want. Particularly, the kind of organizational system I'm looking for. I'm building my new FrogTongue with a Tag concept, where Tags are basically labels and any number of them can apply to any number of items of content. Tags can even imply that other tags are applied along with them. This will be very flexible, so I can cover a lot of different topics and keep things seperated where they need to be.&lt;br /&gt;I'll be releasing FrogTongue at some point in the very near future. It won't take me long, and I don't intend to do a lot with it. Involgo and Picos keep me busy enough, at is it.&lt;br /&gt;Thankfully, I'll have some help in that area, with a new coder joining the project. My best friend, actually, who is new to programming, but a very smart guy and I'll be giving him some tasks to do in Involgo, which will be very closed and controlled, so he can learn with some definate goals.&lt;br /&gt;Hopefully this all goes well, and we can get Involgo out the door before the end of the year.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-112100407284434416?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/112100407284434416/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=112100407284434416' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/112100407284434416'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/112100407284434416'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2005/07/blogger-not-cutting-it.html' title='Blogger not cutting it'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-111860816088717256</id><published>2005-06-12T11:52:00.000-04:00</published><updated>2005-08-02T01:53:58.423-04:00</updated><title type='text'>Fitting in with a Tough Crowd</title><content type='html'>&lt;p&gt;I began this post a while back, saved the draft, and pretty much forgot where I was going with it. Make what you will of it...&lt;br /&gt;&lt;br /&gt;&lt;/p&gt; &lt;p&gt;I want people to think that I'm cool. I want to impress people, and more importantly, I want to impress the kind of people who otherwise would impress me. I want all the other geeks to think I'm cool. Hey, I'm human.&lt;/p&gt; How do you impress a geek? You be a better geek, in some respect. You write a very useful application, or create an amazingly efficient library for handling a common task. You be the geek the other geeks wish to be. I want to create software, and I want that software to be useful, maybe even to the point of making the world even just a little bit better. If I manage to impress some fellow geeks along the way, then I say that is even better.&lt;br /&gt;&lt;p&gt;To the point I had in mind when I began writing this: I should but do not wish to change my coding style if I want to impress anyone. People commonly don't like my coding style, for various reasons, none of them good reasons, even. There really aren't good reasons to dislike a particular coding style, and I want to make it clear why I think so.&lt;/p&gt;Firstly, why I don't think we have no reason to dislike a particular coding style, and how this is different from liking a particular coding style, which I do think we should do. Source code is supposed to be human-readable instructions to computer, but in truth they are no more readable at the lowest level than an executable binary. In the lowest levels, they are all bits, after all. Source code, however, is stored in a convention of bits, which a computer can process not only as instructions to follow, but as instructions to display to the user. The computer, in other words, can display the text on the screen. The biggest mistake in the software development world is the lack of instructing the computer to display this source code text intelligently. Source code presentation has not improved much over the years. We went from displays of hard-delimited lines, to having word-wrapping functionality that didn't do a good job, so we still keep old rules around about the length of the lines, because that's easier in the short-term than just making the word-wrappers smarter. We got syntax-highlighting, and that was pretty basic, but it stuck and works OK. Code-folding came along a long time after that, and it spread quickly and helps a lot, and its at least something near to intelligent, but it still works with those hard-delimited lines.&lt;br /&gt;&lt;h3&gt;Why power of the tab&lt;/h3&gt;In itself and its symbolism&lt;br /&gt;&lt;p&gt;The tab is a controversial character, because it isn't really a character. The controversy began with the bad decisions in its original creation. The tab exists, really, in two forms, which work together and sometimes separately, causing most of the problems. The tab is a key on the keyboard and also a character present in many text files. It is the tab &lt;span style="font-style: italic;"&gt;character&lt;/span&gt;'s presence in source code that irks as many people as it makes happy.&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-111860816088717256?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/111860816088717256/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=111860816088717256' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/111860816088717256'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/111860816088717256'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2005/06/fitting-in-with-tough-crowd.html' title='Fitting in with a Tough Crowd'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-111838257503653677</id><published>2005-06-10T00:59:00.000-04:00</published><updated>2005-06-10T01:49:35.046-04:00</updated><title type='text'>Intel, Apple, and the Victims</title><content type='html'>&lt;p&gt;Right off the bat, I want to say that if you are starting a good band with a good sound, name your band "The Victims", because when I wrote that I immediately thought, "That would be a great name for a band."&lt;/p&gt;&lt;p&gt;So, to the topic at hand. I wanted a blog and every blogger with a sense of trend is talking about the Apple/Intel deals going on before our eyes, and behind our backs. But, not just behind our backs, but behind the backs of several big name companies and tech-world shakers who are going to become very nervous at board meetings for months to come, maybe years, maybe until the very last board meeting their particular company holds. If &lt;a href="http://apple.slashdot.org/article.pl?sid=05/06/09/1718225&amp;tid=118&amp;amp;tid=3"&gt;Cringley&lt;/a&gt; is right about Apple and Intel merging, or even if they are only striking lots of extremely friendly, exclusive deals, there is a lot at stake in the world, technologically, economically, socialogically, and politcally.&lt;/p&gt;&lt;p&gt;The first and most important point to make here is to simply point out the amazing sense of irony this situation brings to the table. Do you honestly and fully realize what is going on here? Apple, the only major competetor to Intel's prize architecture over the years, is poised to become their biggest customer. Apple on Intel chips is a strange a sounding phrase as Sadam marrying Mother Teresa!&lt;/p&gt;&lt;p&gt;This move is going to have a two-fold affect on the open source movement, particularly the Linux people. On one hand, everyone is going to have a much slicker choice of alternatives for Windows very soon. On the other hand, this will open up the idea of using something other than Windows to the mind of Average Joe User, so he will be more willing to take a chance on free systems like Linux. It will be interesting to see where these trends balence.&lt;/p&gt;&lt;p&gt;&lt;a href="http://apple.slashdot.org/comments.pl?sid=152214&amp;cid=12777362"&gt;Over&lt;/a&gt; on &lt;a href="http://www.slashdot.org/"&gt;Slashdot&lt;/a&gt;, this guy makes an interesting comment about the biggest mythical challenges to the Apple/Intel pair that could pop up. The "Microsoft acquires AMD" is a little bit of a stretch, but the IBM/Cell/Linux idea is probably a crowd favorite. I've been waiting to get my hands on a Cell chip for a long time now, and seeing what it might be able to do in the hands of all those skilled Linux developers and other open source coders is really a fantastic thought. I'd love to get a look under the hood myself.&lt;/p&gt;&lt;p&gt;HP is definately going to be in on this deal, in my opinion. They already make Apple's iPods, they have close ties to Intel (Pavilion and Celeron sure bring in a pretty chunk of change for the two of them), and with a move to Intel it will be much easier for Apple to shift the hardware work over to another party, and focus on the software work they are so blessed at.&lt;/p&gt;&lt;p&gt;These are the cards, and the major players have their hands. How will they play them? What wild cards do they have up their sleaves? I for one am very interested to see how this game plays out. I was about to purchase an iMac or an iBook, but now I'm going to step back and watch, and way, and hope for the best. Rought waters are ahead, but we might come out of it all for the better, or hell could break loose and we'll all be stuck in the mud.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-111838257503653677?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/111838257503653677/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=111838257503653677' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/111838257503653677'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/111838257503653677'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2005/06/intel-apple-and-victims.html' title='Intel, Apple, and the Victims'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13508012.post-111821544877829667</id><published>2005-06-08T03:17:00.000-04:00</published><updated>2005-06-08T03:24:08.783-04:00</updated><title type='text'>First Post</title><content type='html'>(That title is in honor of the great and silly internet past-time of First Posting)&lt;br /&gt;&lt;br /&gt;I ran a blog on my website (www.ironfroggy.com) a while back, with a very small number of readers. I probably knew each of the readers personally from before the blog, actually. The main reason I hosted it there was to roll my own blog technology. I actually wrote a very basic web-scripting system in Python, that let me embed posts, basic data, etc. into web pages. I even wrote my first GUI application as a tool for managing the posts and categories. To top it off, it was all multi-user enough for my wife to run one, too, and to merge our personal blogs from our homepages into the front page of the website, all in my own primitive scripting format.&lt;br /&gt;&lt;br /&gt;What a trip.&lt;br /&gt;&lt;br /&gt;Well, for the moment I can't spend the time maintaining my own server and all that, so I decided to move to a blog service. I wanted one that will still let me host from my own site, which blogger.com will let me do. And, when I saw I could post from my phone, I was hooked. Finally, a good way to vent on my lunch break at work!&lt;br /&gt;&lt;br /&gt;So, what should a blog be? What should my blog be. I suppose, as any blogger does, I would post about the things that interest myself. I will post about my views of the world, my ideas for software and technology, and maybe some thoughts on my first book I am slowly writing.&lt;br /&gt;&lt;br /&gt;This I write for myself, to take my jumbled mind and lay it down, for a moment, into a coherent enough a set of ideas that I can make sense of it, for a moment. Perhaps, just maybe, you can do the same.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13508012-111821544877829667?l=ironfroggy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ironfroggy.blogspot.com/feeds/111821544877829667/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13508012&amp;postID=111821544877829667' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/111821544877829667'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13508012/posts/default/111821544877829667'/><link rel='alternate' type='text/html' href='http://ironfroggy.blogspot.com/2005/06/first-post.html' title='First Post'/><author><name>Calvin Spealman</name><uri>http://www.blogger.com/profile/07161631946662126734</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
