tag:blogger.com,1999:blog-87098112024-03-23T15:09:47.686-03:00Scott's BlogScott Kirkwood's Personal Blog
Programming, BrazilScott Kirkwoodhttp://www.blogger.com/profile/01644448074431939072noreply@blogger.comBlogger497125tag:blogger.com,1999:blog-8709811.post-33649842483674351042021-08-13T20:39:00.001-03:002021-08-13T20:39:16.250-03:00Why 80% of my portfolio is Tesla<p><span style="font-family: inherit;">So I checked my trading accounts, and 80% of my </span>portfolio<span style="font-family: inherit;"> (by value) - not including Google (because I work there) or RRSPs - is TSLA.</span></p><p><span style="font-family: inherit;">Some might think that I'm too heavily weighted on one company, I disagree.</span></p><p><span style="font-family: inherit;">Why? Because everyone I know wants to work for Tesla or SpaceX. Not, Amazon, Facebook or Apple. </span></p><p><span style="font-family: inherit;">Why? Because </span>Tesla<span style="font-family: inherit;"> is making a huge </span>difference. Their mission statement is:</p><blockquote><p>"Accelerating the world's transition to sustainable energy"</p></blockquote><p> And they are accomplishing it!</p><p>Also, Tesla is getting things done! They are coming out with new cars, factories, solar roofs, and batteries faster than anyone could have predicted. </p><p>The pace is exciting. The impact you can make, not to your own wealth, but to the whole world is enormous.</p><p>If you are smart and capable, do you really want to work at a startup, where maybe, just maybe, you might make a small difference (and make some money) - or work for Tesla where even if you were a minor cog in the wheel you would make a big difference to the world, to the future (and would get TSLA shares).</p><p>Sure Elon Musk is a genius, values engineers (vs MBAs, marketing execs) and is pursuing world changing goals. Yet that is not the main reason I'm long on TSLA. I'm long on TSLA because of all the smart and <b>motivated</b> employees he has garnered.</p><p>If you think Tesla is just a car company, you are mistaken.</p><p>If you think Tesla is just a battery company, you are also mistaken.</p><p>If you think Tesla is just an energy company, you are also mistaken.</p><p>Tesla is all of these things and will be more. It'll make heat pumps/air conditioners, it will make airplanes, semi trucks, pickup trucks, vans, and boats.</p><p>The smart people at Tesla will find a hundred other important ways to <i>accelerate the advent of sustainable energy</i>.</p><p>Elon jokes that if takes on any more tasks (like VTOL aircraft) his head is going to explode. But he know that what he has created is greater than himself. His employees truly want to make a difference, they don't care about the money. Eventually, they will "demand" to work on new important tasks like energy efficient buildings.</p><p>What makes Elon (and therefore Tesla/SpaceX//Boring Co.) so great is desire to go big (not safe). To value engineers (not MBAs) - to <b>do</b> things, not push numbers around on a spreadsheet. This is what is attractive to people like me: working on something important, that's moving fast, that values my contribution, that's gong to change the world.</p><p>I'm not invested 80% on Elon or Tesla. I'm invested on the vision and more importantly, the people - the people that Elon Musk attracted to Tesla. Together Tesla is going to be the largest company, by far, in the world. Sure larger than the other car companies: Toyota, VW, Daimler, Ford, Honda, Fiat - combined. But also larger than Walmart, Apple, Alphabet, Facebook - by far.</p>Scott Kirkwoodhttp://www.blogger.com/profile/01644448074431939072noreply@blogger.com0tag:blogger.com,1999:blog-8709811.post-79869186407815448742021-08-13T19:46:00.003-03:002021-08-13T19:46:49.759-03:00Comparing ICV to EVs to cellphones<p> I still hear friends complaining that EV (Electric Vehicles) are too expensive compared to ICV (Internal Combustion (gas) Vehicles). Or they are worried about the range or battery life...</p><p><a href="https://www.bloomberg.com/news/articles/2021-06-10/peak-internal-combustion-engine-may-already-be-years-behind-us">Bloomberg</a> thinks that peak ICV already here, the number of ICE vehicles sold will continue to decline year over year until there you can't buy them anymore - they are correct. Tesla vehicles are better in <a href="https://www.tesla.com/ns_videos/2020-tesla-impact-report.pdf">every way</a> (safety, performance, reliability, price) than gas or diesel cars, already.</p><p>You might think the price is higher for EVs, but only the purchase price, if you consider the total cost of ownership, Teslas are cheaper. Cheaper because they have far better resell value, because charging is way cheaper than filling with gas (and getting cheaper), cheaper insurance, less maintenance, and more reliability. Never mind that you aren't killing the environment or <a href="https://www.vox.com/energy-and-environment/2020/8/12/21361498/climate-change-air-pollution-us-india-china-deaths">children</a>.</p><p>It's like comparing a feature phone with a smart phone:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-D2npJOdHOvk/YRbtf_aa8tI/AAAAAAAAYrE/Rp_X83pXM_MSrc__YhKw5nGe936NESmCwCNcBGAsYHQ/s480/226px-Nokia_3410_%2528cutout_transparent_background_and_shadow%2529.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Feature Phone" border="0" data-original-height="480" data-original-width="226" height="320" src="https://1.bp.blogspot.com/-D2npJOdHOvk/YRbtf_aa8tI/AAAAAAAAYrE/Rp_X83pXM_MSrc__YhKw5nGe936NESmCwCNcBGAsYHQ/w151-h320/226px-Nokia_3410_%2528cutout_transparent_background_and_shadow%2529.png" width="151" /></a><a href="https://1.bp.blogspot.com/-jre6ka0rOVg/YRb11Ggy5LI/AAAAAAAAYrg/Yo0omimfuYoh9lKI6xYithsHeHTPVOdUwCNcBGAsYHQ/s1360/6-67746_smart-phone-png-free-download-cell-phone-transparent.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1360" data-original-width="860" height="320" src="https://1.bp.blogspot.com/-jre6ka0rOVg/YRb11Ggy5LI/AAAAAAAAYrg/Yo0omimfuYoh9lKI6xYithsHeHTPVOdUwCNcBGAsYHQ/s320/6-67746_smart-phone-png-free-download-cell-phone-transparent.png" width="202" /></a><br /><br /></div><p>A feature phone is:</p><p></p><ul style="text-align: left;"><li>Cheaper to buy!</li><li>Batter lasts longer (like a gas car has more 'range')</li><li>It has buttons!</li></ul><div>Filling up at a gas station is for loosers. Filling up at home is way more convenient, less smelly and faster in a way.</div><div>Hybrids are for loosers. All the disadvantages of a car (maintenance, pollution, unreliability) and now the (small) battery is extra weight and taking up extra space.</div><div><br /></div><div>If you are buying a new gas car today, you are making a big mistake. In 5 years time you won't be able to give it away, it's going to depreciate that fast. In 10 years time your going to have to look at Google maps to find the nearest gas station, because there will be so few to choose from. Gas prices will fluctuate like crazy, sometimes super high other times super cheap. Meanwhile, electricity prices will keep getting better, or 'free' if you install a solar panel.</div><div><br /></div><div>The era of gas is over, do you want to be the last person to buy a gasoline vehicle? Are you still buying Nokia feature phones? Are you still buying kerosene for your lanterns? Don't be on the wrong side of history.</div><p></p>Scott Kirkwoodhttp://www.blogger.com/profile/01644448074431939072noreply@blogger.com0tag:blogger.com,1999:blog-8709811.post-59293016984485997602021-07-01T23:24:00.000-03:002021-07-01T23:24:25.198-03:00wny am I happy about the death of some people?<p>Unfortunately, I'm staring to be happy that certain people have died. </p><p>Like Fred Koch and, more recently, Donald Rumsfeld.. Frankly these are both people that should be celebrated for dying and not continuing the evil they perpetrated. More succinctly, they should be remembered for doing more evil than good during their lifetime and it is overall better that they have died than live a minute longer on this earth.</p><p>These people can't repent but others (like Mitch) should link about their legacy. How many of us will be so happy that they are dead. Donald isn't the worst of them, but should be remembered for all of the evil that they have committed.</p>Scott Kirkwoodhttp://www.blogger.com/profile/01644448074431939072noreply@blogger.com0tag:blogger.com,1999:blog-8709811.post-68275087594574436342020-12-30T17:43:00.000-03:002020-12-30T17:43:50.882-03:00The Electric Unicycle is the Perfect Personal Transporter<h3 style="text-align: left;">Segway</h3><div>Way back in 2001, the Segway "human transport", code named <i>Ginger</i> (think Ginger Rogers), was all the buzz. Segway promised to change the world with it's two-wheeled self-balancing personal transporter. It was amazing, but pricey ($5,000 USD) and slow max of 16 km/h. However, self-balancing really <i>is</i> the way to go, but the battery tech wasn't there in 2000's.</div><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-DtjYk8LfJRs/X-y6Rddh49I/AAAAAAAAWB4/Dcl9NJ3t9LMCsvuS62x0Gyk6yUerC5pgACNcBGAsYHQ/s1200/FlorenceSegwayTour.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img alt="Segway touring" border="0" data-original-height="1200" data-original-width="800" height="200" src="https://1.bp.blogspot.com/-DtjYk8LfJRs/X-y6Rddh49I/AAAAAAAAWB4/Dcl9NJ3t9LMCsvuS62x0Gyk6yUerC5pgACNcBGAsYHQ/w133-h200/FlorenceSegwayTour.jpg" width="133" /></a></div><div style="text-align: center;"><span style="font-size: xx-small;">Spinnick597 Wikipedia</span></div><h3 style="text-align: left;">Electric Unicycle (EUC)</h3><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-AH9vIFw_BI8/X-y7ZlyMC2I/AAAAAAAAWCE/Cjzqaj17SK8iEjHoX5gwpAgsrF3OZ3FXwCNcBGAsYHQ/s960/Inmotion%2BV11%2BWebres%2B%25283%2529__16500.1597791083.webp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Inmotion V11 euc" border="0" data-original-height="960" data-original-width="960" height="200" src="https://1.bp.blogspot.com/-AH9vIFw_BI8/X-y7ZlyMC2I/AAAAAAAAWCE/Cjzqaj17SK8iEjHoX5gwpAgsrF3OZ3FXwCNcBGAsYHQ/w200-h200/Inmotion%2BV11%2BWebres%2B%25283%2529__16500.1597791083.webp" width="200" /></a></div>Electric Unicycles, like the Inmotion V11 above, is the natural evolution of the self balancing Segway. It has bigger tires (18") which helps get over obstacles and absorb shocks. It also has a suspension which absorbs even more. <div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-l7SPRdm0cBk/X-zBgY7et9I/AAAAAAAAWCQ/AomzHF4a7BAu_dpD9E-7kUbCHkipZYzVgCNcBGAsYHQ/s800/off-road.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="V11 offroad" border="0" data-original-height="450" data-original-width="800" height="113" src="https://1.bp.blogspot.com/-l7SPRdm0cBk/X-zBgY7et9I/AAAAAAAAWCQ/AomzHF4a7BAu_dpD9E-7kUbCHkipZYzVgCNcBGAsYHQ/w200-h113/off-road.jpg" width="200" /></a></div><br /><div>What makes an EUC the perfect transporter is that it is:</div><div><ol style="text-align: left;"><li>Compact</li><li>Long ranged</li><li>Off-road capable</li><li>Hands free</li><li>Not a motorbike</li></ol><div>Let me go over each and compare to other electric vehicles:</div><h3 style="text-align: left;">Compact</h3><div>You can't get much smaller or lighter without going for a smaller wheel (<a href="https://www.youtube.com/watch?v=SxsW-XZ9cQw">electric shoes</a>?). You can just throw it in the trunk, which makes it a lot more convenient than an electric bicycle. And an electric motorcycle takes a lot of space in the garage.</div><div><br /></div><div>It's not as wide as the Segway or a hover-board, so you can go down narrow paths. It's nimble and most can go off-road as well as ride on streets.</div></div><div><br /></div><div>This compactness also means you can (often) bring it inside a store and walk it around with it's handle, like luggage. No one will bat an eye. Having to lock it up outside, like a bike, is something you may never have to do. Smaller EUCs can be even be put in a locker.</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-LD7z0h5_Trw/X-zUMtiGfHI/AAAAAAAAWCo/QJ72ccOC2jEc5vTkE-oMlg_E2FE8F6S9ACNcBGAsYHQ/s750/w1200_2b80_handle.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Handle" border="0" data-original-height="522" data-original-width="750" height="139" src="https://1.bp.blogspot.com/-LD7z0h5_Trw/X-zUMtiGfHI/AAAAAAAAWCo/QJ72ccOC2jEc5vTkE-oMlg_E2FE8F6S9ACNcBGAsYHQ/w200-h139/w1200_2b80_handle.png" width="200" /></a></div><div style="text-align: center;"><span style="font-size: x-small;">You can walk it like luggage</span></div><div><h3 style="clear: both; text-align: left;">Long Ranged</h3><div>Compared to a hover board, <a href="https://onewheel.com/pages/onewheel-pint-vs-onewheel-xr">one wheel</a> or an electric scooter, there's a lot more room to add batteries. A really large EUC like the Veteran Sherman can go up to 200 km. </div><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-CM6FD0-h5Pw/X-zLziAYciI/AAAAAAAAWCc/qjbnsELfxIgYfGFvpQcetLxtMI_OE2AhQCNcBGAsYHQ/s960/Veteran%2BSherman%2BImages%2B%25286%2529__88137.1597791337.webp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Veteran Sherman EUC" border="0" data-original-height="960" data-original-width="960" height="200" src="https://1.bp.blogspot.com/-CM6FD0-h5Pw/X-zLziAYciI/AAAAAAAAWCc/qjbnsELfxIgYfGFvpQcetLxtMI_OE2AhQCNcBGAsYHQ/w200-h200/Veteran%2BSherman%2BImages%2B%25286%2529__88137.1597791337.webp" width="200" /></a></div><div class="separator" style="clear: both; text-align: center;"><span style="font-size: x-small;">Veteran Sherman.<br />I considered this EUC but is heavier than I would like.</span></div><div class="separator" style="clear: both; text-align: center;"><span style="font-size: x-small;"><br /></span></div><div class="separator" style="clear: both; text-align: left;">Bigger batteries means more cost, but also means longer life for the batteries themselves. If you regularly charge to 80% and go only as low as 20% your batteries will last for decades. It's when you need to fully charge all the time and often go down to nearly 0% that you kill you batteries in short order. </div><div class="separator" style="clear: both; text-align: left;">When the battery is low, the EUC may struggle to maintain velocity, which also means it'll struggle to keep you upright. That's why all EUCs now will force you to slow way down when the battery gets low.</div><h3 style="clear: both; text-align: left;">Off road capable</h3>That Veteran Sherman above has a monstrous 20" tire, but EUCs can go as low a 14". A big tire means you can go over bumps and even up and down stairs, if you are skillful enough. It also naturally absorbs more shocks. This is a big advantage over electric scooters, which typically have smaller wheels.</div><div><br /></div><div><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="266" src="https://www.youtube.com/embed/22pWDObTByI" width="320" youtube-src-id="22pWDObTByI"></iframe></div><div class="separator" style="clear: both; text-align: center;"><span style="font-size: x-small;">Watch Chooch ride like a </span><span style="text-align: left;"><span style="font-size: x-small;">daemon</span></span></div><h3 style="clear: both;">Hands Free</h3></div><div>An electric skateboard requires that you hold a speed controller in one hand. A bike or scooter means your are holding on to a bar with both hands. Having your hands free is real freedom. Need to put on gloves or take a photo with your smartphone, you can do that without slowing down.</div><div><h3>Not a motorbike</h3></div><div>It's treated as a bicycle, which means, in most places, you can't ride on the sidewalk, but does have some advantages. I considered buying an electric motorcycle like the Zero, I have a motorcycle license, but not only is motorcycle cost high, but you need to pay for insurance on it every year. Not so for bicycles or EUCs.</div><h2 style="text-align: left;">Downsides</h2><h3 style="text-align: left;">Safety</h3><div>You can be thrown from you EUC if you are not careful. Because you are closer to the ground you don't have a lot of time to roll and are more a little more likely to face-plant. This means you really should suit up before riding, this means:</div><div><ul style="text-align: left;"><li>A full face helmet, something that also covers your chin. Doesn't have to be as big as a motorcycle helmet, but a basic bicycle helmet won't do.</li><li>Wrist guards. If you fall forward you may put your hands out and could hurt your wrists. This is the same as you would do for rollerblading.</li><li>A motorcycle jacket. You can get up to 50 km/h on these things, if you plan on doing that on pavement you really need better protection like motorcycle gear.</li><li>Knee pads. If you are being aggressive and off-roading you'll want to put these on as well.</li></ul><div><h3>Steep Learning Curve</h3></div></div><div>Compared to a scooter, it takes a while (maybe an hour) to get the hang of it. To really be "one" with the wheel will take hundreds of kilometres. For me this really isn't a downside. Learning difficult things </div><div>is frankly more rewarding than going the easy route.</div><div><h3>Pricey</h3></div><div>So I just put down $2,700 CAD for an Inmotion V11. This seems pretty pricey, but a good e-bike is similarly priced. And the Zero motorcycle costs 10 times more!</div><div>Since it looks like there will be little to no skiing this winter, learning to ride this thing (in the snow!) will be something for me to do.</div><div><br /></div><div>I'm really excited about this EUC. I think going through the woods will be lots of fun. Going to the corner store will be fun. I may even bring it to the boat so we can explore nearby trails when we anchor. I used to commute everyday in my motorcycle, back when working in an office was a thing, and I'm excited to do this with the V11.</div>Scott Kirkwoodhttp://www.blogger.com/profile/01644448074431939072noreply@blogger.com0tag:blogger.com,1999:blog-8709811.post-64070743909171116222020-04-19T00:26:00.002-03:002020-04-19T00:26:40.845-03:00When gas is rare<div class="separator" style="clear: both; text-align: center;">
<a href="https://1.bp.blogspot.com/-IE1kr3voqvY/Xpu0HYYpeyI/AAAAAAAASzE/2nmUlkQofmAaPY1BM4P6Wg-nH8GJWqupACNcBGAsYHQ/s1600/mehluli-hikwa-m4XijjbttD8-unsplash.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1072" data-original-width="1600" height="214" src="https://1.bp.blogspot.com/-IE1kr3voqvY/Xpu0HYYpeyI/AAAAAAAASzE/2nmUlkQofmAaPY1BM4P6Wg-nH8GJWqupACNcBGAsYHQ/s320/mehluli-hikwa-m4XijjbttD8-unsplash.jpg" width="320" /></a><br /><span style="background-color: whitesmoke; color: #111111; font-family: -apple-system, BlinkMacSystemFont, "San Francisco", "Helvetica Neue", Helvetica, Ubuntu, Roboto, Noto, "Segoe UI", Arial, sans-serif; font-size: xx-small; white-space: nowrap;">Photo by </span><a href="https://unsplash.com/@thatafro?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText" style="background-color: whitesmoke; box-sizing: border-box; color: #767676; font-family: -apple-system, BlinkMacSystemFont, "San Francisco", "Helvetica Neue", Helvetica, Ubuntu, Roboto, Noto, "Segoe UI", Arial, sans-serif; font-size: x-small; text-decoration-skip-ink: auto; transition: color 0.1s ease-in-out 0s, opacity 0.1s ease-in-out 0s; white-space: nowrap;">Mehluli Hikwa</a><span style="background-color: whitesmoke; color: #111111; font-family: -apple-system, BlinkMacSystemFont, "San Francisco", "Helvetica Neue", Helvetica, Ubuntu, Roboto, Noto, "Segoe UI", Arial, sans-serif; font-size: xx-small; white-space: nowrap;"> on </span><a href="https://unsplash.com/s/photos/gas-station?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText" style="background-color: whitesmoke; box-sizing: border-box; color: #767676; font-family: -apple-system, BlinkMacSystemFont, "San Francisco", "Helvetica Neue", Helvetica, Ubuntu, Roboto, Noto, "Segoe UI", Arial, sans-serif; font-size: x-small; text-decoration-skip-ink: auto; transition: color 0.1s ease-in-out 0s, opacity 0.1s ease-in-out 0s; white-space: nowrap;">Unsplash</a></div>
<div class="separator" style="clear: both; text-align: left;">
Currently the price of gas in North America is at the lowest value we've seen in a decades because of the pandemic and a price war started by Russia. This whole situation is not great for gas stations of course because people aren't driving and their profits increase with great gas prices. </div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://1.bp.blogspot.com/-FqO7CjQCsSc/Xpu3NjNgxkI/AAAAAAAASzQ/9FEIe8KBeVkoAmFyl1bpajQgBsgwSROXwCNcBGAsYHQ/s1600/ch%2B%25281%2529.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="326" data-original-width="670" height="155" src="https://1.bp.blogspot.com/-FqO7CjQCsSc/Xpu3NjNgxkI/AAAAAAAASzQ/9FEIe8KBeVkoAmFyl1bpajQgBsgwSROXwCNcBGAsYHQ/s320/ch%2B%25281%2529.gif" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
This also points gas price volatility, both down and and up. Some gas stations will go bankrupt, some owners will retire a little earlier, but eventually there will be less gas stations.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
As more and more people are buying battery electric vehicles (BEV), the writing will be on the wall. Who would want to open a new gas station in this climate? Could you guarantee that there will be more gas guzzling customers in 5 years?</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
As you have to drive further and further to gas up, the practicality of charging your car at home becomes more and more attractive. With less competition from other gas stations, the opportunities to price gouge will be high. All this makes electric cars even more attractive.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
The shipping and refining of gas is complicated and fragile. If there is a lot of price volatility and declining margins you might see gasoline shortages. You might not be <i>able</i> to fill up you car or truck some days.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Electricity is abundant and cheap, and getting cheaper. Some cities are putting electric <a href="https://airqualitynews.com/2019/05/02/1000-ev-charge-points-installed-on-londons-lamp-posts/">chargers at every lamppost</a>. I've eaten at restaurants while my car charged for free, I've stayed at hotels and b&b's where I woke up to a fully charged car, again for free. I can charge my car at work for free. I've never gone to a restaurant where they gave me a jerrycan of gas on the way out. </div>
<div class="separator" style="clear: both; text-align: left;">
You never have to 'make a trip' to fill up, when the "gas pump" is in your garage.</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://1.bp.blogspot.com/-Qpl6W9uji-E/XpvAA0y0c6I/AAAAAAAASzc/DvgfEE7I9Jwv1DAlv7ELM44xl4P-ZTCsgCNcBGAsYHQ/s1600/IMG_20180526_110959.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="220" data-original-width="293" src="https://1.bp.blogspot.com/-Qpl6W9uji-E/XpvAA0y0c6I/AAAAAAAASzc/DvgfEE7I9Jwv1DAlv7ELM44xl4P-ZTCsgCNcBGAsYHQ/s1600/IMG_20180526_110959.jpg" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: xx-small;">Installing my charger</span></div>
<div class="separator" style="clear: both; text-align: left;">
All of this is additional pressure that ICE vehicle owners will feel with increasing frequency. At some point they will get fed up and will start looking for a BEV to replace their old gasoline car. And they will be delighted, because BEVs are safe, quiet, reliable and cheap to operate. </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
What I'm saying is that this gasoline price volatility is going to accelerate the move to electric transportation. Eventually, only rich people will be able to afford gasoline cars, and they will drive it mostly for nostalgia purposes, like driving a Model T. They'll have to drive for miles to the nearest gas station or install their own pumps at home.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
In theory it's going to take at least 20 years for cars that are made to today live our their useful lives, but I think it might be even sooner. Who wants an old car that needs expensive maintenance and when gas is expensive and hard to find. A lot of people will be dumping their ICE c for scrap because no one wants to buy their old vehicle.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
The electric future is coming and it's coming sooner than you think.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
Scott Kirkwoodhttp://www.blogger.com/profile/01644448074431939072noreply@blogger.com0tag:blogger.com,1999:blog-8709811.post-5388423440436225482020-04-17T16:20:00.002-03:002020-04-17T16:20:21.372-03:0010 Reasons why Tesla makes their own seats, maybeIt's pretty odd that Tesla makes their own seats for their cars. There are only <a href="https://cleantechnica.com/2019/04/22/teslas-seat-heaven-home-of-teslas-cloud-like-seats/">four seat manufacturers</a> worldwide that all other car manufacturers use. Tesla is the only major car company that makes their own seats. Why?<br />
<br />
Here are my guesses as to why they do this:<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://pbs.twimg.com/media/DgWjUeoU0AEPLaJ?format=jpg&name=large" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="600" data-original-width="800" height="240" src="https://pbs.twimg.com/media/DgWjUeoU0AEPLaJ?format=jpg&name=large" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
10. Tesla wants to make seats better than what other car companies can offer. Seats are half of the car experience, if they aren't super comfortable for long rides you won't want to buy the car. My neighbor was on the fence, but ten seconds sitting in my Model 3 and he had already decided to pull the trigger.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both;">
9. Tesla has high quality vegan leather seats that the other seat manufactures might not be able to offer.</div>
<div class="separator" style="clear: both;">
<br /></div>
<div class="separator" style="clear: both;">
8. New car smell, Tesla doesn't want it, and seat manufacturers probably do things to make smell worse.</div>
<div class="separator" style="clear: both;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
7. Tesla wants to make super durable car seats for the autonomous vehicle (AV) future, where the car is being used all the time, like a taxi - and the traditional seat manufacturers don't have that amount of durability.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
6. Tesla wants to save money. If you make the seats yourself, in the same factory, you cut down on shipping and handling, and there's no middleman taking a cut.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
5. Computer controlled seats. When I sit in my car and press the pedal the seat goes to my preferred setting. Other cars have this as well, but probably use a more complicated CAN-bus setup requiring the seats to have their own micro controller.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
4. Tesla wants to have heated-seats for all their seats. I'm pretty sure that the seat manufacturers just treat heated seats as an optional add-on. This makes those heated seats less efficient as they aren't as fully integrated. For Tesla, heated seats can greatly increase the range of the car in cold weather. It's far more efficient to heat one seat than to heat the whole cabin, that's why all seats in the model 3 are heated seats.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
3. Tesla thinks they can out innovate here. Seat manufacturers are probably not the most innovative companies. Innovations not just in seat quality and comfort, but innovations in manufacturing itself (ex. use of robots).</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
2. Safety is very important for Tesla, they may feel that they can do a better job than the traditional seat manufacturers in this respect, say by making the seat stronger.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
1. The number one reason for all this vertical integration by Tesla, is fear. All the traditional car companies have tremendous leverage over the four seat manufacturers. There are so many small things the the seat manufacturers could do to make life a living hell for Tesla: late shipments, poor quality, slow design changes, missing promised shipments. You can't ship a car without seats, their whole production could be stalled because of this. Sure the seat companies might have large fines, but the traditional car companies could secretly be paying these fines for the seat companies.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Basically, Tesla wants full control over cost, quality, features, and having a super reliable supply. Their supply and quality fears are grounded in reality. Having full control is far safer and gives them a lot of control.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Conversely, traditional car companies have outsourced nearly all of their manufacturing and are essentially only assembling and adding marketing (to the tune of about <a href="https://chargedevs.com/newswire/auto-industry-except-tesla-spends-an-average-1000-per-vehicle-in-advertising/">$100 of advertising per car</a>). They've stopped innovating and are being sideswiped by innovative companies like Tesla.</div>
Scott Kirkwoodhttp://www.blogger.com/profile/01644448074431939072noreply@blogger.com0tag:blogger.com,1999:blog-8709811.post-2072772866397475822019-01-22T10:52:00.001-02:002019-01-22T10:52:17.561-02:00<h2>
Tesla Model 3 Pros/Cons</h2>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://4.bp.blogspot.com/b-QfnEuViZL_Zvw2GA2CzmiZakQ6teIpN-mF82X9w2jftrzW1p2K4UMZ-JQaLqupv9cG8DWkwpst6Xs93Buja-PLIjH5Abz8br5ml_8gQp-6vShLXH_gt6Hc6Gc9C3qhUBMoEkL772MOSu4TmW3Ok1fH33AkfeX2XLcdh7QEFNsafydScjEeRsLOPM4VpDUBRKwizZe560UXlBO3gUq2ViQ9tYHurYABNKaHIAdUCLgMeSTugbZab297tIx-hl8zv4PlQTyaoaaKa3HfD_vt5teEDaMn-EnprL855w796CL_8Mcabl4LSjch83xIbuGwfeJbf36l8tdoCM0S7Ux1BiSgoRMyjxPdidpC96eoZDqAUrL3vQTE8vZVZXo1S1i0tKL70NjU2uXcFWgh4ux1rdWDDOL_x6J5Q92Q_a0RGSaXX2t4DkIscREVtuNWiNdHk4xFAnGQJy71mzy7yI-9hlvSL6KQwMhC0G3HlcPmxa_qyrTpa5tIjASIIvKBU2DMGbK2pNHhqkO9pDheIDj7WSNmn6P9snLcK6MdSK5QHsfv1bjyOhW-Z6sCIXwdOEk6JOkR6LyO7oXlHb4wA5gyUinsWTKnYfB__88ApZEAyPIKIphNk7ij223rEA7F6nYTgKbiJQPLfR2BLrHqzfqhd3KtG8d3PSAsp7n1pj04aw1dcdie8KyWo1GesVxxxtUMeTvrTZCGz6aYNHUMt6M=w1231-h923-no" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="923" data-original-width="1231" height="239" src="https://4.bp.blogspot.com/b-QfnEuViZL_Zvw2GA2CzmiZakQ6teIpN-mF82X9w2jftrzW1p2K4UMZ-JQaLqupv9cG8DWkwpst6Xs93Buja-PLIjH5Abz8br5ml_8gQp-6vShLXH_gt6Hc6Gc9C3qhUBMoEkL772MOSu4TmW3Ok1fH33AkfeX2XLcdh7QEFNsafydScjEeRsLOPM4VpDUBRKwizZe560UXlBO3gUq2ViQ9tYHurYABNKaHIAdUCLgMeSTugbZab297tIx-hl8zv4PlQTyaoaaKa3HfD_vt5teEDaMn-EnprL855w796CL_8Mcabl4LSjch83xIbuGwfeJbf36l8tdoCM0S7Ux1BiSgoRMyjxPdidpC96eoZDqAUrL3vQTE8vZVZXo1S1i0tKL70NjU2uXcFWgh4ux1rdWDDOL_x6J5Q92Q_a0RGSaXX2t4DkIscREVtuNWiNdHk4xFAnGQJy71mzy7yI-9hlvSL6KQwMhC0G3HlcPmxa_qyrTpa5tIjASIIvKBU2DMGbK2pNHhqkO9pDheIDj7WSNmn6P9snLcK6MdSK5QHsfv1bjyOhW-Z6sCIXwdOEk6JOkR6LyO7oXlHb4wA5gyUinsWTKnYfB__88ApZEAyPIKIphNk7ij223rEA7F6nYTgKbiJQPLfR2BLrHqzfqhd3KtG8d3PSAsp7n1pj04aw1dcdie8KyWo1GesVxxxtUMeTvrTZCGz6aYNHUMt6M=w1231-h923-no" width="320" /></a></div>
<h3>
Cons</h3>
<div>
<ul>
<li>The doors and trunk often need to be slammed to make sure they are closed properly.</li>
<li>The frunk can't be closed without getting smudge marks on the hood.</li>
<li>The bluetooth software to unlock your car doesn't work quickly every time, although it's mostly Android's fault.</li>
<li>Parts of the central screen can be hard to read.</li>
<li>It's expensive.</li>
</ul>
<h3>
Pros</h3>
</div>
<div>
<ul>
<li>The supercharger network is the best in the world. Fast and cheap and so easy to use, and is a key selling point.</li>
<li>The car's acceleration is instant and so addictive. Brings a smile every day!</li>
<li>The traction control is unbelievably good.</li>
<li>The handling and suspension are really good.</li>
<li>Probably the safest car on the road.</li>
<li>The whole car, and not just certain parts, can be fixed over the air by Tesla. Some days I wake up and the car can do new things.</li>
<li>The car is connected to the Internet, for free!</li>
<li>The battery will basically last forever, because Tesla protects it with careful software and engineering.</li>
<li>The enhanced auto-pilot makes driving long distances and commuting much more pleasant. It's a little like being an attentive passenger and not the driver.</li>
<li>Lots of little things, like the turn indicators, work better than in other cars.</li>
</ul>
<h3>
Like Most Electric Cars</h3>
<ul>
<li>The brakes probably will last forever as regenerative braking means you don't use them very much.</li>
<li>There's not much that can go wrong or needs to be maintained - just tires and windshield wipers.</li>
<li>I can "fill up" at home, any day. It's way more convenient than driving to a gas station. I'm lucky that I can also fill up at work, for free.</li>
<li>I can preheat or pre-cool my car before I arrive - even if the car is in the garage.</li>
<li>In a pinch, I can charge anywhere there is an electric plug.</li>
<li>In some locations I have preferential parking and free charging.</li>
<li>Even if your state or province gets its electricity from coal, you would still emit less CO2 than most gas cars, it's that efficient (like 130 MPGe).</li>
</ul>
</div>
Scott Kirkwoodhttp://www.blogger.com/profile/01644448074431939072noreply@blogger.com0tag:blogger.com,1999:blog-8709811.post-21989096859814074372017-08-04T03:24:00.000-03:002020-04-17T10:52:42.458-03:002017 Reading Challenge<span style="font-family: inherit;">In January I decided I would try a GoodReads <a href="https://www.goodreads.com/user_challenges/8113845">reading challenge,</a> 50 books. I figured 50 books wouldn't be too bad, although it 10x more than I normally read in a year.</span><br />
When you consider it, it's only a book a week, with a chance to skip two weeks if something comes up. <br />
A typical book take less than 8 hours to read. That's a little more than an hour a day to get 1 book a week. Even if I'm a little busy during the week, I can easily pick up the slack on the weekend by reading 4 hours a day.<br />
In March I was already pretty far ahead, it looked like 50 books in a year would be a cake walk. I prefer a challenge and decided to go for the much more ambitious 100 books in one year. Unfortunately, now I was very far behind. I would need to read 3 to 4 books a week in order to catch up. I had to start changing things in order to make it:<br />
<br />
<ul>
<li>Stop reading novels like the 1050 page opus <i>Reamde</i>, by Neal Stephenson or even the 613 page <i>New York 2140</i>, by Kim Stanley Robinson. Stick to books that are less than about 400 page.</li>
<li>Join <i>kindleunlimited</i> which allows me to read some books for free. I'm liking the <i>Frontiers Saga</i> by Ryk Brown, which has quite a few books in the series. The selection of kindleunlimited books is quite small and I still end up buying half my books, but I'm definitely saving some money and branching out to other authors.</li>
<li>Stop listening to podcasts and instead listen instead to audio-books (I use Audible). I do this when I walk the dog (about 1 hour a day), and 40 minutes on my motorcycle with bluetooth helmet speakers. I also typically read at 1.5x speed.</li>
<li>Finish some books that I've half read, especially physical books.</li>
<li>Read a book that is going to be a motion picture. There is some extra impetus to finish the book sooner, rather than later so you can watch the movie and see how it was converted to the big screen.</li>
<li>Stop watching TV and movies.</li>
</ul>
<div>
All this was helping, but what really took me over the edge was taking a vacation, I was reading nearly a book a day - and enjoying it immensely. Now it's the end of July and I'm 6 books ahead of schedule.</div>
<div>
I thought 100 books would really be a stretch, but if you add some audio books and read, instead of camping in front of the TV when you come home from work, it's almost easy.</div>
<div>
There where periods in the past where I would agonise if I should read this book, or that book. Now it's like, "why not read both?".<br />
<br />
[Update} I read <a href="https://www.goodreads.com/review/list/63790735-scott-kirkwood?read_at=2017">112 books</a> in 2017.</div>
<div>
<br /></div>
<br />
<br />Scott Kirkwoodhttp://www.blogger.com/profile/01644448074431939072noreply@blogger.com0tag:blogger.com,1999:blog-8709811.post-14136177346254985572014-11-11T18:53:00.001-02:002014-11-11T18:53:30.062-02:00Technology is acceleratingAs Ray Kurzweil says, (information) <a href="http://www.kurzweilai.net/the-law-of-accelerating-returns">technology is accelerating</a>. This is great but increasingly we are seeing devices turning obsolete faster than ever.<br />
<br />
<ul>
<li>Who want's to get <a href="http://en.wikipedia.org/wiki/Cathode_ray_tube">CRT</a> tv, anymore - even if it was free?</li>
<li>Why would I want to buy a motorcycle that doesn't have fuel injection?</li>
<li>Would you want a 3 year old cell phone?</li>
</ul>
<div>
When you watched a movie on TV, for the longest time, it was difficult to tell which decade it was filmed in. You sometimes noticed when there were k-cars on the road and the movie wasn't trying to be set in the 80's. But once computers and cell phone started appearing then you could tell quite quickly what decade, even what year the movie was probably made.</div>
<div>
</div>
<div>
What worries me is the change of more expensive technologies in the future:</div>
<div>
<ul>
<li>My car is obsolete because it doesn't have fulltime internet access or because it doesn't self drive.</li>
<li>My house is obsolete because it isn't smart or is too far in the countryside for high speed internet.</li>
<li>My city is obsolete because it doesn't have fiber to the home or levitating trains.</li>
</ul>
<div>
How will this affect buyers and sellers. When self driving cars are common how much is your Mercedes going to be worth? Should I buy the Tesla today or wait a year when it has more features? Is buyers remorse going to be an ongoing problem (I just bought this car a year ago and now it is already obsolete).</div>
</div>
<div>
<br /></div>
<div>
When will this start affecting people. "I like her, but her animated Tattoos aren't even in color nor interactive - so old fashioned".</div>
Scott Kirkwoodhttp://www.blogger.com/profile/01644448074431939072noreply@blogger.com0tag:blogger.com,1999:blog-8709811.post-55206130073416030362013-06-16T23:57:00.001-03:002013-06-22T20:43:55.400-03:00Forusers.com homepage back upMy old web page <a href="http://forusers.com/">forusers.com</a> had been down for more than a year.<br />
<br />
It had used an old version of TurboGears which eventually my provider stopped supporting and then finally last month my account expired and I didn't renew.<br />
So it was really without a home. This weekend I decided that I should put it back up. It's been pretty good to me, it got me this <a href="http://www.google.ca/about/jobs/locations/waterloo/">great job</a> because they found my resume on my site.<br />
<br />
As I got the old files I found that I actually had more than 3 versions of the site. The very first one was using Microsoft <a href="https://en.wikipedia.org/wiki/Microsoft_FrontPage">FrontPage</a>. My backup was littered with .htm files.<br />
<br />
Later I had used <a href="https://en.wikipedia.org/wiki/PHP">PHP</a>, and quite a bit. It's interesting how I used PHP more as programming language and less as a templating language. It was difficult to understand how the site looked, it was all code and functions. I had to use the <a href="http://web.archive.org/web/20110208071951/http://forusers.com/">Wayback Machine</a> to find out what it really looked like.<br />
<br />
Finally I had used Python and TurboGears. After that I pretty much left alone, until now.<br />
<br />
Since I like learning new things the site is running on <a href="https://developers.google.com/appengine/docs/go/">Google App Engine</a> with the <a href="http://golang.org/">go</a> backend. However, I'm not use any of the backend yet, it's basically a static page written in <a href="http://angularjs.org/">AngularJs</a>.<br />
<br />
It's going to take me a while to get all the pages up again, but at least I have a home site again, good to see you again old girl.Scott Kirkwoodhttp://www.blogger.com/profile/01644448074431939072noreply@blogger.com0tag:blogger.com,1999:blog-8709811.post-3149665753480492692011-08-17T11:11:00.001-03:002011-08-17T11:12:41.416-03:00Hello StreetviewHello streetview, how are you doing?Scott Kirkwoodhttp://www.blogger.com/profile/01644448074431939072noreply@blogger.com13tag:blogger.com,1999:blog-8709811.post-53867545020543353142010-12-10T14:10:00.000-02:002010-12-10T14:10:21.058-02:00Vanity URLFinally decided to buy <a href="http://scottkirkwood.com/">scottkirkwood.com</a> for my vanity URL, why not?<br />
<br />
It points to my blog.instead of the less memorable <a href="http://scottkirkwood.blogspot.com/">scottkirkwood.blogspot.com</a> and paying for 5 years is relatively cheap.Scott Kirkwoodhttp://www.blogger.com/profile/01644448074431939072noreply@blogger.com0tag:blogger.com,1999:blog-8709811.post-91985813366428662262010-04-05T13:24:00.000-03:002010-04-05T13:24:44.975-03:00Key-Train LaunchedIn the spirit of "Release Early/Release Often" I've shipped the first version of <a href="http://code.google.com/p/key-train/">key-train</a> (<a href="http://key-train.googlecode.com/files/key-train-0.1.0.zip">key-train-0.1.0.zip</a>).<br />
<br />
Here's a screenshot:<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://key-train.googlecode.com/hg/docs/screenshot.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="372" src="http://key-train.googlecode.com/hg/docs/screenshot.png" width="400" /></a></div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: left;">Features include:</div><div class="separator" style="clear: both; text-align: left;"></div><ul><li>Training for all the lowercase keys on the main part of the keyboard in two languages (English/Brazilian Portuguese) and two keyboards (qwerty/ABTN). More languages and keyboards should be easy to add.</li>
<li>Easy for others to contribute <a href="http://code.google.com/p/key-train/wiki/CreatingALesson">better lessons</a> and <a href="http://code.google.com/p/key-train/wiki/MakeKbd">new keyboards</a>.</li>
<li>Easy for others to translate the software using the standard <a href="http://en.wikipedia.org/wiki/GNU_gettext">gettext</a> package (I recommend using <a href="http://www.poedit.net/">poedit</a>). The <a href="http://code.google.com/p/key-train/source/browse/src/keytrain/locale/key-train.pot">key-train.pot</a> file is created automatically - so don't edit it. For your language, you would create a .po file like, <a href="http://code.google.com/p/key-train/source/browse/src/keytrain/locale/pt_BR/LC_MESSAGES/key-train.po">this one</a>.</li>
<li>A reasonable progression of keys and training (27 lessons).</li>
<li>Speed and accuracy training by typing in parts of Wikipedia articles.</li>
<li>Only one lesson file is required for different languages and keyboards.</li>
</ul><div>But the program isn't complete, here's a list of the biggest problems:</div><div><ul><li>The package is way too big, I have to split out the Wikipedia parts and drop the articles/paragraphs which would never be used (because they are too long/short or have ö∂đ ĉȟᴀɹâçťêƦƨ).</li>
<li>Although you can change the keyboard, the keyboard displayed on the screen doesn't yet change.</li>
<li>The Portuguese translation is both incomplete and of poor quality.</li>
<li>The lesson plan needs work.</li>
<li>A students progression is stored. It doesn't continue where they left off.</li>
<li>There are no graphs, problem keys, etc.</li>
<li>Even though most parts use SVG for display, it still looks pretty ugly.</li>
<li>The <a href="http://code.google.com/p/key-train/source/browse/setup.py">setup.py</a> doesn't automatically install the dependancies (i.e. python-yaml).</li>
<li>It's doesn't use <a href="http://pypi.python.org/pypi/pip">pip</a>, <a href="http://pypi.python.org/pypi/distribute">distribute</a>, nor does it have a debian package.</li>
<li>There are <a href="http://code.google.com/p/key-train/issues/list">known bugs</a>.</li>
</ul></div><br />
If you'd like to contribute you can say so on the <a href="http://groups.google.com/group/key-train-discuss">discussion list</a> or send me an email (at scott @ forusers.com).Scott Kirkwoodhttp://www.blogger.com/profile/01644448074431939072noreply@blogger.com2tag:blogger.com,1999:blog-8709811.post-32481141738861941932010-01-21T18:11:00.000-02:002010-01-21T18:11:36.516-02:00fsck'd my driveAfter a few power failures during a week of storms I rebooted my Ubuntu Linux computer and fsck found some errors. Next time I booted it found (and corrected) even more errors, until, eventually I wasn't able to boot anymore (couldn't find grub).<br />
<br />
I have a good <a href="http://scottkirkwood.blogspot.com/2008/07/my-backup-setup.html">backup system</a><sup>*</sup> so I wasn't too concerned (although this was my first real test). I had run <a href="http://sourceforge.net/apps/trac/smartmontools/wiki">smartctl</a> on the first sign of trouble and it didn't give any errors, so it didn't appear to be a hard disk failure. I figure this is an opportunity for me to setup 64bit version of Ubunt and I've also been thinking about dual booting to Windows<sup>®</sup> because <a href="http://store.steampowered.com/">Steam</a> looks like an easy and cheap way to install games.<br />
<br />
I put an old version of Windows XP in the drive and... it blue screened. It just didn't want to install. I tried two other versions and it also failed. I then got the Ubuntu disk and it installed with no problems. I tried Windows again, again it failed to install even though I had reformatted the disk when install Linux.<br />
<br />
After much forth and back I decided to reset my BIOS to factory defaults, and low and behold, Windows installed! Not very nicely, however. I had no Ethernet, no sound, slow graphics and in only one monitor, but at least it was running. I then installed 64 bit Ubuntu desktop and proceeded to restore all my files.<br />
<br />
Next day I went back to Windows to figure out what was wrong. It's been years since I've touched Windows and I was at a loss. How can I get the updates if it can't connect to the internet? Then I thought every time we buy some device it comes with a little CD which I normally throw out - I wonder why they do that? Do people still use CDs, how archaic?<br />
<br />
So I put in the CD for my motherboard which I luckily happened to have kept and in installed the drivers for Ethernet and sound and I was back business. Now I have Steam installed and the Torchlight game I bought for $5 bucks. I'm a little sad that my computer has Windows on it, but such is life.<br />
<br />
<sup>*</sup>Actually, I should have also backed up my package list (i.e. dpkg --get-selections) and my cron list (crontab -l), then it would have been even more painless. I've updated my backup program to dump out this information as well.Scott Kirkwoodhttp://www.blogger.com/profile/01644448074431939072noreply@blogger.com1tag:blogger.com,1999:blog-8709811.post-19147512859558977982009-12-27T23:34:00.000-02:002009-12-27T23:34:45.458-02:00Seven Segment Display in InkscapeToday I got a little sidetracked while working on my <a href="http://code.google.com/p/key-train/">key-train</a> (keyboard training) project. I thought I might spruce it up a little by using a seven segment display for the digits (say for the words per minutes), similar to what <a href="http://ktouch.sourceforge.net/images/screenshots/ktouch01.png">kTouch</a> has. I found an open source font, but it <a href="http://stackoverflow.com/questions/1967257/how-can-you-use-a-font-file-in-gtk">appears to be difficult</a> to just use a ttf font in GTK.<br />
So I figured, it's only 10 images, I'll just make them in svg.<br />
<br />
I vaguely remembered a <a href="http://screencasters.heathenx.org/episode-065/">heathenx inkscape podcast</a> describing how to make an LCD display and decided to use that at my base. Unfortunately, they didn't provide any source files in the show-notes (as far as I could see) so I had to watch and redo the drawings myself!<br />
<br />
By naming each of the seven segments I could create the 10 digits simply by deleting a few elements in one <a href="http://scott-inkscape.googlecode.com/hg/seven-segment/plain-black.svg">template svg file</a>. I can create the template as beautiful as I like and quickly create the 10 derived images with <a href="http://code.google.com/p/scott-inkscape/source/browse/seven_segment.py">these</a> <a href="http://code.google.com/p/scott-inkscape/source/browse/make_digits.py">programs</a>.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://scott-inkscape.googlecode.com/hg/seven-segment/plain-black/combine.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="82" src="http://scott-inkscape.googlecode.com/hg/seven-segment/plain-black/combine.png" width="640" /></a><br />
</div><br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://scott-inkscape.googlecode.com/hg/seven-segment/italic-black/combine.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="67" src="http://scott-inkscape.googlecode.com/hg/seven-segment/italic-black/combine.png" width="640" /></a><br />
</div><div class="separator" style="clear: both; text-align: center;"><br />
</div>Unfortunately, both <a href="http://www.imagemagick.org/script/index.php">ImageMagick</a> and <a href="http://www.graphicsmagick.org/">GraphicsMagick</a> don't handle svg blur properly so my little routine to make the nice combined image doesn't work <a href="http://scott-inkscape.googlecode.com/hg/seven-segment/glow-green/combine.png">correctly</a>, but here's what a blurred (glowing) digit might look like.<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://scott-inkscape.googlecode.com/hg/seven-segment/glow-green/glow-green-3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://scott-inkscape.googlecode.com/hg/seven-segment/glow-green/glow-green-3.png" /></a><br />
</div>So the you have it, some open source 7 segment SVG digits for you to use.Scott Kirkwoodhttp://www.blogger.com/profile/01644448074431939072noreply@blogger.com3tag:blogger.com,1999:blog-8709811.post-78584734855870993572009-12-14T13:02:00.000-02:002009-12-14T13:02:26.399-02:00Choo choo, get on the Key-TrainWell I've done it again, started another <a href="http://code.google.com/p/key-train/">open source project</a>. Renata and I want Victor to learn how to touch type, but these days, it's hard to find a school that teaches just that.<br />
<br />
So I looked at what available in open source and found <a href="http://ktouch.sourceforge.net/">KTouch</a>. It's pretty good however I found some issues with it:<br />
<ul><li>The lecture files aren't very obvious. It's not clear, for example, that it has already loaded the default lecture file.</li>
<li>The keyboard is rather plain looking.</li>
<li>The scrolling text area you type in is nifty, but gets in the way for advanced users. My typing speed is limited to how fast it can scroll back. Also, as you get near the end of the line it's becomes difficult to see what characters are coming up, slowing you down and creating additional errors.</li>
<li>Like many other typing tutor programs, it shows only one line of text at a time, it's not obvious how many lines you have left to do. The first time I ran it I thought it was going to go on forever.</li>
<li>It doesn't teach you proper hand positions very obvious (i.e. it doesn't show a picture of the hands in position).</li>
<li>It forces you to learn the space and return key very early. It also doesn't show you how you should click them (i.e. use the thumbs for the spacebar and pinkie for the enter key).</li>
<li>It allows you to type-in mistakes, forcing the student to learn the backspace key very early as well.</li>
<li>The progression of keys is rather odd. It teaches the C, N and T keys before G and H keys for example.</li>
<li>It doesn't teach all the keys, Comma, Dot, Slash, and Quote keys are never taught, for example.</li>
</ul><div>I also found that the BBC has a nice <a href="http://www.bbc.co.uk/schools/typing/">online keyboard trainer</a> that does a good job in many respects.<br />
</div><div><br />
</div><div>I decided to try my hand at making a keyboard training program for Linux with <a href="http://www.pygtk.org/">PyGTK</a>. I already have some experience with keyboards in my <a href="http://code.google.com/p/key-mon/">key-mon</a> project, although this project looks like it'll be a little bit larger in scope.<br />
</div><div><br />
Screenshot, so far:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://key-train.googlecode.com/hg/docs/screenshot.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="640" src="http://key-train.googlecode.com/hg/docs/screenshot.png" width="564" /></a><br />
</div><br />
</div><div>Here's what I want to include, eventually:<br />
</div><div><ul><li>Show the hand positions. I'm taking photographs of my hands and digitizing the outline with Inkscape, like I did above.</li>
<li>Have a nice looking keyboard, the one above is an early (ugly) version.</li>
<li>Show the whole lesson in one big textbox. Thus it will be obvious when you're done and how far you have to go.</li>
<li>Use interesting text. I'm thinking of grabbing pages from Wikipedia (like above) and using that instead of randomized text for the more advanced levels.</li>
<li>Use real words when possible. Use the aspell dictionary to verify if the words exist in the chosen language.</li>
<li>Use bi-grams and tri-grams from the chosen language instead of random sets of characters (I believe that is what KTouch does as well).</li>
<li>Automatically drop incomplete or weird training sessions to not adversely affect the final scores and progression statistics. For example, you started training and then the phone rang.</li>
<li>Have it all scalable, by using <a href="http://en.wikipedia.org/wiki/Scalable_Vector_Graphics">SVG</a> for all the graphics.</li>
<li>Have lots of options. For instance:</li>
<ul><li>Show (or not) the keyboard depending on the level.</li>
<li>Permit mistakes or not, i.e. forcing the student to hit the backspace or not.</li>
<li>Show the key the user typed on the keyboard or not. Could be distracting.</li>
<li>Show where the key is on the keyboard when the student makes a mistake.</li>
<li>Sound on/off.</li>
</ul></ul><div>Grabbing text from Wikipedia <a href="http://code.google.com/p/key-train/source/browse/fetch_article.py">isn't that difficult</a> and I'm contemplating using text from there for the advanced lessons. My first thought was to use text from <a href="http://www.gutenberg.org/wiki/Main_Page">Project Gutenberg</a>, but I found it difficult to find useful text there in other languages. Also, it's too easy to grab possibly inappropriate text, and the text in Gutenberg is all old, and may contain language that isn't in common use today. Wikipedia is modern, safe, clean, interesting and has article standards.</div><div><br />
</div><div>I'm also planning to grab Wikipedia text to get some rough bi-gram and trigram frequencies for each language for 'random' text. It won't be perfect, but who needs perfect?</div><div><br />
</div><div>Last night I decided that I'll create the image for the keyboard on the fly. They keyboard shown above was created with my <a href="http://code.google.com/p/scott-inkscape/wiki/RenderKeyboard">Inkscape plugin</a>. The original idea was to use this only as a starting point and then to pretty up the graphics afterwards. I realized, however, that always building the keyboard on the fly gives me more flexibility for the keyboard layout (ex. international keyboards). It also will be easier to highlight better what keys you are learning, what keys you've already been taught and what keys have yet to be taught.</div><ul></ul><div>You'll find the code at <a href="http://code.google.com/p/key-train/">key-train</a>, but it's not quite usable yet, I still have some work ahead of me!<br />
</div></div>Scott Kirkwoodhttp://www.blogger.com/profile/01644448074431939072noreply@blogger.com5tag:blogger.com,1999:blog-8709811.post-33637077260857674892009-12-09T15:50:00.000-02:002009-12-09T15:50:08.622-02:00Keyboard Monitor is being usedI saw this week that <a href="http://meetthegimp.org/episode-128-beam-it-up-f-spot/">Meet the Gimp</a> is using my keyboard monitor program and gave me nice plug as well.<br />
It was thrill, but bittersweet, since <a href="http://code.google.com/p/key-mon/">key-mon</a> still doesn't support the Wacom table (and I <a href="http://stackoverflow.com/questions/1860668/unable-to-get-wacom-events-from-dev-input-event">don't know how to fix it</a>).<br />
I also feel it could look a little better (at least that I can fix).Scott Kirkwoodhttp://www.blogger.com/profile/01644448074431939072noreply@blogger.com6tag:blogger.com,1999:blog-8709811.post-87917459514302516712009-12-03T13:14:00.000-02:002009-12-03T13:14:36.461-02:00Feeling a little homesickStreet view has some great shot's of Lennoxville.<br />
<br />
Bishop's University<br />
<iframe frameborder="0" height="240" marginheight="0" marginwidth="0" scrolling="no" src="http://maps.google.com/maps/sv?cbp=12,171.42,,0,1.2&cbll=45.366655,-71.848182&panoid=&v=1&hl=en&gl=" width="425"></iframe><br />
<small><a href="http://maps.google.com/maps?f=q&source=embed&hl=en&geocode=&q=lennoxville,q+c&sll=-19.953744,-43.933181&sspn=0.018233,0.031993&ie=UTF8&hq=&hnear=Lennoxville,+La+R%C3%A9gion-Sherbrookoise,+Quebec,+Canada&ll=45.366256,-71.856514&spn=0.027256,0.063987&z=15&layer=c&cbll=45.366655,-71.848182&panoid=qpeF7ITFQWlQwB8dRTB14g&cbp=12,171.42,,0,1.2" style="color: blue; text-align: left;">View Larger Map</a></small><br />
<br />
Lion's Pub<br />
<iframe frameborder="0" height="240" marginheight="0" marginwidth="0" scrolling="no" src="http://maps.google.com/maps/sv?cbp=12,237.62,,1,3.64&cbll=45.366273,-71.855591&panoid=&v=1&hl=en&gl=" width="425"></iframe><br />
<small><a href="http://maps.google.com/maps?f=q&source=embed&hl=en&geocode=&q=lennoxville,q+c&sll=-19.953744,-43.933181&sspn=0.018233,0.031993&ie=UTF8&hq=&hnear=Lennoxville,+La+R%C3%A9gion-Sherbrookoise,+Quebec,+Canada&layer=c&cbll=45.366273,-71.855591&panoid=YgGtJXhNbB5vj_c6-AvGeQ&cbp=12,237.62,,1,3.64&ll=45.366288,-71.855736&spn=0.027257,0.063987&z=15" style="color: blue; text-align: left;">View Larger Map</a></small><br />
<br />
Also of the the house I grew up in in Montreal.<br />
<br />
<iframe frameborder="0" height="240" marginheight="0" marginwidth="0" scrolling="no" src="http://maps.google.com.br/maps/sv?cbp=12,49.28,,0,0.44&cbll=45.452522,-73.642578&panoid=&v=1&hl=pt-BR&gl=br" width="425"></iframe><br />
<small><a href="http://maps.google.com.br/maps?f=q&source=embed&hl=pt-BR&geocode=&q=11+Ballantyne+S.+Montreal+West,+Montreal,+CA&sll=-14.179186,-50.449219&sspn=122.411688,262.089844&ie=UTF8&hq=&hnear=11+Avenue+Ballantyne+Sud,+Montr%C3%A9al-Ouest,+Communaut%C3%A9-Urbaine-de-Montr%C3%A9al,+Qu%C3%A9bec,+Canad%C3%A1&ll=45.452632,-73.64282&spn=0.006804,0.015997&z=17&layer=c&cbll=45.452522,-73.642578&panoid=naIyF2vmDP5pIgok6RERhA&cbp=12,49.28,,0,0.44" style="color: blue; text-align: left;">Exibir mapa ampliado</a></small><br />
<br />
No street view for Kingston yet. But there's this areal view of where I used to go windsurfing.<br />
<br />
<iframe frameborder="0" height="350" marginheight="0" marginwidth="0" scrolling="no" src="http://maps.google.com.br/maps?f=q&source=s_q&hl=pt-BR&geocode=&q=Murney+Tower&sll=44.222933,-76.48827&sspn=0.003475,0.007998&ie=UTF8&hq=Murney+Tower&hnear=&ll=44.222933,-76.48827&spn=0.003475,0.007998&t=k&output=embed" width="425"></iframe><br />
<small><a href="http://maps.google.com.br/maps?f=q&source=embed&hl=pt-BR&geocode=&q=Murney+Tower&sll=44.222933,-76.48827&sspn=0.003475,0.007998&ie=UTF8&hq=Murney+Tower&hnear=&ll=44.222933,-76.48827&spn=0.003475,0.007998&t=k" style="color: blue; text-align: left;">Exibir mapa ampliado</a></small>Scott Kirkwoodhttp://www.blogger.com/profile/01644448074431939072noreply@blogger.com0tag:blogger.com,1999:blog-8709811.post-45901475536810088192009-11-26T16:13:00.000-02:002009-11-26T16:13:36.614-02:00Additions to key-monI've been busy and did lots of updates to <a href="http://code.google.com/p/key-mon/">key-mon</a>, my keyboard status monitor.<br />
<br />
The big news is that it's now resizable!<br />
<br />
Normal size:<br />
<img alt="Normal screenshot" src="http://key-mon.googlecode.com/hg/docs/screenshot.png" /><br />
<br />
Small size:<br />
<img alt="Smaller" src="http://key-mon.googlecode.com/hg/docs/screenshot-smaller.png" /><br />
<br />
Larger size:<br />
<img alt="Larger" src="http://key-mon.googlecode.com/hg/docs/screenshot-larger.png" /><br />
<br />
It can be scaled to any size not just three, here it is at 2x without the mouse and showing the meta (Windows) key:<br />
<img alt="Huge" src="http://key-mon.googlecode.com/hg/docs/2x-no-mouse-meta.png" /><br />
<br />
<a href="http://screencasters.heathenx.org/blog/">Heathenx</a> is helping me get nicer looking images, especially at smaller sizes. For the really small sizes I needed to change the look a bit, so now I have two sets of <a href="http://en.wikipedia.org/wiki/Scalable_Vector_">SVG</a> files, one for the normal size and another for the smaller size.<br />
<br />
Creating the different sizes was a bit of a pain. GTK wants to read the svg from disk so any changes made to svg needs to be dumped to a temporary file. Also GTK doesn't seem to have a parameter to load and resize, so I end up manipulating the svg so that it is scaled larger or smaller.<br />
<br />
The extra work was worth it, I think. Some screencasts today are high resolution, so the key status monitor will be tiny. Other screen casts are very small, so the key status monitor takes up a lot of space. Now application is infinitely flexible and can serve anyone's needs.<br />
<br />
Last night I thought of another application. Showing the full keyboard and showing what you are pressing as you press them. A million years ago I wrote an application for <a href="http://www.champlainonline.com/">school</a> (written in <a href="http://en.wikipedia.org/wiki/Turbo_Pascal">Turbo Pascal 4.0</a>) to help the students learn the keys to Word Perfect 5.x and MS Word 3.x. I could reuse some of the code from key-mon to do something similar, maybe for a typing tutor of some sort.Scott Kirkwoodhttp://www.blogger.com/profile/01644448074431939072noreply@blogger.com5tag:blogger.com,1999:blog-8709811.post-52080248678692729322009-11-23T14:42:00.000-02:002009-11-23T14:42:57.475-02:00Created another open source utility key-monThis weekend I was watching <a href="http://screencasters.heathenx.org/episode-100/">screencasters.heathenx.org</a> a video podcast about <a href="http://www.inkscape.org/">Inkscape</a> with the <a href="http://www.getmiro.com/">Miro</a> player. Heathenx had to apologize that his key status monitor wasn't displaying mouse activity. This wasn't the first time I've seen problems with this utility, earlier in the year <a href="http://meetthegimp.org/">Meet the Gimp</a> also had some problems getting it to work.<br />
<br />
I downloaded the <a href="http://programmer-art.org/projects/key-status-monitor">program</a> and put in on my machine, and sure enough the mouse wasn't working for me either. Looking at the output, it complained that I have more than one mouse and it was going to pick the last one. It lied, I looked at the code and it actually picked the the first one. I changed the code so that it did pick the <i>last</i> mouse and it worked. I thought of submitting a patch, but I realized that arbitrarily picking the last one might break the program for others for which it was working. <br />
<br />
To my delight the code was written in Python, using <a href="http://www.pygtk.org/">PyGTK</a>. It wasn't even that much code, I could probably write a similar program to from scratch in a day. I've never used PyGTK (I mostyl have used <a href="http://www.wxpython.org/">wxPython</a>), but a little <a href="http://www.google.com/search?sourceid=chrome&ie=UTF-8&q=wxpython+vs+pygtk">googling</a> showed that it is definitely the better choice in this case. PyGTK is already installed on most linux boxen (unlike wxPython).<br />
<br />
At that point I started cataloging the issues I saw with the program:<br />
<ul><li>Doesn't support the Meta (aka windows key).</li>
<li>Doesn't support the scroll wheel, something that's used quite a bit in graphics programs.</li>
<li>Need to be root to run it.</li>
<li>There's no open repository (like <a href="http://code.google.com/">code.google.com</a>) to submit patches or issues to.</li>
<li>Doesn't have a context sensitive menu, you can only change options at the command line.</li>
<li>The window is not re-sizable.</li>
<li>If you don't care about the mouse or certain keys - you are out of luck.</li>
</ul>The original code kept all the images as PNG files, which is ok, but a little bit of playing around I discovered that GTK+ supports SVG extremely well (alpha transparencies and all). I realized that I could create the images on the fly directly from the svg files!<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://2.bp.blogspot.com/_UJUFZU670Yc/SwqhX1-mGnI/AAAAAAAAFq8/jlL71OC-90M/s1600/combined.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/_UJUFZU670Yc/SwqhX1-mGnI/AAAAAAAAFq8/jlL71OC-90M/s640/combined.png" /></a><br />
</div>Instead of having 6 large images for the mouse (normal, left-button, right-button, middle-button, scroll-up, scroll-down), I would need only one for the mouse and 5 other smaller pieces for the buttons and scroll wheel. GTK obeys the SVG document size, so I just need to make them all the same size and everything should overlay in the right location (<a href="http://code.google.com/p/key-mon/source/browse/lazy_pixbuf_creator.py">code</a>).<br />
<br />
It also means that I the potential to make the window re-sizable. If the images are two small, I can make the bigger - too large, I can make them smaller (although I haven't done this yet). For many of the keys I can just search and replace the SVG contents to show different text, reducing about 100 keycap images that I would have needed to create.<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://1.bp.blogspot.com/_UJUFZU670Yc/SwqzxRhjnkI/AAAAAAAAFrE/UG_jQ3ISSBc/s1600/sample-search-replace.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/_UJUFZU670Yc/SwqzxRhjnkI/AAAAAAAAFrE/UG_jQ3ISSBc/s400/sample-search-replace.png" /></a><br />
</div><div class="separator" style="clear: both; text-align: auto;">The original code used the evdev module by Micah Dowty. With a quick <a href="http://www.google.com/codesearch/p?hl=en&sa=N&cd=1&ct=rc#FkCuqpcMHOU/trunk/src/lib/evdev.py&q=evdev.py">code search</a> I found a more recent version of this module. With this version I could throw it all the keyboards and mouses and it would track them all, thus fixing the mouse problem. Running it's built in demo showed that I could easy keep track of the meta key and the scroll wheel as well. Also, on my machine, I didn't need to be root to run the program another bonus.<br />
</div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: left;">I still have some work to do on it (more keys, packaging, refactoring). Here's what it looks like so far: The pale buttons is just the lower dark buttons with a white semitransparent rectangle on top.<br />
</div><div class="separator" style="clear: both; text-align: center;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="http://2.bp.blogspot.com/_UJUFZU670Yc/Swq7LI7lqfI/AAAAAAAAFrc/Q_qYcAhUAQM/s1600/screenshot-blank.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/_UJUFZU670Yc/Swq7LI7lqfI/AAAAAAAAFrc/Q_qYcAhUAQM/s640/screenshot-blank.png" /></a><br />
</div><div class="separator" style="clear: both; text-align: center;"><br />
<a href="http://3.bp.blogspot.com/_UJUFZU670Yc/Swq7QyLXxiI/AAAAAAAAFrk/p_eSAjang4w/s1600/screenshot.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/_UJUFZU670Yc/Swq7QyLXxiI/AAAAAAAAFrk/p_eSAjang4w/s640/screenshot.png" /></a><br />
</div><br />
It's amazing what you can code in a day these days.<br />
Visit to <a href="http://code.google.com/p/key-mon/">http://code.google.com/p/key-mon/</a> and have a look.Scott Kirkwoodhttp://www.blogger.com/profile/01644448074431939072noreply@blogger.com1tag:blogger.com,1999:blog-8709811.post-84655128494131541902009-11-02T21:43:00.000-02:002009-11-02T21:43:59.922-02:00More Timelapse<div class="separator" style="clear: both; text-align: left;">Here's the camera taking images of the evening sky. I stopped it when it got so dark that it was taking nearly 4 seconds of exposure per shot.<br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="http://lh5.ggpht.com/_UJUFZU670Yc/Su9gdKa1NeI/AAAAAAAAFNM/kH9NvJ-AVmA/s1600/image3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://lh5.ggpht.com/_UJUFZU670Yc/Su9gdKa1NeI/AAAAAAAAFNM/kH9NvJ-AVmA/s320/image3.jpg" width="320" /></a><br />
</div><br />
Here's the movie made at 25 fps with 900 photos at 5 second intervals.<br />
<object height="385" width="480"><param name="movie" value="http://www.youtube.com/v/z9RlOAC3FhU&hl=en&fs=1&rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/z9RlOAC3FhU&hl=en&fs=1&rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object>Scott Kirkwoodhttp://www.blogger.com/profile/01644448074431939072noreply@blogger.com0tag:blogger.com,1999:blog-8709811.post-37064015045072324292009-11-02T19:16:00.001-02:002009-11-02T19:17:51.395-02:00Canon EOS 450D triggered by an Arduino<div class="separator" style="clear: both; text-align: left;">I was finally able to track down a 2mm stereo plug here in Belo Horizonte (<a href="http://maps.google.com/maps?f=q&source=s_q&hl=en&geocode=&q=Eletronica+Guarani+Ltda&sll=-19.918457,-43.94122&sspn=0.007263,0.013937&g=Rua+Carijos,+BH,+MG,+BR&ie=UTF8&hq=Eletronica+Guarani+Ltda&hnear=R.+dos+Carij%C3%B3s+-+Centro,+Belo+Horizonte+-+MG,+Brazil&ll=-19.918056,-43.942974&spn=0.003631,0.006968&t=h&z=18">Eletronica Guarani</a>) so I can remotely control my Canon SLR from the Arduino.<br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="http://lh6.ggpht.com/_UJUFZU670Yc/Su9BbH3C8jI/AAAAAAAAFL4/HORrIbpdXTY/img_7034.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://lh6.ggpht.com/_UJUFZU670Yc/Su9BbH3C8jI/AAAAAAAAFL4/HORrIbpdXTY/img_7034.jpg" /></a><br />
</div>It uses two <a href="http://www.sparkfun.com/commerce/product_info.php?products_id=100">SPDT relay switches</a>, one for the shutter and one for focus. The way it's setup, there's no way I can cross the wires and hurt my camera, even after a few beers. In the photo the black wire is hooked to ground and the blue wire to pin 12 on the Arduino (or <a href="http://www.seeedstudio.com/depot/seeeduino-v212-fully-assembled-arduino-compatible-p-389.html">Seeeduino</a> in my case). So far I've only used the shutter and have left auto-focus off. <br />
Here's my first attempt of a timelapse movie with this setup:<br />
<br />
<object height="505" width="640"><param name="movie" value="http://www.youtube.com/v/RggMMGKbJ98&hl=en&fs=1&rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/RggMMGKbJ98&hl=en&fs=1&rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="505"></embed></object><br />
<br />
You'll find the code <a href="http://code.google.com/p/scott-arduino/source/browse/CanonSlrIntervalometer/CanonSlrIntervalometer.pde">here</a>. <a href="http://wordpress.bolanski.com/?p=9">This page</a> helped me figure out to hook-up the plug.<br />
<br />
Making the movie is a little tricky on Linux. First you'll need to installed <a href="http://www.graphicsmagick.org/">GraphicsMagick</a> (a faster version of ImageMagick):<br />
<blockquote><span style="font-family: 'Courier New', Courier, monospace;">sudo aptitude install graphicsmagick</span><br />
</blockquote>Then you'll need to downloaded and compile from source mpeg2encode to that it can do the conversion to mpeg (this doesn't come included with GraphicsMagick because of some licensing issues).<br />
<blockquote><pre>mkdir -p ~/tmp
cd ~/tmp
wget http://www.mpeg.org/pub_ftp/mpeg/mssg/mpeg2vidcodec_v12.tar.gz
tar xvf mpeg2vidcodec_v12.tar.gz
cd mpeg2
make
sudo cp src/mpeg2enc/mpeg2encode /usr/local/bin/
sudo cp src/mpeg2dec/mpeg2decode /usr/local/bin/
cd ..
rm -rf mpeg2
rm mpeg2vidcodec_v12.tar.gz</pre></blockquote>Finally to do the conversion you need to go to a directory that has all your photos and execute:<br />
<blockquote><pre>gm convert -size 640x480 -resize 640x480 -monitor *.jpg movie.mpeg</pre></blockquote>This will convert all the jpg images in the directory to 640x480 and create a new file called movie.mpeg (-monitor is to output the progress).<br />
It's a good idea to remember to set your camera to the lowest image quality settings before hand so you don't waste time downloading large images that will be downscaled anyway.Scott Kirkwoodhttp://www.blogger.com/profile/01644448074431939072noreply@blogger.com0tag:blogger.com,1999:blog-8709811.post-44630123026874764402009-11-02T18:11:00.000-02:002009-11-02T18:11:22.733-02:00Halloween Fun with Arduino and LCDFor Halloween this year I did two things. I redid my spinning <a href="http://www.ladyada.net/make/minipov3/index.html">POV</a> hat. I basicallly, just made it stronger, and lighter since it fell apart last year. To make it lighter I used the <a href="http://www.nkcelectronics.com/arduino-pro--5v16516.html">Arduino Pro</a> (5V) and two coin style batteries (CF2032) instead of the normal Arduino and the heavier 9 volt battery. I didn't have much time to perfect it so the effect wasn't perfect (<a href="http://code.google.com/p/scott-arduino/source/browse/pov_hat/pov_hat.pde">code</a>). I really need to put a sensor on it that senses every time it spins around for it to work correctly, at the moment I just guess how fast it's spinning and put in a delay based on that guess. What came out doesn't look that hot:<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://lh6.ggpht.com/_UJUFZU670Yc/SutRz1Gv26I/AAAAAAAAFHA/oA4aqJ4XMxU/s1600/img_6290.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://lh6.ggpht.com/_UJUFZU670Yc/SutRz1Gv26I/AAAAAAAAFHA/oA4aqJ4XMxU/s320/img_6290.jpg" /></a><br />
</div><br />
The second device I made was a little more successful. It was a 16x2 line LCD from <a href="http://www.sparkfun.com/commerce/product_info.php?products_id=255">sparkfun</a> (GDM1602K rev 2.1) display connected to a button so that every time you pressed it one more friend would be added. I would go up to people and say "Press the button to be my friend on orkut".<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://lh4.ggpht.com/_UJUFZU670Yc/SutSA99xBjI/AAAAAAAAFH0/4oh0y0p5kMo/s1600/img_6320.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://lh4.ggpht.com/_UJUFZU670Yc/SutSA99xBjI/AAAAAAAAFH0/4oh0y0p5kMo/s320/img_6320.jpg" /></a><br />
</div>There's a colloquialism here in Brazil: "Me Add" which is both a shortening of "Me adiciona" and a perversion of "Add Me" in English.<br />
Two additional items that are still in the mail that might have made things even more interesting are this <a href="http://www.seeedstudio.com/depot/the-nevergoingtomiss-glaringdevileye-huge-red-push-button-p-378.html">big red button</a> and the <a href="http://www.adafruit.com/index.php?main_page=product_info&cPath=17_21&products_id=94&zenid=6cb162bfd6c95069162d910a21c6bb17">wave shield</a> to make some interesting noises when the button was pressed. Maybe for next year.<br />
The pages that helped me the most to set this up were both from arduino.cc (<a href="http://arduino.cc/en/Tutorial/LiquidCrystal">LCD</a>, <a href="http://arduino.cc/en/Tutorial/Button">button</a>) and the code is <a href="http://code.google.com/p/scott-arduino/source/browse/me_add/me_add.pde">here</a>.<br />
Here's what it looks like underneath:<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://lh3.ggpht.com/_UJUFZU670Yc/Su849ulV1PI/AAAAAAAAFLs/r9oYlu0CoX4/img_7032.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://lh3.ggpht.com/_UJUFZU670Yc/Su849ulV1PI/AAAAAAAAFLs/r9oYlu0CoX4/img_7032.jpg" /></a><br />
</div><br />
I stole the button from the <a href="http://scottkirkwood.blogspot.com/2006/02/mame-control-panel-working.html">Mame console</a> I made before. The potentiometer is needed to get the contrast correct (otherwise the text looks either black or empty). I wired the LCD back-lighting so that it was alway on and at 100% (since Halloween is at night). The resistor is just for the button.<br />
Too bad there's no trick or treating in Brazil, otherwise I would have made something scary as well.Scott Kirkwoodhttp://www.blogger.com/profile/01644448074431939072noreply@blogger.com0tag:blogger.com,1999:blog-8709811.post-44468820241956877692009-10-26T22:51:00.000-02:002009-10-26T22:51:07.968-02:00I need a weedwacker for my fish tankI think there are some fish in there somewhere...<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://lh6.ggpht.com/_UJUFZU670Yc/SuZDLRPuRZI/AAAAAAAAFFc/BuVOq6XIg88/_pregamma_0.697_reinhard02_key_0.18_phi_1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://lh6.ggpht.com/_UJUFZU670Yc/SuZDLRPuRZI/AAAAAAAAFFc/BuVOq6XIg88/_pregamma_0.697_reinhard02_key_0.18_phi_1.jpg" /></a><br />
</div><br />
Here's what I ended up taking out.<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://lh6.ggpht.com/_UJUFZU670Yc/SuY-CAi7THI/AAAAAAAAFDE/w4fGr6gHmWw/s1600/img_6260.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://lh6.ggpht.com/_UJUFZU670Yc/SuY-CAi7THI/AAAAAAAAFDE/w4fGr6gHmWw/s640/img_6260.jpg" /></a><br />
</div><div class="separator" style="clear: both; text-align: center;"><br />
</div><div class="separator" style="clear: both; text-align: left;">Here's what it looks like now<br />
</div><div class="separator" style="clear: both; text-align: left;"><br />
<a href="http://lh4.ggpht.com/_UJUFZU670Yc/SuY9hZWUf9I/AAAAAAAAFCQ/0nIX8ua7D_w/s1600/img_6265.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://lh4.ggpht.com/_UJUFZU670Yc/SuY9hZWUf9I/AAAAAAAAFCQ/0nIX8ua7D_w/s640/img_6265.jpg" /></a><br />
</div>Scott Kirkwoodhttp://www.blogger.com/profile/01644448074431939072noreply@blogger.com3tag:blogger.com,1999:blog-8709811.post-79892274677537593812009-10-20T21:25:00.000-02:002009-10-20T21:25:47.849-02:00Making an Arduino Controlled Power OutletOver the weekend I created a Arduino controlled power outlet based on <a href="http://www.sparkfun.com/commerce/tutorial_info.php?tutorials_id=119">this design</a>. <br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://lh4.ggpht.com/_UJUFZU670Yc/St0I1TEpMpI/AAAAAAAAE74/PEdf7IL4sSE/s1600/img_6221%20%28Modified%29.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://lh4.ggpht.com/_UJUFZU670Yc/St0I1TEpMpI/AAAAAAAAE74/PEdf7IL4sSE/s400/img_6221%20%28Modified%29.jpg" /></a><br />
</div><br />
With this connected to a the Arduino I can control the two plugs independently. One end (which I cut an old US style plug) I plug into the mains power, the other end I connect to the Arduino (four connections):<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://lh5.ggpht.com/_UJUFZU670Yc/St0I3cOSTBI/AAAAAAAAE18/D8d3gqVe510/s1600/img_6223%20%28Modified%29.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://lh5.ggpht.com/_UJUFZU670Yc/St0I3cOSTBI/AAAAAAAAE18/D8d3gqVe510/s320/img_6223%20%28Modified%29.jpg" /></a><br />
</div><br />
The fit was a bit tight!<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://lh5.ggpht.com/_UJUFZU670Yc/St0I5q2VDbI/AAAAAAAAE2E/MjsqpoyFF0g/s1600/img_6225.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://lh5.ggpht.com/_UJUFZU670Yc/St0I5q2VDbI/AAAAAAAAE2E/MjsqpoyFF0g/s320/img_6225.jpg" /></a><br />
</div>I did some tests to see if when the solenoids are on whether is would heat up too much.<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://lh4.ggpht.com/_UJUFZU670Yc/St0I-ziHs_I/AAAAAAAAE2c/HoT7zNxv7eA/s1600/img_6231.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://lh4.ggpht.com/_UJUFZU670Yc/St0I-ziHs_I/AAAAAAAAE2c/HoT7zNxv7eA/s640/img_6231.jpg" /></a><br />
</div><br />
After about about a 1/2 hour it did heat up to 32 C° which isn't too bad. So now I'm all set to <a href="http://www.plasma2002.com/blenderdefender/">scare some animals</a>.Scott Kirkwoodhttp://www.blogger.com/profile/01644448074431939072noreply@blogger.com2