<?xml version='1.0' encoding='utf-8' ?>
<!--  If you are running a bot please visit this policy page outlining rules you must respect. http://www.livejournal.com/bots/  -->
<rss version='2.0' xmlns:lj='http://www.livejournal.org/rss/lj/1.0/' xmlns:media='http://search.yahoo.com/mrss/' xmlns:atom10='http://www.w3.org/2005/Atom'>
<channel>
  <title>t3knomanser&apos;s Fustian Deposits</title>
  <link>http://t3knomanser.livejournal.com/</link>
  <description>t3knomanser&apos;s Fustian Deposits - LiveJournal.com</description>
  <lastBuildDate>Sat, 07 Nov 2009 03:39:30 GMT</lastBuildDate>
  <generator>LiveJournal / LiveJournal.com</generator>
  <lj:journal>t3knomanser</lj:journal>
  <lj:journalid>96345</lj:journalid>
  <lj:journaltype>personal</lj:journaltype>
  <atom10:link rel='hub' href='http://pubsubhubbub.appspot.com/' />
  <image>
    <url>http://l-userpic.livejournal.com/39047207/96345</url>
    <title>t3knomanser&apos;s Fustian Deposits</title>
    <link>http://t3knomanser.livejournal.com/</link>
    <width>100</width>
    <height>100</height>
  </image>

<item>
  <guid isPermaLink='true'>http://t3knomanser.livejournal.com/1034119.html</guid>
  <pubDate>Sat, 07 Nov 2009 03:39:30 GMT</pubDate>
  <title>Remy &amp; Minna&apos;s Guide to Buying a Home, pt. 1</title>
  <link>http://t3knomanser.livejournal.com/1034119.html</link>
  <description>I&apos;m putting Minna&apos;s name on this, but she may desire edits. Right now, we&apos;re in the process of buying our first home, and we&apos;ve taken our time doing it. The main reason for taking our time: avoiding the mistakes so endemic to buying a home, and learning about the process. We initially started the homebuying process before leaving Albany, over two years ago. We&apos;ve been engaged in homebuying ever since.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Homebuying&lt;/h2&gt;&lt;h3&gt;The Process&lt;/h3&gt;Before you can buy a home, you need to understand what you&apos;re in for. This is a high-level view of the steps:
&lt;ul&gt;
&lt;li&gt;Save&lt;/li&gt;
&lt;li&gt;Find a place&lt;/li&gt;
&lt;li&gt;Put in an offer&lt;/li&gt;
&lt;li&gt;Get it inspected&lt;/li&gt;
&lt;li&gt;Get a mortgage&lt;/li&gt;
&lt;li&gt;Close&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;Each of these steps is surprisingly complicated. At &lt;i&gt;every&lt;/i&gt; step, someone is out to rip you off. At least one someone, probably a bunch. The entire industry of real estate is built around ripping people off. So this homebuying guide is going to focus on avoiding getting ripped off, and avoiding the many pitfalls that most first-time homebuyers fall into. It&apos;s only through some good fortune that we&apos;ve avoided some of them, and some education has helped us avoid the rest.&lt;br /&gt;&lt;br /&gt;One note: this assumes that we&apos;re talking about conventional, fixed rate mortgages. For some people, an adjustable rate mortgage may make sense, but in most cases, it&apos;s a risky gamble. ARMs played a big role in the economic problems we&apos;re seeing today, so let&apos;s just avoid them and let people who have some experience buying and selling property worry about them. A first time homebuyer should &lt;i&gt;never&lt;/i&gt; consider an ARM.&lt;br /&gt;&lt;a name=&quot;cutid1&quot;&gt;&lt;/a&gt;&lt;br /&gt;&lt;h3&gt;Homebuying Myths&lt;/h3&gt;&lt;br /&gt;&lt;h4&gt;You &lt;i&gt;have&lt;/i&gt; to buy a home!&lt;/h4&gt;&lt;br /&gt;From now on, if someone tells you, &quot;Renting is just throwing money away!&quot;, kick them in the groin. &lt;i&gt;Hard&lt;/i&gt;. Renting is &lt;i&gt;not&lt;/i&gt; throwing money away. Renting is a straightforward economic exchange. The property owner provides a service, and the renter pays a fair market value for said service. If you were homeless and paying rent, then you&apos;d be throwing money away. You&apos;re paying money for a service.&lt;br /&gt;&lt;br /&gt;The difference between renting and owning is that, when you own, &lt;i&gt;some&lt;/i&gt; of your mortgage payment is becoming equity, which I&apos;ll discuss in a moment. Short version: you get to keep some of the money you pay into a mortgage, you keep none of the money you pay in rent.&lt;br /&gt;&lt;br /&gt;This is true, &lt;i&gt;however&lt;/i&gt;, renting gives you freedom that you don&apos;t get owning. If you don&apos;t like the place you&apos;re renting, you&apos;re stuck with it, at most, for a year. Maybe less, if there&apos;s good reasons for breaking lease. This means you can rent a place that you&apos;ll never be willing to own. For example, Minna and I have been renting a 1BR apartment, but we&apos;d never &lt;i&gt;buy&lt;/i&gt; a one bedroom place. In the long term, we want more space, but for now, we&apos;re willing to settle so that we can save money.&lt;br /&gt;&lt;h4&gt;Homeowning builds equity!&lt;/h4&gt;&lt;br /&gt;This isn&apos;t exactly a myth. Yes, owning a home builds equity. The question is: is it a &lt;i&gt;good way&lt;/i&gt; to build equity? Absolutely &lt;i&gt;not&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;Equity, simply put, is material wealth. It&apos;s money or property that can be turned into money. The cash in your wallet is equity. The money in your savings account is equity. Your car is equity. Anything you own with monetary value is equity.&lt;br /&gt;&lt;br /&gt;Buying a home &lt;i&gt;does&lt;/i&gt; allow you to build equity. Each monthly payment you make against your mortgage is split between principal (the money you borrowed) and interest (the bank&apos;s profit). The only part that is equity is the principal.&lt;br /&gt;&lt;br /&gt;At the start of a mortgage, &lt;i&gt;most&lt;/i&gt; of your monthly payment is interest. Very little of it goes against your principal. With each successive payment, you chip away at the principal, and slowly but surely, your interest payments drop. By the end of a mortgage, most of your payment is against the principal, very little of it is interest.&lt;br /&gt;&lt;br /&gt;So, think about it. Which is going to build equity faster? Paying $1,000 as a mortgage payment every month, or paying $1,000 into your savings account. In the first case, most of that $1,000 is you paying interest, in the last case, &lt;i&gt;the bank pays you interest&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;Assume you can spend $1,000 a month for living space, and assume the best mortgage you can get offers 5% interest. Assume the best rent you can find is $500/mo. If you take out a $100,000 mortgage, your monthly payment is going to be $994, and for the first year, more than $500 of that is interest. After 14 months, the &lt;i&gt;rental&lt;/i&gt; payment exceeds the &lt;i&gt;interest payment&lt;/i&gt;. But go back to myth #1- you&apos;re willing to rent a place you wouldn&apos;t be willing to buy. What you can &lt;i&gt;rent&lt;/i&gt; for $500/mo. is probably nicer than what you can mortgage for $1,000/mo. This, of course, varies by region and economic conditions. But remember: equity is just money. There are plenty of ways to save money, such as, &lt;i&gt;saving money&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;Note, above, I assumed that you weren&apos;t investing the money you saved by renting. If you did, it would probably beat buying for the first few years. This is important: renting, in the near term, beats buying in the same term, in most cases, in most economies. In the &lt;i&gt;long&lt;/i&gt; term, buying may win. &lt;a href=&quot;http://www.nytimes.com/2007/04/10/business/2007_BUYRENT_GRAPHIC.html?_r=2&amp;amp;oref=slogin&quot;&gt;The NYTimes has a good rent vs. buy&lt;/a&gt; calculator. Plug in numbers, and you can see how long it takes for owning to beat renting. This graphic assumes a 30 year mortgage, but the advanced settings let you change that.&lt;br /&gt;&lt;br /&gt;It&apos;s important to note: if Minna and I were happy living in a one bedroom apartment for the rest of our lives, &lt;i&gt;owning would never beat renting&lt;/i&gt;. We would never actually save money by owning, unless rent or property value were increasing at much better than inflation.&lt;br /&gt;&lt;h4&gt;The Intangibles make it worthwhile&lt;/h4&gt;&lt;br /&gt;This isn&apos;t a &lt;i&gt;myth&lt;/i&gt; so much as personal preference. If you own a place, you can paint the walls pink. You can change the light fixtures. You can drill a hole in a wall, line it with silicone, and fuck the shit out of it, if you want. If you rent, you can&apos;t make many modifications, in general. It varies by landlord (my landlord in Albany didn&apos;t care what you did so long as it was reverted to rentable condition).&lt;br /&gt;&lt;br /&gt;If you really want to have pink walls that you can fuck, then by all means, &lt;i&gt;buy&lt;/i&gt;. But if you don&apos;t really care what color the walls are, don&apos;t figure intangibles into the equation.&lt;br /&gt;&lt;h4&gt;Your Realtor is there to help&lt;/h4&gt;&lt;br /&gt;It doesn&apos;t get much more false than this. When you want to buy a place, you will often retain a buyer&apos;s agent to help you in the transaction. You probably &lt;i&gt;should&lt;/i&gt; have a buyer&apos;s agent. But you should never, ever, trust a buyer&apos;s agent.&lt;br /&gt;&lt;br /&gt;You won&apos;t pay a dime for retaining a buyer&apos;s agent, in most cases. Buyer&apos;s agents are paid in commission &lt;i&gt;by the seller&lt;/i&gt;. In PA, for example, 6% of the sales price is paid in commission. 3% to the seller&apos;s agent, and 3% to the buyer&apos;s agent.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;The more you spend, the more your agent makes&lt;/i&gt;. At a fundamental level, your interests (the best property for the lowest price) are fundamentally opposed to your agent&apos;s interests (the more you spend, the more they take home). Until you&apos;ve found a place you totally want to buy because it is absolutely perfect, &lt;i&gt;do not listen to your agent&lt;/i&gt;. You should pick the places you want to see, you should make the appointments for showings. &lt;i&gt;You&lt;/i&gt; decide what you think a fair offer is based on your own research (tools like &lt;a href=&quot;http://zillow.com&quot;&gt;Zillow&lt;/a&gt; are invaluable for this). Know, intimately, how much you&apos;re willing to spend, and play with your preferred mortgage calculator to understand what you can afford.&lt;br /&gt;&lt;br /&gt;Not only that, but there&apos;s a knowledge disparity. They buy and sell houses every day. You are going to do it a handful of times in your entire life. This gives a realtor an incredible advantage over you. You need their knowledge, but they also are dealing from a position of power: they can screw you up the ass and you won&apos;t even know what just happened. The only way to protect yourself is &lt;i&gt;research research research&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;It&apos;s also worth mentioning &lt;a href=&quot;http://www.naeba.org/&quot;&gt;exclusive buyer&apos;s agents&lt;/a&gt;- they work for a flat fee, not commission, and never sell property. If you&apos;re worried about potential conflicts of interest, this is an option. We considered going this route, but we found an agent we liked, and decided to use her. You may save money doing this- since an EBA doesn&apos;t take commission, the seller doesn&apos;t have to pay them as much, and may be willing to take that out of the sale price.&lt;br /&gt;&lt;h4&gt;Just get a starter home&lt;/h4&gt;&lt;br /&gt;A starter home is about the worst thing you can possibly do, financially. The idea of a &quot;starter home&quot;, is that you buy a property that you don&apos;t want, so that you can &quot;build equity&quot; and sell it in a few years to buy what you &lt;i&gt;do&lt;/i&gt; want. This assumes that your property increases or holds its value, that you&apos;ve actually chipped away at the principal owed, and that someone is willing to buy your property. Plus, selling a home isn&apos;t free; you have to pay some percent of the sale price to the realtors, plus transfer taxes (2% of the sale price, split between the buyer and seller, but it does vary by region), and depending how desperate you are to sell, meeting some of the seller&apos;s demands for repairs/enhancements.&lt;br /&gt;&lt;br /&gt;As a rule, don&apos;t buy a property unless you&apos;re planning to be there for 10 years.                     Otherwise, you&apos;re gambling that the real estate market is going to be in the state you hope it&apos;s in when you try to sell.&lt;br /&gt;&lt;h4&gt;You can save on taxes!&lt;/h4&gt;&lt;br /&gt;Yes, you can. Every dollar you spend in interest is tax deductible. &lt;i&gt;But they&apos;re still dollars you spend&lt;/i&gt;. If you&apos;re teetering on the edge of one tax bracket, the loan interest may send you into a lower tax bracket, and save you money. But with each loan payment, the amount of interest you owe is going to decrease. In the first year, you may pay $1,000 in interest, but by the 10th year, you&apos;ll only be paying $200 in interest.&lt;br /&gt;&lt;br /&gt;And either way, &lt;i&gt;you&apos;re still paying interest&lt;/i&gt;. You may as well donate to charity instead, if you just want to reduce your income to save on taxes. It&apos;s the same deal, either way. The difference is who gets the money: a charity that means something to you, or the bank.&lt;br /&gt;&lt;h4&gt;A Thirty Year Mortgage is fine&lt;/h4&gt;&lt;br /&gt;Again, not exactly a myth, but you can save a great deal with a 15 or 20 year mortgage. In the short term, your payments will be higher, but in the long term, you will see a significant cost savings. Minna and I need to borrow $159,950 to buy the place we&apos;re interested in.&lt;br /&gt;&lt;br /&gt;Current rates for a 15 year mortgage mean we will have payments of $1,200 with 4 3/8% interest (4.375%). At the end of the loan, we would have paid $159,950 against the principal, and $58,464 in interest, for a total payment of $218,000.&lt;br /&gt;&lt;br /&gt;In a thirty year mortgage, our monthly payment would only be $860, but by the end of the loan (at 5% interest), we would have paid &lt;i&gt;$309,000&lt;/i&gt;. Short term savings turn into long term losses. Certainly, one could invest the difference (nearly $400/mo.) into an index fund and expect about 10% returns over the course of the loan- at the risk of being leveraged for 30 years. And there&apos;s always the selling problem- if the price of your home tanks, due to market fluctuations, you may be up shit creek when you try to sell. In a 15 year mortgage, you build up equity &lt;i&gt;much&lt;/i&gt; faster, for less expense to yourself, and hence have more freedom to sell.&lt;br /&gt;&lt;br /&gt;Your down payment controls how much you&apos;re going to need to borrow, so this leads right into the:&lt;br /&gt;&lt;h2&gt;Steps of buying a home&lt;/h2&gt;&lt;br /&gt;&lt;h3&gt;Save!&lt;/h3&gt;&lt;br /&gt;If you wanted to buy in the neighborhood I live in, a basic two bedroom home runs more than $200K. That means, just to buy the home with 20% down, you need at least &lt;i&gt;$40,000&lt;/i&gt;. If you don&apos;t have 20% down, you have to pay mortgage insurance, which really &lt;i&gt;is&lt;/i&gt; throwing money away. Every region, of course, is different. On the West Coast, $200K would buy you a small closet, in Manhattan, it might get you a mailbox. In a more rural area, $200K is a mansion.&lt;br /&gt;&lt;br /&gt;Before you buy a home, you need to research how much a home you like goes for in your area. It varies a great deal, based on geography. Only you know what you like, and only you know what you&apos;re looking to spend each month. Don&apos;t assume your income is going to increase every year, either- economic contractions like the one we&apos;re in put lie to that strategy.&lt;br /&gt;&lt;br /&gt;In addition to that 20% down ($40K in my example), you&apos;re going to need to pay closing costs (a generous assumption is 25% of your down payment, so in this example, another $10K). This means, to buy a $200,000 home, you need at least $50,000 in the bank. And you don&apos;t want to clear out your entire savings- you may have an emergency or want to improve the home you purchase.&lt;br /&gt;&lt;br /&gt;Let&apos;s say you buy a $200,000 place and get a 15 year mortgage. If you only did the minimum down payment, you&apos;re facing a $1,200/mo. payment. If you only have $1,000 budgeted for housing, that may be too much to spend. But if you did a 30% down payment, you&apos;d only be facing a $1,062 monthly payment: much closer to your goal.&lt;br /&gt;&lt;br /&gt;The more you save, the easier it is to buy a house. And the more you have on hand, the easier it is for you to get the home you want, instead of settling for a &quot;starter home&quot;.&lt;br /&gt;&lt;h3&gt;Find a Place&lt;/h3&gt;&lt;br /&gt;Once upon a time, a realtor was your gateway to the wild, wonderful world of the Multi-List Service, MLS. If you wanted to find a property for sale, your realtor would have to do the research and get back to you with listings. No more!&lt;br /&gt;&lt;br /&gt;First, any realtor worth having can give you access to the MLS system online, and you&apos;ll be able to do the search yourself. Second, many tools have access to MLS already, like &lt;a href=&quot;http://trulia.com&quot;&gt;Trulia&lt;/a&gt;, which I used a great deal during my home search. And don&apos;t overlook Craigslist either! (I actually found this place on Craigslist first)&lt;br /&gt;&lt;br /&gt;Trulia lags by a few days, and depending on how hungry the market is, that time may make the difference. Honestly, though, you &lt;i&gt;don&apos;t&lt;/i&gt; want to get in a bidding war, so that lag just means you notice things that haven&apos;t already gotten scooped up.&lt;br /&gt;&lt;br /&gt;If you&apos;ve already secured a buyer&apos;s agent, you can get them to show you properties you&apos;re interested in. If you haven&apos;t, you can contact the selling agent (attached to the listing), or see if there&apos;s an open house. What worked well for us, was talking to the selling agents. We met one we really liked, so when we found a place to buy, we called her to represent us in the transaction. &lt;br /&gt;&lt;br /&gt;How do you know which place is right for you? Obviously, price is a big factor, but most important: you have to like the place. Sadly, it&apos;s harder to know that than you think it is. If you let yourself get sucked up into &quot;I MUST BUY A HOUSE&quot; mode, you&apos;ll find yourself liking things that, a few months later, you would regret. Like somebody desperate for a date, you settle and then find yourself stuck with someone that you can&apos;t get rid of.&lt;br /&gt;&lt;br /&gt;The best thing to do is look at a bunch of places. Your brain is instantly going to give you an emotional vibe off of them. Listen to that vibe, and then cross-check it with your common sense. Spend some time deciding how much time and effort you&apos;re willing to put into making a place &quot;yours&quot;, the &quot;must have&quot; features, etc. Jonah Leher&apos;s book, &lt;i&gt;How We Decide&lt;/i&gt; talks a bunch about how people choose homes, and surprisingly, an emotional decision usually makes people the happiest.&lt;br /&gt;&lt;h3&gt;Putting an Offer In&lt;/h3&gt;&lt;br /&gt;Okay, you&apos;ve found a place. You love it. But real estate isn&apos;t like the supermarket- you can&apos;t just drop coin and walk away with it. Putting in an offer is a formal ritual, and realtors are the priests.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Research the local market&lt;/i&gt;. While your realtor should know what fair prices are for property in the area, remember what I said earlier: their interests and yours are not the same. Listen to them, but don&apos;t trust them. Keep in mind that they&apos;d rather close the transaction faster than cheaper, and you&apos;ll be all right.&lt;br /&gt;&lt;br /&gt;Your local county website will likely have valuable information about the property, including its last tax assessment and the previous purchase price. Knowing what the seller paid, and when, gives you a feel for how much of a profit they&apos;re trying to turn. They&apos;ve likely put at least some work into it, so if they&apos;re trying to turn a big profit, ask your realtor to find out what they&apos;ve done. They may be trying to turn a big profit, but they may just be trying to recoup big expenses.&lt;br /&gt;&lt;br /&gt;Regardless of all this, if you&apos;ve done your homework, you&apos;ve got an intuitive feel for what a place like this should cost. Go with your instinct, run it past the realtor, and then decide how much &lt;i&gt;under that&lt;/i&gt; you think you should offer. Usually, if there&apos;s already a bid on the place, the selling agent will let you know. Don&apos;t get involved in a bidding war. My advice, and you can decide if you want to apply this or not, is not to waste time. Decide what you&apos;re willing to pay, offer that, and say it&apos;s your &quot;last and best&quot;. You won&apos;t move up above that point, so it&apos;s up to the other prospective buyer to beat your offer. This prevents the seller from being able to keep going back and forth, getting you up a grand here, them up a grand there, until you&apos;re paying more than you want. Maybe you like negotiating, but me, I just wanted to get it over with. If there&apos;s another offer on the table, just go in with your best offer you&apos;re willing to make, and let the chips fall where they may.&lt;br /&gt;&lt;br /&gt;Your realtor will help you assemble the offer, and at this point, it is very valuable to be pre-approved for a mortgage. Call your bank, or any other lender, and get them to run you through the process. &lt;i&gt;You aren&apos;t committed to anything&lt;/i&gt;, and neither are they. They&apos;ve just stated that they&apos;d theoretically be willing to lend you $X amount with Y% interest. A pre-approval letter shows the seller that you&apos;re not wasting their time and could probably get the mortgage. This does require a credit check, so only do it when you&apos;re putting your offer in.&lt;br /&gt;&lt;br /&gt;The other thing you need to do is provide &quot;hand money&quot;. Again, the seller needs to know that you&apos;re not wasting their time. So, when you submit your offer, you include a check for 5-10% of your offer. This hand money is your commitment to the deal. It gets put into an escrow account, and will be part of your down payment when you close, if your offer is accepted. If your offer &lt;i&gt;isn&apos;t&lt;/i&gt; accepted, the check just gets ripped up, and nobody gets your money.&lt;br /&gt;&lt;br /&gt;But, if you flake out and walk away from the deal for no good reason &lt;i&gt;after the seller accepts your offer&lt;/i&gt;, the seller gets your hand money. There are contingencies that let you walk away: if you actually &lt;i&gt;can&apos;t&lt;/i&gt; get a mortgage, if there&apos;s a deal-breaker in the home inspection, for example. But you must make an honest effort to see it through to the end, or you lose your hand money.&lt;br /&gt;&lt;br /&gt;Despite that, once the seller accepts your offer, it&apos;s easier for you to walk away than them. But it&apos;s still &lt;i&gt;not&lt;/i&gt; a done deal.&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;The remaining steps, getting an inspection, getting a mortgage, and closing, are ones I haven&apos;t done yet. But, once your offer has been accepted, you have a clock ticking to accomplish two major tasks: get an inspection and apply for a mortgage.&lt;br /&gt;&lt;br /&gt;Depending on your local rules, and the stuff you put in your offer, you&apos;re going to have about 10-15 days to get these tasks done, so it is important to jump on them quickly. I applied for a mortgage today, but it takes days or weeks to get an approval back (depends on the bank, your credit rating, and how their underwriting process works). But when you apply, you &lt;i&gt;do&lt;/i&gt; lock in your interest rate, usually for 60 days. This means, when we&apos;re approved, we&apos;re locked in for a 4.375% interest rate which is &lt;i&gt;suhweet&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;As for the inspection, you do want to find an American Society of Home Inspectors (ASHI) certified inspector, and there&apos;s a lot of things to consider in that step.&lt;br /&gt;&lt;br /&gt;Everything I&apos;ve covered so far in this post has been stuff I&apos;ve &lt;i&gt;actually done&lt;/i&gt;. Since I haven&apos;t actually gotten approved for a mortgage or had a home inspected, I will refrain from commenting further on them, for now. Expect a part two next week, discussing the inspection, and future installments as I cover the remaining steps.</description>
  <comments>http://t3knomanser.livejournal.com/1034119.html</comments>
  <category>home buying</category>
  <category>howto</category>
  <category>personal</category>
  <lj:security>public</lj:security>
  <lj:reply-count>1</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://t3knomanser.livejournal.com/1033427.html</guid>
  <pubDate>Tue, 03 Nov 2009 22:03:37 GMT</pubDate>
  <title>Well, that was sudden</title>
  <link>http://t3knomanser.livejournal.com/1033427.html</link>
  <description>Last week, we noticed a listing for a property that was interesting. Our sort of place, from the pictures. Not &lt;i&gt;perfectly&lt;/i&gt; located, but well located for us. It&apos;s one mile from all the little shops we like, and closer to even some of the other shops we like. Near a park, on a quiet, quiet street.&lt;br /&gt;&lt;br /&gt;We saw an open house on Sunday, got a &lt;a href=&quot;http://jillportland.com/home.asp&quot;&gt;buyer&apos;s agent&lt;/a&gt; and saw it again on Monday night, went back to her office, wrote up an offer, and submitted it. It was accepted today. So… we&apos;re buying a house, in Shadyside. 2BR, 1.5 bath. The first floor is a gorgeous open plan space. Kitchen is brand new; the stove has never even been used. A new patio was installed. Furnace, hot water, all new. The upstairs isn&apos;t quite as nice, but certainly nice enough. The washer and dryer are antiques and will need to be replaced.&lt;br /&gt;&lt;br /&gt;It&apos;s not under contract with us yet; we need the realtor to bring over some paperwork. Tomorrow I&apos;ll try and hire an inspector, and then we&apos;ll work on getting the mortgage. We&apos;re excited, and a little trepidacious.</description>
  <comments>http://t3knomanser.livejournal.com/1033427.html</comments>
  <category>home buying</category>
  <category>personal</category>
  <lj:security>public</lj:security>
  <lj:reply-count>1</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://t3knomanser.livejournal.com/1033102.html</guid>
  <pubDate>Sun, 25 Oct 2009 23:39:40 GMT</pubDate>
  <title>Email to Notational Velocity : an Idea Mining Solution</title>
  <link>http://t3knomanser.livejournal.com/1033102.html</link>
  <description>I&apos;ve discussed &lt;a href=&quot;http://t3knomanser.livejournal.com/1030483.html&quot;&gt;Idea Mining&lt;/a&gt; before: every idea that pops into your head, jot it down. When you&apos;re looking for inspiration, or have some time to develop &lt;i&gt;some&lt;/i&gt; idea, poke around in your mine and see what grabs you.&lt;br /&gt;&lt;br /&gt;I started using Evernote, which had the advantage of syncing, but recently switched to &lt;a href=&quot;http://notational.net/&quot;&gt;Notational Velocity&lt;/a&gt;. It lacks syncing, but is much more lightweight. When I&apos;m sitting at my computer, the amount of friction in jotting down new notes is minimized. It&apos;s a great tool, but by switching to it, I gave up syncing. This means, for example, I can&apos;t jot ideas on my phone and have them show up on my computer.&lt;br /&gt;&lt;br /&gt;At least, not by default. But I&apos;m not going to be thwarted by such details. So, I sat down, banged out some settings and scripts that let you sync emails in your GMail account to Notational Velocity.&lt;br /&gt;&lt;br /&gt;What follows is a high level overview of the steps. It&apos;s not hard to do, although it took a little doing to figure out.&lt;br /&gt;&lt;br /&gt;You&apos;re going to need the following things:
&lt;ul&gt;
&lt;li&gt;OSX Leopard or later&lt;/li&gt;
&lt;li&gt;Developer tools installed (on your OSX install disk, or downloaded from &lt;a href=&quot;http://developer.apple.com&quot;&gt;Apple&lt;/a&gt;)
&lt;li&gt;Notational Velocity&lt;/li&gt;
&lt;li&gt;A Gmail account with IMAP enabled&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;&lt;h2&gt;Configure Notational Velocity&lt;/h2&gt;&lt;br /&gt;Once you have Notational Velocity installed, you&apos;re going to need to make one settings change: on the Notes tab of the Preferences window, change &quot;Store and read notes on disk as:&quot; to &lt;i&gt;Plain Text Files&lt;/i&gt;. Note also the Folder that you store your notes in on this pane.&lt;br /&gt;&lt;h2&gt;Configure Gmail&lt;/h2&gt;You need to enable IMAP from the settings pane.&lt;br /&gt;&lt;br /&gt;You also need to configure a filter for a pseudo-address. In the filter section of settings, create a filter along these lines:&lt;br /&gt;&lt;blockquote&gt;Matches: to:([your email]+mine@gmail.com)&lt;br /&gt;Do this: Skip Inbox, Apply label &quot;Notes&quot;&lt;/blockquote&gt;&lt;br /&gt;This means that, every time you send an email to [your address]+mine@gmail.com, it&apos;s actually going to come to your account, but get labeled with Notes (which is a folder in IMAP).&lt;br /&gt;&lt;h2&gt;Get SSH Prepared&lt;/h2&gt;&lt;br /&gt;This step, sadly, does involve a little command-lineage. You can only connect to Gmail&apos;s IMAP interface over SSH, and fetchmail needs the certificates where it can find them for this to work.&lt;br /&gt;&lt;br /&gt;From &lt;code&gt;/Applications/Utilities&lt;/code&gt; fire up Terminal, and type the following:&lt;br /&gt;&lt;code&gt;openssl s_client -connect imap.gmail.com:993 -showcerts&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;This command will output a big pile of of text, but up at the top, you&apos;ll see a large block of output that starts with:&lt;br /&gt;&lt;code&gt;&lt;blockquote&gt;-----BEGIN CERTIFICATE-----&lt;br /&gt;(a big bunch of characters here)&lt;br /&gt;-----END CERTIFICATE-----&lt;/blockquote&gt;&lt;/code&gt; (there are two of these blocks, you want the first one, which is actually for &lt;code&gt;imap.gmail.com&lt;/code&gt;.&lt;br /&gt;&lt;br /&gt;Copy that text (including the BEGIN and END lines) and save it to a file called &lt;code&gt;~/.ssl/certs/gmailimap.pem&lt;/code&gt;. You will likely need to create those directories before you can save it.&lt;br /&gt;&lt;br /&gt;You need one more certificate, which you can download from &lt;a href=&quot;http://www.geotrust.com/resources/root_certificates/index.asp&quot;&gt;here&lt;/a&gt; (where it says &quot;Equifax Secure Certificate Authority (Base-64 encoded X.509&quot;), and save it as &lt;code&gt;~/.ssl/certs/equifax.pem&lt;/code&gt;.&lt;br /&gt;&lt;br /&gt;To make these certs usable by fetchmail, you have to run one last command at the command line:&lt;br /&gt;&lt;code&gt;c_rehash ~/.ssl/certs&lt;/code&gt;. &lt;br /&gt;&lt;br /&gt;This step is a lot easier if you know your way around the command line. The bulk of this SSH section was adapted from &lt;a href=&quot;http://hasseg.org/blog/?p=161&quot;&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;h2&gt;Notes.pl&lt;/h2&gt;Download this &lt;a href=&quot;http://dl.getdropbox.com/u/2015572/notes.pl&quot;&gt;file&lt;/a&gt; and save it in &lt;code&gt;~/Scripts&lt;/code&gt; (a directory you&apos;ll need to create). You&apos;ll also need to make it executable, which involves another command-line bit:&lt;br /&gt;&lt;code&gt;chmod +x ~/Scripts/notes.pl&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Open that file in a text editor and change the first two lines per the instructions in the file. Basically, you need to tell it where to find your mail (&lt;code&gt;/var/mail/[your mac username]&lt;/code&gt;) and your Notes folder (remember I told you to keep track of that).&lt;br /&gt;&lt;br /&gt;This script parses your local Unix mail (deep inside OSX, it has nothing to do with Mail.app or Thunderbird or anything you normally use for email) and turns what&apos;s there into notes in Notational Velocity.&lt;br /&gt;&lt;br /&gt;We&apos;re almost done. The last step is to…&lt;br /&gt;&lt;h2&gt;Configure Fetchmail&lt;/h2&gt;If you&apos;re using Snow Leopard or Leopard, &lt;code&gt;fetchmail&lt;/code&gt; is already installed. It&apos;s a powerful tool for one task: downloading email from remote systems and putting them on yours. Specifically, into the local Unix mail.&lt;br /&gt;&lt;br /&gt;Fetchmail works off of a configuration file. Create a file called &lt;code&gt;~/.fetchmailrc&lt;/code&gt;. In this file, you&apos;ll need to paste these settings:&lt;br /&gt;&lt;code&gt;&lt;blockquote&gt;set daemon 1300 #the number is the number of seconds between polling attempts&lt;br /&gt;&lt;br /&gt;poll imap.gmail.com proto IMAP port 993 user &quot;youraddress@gmail.com&quot; password &quot;yourpassword&quot; keep folder &quot;Notes&quot; ssl mda &quot;/usr/bin/procmail -d %T&quot; postconnect &quot;~/Scripts/notes.pl &amp;&amp; &amp;gt; /var/mail/yourmacusername&quot;&lt;/blockquote&gt;&lt;/code&gt;&lt;br /&gt;Change &quot;youraddress&quot; and &quot;yourpassword&quot; to your Gmail username and password. Change &quot;yourmacusername&quot; to whatever your username on your Mac is. It may contain spaces, in which case you&apos;ll need to escape them like so: &lt;code&gt;/var/mail/Remy\ Porter&lt;/code&gt;. Note, that is a &quot;\&quot; followed by a space.&lt;br /&gt;&lt;br /&gt;To test this much, send yourself some emails that should be turned into notes (don&apos;t forget the +mine!), and then, at the command prompt, simply type the command:&lt;br /&gt;&lt;code&gt;fetchmail&lt;/code&gt;.&lt;br /&gt;&lt;br /&gt;Once it works, we want to make sure it runs every time you log on, so download &lt;a href=&quot;http://dl.getdropbox.com/u/2015572/fetchmail.command&quot;&gt;this file&lt;/a&gt; and put it in your scripts folder. From the command line, type:&lt;br /&gt;&lt;code&gt;chmod +x ~/Scripts/fetchmail.command&lt;/code&gt;.&lt;br /&gt;&lt;br /&gt;Now, in your OSX System Preferences, go to Accounts, select yours, and add a Login Item that runs &lt;code&gt;fetchmail.command&lt;/code&gt;.&lt;br /&gt;&lt;br /&gt;TADA!&lt;br /&gt;&lt;h2&gt;Using It&lt;/h2&gt; Now that you&apos;ve got it set up, send an email to youraccount+mine@gmail.com. The subject line is the note title, in Notational Velocity, and the body is the content of the note. It&apos;ll sync however frequently you want it to, by modifying the indicated line in your &lt;code&gt;.fetchmailrc&lt;/code&gt;. &lt;br /&gt;&lt;br /&gt;Also, if you want to be able to &lt;i&gt;read&lt;/i&gt; notes on your phone, you could use something like &lt;a href=&quot;http://getdropbox.com&quot;&gt;Dropbox&lt;/a&gt;, which is what I do. Also, the way this works is to &lt;i&gt;append&lt;/i&gt; to an existing note. There&apos;s no real way to &lt;i&gt;edit&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Warnings&lt;/h2&gt;I&apos;m not super sure how this will work if you have multiple accounts on your Mac that you want to use this. You may need to instead configure &lt;code&gt;fetchmail.command&lt;/code&gt; to run as a system startup item, and then there may be issues with using &quot;~/Scripts&quot;- you may need to use an absolute path. The Googles are your friend, if that&apos;s what you decide you want to do.</description>
  <comments>http://t3knomanser.livejournal.com/1033102.html</comments>
  <category>osx</category>
  <category>programming</category>
  <category>geek</category>
  <category>ideamine</category>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://t3knomanser.livejournal.com/1032954.html</guid>
  <pubDate>Thu, 15 Oct 2009 01:32:34 GMT</pubDate>
  <title>Joseph Campbell Killed Genre Fiction</title>
  <link>http://t3knomanser.livejournal.com/1032954.html</link>
  <description>This has been irking me for a long time, but &lt;a href=&quot;http://www.antipope.org/charlie/blog-static/2009/10/why_i_hate_star_trek.html&quot;&gt;in light of Stross&apos;s anti-Star Trek rant&lt;/a&gt; and this rant about &lt;a href=&quot;http://io9.com/5381793/is-science-fiction-feminized-or-is-it-sexist-both&quot;&gt;sexist/feminist influences in SF&lt;/a&gt;, I think it&apos;s time for me to put this idea down on page.&lt;br /&gt;&lt;br /&gt;Joseph Campbell killed genre fiction. Mostly SF, but genre fiction in general. It wasn&apos;t his fault. Joseph Campbell did something fairly brilliant: he saw a way to take traditional stories and build them together into a single taxonomy. He found elements that crossed cultures (although it&apos;s definitely got a Western bias) and synthesized a sort of &quot;grand unified theory&quot; of mythology and literature.&lt;br /&gt;&lt;br /&gt;I&apos;m not here to debate the veracity of this idea. Campbell is right in enough ways that his ideas have explanatory power, even if there are cases that fall outside of his scope.&lt;br /&gt;&lt;br /&gt;Sometime between when he had those ideas and today, people blew his findings out of proportion. Repeatedly, I&apos;ve dealt with people that use Campbell to defend unoriginal literature, claiming he proved that all stories were the same anyway. Those not as well read might not name-drop Campbell, but they like to trot out the &quot;finite number of stories&quot; canard.&lt;br /&gt;&lt;br /&gt;It&apos;s simply not true. While there are some commonly used story templates, there are as many unique stories as there are ways to arrange words into meaningful sentences.&lt;br /&gt;&lt;br /&gt;And this gets us back to the death of genre fiction. Modern science fiction, especially in TV and movies, takes the stance that stories are the same, and are inherently about the characters, and that science fiction or fantasy is just another costume to dress the same story up in. Some might consider this the &quot;literary&quot; tradition. In this approach, all the trappings of the setting exist only to drive up the special effect&apos;s budget and provide trailer-fodder, while the story could be told equally well in any other setting. &lt;i&gt;Star Wars&lt;/i&gt; is the most obvious example of this: sword and sorcery fare in spaceships. But pretty much every Star Trek episode from some point in the middle of the TNG era also fits the bill.&lt;br /&gt;&lt;br /&gt;What you find is that the setting is just props and costumes. For some stories, that&apos;s fine, but genre fiction used to be about exploring &lt;i&gt;ideas&lt;/i&gt;. Whether it&apos;s taking a modern idea and casting it in a different light by analogy or imagining a world drastically altered by some new technology or idea, in classical genre fiction, it was always the &lt;i&gt;ideas&lt;/i&gt; that took center stage.&lt;br /&gt;&lt;br /&gt;In some cases, notably the likes of Heinlein and Asimov, the result was cardboard characters that generally could be grouped into a handful of niches, few of which ever truly leapt off the page. At the same time, these books are rife with ideas. Different social codes, technologies that reshape society in strange ways.&lt;br /&gt;&lt;br /&gt;I&apos;m not trying to say that character driven drama is bad and idea driven drama is good. But the best genre fiction can do both. Sterling&apos;s &lt;i&gt;Holy Fire&lt;/i&gt; builds a fascinating world, and then shows it to us through the eyes of a newly rejuvenated octogenarian learning about the gerontocracy from the ground up. Vonnegut, of course, was a master of mixing bizarre ideas with likable characters.&lt;br /&gt;&lt;br /&gt;My main complaint is that the pendulum has swung away from &quot;big ideas&quot;, at least in mainstream sci-fi. It&apos;s hardly dead, but sometimes, it feels like somebody slit genre fiction&apos;s throat.</description>
  <comments>http://t3knomanser.livejournal.com/1032954.html</comments>
  <category>science fiction</category>
  <category>writing</category>
  <category>rants</category>
  <lj:security>public</lj:security>
  <lj:reply-count>4</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://t3knomanser.livejournal.com/1032485.html</guid>
  <pubDate>Tue, 13 Oct 2009 23:51:46 GMT</pubDate>
  <title>&quot;Breathtaking&quot; code</title>
  <link>http://t3knomanser.livejournal.com/1032485.html</link>
  <description>Words like &quot;breathtaking&quot;, &quot;stunning&quot;, &quot;astounding&quot;, &quot;amazing&quot;, and &quot;incredible&quot; are not positive words. Oh, they&apos;re often used in a positive context, but in reality, they only convey a sense of wonder and disbelief. They can be applied to something horrifying just as easily as something delightful.&lt;br /&gt;&lt;br /&gt;Such has been my experience over the past few days.&lt;br /&gt;&lt;br /&gt;Once upon a time, some fragment of the giant behemoth I work for needed an application to manage some inventory tracking and similar tasks. They found an external contractor that would make it for them. In that era, the app was built in VB6 with an MS Access back end. Horrible, yes, but hey, it was the 90s.&lt;br /&gt;&lt;br /&gt;Well, now it&apos;s time to upgrade. So they go back to the same contractor. &quot;Hey, we want it to be .NET and use SQL Server. Here&apos;s a check.&quot;&lt;br /&gt;&lt;br /&gt;Well, it wasn&apos;t that easy, of course. There are policies. Checkpoints. Oversight. I was part of the oversight, and my job was to get the application through our &quot;gates&quot;. Since this was a purchased application, we didn&apos;t care if it was terribly well designed, so long as it worked. &lt;i&gt;We&lt;/i&gt; weren&apos;t going to have to maintain it. So we got some design diagrams from the contractor, sanity checked them, and then called it a day.&lt;br /&gt;&lt;br /&gt;More fool I.&lt;br /&gt;&lt;br /&gt;Last week, I hear, &quot;Hey, that application- they&apos;re not satisfied with the support from the vendor. They want to bring it internal. Hey, Remy, find out what you need to do to make it fit with our standards.&quot;&lt;br /&gt;&lt;br /&gt;Now, when we develop an app internally, or have a contractor develop an app that we intend to support, the auditing requirements are &lt;i&gt;much&lt;/i&gt; stricter. We don&apos;t care if an outside vendor has to suffer under horrible support issues, but if &lt;i&gt;we&lt;/i&gt;&apos;re wasting time on stupid support work, we&apos;re unhappy.&lt;br /&gt;&lt;br /&gt;So, the first step then, would be to audit the application via a code review. I sat down in a room with three other developers, we pulled up the code, and we started skimming through it.&lt;br /&gt;&lt;br /&gt;It was &lt;i&gt;breathtaking&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;The first, most glaring thing, was that the actual design and the provided diagram had no relationship to each other. That didn&apos;t bode well. And it was all downhill from there. As a sampling of some of the &lt;i&gt;amazing&lt;/i&gt; things we saw:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;One window in the application has all of the business and data access code bundled up in it. It&apos;s like they took all the functions and dumped them into a bucket.&lt;/li&gt;
&lt;li&gt;But not all functions. For example, when that main window wants to log an error message, it calls out to a class called &quot;Utility&quot;. When it does that, the Utility class &lt;i&gt;makes a call against the main window&lt;/i&gt;. Not only is the code just a disorganized pile in a big bucket, but sometimes the bucket says, &quot;Hey, you gotta go look in another bucket to find that!&quot; and when you do, the other bucket says, &quot;Nope, it&apos;s actually back out in the original bucket.&quot;&lt;/li&gt;
&lt;li&gt;All of the database access stuff is hard coded strings. With no SQL injection protections.&lt;/li&gt;
&lt;li&gt;It stores passwords in plaintext&lt;/li&gt;
&lt;li&gt;The most stunning thing, however, is what the application does &lt;i&gt;every time it launches&lt;/i&gt;. Every time the application launches, it attempts to add columns to a bunch of tables. If those columns already exist, this would cause an error, so it just ignores the errors. Since, once the app has run once, the columns will exist, that means &lt;i&gt;every time a user runs the app, it&apos;s trying to add columns to tables for no damn reason&lt;/i&gt;.&lt;/li&gt;
&lt;/ul&gt; There&apos;s more, but I won&apos;t bore you with the details. I wrote a 2,200 word code review document. Normally, these documents follow this form: &quot;File X, Line 128, variable strFoo should be named foo, we don&apos;t use Hungarian Notation.&quot; For even large projects, they don&apos;t tend to get that long, just because they&apos;re so terse. This, this was a 5 page essay. I couldn&apos;t even call out flaws by line numbers, just because the developer was so clearly incompetent. I&apos;ve dealt with some bad code in my day, but this is just &lt;i&gt;special&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;There&apos;s a punchline. They started development using .NET 1.x, and then partway through switched to .NET 2.0. In .NET 1.x, there was no built in FTP functionality. If you wanted to do FTP, you needed to write your own class to do it, or steal some. Microsoft&apos;s developer documentation site, MSDN, had an MSFTP code sample, which demonstrated how one could implement their own FTP code. The developer copypasted this- despite the fact that .NET 2.0 had all the functions he needed- and included a class called &quot;MSFTP&quot; in his project.&lt;br /&gt;&lt;br /&gt;He couldn&apos;t just use the class as it was, however. There were some quirks in our FTP server it didn&apos;t handle. And while he was at it, he added a &quot;Dispose&quot; method to handle cleanup, replacing Microsoft&apos;s use of the &quot;Finalize&quot; method. This is actually a good .NET technique for technical reasons that are irrelevant here, so he obviously read a book. He didn&apos;t read it closely enough, because his Dispose is actually implemented wrong, but that&apos;s neither here nor there.&lt;br /&gt;&lt;br /&gt;In the comment above his &quot;Dispose&quot; method, he had the gall to include this:&lt;br /&gt;&lt;font color=&quot;green&quot;&gt;&apos;M$ should have implemented this. Man, this code is sloppy.&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;When I read that, I just started cracking up.&lt;br /&gt;&lt;br /&gt;Until I saw how much my company paid for this. And then I started crying.</description>
  <comments>http://t3knomanser.livejournal.com/1032485.html</comments>
  <category>programming</category>
  <category>work</category>
  <category>idiots</category>
  <category>vb.net</category>
  <category>breathtaking</category>
  <lj:security>public</lj:security>
  <lj:reply-count>12</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://t3knomanser.livejournal.com/1032215.html</guid>
  <pubDate>Mon, 05 Oct 2009 05:09:41 GMT</pubDate>
  <title>Good seats</title>
  <link>http://t3knomanser.livejournal.com/1032215.html</link>
  <description>&lt;div style=&quot;float: right; margin-left: 10px; margin-bottom: 10px;&quot;&gt; &lt;a href=&quot;http://www.flickr.com/photos/t3knomanser/3981966122/&quot; title=&quot;photo sharing&quot;&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2524/3981966122_6f81865052_m.jpg&quot; alt=&quot;&quot; style=&quot;border: solid 2px #000000;&quot; /&gt;&lt;/a&gt; &lt;br /&gt; &lt;span style=&quot;font-size: 0.9em; margin-top: 0px;&quot;&gt;  &lt;a href=&quot;http://www.flickr.com/photos/t3knomanser/3981966122/&quot;&gt;Good seats&lt;/a&gt;  &lt;br /&gt;  Originally uploaded by &lt;a href=&quot;http://www.flickr.com/people/t3knomanser/&quot;&gt;t3knomanser&lt;/a&gt;. &lt;/span&gt;&lt;/div&gt;&lt;br clear=&quot;all&quot; /&gt;</description>
  <comments>http://t3knomanser.livejournal.com/1032215.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://t3knomanser.livejournal.com/1031768.html</guid>
  <pubDate>Fri, 25 Sep 2009 16:16:34 GMT</pubDate>
  <title>Weekend Revolutionaries</title>
  <link>http://t3knomanser.livejournal.com/1031768.html</link>
  <description>The G20 protests haven&apos;t gotten &lt;i&gt;too&lt;/i&gt; out of hand, but there&apos;s a lot of broken windows. Thus far, only 66 arrests and 6 injuries, nothing serious or life threatening from what I can get from the news.&lt;br /&gt;&lt;br /&gt;But there was something else I caught on the news that gave me pause: some of these kids out on the streets are under the impression that they&apos;re fighting a revolution. They wear masks because the government could &quot;vanish&quot; them away into a prison. The various G-20 protest organizing sites use the terminology &quot;revolution&quot; and &quot;images of revolt&quot;.&lt;br /&gt;&lt;br /&gt;What an incredible degree of inflated self-importance. These kids show up for their &quot;revolution&quot; for a few days, throw some rocks, pretend that they&apos;ve done something and taken a significant risk to life and liberty, and then go back to their lives. A few months later, some other protest-worthy event comes up, rinse and repeat.&lt;br /&gt;&lt;br /&gt;They&apos;re revolutionaries like a guy driving a Prius is an environmentalist. As &lt;a href=&quot;http://angrydrunkbureaucrat.blogspot.com/2009/09/open-letter-to-g-20-protesters.html&quot;&gt;someone pointed out&lt;/a&gt;, Pittsburgh was home to the Homestead labor strikes. Steel workers wanted to unionize and it turned into a gun battle between them and the Pinkertons. &lt;a href=&quot;http://en.wikipedia.org/wiki/Homestead_strike#Battle_on_July_6&quot;&gt;Cannons were involved&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;That puts a little pepper-gas in perspective, doesn&apos;t it?&lt;br /&gt;&lt;br /&gt;With all that in mind, I would like to clarify a few things for our visitors:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Protesting is awesome. Seriously, enjoy the fact that you live in a country where this can happen. The Beijing G20 Summit in 2005 didn&apos;t see these kinds of protests- and we all know why.&lt;/li&gt;
&lt;li&gt;Permits are awesome too. Chants of &quot;Who&apos;s streets? Our streets!&quot; resonate on a deeply emotional level, but the reality is large clusters of people pose a safety risk. So when the police attempt to disperse the crowd, they&apos;re not doing it to silence anyone, they&apos;re doing it because they are concerned about property damage, injury, and the ability of emergency vehicles to get through. Also, people actually live and work on those streets, and they have just as much right to use them as a protest does. There is no conspiracy to silence you, and requiring permits for large gatherings is not an unreasonable requirement.&lt;/li&gt;
&lt;li&gt;There is no revolution. Don&apos;t kid yourself. If there were a revolution, you wouldn&apos;t do this for the few days when G20 was in town, but &lt;i&gt;every&lt;/i&gt; day. You wouldn&apos;t be facing down pepper-gas and rubber bullets. You&apos;d be dealing with real bullets, made of metal, that would kill and maim you.&lt;/li&gt;
&lt;li&gt;The idea that the protesters and the police are adversaries is a dangerous and &lt;i&gt;wrong&lt;/i&gt; idea. Everyone is responsible for keeping an event like this safe. Only someone deficient in basic humanity would actively wish harm on the protesters or the police.&lt;/li&gt;
&lt;li&gt;Property damage is not communication. It&apos;s shitheaded jackassery. If you want to achieve social change, you need people to build a consensus. Smashing windows isn&apos;t a good way to do that.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;I could go on, but this covers the key points. As I said, &lt;a href=&quot;http://dontbeag20jackass.com&quot;&gt;dont be a jackass&lt;/a&gt;, and you&apos;ll go far.&lt;br /&gt;&lt;br /&gt;&lt;small&gt;Also, &lt;a href=&quot;http://www.pamelasdiner.com/&quot;&gt;Pamela&apos;s&lt;/a&gt; was one of the places that got its windows smashed. That&apos;s just not cool man, not cool at all. Pamela&apos;s is a Pittsburgh institution and home of the best pancakes in America. Not. Cool.&lt;/small&gt;</description>
  <comments>http://t3knomanser.livejournal.com/1031768.html</comments>
  <category>pittsbugh</category>
  <category>idiots</category>
  <category>g20</category>
  <lj:security>public</lj:security>
  <lj:reply-count>1</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://t3knomanser.livejournal.com/1031436.html</guid>
  <pubDate>Tue, 22 Sep 2009 22:51:54 GMT</pubDate>
  <title>I&apos;m Local Famous</title>
  <link>http://t3knomanser.livejournal.com/1031436.html</link>
  <description>Last week, I put together &lt;a href=&quot;http://dontbeag20jackass.com&quot;&gt;DontBeAG20Jackass.com&lt;/a&gt;, and started sharing it with the world. Today, my phone has been ringing left and right as local news agencies call to ask about interviews and the like.&lt;br /&gt;&lt;br /&gt;Today, I was on the local TV station, &lt;a href=&quot;http://kdka.com/video/?id=62922@kdka.dayport.com&quot;&gt;with this interview&lt;/a&gt;, and tomorrow I&apos;ll be on the associated radio station for a five minute interview in the morning. The local newspaper has a brief blurb about me on their paywalled-site (I&apos;m not sure how they expect to make money, but they&apos;re trying).&lt;br /&gt;&lt;br /&gt;Based on watching the traffic and such from the site, I&apos;m going to put together an after-action-summary this weekend, because I learned a few things doing this.</description>
  <comments>http://t3knomanser.livejournal.com/1031436.html</comments>
  <category>pittsbugh</category>
  <category>i&apos;m local famous</category>
  <category>shameless self promotion</category>
  <lj:security>public</lj:security>
  <lj:reply-count>5</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://t3knomanser.livejournal.com/1031231.html</guid>
  <pubDate>Fri, 18 Sep 2009 20:24:15 GMT</pubDate>
  <title>I Still Live: Updates</title>
  <link>http://t3knomanser.livejournal.com/1031231.html</link>
  <description>I am still alive. I have not fallen off the Internet. Since the last time I actually got things together to post, life has continued unabated, and all sorts of fun and interesting things happened, mostly of personal interest.&lt;br /&gt;&lt;br /&gt;A few things of a more global interest:&lt;br /&gt;HitTrack, my first iPhone application, got approved and now languishes in the iTunes store. It&apos;s nothing spectacular, but it&apos;s a workable D&amp;D hit point tracker application, with some nicely done eye candy.&lt;br /&gt;&lt;br /&gt;Of more current interest, I assembled &lt;a href=&quot;http://dontbeag20jackass.com&quot;&gt;Don&apos;t be a G20 Jackass&lt;/a&gt;, a site that allows people in and around Pittsburgh to sign a polite request that, when the G20 protesters show up next week, that they keep in mind that people actually live here, and would very much like it if the city government doesn&apos;t have to pay huge lump sums to clean up and repair damage. I don&apos;t think it&apos;ll matter, but it was a fun, easy project, and at least grants the illusion of efficacy.&lt;br /&gt;&lt;br /&gt;Also, I have a laptop for sale: a Core Duo MacBookPro, 2GB RAM, 2GHz processor, 100GB HDD. Let me know if you&apos;re interested.</description>
  <comments>http://t3knomanser.livejournal.com/1031231.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://t3knomanser.livejournal.com/1031022.html</guid>
  <pubDate>Sat, 11 Jul 2009 23:37:51 GMT</pubDate>
  <title>Morons oppose security</title>
  <link>http://t3knomanser.livejournal.com/1031022.html</link>
  <description>Today, ImageShack was hacked by some anonymous children seeking to &lt;a href=&quot;http://mashable.com/2009/07/10/imageshack-hacked/&quot;&gt;get their manifesto out there&lt;/a&gt;. If nothing else, it does a good job of showing off that the differently-abled can still master basic computer security tools.&lt;br /&gt;&lt;br /&gt;Actually, I&apos;m pretty sure this is a prank. They ramble on and on about the evils of &quot;full disclosure&quot;. But nobody in the security industry advocates full disclosure. To the contrary, &lt;i&gt;responsible disclosure&lt;/i&gt; is the most common approach security researchers take. When a researcher identifies a vulnerability in a software product, the first thing they do is approach the vendor to alert them to it. The vendor is given a reasonable period of time to work out a patch, before the details are revealed to the public. In some cases, the only people who get &lt;i&gt;full details&lt;/i&gt; are the people responsible for the software- everyone else gets alerted to the vulnerability.&lt;br /&gt;&lt;br /&gt;But in any case, the objection is: why disclose vulnerabilities at all? Why not keep them a secret, thus keeping the bad guys from exploiting them?&lt;br /&gt;&lt;br /&gt;Because many of the bad guys are pretty smart. If &lt;i&gt;I&lt;/i&gt;&apos;m smart enough to find a security vulnerability, there&apos;s good odds that there&apos;s a bad guy who is also smart enough to find it. So when a vulnerability is discovered, it&apos;s good to assume that the bad guys already know about it too. Maybe they haven&apos;t exploited it yet, but they could be working on it. You certainly don&apos;t know what they know or what they&apos;re doing, and you can&apos;t control it either.&lt;br /&gt;&lt;br /&gt;Keeping it a secret doesn&apos;t keep the bad guys from finding it, but it does keep the good guys ignorant. If the good guys don&apos;t know about the vulnerability, they don&apos;t know what they can do to defend themselves. Until the vulnerability is patched, they&apos;re sitting there exposed- and without disclosure, in blissful ignorance.&lt;br /&gt;&lt;br /&gt;Okay, but why &lt;i&gt;full&lt;/i&gt; disclosure? Isn&apos;t it enough to say, &quot;Hey, I found a vulnerability?&quot; Nope, because the software vendor&apos;s response is: &quot;No you didn&apos;t. Prove it.&quot; And this is where the &quot;science&quot; aspect of computer science kicks in. The researcher has just published the results of an experiment: &quot;I performed test X, and got result Y, which means I just pwned this system.&quot; Merely publishing the results is not enough to prove you&apos;ve done it- you also need to show your work. You have to distribute your methodology, so other people can replicate your work.&lt;br /&gt;&lt;br /&gt;The sucky thing, of course, is that, if the bad guys haven&apos;t found out about the vulnerability, they certainly have now. Which brings us back to responsible disclosure: a researcher should give a vendor a window in which to resolve the problem. The fact that this window closes is vital to keeping the vendors honest. There have been plenty of occasions in which researchers have alerted software vendors to a vulnerability, and the vendor has ignored them.&lt;br /&gt;&lt;br /&gt;Fixing bugs costs money, and fixing security vulnerabilities looks bad- like they&apos;re admitting weakness. A company, acting on its short-term best interests, may choose to ignore reports from the security community. But if the researcher discloses the vulnerability to the public- well, now the vendor &lt;i&gt;has&lt;/i&gt; to act.</description>
  <comments>http://t3knomanser.livejournal.com/1031022.html</comments>
  <category>security</category>
  <lj:security>public</lj:security>
  <lj:reply-count>5</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://t3knomanser.livejournal.com/1030763.html</guid>
  <pubDate>Tue, 07 Jul 2009 23:24:39 GMT</pubDate>
  <title>On critique</title>
  <link>http://t3knomanser.livejournal.com/1030763.html</link>
  <description>With the recent spate of money-making, blockbuster films that are heaping piles of suck, people complain that it&apos;s unfair to call a movie &lt;i&gt;bad&lt;/i&gt;- it&apos;s just opinion. There are no objective standards.&lt;br /&gt;&lt;br /&gt;There are objective standards. When picking a hammer, many of the details may be a matter of the user&apos;s taste, if the hammer is unable to drive nails, we would all agree that it&apos;s a bad hammer. If your aunt knits you a sweater with no arms, while it was a sweet sentiment, we would all agree that it&apos;s a bad sweater. If someone were to take a great number of words, selected at random, put them onto page and call it a novel, I think we would all agree that it&apos;s a bad novel.&lt;br /&gt;&lt;br /&gt;While there is a &lt;i&gt;lot&lt;/i&gt; of room for opinion, in any creative endeavor, there &lt;i&gt;are&lt;/i&gt; metrics for success and failure. There are, mostly qualitative, but some quantitative measures for whether a creative work is &quot;good&quot; or &quot;bad&quot;.&lt;br /&gt;&lt;br /&gt;My purpose here is not to write a treatise on critique, which I&apos;m sure has been done better by someone else, who has devoted a great deal more time and effort to the subject. But as a critical dilettante, here&apos;s how I approach a critical examination of creative works- regardless of medium.&lt;br /&gt;&lt;a name=&quot;cutid1&quot;&gt;&lt;/a&gt;&lt;br /&gt;&lt;h2&gt;The Message&lt;/h2&gt;&lt;br /&gt;A creative work exists to communicate something. The creator(s) have something they would like to impart to the audience. In a work of any complexity, they probably have &lt;i&gt;many&lt;/i&gt; things they would like to impart to the audience. The first part of critiquing something is examining the message and deciding if this is a message that is interesting and meaningful.&lt;br /&gt;&lt;br /&gt;There&apos;s certainly a great deal of room for subjectivity in this category. Most people would probably not enjoy a film that takes the stance, &quot;Hitler was &lt;i&gt;awesome&lt;/i&gt;&quot;. But, even if one disagrees with the message, one can still evaluate the message objectively. Is it an interesting message? Is it something original, or a novel insight into something familiar?&lt;br /&gt;&lt;br /&gt;I&apos;m &lt;i&gt;not&lt;/i&gt; claiming that good works have to have some intense or deeply meaningful message. If the purpose of the work is merely to entertain, it still wants to communicate something more than mere entertainment to the audience- photographs have subjects, novels have plots, and so on.&lt;br /&gt;&lt;br /&gt;So, the first to questions I ask myself are: what is the message, and is this message interesting or notable in some way?&lt;br /&gt;&lt;h2&gt;Communication&lt;/h2&gt;&lt;br /&gt;Once we&apos;ve identified the message, the next question we have to examine is: was the message communicated clearly? Did the audience understand it? Was it comprehensible to begin with? What would have made it more clear?&lt;br /&gt;&lt;br /&gt;This is largely qualitative, but there are certainly some objective measures. Whether the target audience understood it can be measured pretty objectively by asking them. Things that don&apos;t support the message can be marked as superfluous.&lt;br /&gt;&lt;h2&gt;Technical Merit&lt;/h2&gt;&lt;br /&gt;Each medium has its own methods, metaphors and techniques. Things that work in novels can&apos;t be done in film, painting has established practices. Given the nature of the medium, the final question is, Was this work technically competent? Someone can perform a piece on the violin, express it beautifully, but if they lack technique, this can be identified by an experience violinist (I, for example, lack technique). If a filmmaker or photographer ignores the basic principles of composition, this can be identified.&lt;br /&gt;&lt;br /&gt;Of all of my categories of critique, this is the most objective. Every medium has principles and practices that are established through trial and error- people have found what works. It is possible that someone can throw those rules out and be successful at communicating, but it&apos;s pretty unlikely. (Andy Warhol threw out the rulebook, and while he was successful in the sense that he&apos;s mysteriously popular, he didn&apos;t really communicate anything but how little he had to say.)&lt;br /&gt;&lt;br /&gt;And that&apos;s true for all of these categories. Maybe the story has no real point, but is entertainingly told. Or the film has no budget and looks awful, but carries you with its interesting ideas. &lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Some examples&lt;/h2&gt;&lt;br /&gt;This was prompted by an online debate over the merits of Michael Bay films. I love ridiculous action movies, but hate his movies. Since I haven&apos;t suffered through &lt;i&gt;Transformers 2&lt;/i&gt;, lets look at the first one.&lt;br /&gt;&lt;br /&gt;What was the message of Transformers? Well, its primary purpose was clearly to entertain, and to entertain as a vehicle for robot battles and explosions. Nothing wrong with that, but nothing particularly exciting either. The story moves forward on the back of a McGuffin, and events happen, none of them terribly significant.&lt;br /&gt;&lt;br /&gt;Did it communicate this message well? Not terribly. First and foremost, the main reason for seeing the movie was robotic action sequences. There weren&apos;t many of those. What little action there was confused and annoyed, more than entertained. There were plot cul de sacs, like the NSA/hacker subplot which served no purpose at all, except to put another attractive actress in the film, I guess. There was a chain of unfunny physical comedy (I love physical comedy, but this was just bad) But, honestly, pretty much everything was a plot cul de sac. By the end of the film, I was aware that things had happened, and I didn&apos;t care one whit.&lt;br /&gt;&lt;br /&gt;What about the technical merits? People hold Bay up as the master of the special-effects spectacle. The reality couldn&apos;t be farther from the truth. Every special effects moment was specially designed to be incomprehensible. The robots didn&apos;t look terribly much like robots, and they had no real structure or proportion to their design. The action sequences did their best to be disorienting, which isn&apos;t really a &lt;i&gt;good&lt;/i&gt; thing to do to your audience. There was no sense of structure to any of the camera work, and it really felt like they weren&apos;t planned at all. The best analogy was that it&apos;s like fingerpainting with special effects.&lt;br /&gt;&lt;br /&gt;Contrast this with a film like &lt;i&gt;Crank&lt;/i&gt;, which I maintain is the gold-standard for action films. In terms of their core message, they&apos;re pretty much identical. Once again, everything about the film, from the thin plot on, is about getting into action sequences. Events happen, but there&apos;s not a great deal of significance in any of them.&lt;br /&gt;&lt;br /&gt;But in execution, the differences really start to show up. First off, &lt;i&gt;Crank&lt;/i&gt; keeps on message for the vast majority of the film. Each scene moves from action sequence to action sequence, with the odd ridiculous sex scene thrown in for fun. Plenty of physical comedy, often grotesque. While the main character is just another gruff talking growly scowly manly-man, he doesn&apos;t look the part, and that adds character. The supporting cast, the doctor and his girlfriend, carry all of the non-actiony bits, and everything is delivered with a sense of comic timing all the way around. &lt;br /&gt;&lt;br /&gt;Technically, it does its job. Ridiculous fight scenes move quickly, and are pretty exciting all the way through. The camera is always in the right place, you always feel grounded in what&apos;s going on. It&apos;s not a virtuoso violinist playing through a Mendelssohn concerto, but a punk rocker laying down a bass-line. There&apos;s technique there, but it&apos;s not the focus.&lt;br /&gt;&lt;br /&gt;I&apos;m no art school film snob. I&apos;m not a snob about most things. Sometimes, you want a nice filet mingion served with sauteed truffles and a nutty red with a strong finish. Other times, you want a hamburger. But just because you want a hamburger doesn&apos;t mean you&apos;re going to fill your gob with the predigested slop at McDonalds and say it&apos;s delicious.</description>
  <comments>http://t3knomanser.livejournal.com/1030763.html</comments>
  <category>rants</category>
  <lj:security>public</lj:security>
  <lj:reply-count>3</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://t3knomanser.livejournal.com/1030483.html</guid>
  <pubDate>Sat, 04 Jul 2009 03:15:20 GMT</pubDate>
  <title>Idea Mining</title>
  <link>http://t3knomanser.livejournal.com/1030483.html</link>
  <description>So, I&apos;ve been doing &quot;this thing&quot;, the thing being &quot;idea mining&quot;. I&apos;m the sort of person that gets all sorts of random ideas during the day. At the time, they always strike me as interesting, but they&apos;re always transient. Idea appears, it looks interesting, and then it&apos;s forgotten as I go back to the actual task at hand.&lt;br /&gt;&lt;br /&gt;Later, I sit down, and try and remember it, and WHOOSH. Nothing. It&apos;s gone.&lt;br /&gt;&lt;br /&gt;So, a few weeks ago, I decided to start trying to record those ideas. The name of the practice is idea mining. The goal is to collect ones ideas and thoughts, organize them, and use them later as sources of inspiration and action. Or maybe pass them off to someone better positioned to act on them. Or just put them aside because they&apos;re impractical, or just plain dumb. Whatever.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Step One: Record&lt;/h2&gt;&lt;br /&gt;The first step in building an idea mine is recording your ideas. The obvious choice would be a notebook. I personally use &lt;a href=&quot;http://www.evernote.com&quot;&gt;Evernote&lt;/a&gt; on my iPhone. A handheld digital recorder, a PDA, whatever. Some people like Wikis.&lt;br /&gt;&lt;br /&gt;Regardless of what you chose, it has to be:&lt;br /&gt;a) Something that you always have with you - you can&apos;t record your ideas in it if it&apos;s not there&lt;br /&gt;b) Something that is low friction and quick - you aren&apos;t going to record your ideas if it takes a significant amount of effort to record them&lt;br /&gt;c) Something that is easy to work with later&lt;br /&gt;&lt;br /&gt;That third point is my main reason for sticking with Evernote, but again- it doesn&apos;t matter what you use. Focus on the goal- record ideas when you have them. I&apos;m the sort that does his best thinking on the toilet or as he drifts off to sleep, so my phone is great. If you do your thinking in the car, a digital recorder might be better.&lt;br /&gt;&lt;br /&gt;It also takes some discipline. I know, several times, I&apos;ve been near sleep, had an idea, and had to force myself to sit up and scribble it down. I try and say things like, &quot;Oh, you&apos;ll remember it tomorrow,&quot; or &quot;it&apos;s not that good an idea anyway&quot;.&lt;br /&gt;&lt;br /&gt;And you&apos;ll have that thought a lot. &quot;It&apos;s not a good enough idea to be recorded.&quot; Irrelevant! Maybe you&apos;re right, maybe you&apos;re wrong, but &lt;i&gt;record it no matter what&lt;/i&gt;. Even if you ignore everything after this step, &lt;i&gt;record every idea&lt;/i&gt;. Don&apos;t try and only record the good ones, because you&apos;re not always going to be able to tell, and the goal here is to build up the habit of recording your ideas. Once you get into the habit, you&apos;re going to get &lt;i&gt;more&lt;/i&gt; ideas.&lt;br /&gt;&lt;br /&gt;My experience with this step was that, for the first week, I was a virtual font of ideas. It tapered off and I went through a dry spell for a few weeks, and now I&apos;m getting up a steady output of a few ideas a day, coupled with a few longer &quot;jot of the day&quot; notes- several paragraphs expanding on an idea of interest to me.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Step Two: Organize&lt;/h2&gt;&lt;br /&gt;You&apos;re going to be generating a lot of data, here. You&apos;re going to need to spend some time going through it. Fortunately, you&apos;ve got all your ideas recorded, so there&apos;s no real rush on this. Even if you get backlogged, the ideas are still written down some place, and you won&apos;t forget them now.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;How&lt;/i&gt; to organize them is up to you. Using Evernote, all the notes I record on my phone are synced to my home computer. In my Evernote client, I can tag the notes, using tags like, &quot;good idea&quot;, &quot;bad idea&quot;, &quot;impractical&quot;, &quot;actionable&quot;, &quot;todo&quot;, &quot;done&quot;, etc.. I tag by topic too, like &quot;mad science&quot;, &quot;writing&quot;, &quot;hook&quot;, &quot;character&quot;.&lt;br /&gt;&lt;br /&gt;Again, the techniques to use here are largely up to you. Unlike recording, which requires &lt;i&gt;immediate&lt;/i&gt; action, this can be done at your leisure. Just don&apos;t lose anything, because the last step is:&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Step Three: Mine them thar&apos; ideas!&lt;/h2&gt;&lt;br /&gt;Keep the organizing and acting steps separate. Periodically, check your &quot;actionable&quot; ideas, see if there&apos;s anything you want to tackle. When you&apos;re working on a creative project and are stumped, head back to your mine and see if there&apos;s anything in there that works for you. Use it for inspiration. Use it as a todo list. Use it as a personal reference. &lt;br /&gt;&lt;br /&gt;My experience, after having done this for a few weeks, is that you&apos;re in for some surprises. You&apos;ll have more ideas than you think you will, even through those dry spells (in the past month, I&apos;ve logged 206 notes, for an average of 6.9/day- not Manfred Macx territory, but not too bad). You&apos;ll have more &lt;i&gt;bad&lt;/i&gt; ideas than you&apos;ll ever expect, (one of mine was a portable bidet, another was that a late night talk show hosted by William Shatner would be awesome, and an idea for a movie starring Eminem and Steve Guttenberg called, &quot;What Mathers?&quot;), but you&apos;ll also have a bunch that make you go, &quot;Hey, that&apos;s pretty clever.&quot;&lt;br /&gt;&lt;br /&gt;The final goal, of course, is to act on some of these ideas. Or hand them off to someone who can. Add a little creativity to the world, and turn ideas into end products.</description>
  <comments>http://t3knomanser.livejournal.com/1030483.html</comments>
  <category>ideas</category>
  <category>personal</category>
  <category>ideamine</category>
  <category>good ideas</category>
  <lj:security>public</lj:security>
  <lj:reply-count>2</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://t3knomanser.livejournal.com/1030398.html</guid>
  <pubDate>Fri, 26 Jun 2009 22:05:27 GMT</pubDate>
  <title>Rochester in panorama, and Minna has an extra arm</title>
  <link>http://t3knomanser.livejournal.com/1030398.html</link>
  <description>&lt;div style=&quot;float: right; margin-left: 10px; margin-bottom: 10px;&quot;&gt; &lt;a href=&quot;http://www.flickr.com/photos/t3knomanser/3663884828/&quot; title=&quot;photo sharing&quot;&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3632/3663884828_f339f0325e_m.jpg&quot; alt=&quot;&quot; style=&quot;border: solid 2px #000000;&quot; /&gt;&lt;/a&gt; &lt;br /&gt; &lt;span style=&quot;font-size: 0.9em; margin-top: 0px;&quot;&gt;  &lt;a href=&quot;http://www.flickr.com/photos/t3knomanser/3663884828/&quot;&gt;Rochester in panorama, and Minna has an extra arm&lt;/a&gt;  &lt;br /&gt;  Originally uploaded by &lt;a href=&quot;http://www.flickr.com/people/t3knomanser/&quot;&gt;t3knomanser&lt;/a&gt;. &lt;/span&gt;&lt;/div&gt;That extra pudge is a side effect of the panorama process. He&apos;s husky, but not quite &lt;i&gt;that&lt;/i&gt; husky.&lt;br clear=&quot;all&quot; /&gt;</description>
  <comments>http://t3knomanser.livejournal.com/1030398.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://t3knomanser.livejournal.com/1030045.html</guid>
  <pubDate>Fri, 19 Jun 2009 17:43:21 GMT</pubDate>
  <title>Ship of Theseus</title>
  <link>http://t3knomanser.livejournal.com/1030045.html</link>
  <description>&lt;a href=&quot;http://en.wikipedia.org/wiki/Ship_of_Theseus&quot;&gt;The Ship of Theseus&lt;/a&gt; is one of those old philosophical saws. It came up in conversation the other day, and so I skimmed the Wikipedia article, only to be surprised that none of the sources cited took the same attack to the problem that seemed intuitive to me.&lt;br /&gt;&lt;br /&gt;So, on the off chance this is a relatively original idea, I decided that I should get it written up.&lt;br /&gt;&lt;br /&gt;For those unfamiliar, the Ship of Theseus poses this problem: If you take a ship, and replace every component of the ship, until nothing original remains, is it the same ship? At what point does it cease to be the same ship?&lt;br /&gt;&lt;br /&gt;Common sense tells us, of course, that it is the same ship. And everyone from Aristotle forward has tried to explain why that is, with the occasional jerk that takes the stance that it &lt;i&gt;isn&apos;t&lt;/i&gt; the same ship.&lt;br /&gt;&lt;br /&gt;The Aristotelian approach was to separate the formal cause and the material cause of the thing. It&apos;s a fairly Platonic approach, which isn&apos;t surprising: there&apos;s the &quot;idea&quot; of the ship, and the &quot;material&quot; of the ship- even as the material changes, the idea stays the same. Pirsig&apos;s concept of patterns is a less Platonic approach to the same idea: there&apos;s the pattern of a ship which is made up of subpatterns in the form of the different components; changes to the subpatterns don&apos;t change the over-pattern.&lt;br /&gt;&lt;br /&gt;The other big approach is &quot;four dimensionalism&quot;- which, at first glance, was my preferred approach to the subject. If you view the ship not as a three dimensional object, but a four dimensional one, where its history and future are one long line, and the 3D ship is just one temporal slice out of that line, you can easily resolve this conundrum.&lt;br /&gt;&lt;br /&gt;Except, of course, that to be complete, one would have to have a 4D timeline for &lt;i&gt;all&lt;/i&gt; of the components, and suddenly the ship is less a ship, than a generalized area where the timelines for other objects occasionally merge.&lt;br /&gt;&lt;br /&gt;I&apos;m not a fan of any of these approaches, in part because they all share an unspoken assumption: that the world is composed of objects, and that these objects are distinct from one another.&lt;br /&gt;&lt;br /&gt;Our sense organs receive inputs from the world, a whole hierarchy of processing centers pick up those signals and organize them into structures. When you look at the pathway of just the visual processing centers, you can clearly see the evolutionary steps that built the rather complex visual system we have. At low levels, we have simple abilities like recognizing lines, and increasingly complex abstractions get built up from what is, at the lowest level, the stimulation of light sensitive cells.&lt;br /&gt;&lt;br /&gt;Photons excite your rods and cones, which in turn send signals across your nervous system, which get processed by various neurological systems and result in a mental model of the world, where those photons are interpreted as &quot;a ship&quot;. &lt;br /&gt;&lt;br /&gt;A large purpose of our brains is to convert the inputs to our senses into models that can be manipulated and acted upon. If my brain is able to identify that ship as Theseus&apos;s ship, and not my ship, I know not to trespass, less I earn myself an ass-kicking. And by being able to distinguish those sensory impressions as &quot;a ship&quot; and not, &quot;ocean&quot;, I can do nifty things like not drown because I thought I was standing on a boat&apos;s deck while really I&apos;m on the ocean floor.&lt;br /&gt;&lt;br /&gt;It sounds absurd, but we know that, when failures occur in this processing system, really bizarre results can occur. Like &lt;a href=&quot;http://www.amazon.com/Man-Who-Mistook-His-Wife/dp/0684853949&quot;&gt;the rather famous story of a man who thought his wife was a hat&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The point I&apos;m trying to dig down to is this: the world is not a collection of objects that we can interact with. The world is continuous. The identity of objects as distinct objects is not a fact of the world, but a fact about our understanding of the world. The pile of matter that constitutes Theseus&apos;s ship is just a pile of matter.&lt;br /&gt;&lt;br /&gt;The problem of Theseus&apos;s ship is not one of the identity of objects: objects don&apos;t have an identity. The identity of objects is a perceptual thing, born from our own minds&apos; organizing principle. Our brains are object oriented. The world can be understood in these terms, but as the Ship of Theseus problem shows, there are edge cases that can give us bizarre results when we start trying to analyze what about an object provides it with its identity.&lt;br /&gt;&lt;br /&gt;God, I hope that made sense.</description>
  <comments>http://t3knomanser.livejournal.com/1030045.html</comments>
  <category>philosophy</category>
  <lj:security>public</lj:security>
  <lj:reply-count>4</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://t3knomanser.livejournal.com/1029845.html</guid>
  <pubDate>Wed, 17 Jun 2009 00:17:21 GMT</pubDate>
  <title>Safe Communications</title>
  <link>http://t3knomanser.livejournal.com/1029845.html</link>
  <description>Given the events transpiring in Iran, now&apos;s a good time for more people to fire up &lt;a href=&quot;http://torproject.com&quot;&gt;Tor&lt;/a&gt;, an &quot;onion router&quot;. Essentially, it&apos;s a Peer-to-Peer anonymizer that helps keep your Internet traffic confidential. The more peers on the Tor network, the better the network performs and the more anonymous it is.&lt;br /&gt;&lt;br /&gt;Tor also acts as a proxy, so if you or someone you know is living in a country where Internet traffic is restricted, using Tor allows them to bypass web censorship. With browser plugins to make it easy to use, anyone with only a small amount of technical know-how can get unfiltered web access whether their government or employer likes it or not.&lt;br /&gt;&lt;br /&gt;You can download Tor, and quickly benefit from its security benefits, if you&apos;re concerned about staying anonymous online. &lt;a href=&quot;https://www.torproject.org/docs/tor-doc-relay.html.en&quot;&gt;If you want to help others bypass censorship, you must run in relay mode&lt;/a&gt;. It&apos;s easy to setup, and will only take you a few minutes. It will even do its best to talk to your router to configure services so that you don&apos;t have to.&lt;br /&gt;&lt;br /&gt;By simply leaving a Tor relay node running on one computer on your network, you can help guarantee anonymous, unfiltered access to the Internet for anyone in the world. No muss, no fuss.&lt;br /&gt;&lt;br /&gt;If someone lives in a country with web censorship, they may have a hard time getting access to the Tor install files. So, if you have some web space, consider mirroring the &lt;a href=&quot;https://www.torproject.org/easy-download.html.en&quot;&gt;install files&lt;/a&gt;. Pass the link discreetly to those that might be interested in such things. I&apos;m setting up my own mirror right now.</description>
  <comments>http://t3knomanser.livejournal.com/1029845.html</comments>
  <category>tinfoil</category>
  <category>iran</category>
  <category>technology</category>
  <category>free speech</category>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://t3knomanser.livejournal.com/1029488.html</guid>
  <pubDate>Sun, 14 Jun 2009 14:09:45 GMT</pubDate>
  <title>Riots in Iran</title>
  <link>http://t3knomanser.livejournal.com/1029488.html</link>
  <description>At this very moment, things are spiraling out of control in Iran. Frightened by a suddenly politically active youth bloc, the government did the only thing you can do if you&apos;re a repressive, theocratic, and generally vile government: it tampered with the election results. It didn&apos;t just tamper- &quot;tampering&quot; implies that they wanted to conceal their actions. They &lt;i&gt;fabricated&lt;/i&gt; election results. They released election results that have as much grounding in reality as &lt;i&gt;Lord of the Rings&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;The message was clear: &quot;Go away. We do not want you involved in the political process. Return to your cynicism and go away. Fuck. You.&quot;&lt;br /&gt;&lt;br /&gt;Fuck you indeed. Since the announcement of the fabricated results, the Persians have taken to the streets, and they&apos;re still out there. Marching, rioting. They are mad as hell, and they&apos;re not going to take it anymore. As of this morning, protests are still moving through the cities.&lt;br /&gt;&lt;br /&gt;It&apos;s too early to tell where this is going to go. The government is scrambling, raiding dorms, arresting anyone that could rally the people, cutting power, Internet, telephones, and now hunting satellite phones. But word is still getting out, people are still getting organized.&lt;br /&gt;&lt;br /&gt;This may be the beginning of the end for the current regime, and good riddance to bad rubbish. For Persians and for the rest of the world, this violent upset could be the best thing to happen to the region, and it&apos;s been a long time coming. This could be the death of Iran&apos;s theocracy.&lt;br /&gt;&lt;br /&gt;Which raises the question, where&apos;s the US news media? It&apos;s not that they&apos;re &lt;i&gt;not&lt;/i&gt; covering the story- it&apos;s getting headlines, here and there. But they&apos;re focusing on other things. Last night, as people were taking to the rooftops in Iran. CNN&apos;s top story was the Six Flags Bankruptcy.&lt;br /&gt;&lt;br /&gt;Not only was the Internet the best place to get up to the minute reports, it was the &lt;i&gt;only&lt;/i&gt; place. Considering Iran&apos;s role in the US&apos;s foreign policy, this is patently ridiculous.&lt;br /&gt;&lt;br /&gt;All this said, there&apos;s painfully little we can do. But some people in Iran are still online. Discuss the subject, and let the people of Iran know that the world supports them.</description>
  <comments>http://t3knomanser.livejournal.com/1029488.html</comments>
  <category>iran</category>
  <category>politics</category>
  <lj:security>public</lj:security>
  <lj:reply-count>2</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://t3knomanser.livejournal.com/1029282.html</guid>
  <pubDate>Tue, 09 Jun 2009 22:57:01 GMT</pubDate>
  <title>I&apos;m the KOOL AID MAN!</title>
  <link>http://t3knomanser.livejournal.com/1029282.html</link>
  <description>&lt;lj-embed id=&quot;40&quot; /&gt;&lt;br /&gt;&lt;br /&gt;//Oh yeah!</description>
  <comments>http://t3knomanser.livejournal.com/1029282.html</comments>
  <category>funny</category>
  <category>literal music video</category>
  <category>video</category>
  <lj:security>public</lj:security>
  <lj:reply-count>1</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://t3knomanser.livejournal.com/1029062.html</guid>
  <pubDate>Sat, 06 Jun 2009 15:51:34 GMT</pubDate>
  <title>Would you like some money for doing nothing? No? Well fuck you then.</title>
  <link>http://t3knomanser.livejournal.com/1029062.html</link>
  <description>Minna and I haven&apos;t been too hot on buying a house. We&apos;re saving a big wad, and waiting for the right thing to come along. We&apos;re not going to stress about it, we&apos;re not going to angst over it. Our apartment is nice, cheap, and enough for anything we need.&lt;br /&gt;&lt;br /&gt;In short, we&apos;re a Realtor&apos;s worst nightmare. They can&apos;t leverage us. &quot;I&apos;ve got another offer in, so you need to act quick!&quot; No, no I don&apos;t. If I don&apos;t get this place, there&apos;ll be something else. Each place I&apos;ve looked at is nicer than the last, and at a better price.&lt;br /&gt;&lt;br /&gt;We looked at a place today, and we were feeling pretty good about it. We tagged along on someone else&apos;s showing, so we didn&apos;t meet the selling agent. In order to save a few bucks, Minna and I are willing to brave the process without a buyer&apos;s agent, if the seller&apos;s agent is willing to cut their commission from 6% down to 4-5%.&lt;br /&gt;&lt;br /&gt;I thought this was pretty reasonable, and I&apos;ve talked to some Realtors that were fine with such arrangements. &lt;i&gt;&lt;a href=&quot;http://www.howardhanna.com/property/property.asp?PRM_MLSNumber=776701&amp;amp;PRM_MlsName=WestPenn&amp;amp;lnksrc=Trulia&quot;&gt;This&lt;/a&gt;&lt;/i&gt; Realtor, on the other hand, gave me shit over it. &quot;Oh, I&apos;m way too busy to handle both sides of the transaction for a mere 4-5%.&quot;&lt;br /&gt;&lt;br /&gt;Yeah, because we&apos;ve eaten up so much of your day by getting you to show the house (oh, right, we didn&apos;t!). And, like a regular buyer&apos;s agent, we&apos;ve dragged you to a million houses while looking for something we like (oh, right, we didn&apos;t!).&lt;br /&gt;&lt;br /&gt;If we brought in our own buyer&apos;s agent, she&apos;d get 3%. I&apos;m offering her 1-2% on top of that all for the glorious chore of signing some papers. It just makes no sense to me- I&apos;m offering you &lt;i&gt;more money&lt;/i&gt; for doing pretty much nothing. It just boggles my mind. Even worse, she was such a raging bitch about it, that I don&apos;t even want her to get even the 3%- I don&apos;t want to do business with her. It&apos;s not that she was rude, or really lost her shit, she just started ranting at me well past the point where I was ready to drop the subject. I&apos;m trying to cut you a deal, I&apos;m trying to work out something were everybody wins. It&apos;s fine to say &quot;No thanks,&quot; but she ranted at me about it well past the point where I cared anymore, and was just trying to end the phone call politely.&lt;br /&gt;&lt;br /&gt;It&apos;s sad, because it was a nice  place, but the condo fee was too steep anyway- $200/mo is just more than we could afford on top of taxes and mortgage. She had an offer in anyway (she claimed, and I believe it), so she can just hope that goes through, because I&apos;m not going to counter offer, and if I see she&apos;s the selling agent on another property I&apos;m interested in, I&apos;m going to avoid it. It&apos;d have to be something really special to get me to deal with her.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://books.google.com/books?id=LkQPOSXMUscC&amp;amp;dq=freakonomics&amp;amp;pg=PP1&amp;amp;ots=4oLjB5orHZ&amp;amp;sig=XalvVdWN_376aB7LYinfUzrZ_4o&amp;amp;hl=en&amp;amp;prev=http://www.google.com/search?q=Freakonomics&amp;amp;sourceid=navclient-ff&amp;amp;ie=UTF-8&amp;amp;rlz=1B2GGFB_enUS231US231&amp;amp;sa=X&amp;amp;oi=print&amp;amp;ct=title&amp;amp;cad=one-book-with-thumbnail#PPR6,M1&quot;&gt;There&apos;s a reason Levitt equates NAR with the KKK&lt;/a&gt; (Freakonomics is an excellent read, by the way).</description>
  <comments>http://t3knomanser.livejournal.com/1029062.html</comments>
  <category>i&apos;m a consumer whore and how</category>
  <category>idiots</category>
  <category>fuckers</category>
  <category>realtor</category>
  <lj:security>public</lj:security>
  <lj:reply-count>9</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://t3knomanser.livejournal.com/1028638.html</guid>
  <pubDate>Thu, 04 Jun 2009 21:02:33 GMT</pubDate>
  <title>On the Order Of</title>
  <link>http://t3knomanser.livejournal.com/1028638.html</link>
  <description>Programmers, when they&apos;re really concerned with being efficient, will often start talking about &quot;Big O&quot; or &quot;Order&quot;. There&apos;s a lot of interesting math behind this, but what it boils down to is a very simple concept- how many operations does it take to solve a certain problem, using a certain algorithm? I&apos;m going to simplify things here, ignore the difference between so called &quot;Big O&quot; and &quot;Little O&quot; and not worry too much about the theoretical underpinnings. This also isn&apos;t the only metric used to evaluate how efficient an algorithm is, but it&apos;s a major one. &lt;br /&gt;&lt;br /&gt;For example, if I hand you a deck of cards, and I tell you to find the Ace of Spades, how many cards would you have to look at in order to find it? Assume you start at the top, and keep drawing cards until you find the one you want. In the best case, the very first card you flip is the one you&apos;re looking for. That&apos;s on the order of one operation, written as O(1). But, that&apos;s the best case. What about the worst? If it were the last card you flipped, that would have taken 52 operations- O(52), or, to be really programmery, O(n), where &quot;n&quot; is the number of cards in the deck. By being general, we can extrapolate this to any collection of cards- be it a full deck, less than a full deck, or even a collection of something else entirely- like an address book.&lt;br /&gt;&lt;br /&gt;When talking about the &quot;O&quot; of an algorithm, programmers don&apos;t like to worry about constants. We don&apos;t like &quot;52&quot;- that&apos;s far to specific. &quot;n&quot; is much more useful. But similarly, if there were an algorithm with O(2n+1), we&apos;re going to ignore the 2 and the +1 and just call in O(n). Doubling it once just isn&apos;t a big enough change to really count. It&apos;s details and small stuff, and if &quot;n&quot; is sufficiently large, it just doesn&apos;t matter.&lt;br /&gt;&lt;br /&gt;Now, searching each individual card in the deck isn&apos;t terribly clever, but if the deck is shuffled, that&apos;s really all you can do. Picking out randomly, going from top to bottom, bottom to top, it just doesn&apos;t matter. But if the deck were sorted- now &lt;i&gt;that&lt;/i&gt; could be useful. Think about the phone book- it&apos;s sorted, and you don&apos;t have to search every single name to find the one you&apos;re looking for.&lt;br /&gt;&lt;br /&gt;If you were writing a computer program to find a name in the phone book, you&apos;d start by going to the name in the middle. If it&apos;s the name you&apos;re looking for, great, you&apos;re done. If not, does it come before or after the name you&apos;re looking for? Once you know that- you&apos;ve just eliminated half of the names. Take the remaining half, and go to the middle. Repeat the previous process until you find the name you want. Each operation (name you look at) eliminates half of the remaining names. Searching a sorted list is very effeceint, and in this case, it&apos;s on the order of &quot;lg n&quot;. (lg is the log base 2, or &quot;what power do I have to raise 2 to to get &quot;n&quot;). This, by the way, is called &quot;binary search&quot; and is the goto searching algorithm to use in any search.&lt;br /&gt;&lt;br /&gt;In our naive search, where we just checked every element, it&apos;s O(n). In a deck of 52 cards, that&apos;s 52 operations. Not that bad, but what if I had a list of 1,024 items? That&apos;s 1,024 comparisons. But if we used the binary search, it&apos;s O(lg n)- &lt;i&gt;10&lt;/i&gt; comparisons. (2&lt;sup&gt;10&lt;/sup&gt; = 1,024). That&apos;s a savings of 1,014 comparisons, in the worst case.&lt;br /&gt;&lt;br /&gt;Programmers tend to break down algorithms into a few major categories based on their Big O.&lt;br /&gt;&lt;br /&gt;Stuff that&apos;s O(lg n) is very fast stuff. They scale really efficiently to big sets of data (1,000 elements is 10 operations, a million elements is 20 operations, a billion elements is only 30 operations!).&lt;br /&gt;&lt;br /&gt;O(n) isn&apos;t as liked, and most O(n) algorithms can be turned into O(lg n) if you&apos;re very clever and find ways to cheat (for example, if you need to search an unsorted list, it&apos;ll always be O(n), but if you sort it first, even though sorting is expensive, you&apos;ll make it up if you search a lot).&lt;br /&gt;&lt;br /&gt;Sorting is really expensive, in comparison. The best sorting algorithms are O(n*lg n). That means, for a set of a thousand elements, it would take 10,000 operations to sort. Ugh, but some problems just can&apos;t be made any easier. O(n*lg n) is the best you&apos;ll get for sorting algorithms, and there are whole classes of problems that fall into this category.&lt;br /&gt;&lt;br /&gt;Worst is O(n&lt;sup&gt;2&lt;/sup&gt;), or even larger exponents. This is the demon of programmers. For example, the first sorting algorithm that most CompSci students learn is the &lt;a href=&quot;http://en.wikipedia.org/wiki/Bubble_Sort&quot;&gt;Bubble Sort&lt;/a&gt;. It&apos;s very simple to understand and implement, but it&apos;s an O(n&lt;sup&gt;2&lt;/sup&gt;) sort. But, to sort 1,000 elements, you have to do 1,000,000 operations. Algorithms that run in &quot;polynomial&quot; time are ones that programmers hate. It&apos;s worth noting that there are a lot of problems that, as far as we know, can&apos;t be solved any faster. There&apos;s a whole family of problems that are called &quot;&lt;a href=&quot;http://en.wikipedia.org/wiki/NP-complete&quot;&gt;NP Complete&lt;/a&gt;&quot;, which, right now, can only be solved in polynomial time. Whether or not it&apos;s possible to find a better way to solve these problems is an open question.&lt;br /&gt;&lt;br /&gt;This was brought up today because I&apos;m working on Gravitone, an iPhone instrument that uses gravity to generate music. I took a very naive approach to the problem, and simply cycle through all the masses and objects in the world and apply gravity to every other object. My algorithm is O(n*m), where n is the number of orbs in play, and m is the number of masses. Sort of polynomial, and if I were to try and scale it up so that the orbs could effect each other, it&apos;d be O(n&lt;sup&gt;2&lt;/sup&gt;). Ugh, polynomial time? That&apos;s expensive. Or is it?&lt;br /&gt;&lt;br /&gt;I did some research in gravity simulation, and found that the best algorithms out there run in O(n*lg n). The one I looked at specifically was called the &quot;Barnes-Hut algorithm&quot;, and it&apos;s very clever, and something I&apos;ll probably use for a different application. It&apos;s also fairly complex to implement, and requires a lot of memory, despite being very fast (memory/speed are a common trade off).&lt;br /&gt;&lt;br /&gt;It&apos;s faster, but should I use it in this application? No!&lt;br /&gt;&lt;br /&gt;In my application, I&apos;ve capped it at 15 orbs in play and 5 masses in play, which means it&apos;s going to take 60 operations.&lt;br /&gt;&lt;br /&gt;That&apos;s 20 objects total, and in the Barnes-Hut algorithm, 20 * lg 20 ≈ 60 operations.&lt;br /&gt;&lt;br /&gt;For very small data sets, sometimes, really expensive seeming algorithms are okay. Now, the Barnes-Hut algorithm would be &lt;i&gt;better&lt;/i&gt;- it would scale better, and it would allow me to have the different orbs attract each other, and the masses- it&apos;d be a much more compelling simulation, but that&apos;s not the point of the application. I don&apos;t need the power offered by Barnes-Hut.&lt;br /&gt;&lt;br /&gt;All that said, I think making a Barnes-Hut simulation on the iPhone would be kinda neat. Maybe a game, or a different instrument.</description>
  <comments>http://t3knomanser.livejournal.com/1028638.html</comments>
  <category>programming</category>
  <category>gravitone</category>
  <category>iphone</category>
  <lj:security>public</lj:security>
  <lj:reply-count>1</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://t3knomanser.livejournal.com/1028449.html</guid>
  <pubDate>Mon, 04 May 2009 19:04:42 GMT</pubDate>
  <title>Antivaccination Deaths</title>
  <link>http://t3knomanser.livejournal.com/1028449.html</link>
  <description>&lt;a href=&quot;http://blogs.discovermagazine.com/badastronomy/2009/05/04/antivax-kills/&quot;&gt;An infant died of whooping cough in Australia&lt;/a&gt; recently. She was too young to be immunized, but if the adults she came in contact with &lt;i&gt;had&lt;/i&gt; been, she would have benefited from herd immunity, and would still be alive.&lt;br /&gt;&lt;br /&gt;Out of curiosity, I ran some numbers on vaccinations.&lt;br /&gt;&lt;br /&gt;Let&apos;s be very generous. Let&apos;s posit that this utterly unsubstantiated and implausible link between autism and vaccination exists.&lt;br /&gt;&lt;br /&gt;What&apos;s the rate of incidence? There&apos;s 6 in 1,000 people that have some sort of autism spectrum disorder. 2 in 1,000 have true autism. We&apos;ll work with that number. Let&apos;s assume that every member of this 0.2% is properly diagnosed and the disease was caused by a vaccination.&lt;br /&gt;&lt;br /&gt;I repeat: these assumptions are &lt;i&gt;very&lt;/i&gt; generous. Even if vaccines did cause autism (they don&apos;t), we &lt;i&gt;know&lt;/i&gt; that there are other causes as well. These are very generous assumptions to make.&lt;br /&gt;&lt;br /&gt;Now, let&apos;s look an measles. In an vaccinated person in a developed country, 3 in 1,000 people die- 0.3% fatality rate. In underdeveloped nations, it&apos;s closer to 280 per thousand. In immunocompromised patients, like AIDS victims or cancer patients, it&apos;s in the same neighborhood- about 300 in 1,000.&lt;br /&gt;&lt;br /&gt;And that&apos;s just measles. And that&apos;s just deaths- we&apos;re not counting complications like corneal scarring- yes, measles can blind you.&lt;br /&gt;&lt;br /&gt;So, even if we grant the most generous possible claims made by the anti-vaxxers, their arguments don&apos;t stand up. Measles, alone, is a more credible threat than vaccine induced autism, even if every autism case was caused by a vaccine. Even if we take the absurd claims at face value, the argument doesn&apos;t hold up.&lt;br /&gt;&lt;br /&gt;Oh, let&apos;s keep going. Whooping cough kills 600,000 people a year of the 10-90 million it infects. Why the big range? It occurs mostly in third world countries where it&apos;s hard to get good statistics. Let&apos;s pick in the middle- say, 60 million cases. That&apos;s a 1% fatality rate. Heck, even if we go out to 90 million, we&apos;re still looking at a 0.6% fatality rate- which is the same rate of autism spectrum disorder in the population.&lt;br /&gt;&lt;br /&gt;Between measles and whooping cough, we&apos;re talking a 0.9% fatality rate. Wanna start adding diseases? Polio isn&apos;t extinct, you know.&lt;br /&gt;&lt;br /&gt;Ignoring the non-existent autism link, there are real risks to vaccines. &lt;a href=&quot;http://www.cdc.gov/vaccines/vac-gen/6mishome.htm#risk&quot;&gt;The CDC has some data&lt;/a&gt;, but it should be perfectly clear: vaccines are less dangerous than the disease they prevent.</description>
  <comments>http://t3knomanser.livejournal.com/1028449.html</comments>
  <category>science</category>
  <category>idiots</category>
  <category>fuckers</category>
  <category>vaccines</category>
  <lj:security>public</lj:security>
  <lj:reply-count>10</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://t3knomanser.livejournal.com/1028240.html</guid>
  <pubDate>Sat, 25 Apr 2009 17:46:08 GMT</pubDate>
  <title>Functional Programming in .NET</title>
  <link>http://t3knomanser.livejournal.com/1028240.html</link>
  <description>I love functional programming. I&apos;m going to present on doing FP in VB.Net in August- this is a feature new to .NET 3.5. I &lt;i&gt;was&lt;/i&gt; very excited about the ability to do functional programming in VB.Net. And some of the key features I really wanted, currying and closures, are there.&lt;br /&gt;&lt;br /&gt;But the limitations... they almost make it not worth the trouble. Most obviously, VB.Net doesn&apos;t support true lambdas. In a true lambda environment, I could do something like this: &lt;blockquote&gt;&lt;code&gt;f = Function(x as integer) if (x % 2 = 0) then return x / 2 else ... some other code ...&lt;/code&gt;&lt;/blockquote&gt; In true lambdas, you can put any code you like inside of your function. C# and F# allow this. VB.Net does not- VB.Net only allows expressions (you can&apos;t do ifs or loops or anything like that).&lt;br /&gt;&lt;br /&gt;Still, there&apos;s a lot you can do with expressions, so that&apos;s not &lt;i&gt;too&lt;/i&gt; bad. Since you get closures, you can work around that without &lt;i&gt;too&lt;/i&gt; much trouble.&lt;br /&gt;&lt;br /&gt;But then you start running into the bizarre things. I wanted to do a patterned call. In many functional languages, you can create functions like this: &lt;code&gt;f(1) = 1; f(2) = 2; f(x) = f(x - 1) + f(x - 2);&lt;/code&gt;. Calling f(13) will print out the 13th number it the Fibonacci sequence. &lt;br /&gt;&lt;br /&gt;Now, I accept that VB.Net wouldn&apos;t have an architecture like that built in- it&apos;s a somewhat obscure functional trick. But I was hoping I could roll my own. My first attempt at it was to come up with a compiler macro- oops! VB.Net doesn&apos;t support pre-proccesor macros. C# does, of course. &lt;br /&gt;&lt;br /&gt;Well, okay, what about Attributes? .NET has the ability to define metadata on code, that you can &quot;reflect&quot; on to change runtime behavior. I could do something like this:&lt;code style=&quot;background-color: white;&quot;&gt;&lt;pre&gt;
Module 1
  &apos;&quot;fib&quot; is the function name, the second parameter is the pattern- if it returns true, execute this
  &apos;operation, otherwise, go find another operation named &quot;fib&quot; to execute.
  &amp;lt;PatternedFunction(&quot;fib&quot;,function(x as Integer) x = 1 or x = 2)&amp;gt; Function f1(x as Integer)
    Return x
  End Function

  &amp;lt;PatternedFunction(&quot;fib&quot;,function(x as Integer) true)&amp;gt; Function f2(x as Integer)
    Return PatternedCall(&quot;fib&quot;)(x - 1) + PatternedCall(&quot;fib&quot;)(x - 2)
  End Function
End Module&lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Not as concise as I would like, but hey, it works, right? Wrong. Turns out, since Attributes are evaluated at compile time, you can only pass constant expressions into them. Since a function may possibly contain a closure (even though this one does not), you can&apos;t ever treat a function like a constant.&lt;br /&gt;&lt;br /&gt;I&apos;m being an FP snob, and I know it. My reason for wanting to do this is less because I have a specific need and more because I &lt;i&gt;want to&lt;/i&gt;. I get frustrated when a language implements a potentially awesome feature in a half assed way, but as I think about it, &quot;Potentially awesome, practically useless&quot; describes VB.Net to a &quot;T&quot;. If I had my druthers, we&apos;d be a C# shop if we were doing Microsoft at all- I think a big portion of our business would be streamlined by a &lt;i&gt;real&lt;/i&gt; RAD language, like Ruby or Python.&lt;br /&gt;&lt;br /&gt;All of my complaints would be patched if VB.Net supported compiler macros. I&apos;m stunned that it doesn&apos;t- it&apos;s not exactly the hardest thing on earth to implement; your average C compiler has had a macro pre-processor since before I was born. C# has one. And here&apos;s the real kick in the teeth: most macro engines are language agnostic, so there&apos;s no reason they couldn&apos;t have wired the C# engine onto VB.Net.&lt;br /&gt;&lt;br /&gt;Basically, this is an exercise in driving home the flaws of the language that pays my bills.</description>
  <comments>http://t3knomanser.livejournal.com/1028240.html</comments>
  <category>programming</category>
  <category>work</category>
  <category>vb.net</category>
  <category>stupid programmer tricks</category>
  <lj:security>public</lj:security>
  <lj:reply-count>4</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://t3knomanser.livejournal.com/1027912.html</guid>
  <pubDate>Tue, 21 Apr 2009 16:15:35 GMT</pubDate>
  <title>Gravitone</title>
  <link>http://t3knomanser.livejournal.com/1027912.html</link>
  <description>&lt;lj-embed id=&quot;39&quot; /&gt;&lt;br /&gt;&lt;br /&gt;Here&apos;s a demo of my current project- an iPhone app called &quot;Gravitone&quot;.</description>
  <comments>http://t3knomanser.livejournal.com/1027912.html</comments>
  <category>apple</category>
  <category>programming</category>
  <category>objective-c</category>
  <category>jetpack shark</category>
  <category>iphone</category>
  <lj:security>public</lj:security>
  <lj:reply-count>1</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://t3knomanser.livejournal.com/1027751.html</guid>
  <pubDate>Mon, 13 Apr 2009 02:27:36 GMT</pubDate>
  <title>Beer, Pop Art... pop top beer.</title>
  <link>http://t3knomanser.livejournal.com/1027751.html</link>
  <description>Ever since moving to Pittsburgh, I&apos;ve kinda been avoiding the Warhol Gallery. I don&apos;t &lt;i&gt;like&lt;/i&gt; Warhol. I don&apos;t generally care for pop art (although &lt;a href=&quot;http://idiotbox88.blogspot.com/&quot;&gt;this is pretty cool&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;But, a friend volunteers/works there and managed to score tickets to a beer tasting. Hey, free beer? I&apos;ll take a look at any art gallery if free beer is involved.&lt;br /&gt;&lt;br /&gt;The local brewery they chose, Stoudt&apos;s, didn&apos;t have much to offer that I was blown away by. Good, but not spectacular stuff. Very Belgian style, even in their &quot;American&quot; beers. But that&apos;s not the real point of this post.&lt;br /&gt;&lt;br /&gt;After enjoying a generous helping of beer, we took a stroll through the gallery. A lot of it, unsurprisingly, was dedicated to Warhol himself. There were some other modern installations too. And it was all, generally, crap. As I&apos;m walking through there, seeing wall after wall of celebrity snapshots and pop culture ephemera, &quot;recontextualized&quot; as art, it really struck me:&lt;br /&gt;&lt;br /&gt;If pop art were a person, it would be the gum-snapping coworker in the cube over from you with some ear-wormy ringtone on the too-loud-cellphone that natters on and on and on about Branjelina and Brestica or whatever while gossiping about how great the next &quot;Sex and the City&quot; movie is going to be.&lt;br /&gt;&lt;br /&gt;That&apos;s my take away from the Warhol gallery. A large amount of pop art focuses on taking the inane, vapid and annoying and &quot;recontextualizing&quot; it as art. The result is art that is inane, vapid and annoying. &lt;br /&gt;&lt;br /&gt;Now, after venting my spleen, let me cushion the blow with a hint of perspective. A large part of my reaction is that it simply hasn&apos;t aged well. The reason people appreciate Warhol is that he altered the definition of what constitutes art. That&apos;s not entirely a good thing, and he was certainly standing on the shoulders of giants, like Duchamp. But teleporting myself back to the 50s and 60s, seeing giant Elvises shooting at me from a wall would be jarring, and that&apos;s obviously the desired effect. &lt;br /&gt;&lt;br /&gt;One solace in the Warhol gallery: Warhol hated Pittsburgh. Reviled it. So, the fact that the town has a little shrine to him and has named a bridge after him stands out as a little &quot;fuck you&quot; to Warhol, and I can live with that.</description>
  <comments>http://t3knomanser.livejournal.com/1027751.html</comments>
  <category>pittsbugh</category>
  <category>art</category>
  <lj:security>public</lj:security>
  <lj:reply-count>2</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://t3knomanser.livejournal.com/1027442.html</guid>
  <pubDate>Mon, 13 Apr 2009 01:59:37 GMT</pubDate>
  <title>More Stanford iPhone Homework</title>
  <link>http://t3knomanser.livejournal.com/1027442.html</link>
  <description>Not content to have exceeded the assignment&apos;s requirements by adding a graphical layer, I went a few steps farther: I added support for animation and multitouch gestures. The latest version of the source &lt;a href=&quot;http://jetpackshark.com/coding/HelloPoly.zip&quot;&gt;lives here&lt;/a&gt;, and it&apos;s chock full of comments this time.&lt;br /&gt;&lt;br /&gt;Once again, it&apos;s under a Share-Alike-CC-license. Don&apos;t hand it in as your homework.</description>
  <comments>http://t3knomanser.livejournal.com/1027442.html</comments>
  <category>programming</category>
  <category>objective-c</category>
  <category>iphone</category>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://t3knomanser.livejournal.com/1027241.html</guid>
  <pubDate>Sat, 11 Apr 2009 15:31:52 GMT</pubDate>
  <title>iPhone Programming : CS193P</title>
  <link>http://t3knomanser.livejournal.com/1027241.html</link>
  <description>&lt;a href=&quot;http://www.stanford.edu/class/cs193p/&quot;&gt;Stanford University is publishing video and assignments for their iPhone programming course online&lt;/a&gt;. I&apos;ve been following it and doing the assignments, and man... I miss compsci classes. I&apos;ve been having so much fun doing this. For those that recall me in college, I was a lazy underachiever in most of my classes- but not the programming ones. In those, I always took the assignment and exceeded the parameters. I would show other students how to do the assignments. I&apos;d add little flourishes.&lt;br /&gt;&lt;br /&gt;This has been such a breath of fresh air. By day, I slog through tedious code written in tedious languages to do tedious tasks. By comparison, programming on the iPhone is downright sexy. It&apos;s fun, it&apos;s fast.&lt;br /&gt;&lt;br /&gt;But more than that, I&apos;m enjoying my remote college experience. My brain is getting a gentle stretching, and I really like that. Of course, it&apos;s &lt;i&gt;very&lt;/i&gt; gentle- the course material goes at a painfully slow pace and is treading over the basics of OOP with a leaden step. But then I pick up the homework assignments, and run past the requirements and show off, and I don&apos;t care how dull the lectures get.&lt;br /&gt;&lt;br /&gt;Not to say I get nothing from the lectures. I finally &quot;get&quot; Objective-C memory management. ObjC has an approach that&apos;s someplace between Java-style Garbage Collection and C style malloc/free.&lt;br /&gt;&lt;br /&gt;In any case, I&apos;ve got my first non-trivial iPhone application done. The business logic is pretty trivial- do some stuff with polygon shapes- but the UI has drawing and animations, which is well beyond the goals for the current homework assignment. If you have an Intel Mac, you can download the SDK from Apple (free signup required) and run it if you like. The linked code is distributed under a CC-share-alike license: &lt;a href=&quot;http://jetpackshark.com/coding/HelloPoly.zip&quot;&gt;HelloPoly code&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;If anyone is dumbshit enough to try and hand this in to the class, they&apos;re going to get owned, because it&apos;s pretty obviously &lt;i&gt;not&lt;/i&gt; what the assignment called for.</description>
  <comments>http://t3knomanser.livejournal.com/1027241.html</comments>
  <category>apple</category>
  <category>programming</category>
  <category>objective-c</category>
  <category>standford</category>
  <category>iphone</category>
  <lj:security>public</lj:security>
  <lj:reply-count>2</lj:reply-count>
</item>
</channel>
</rss>
