<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6757089323600178361</id><updated>2011-07-31T03:16:59.645-07:00</updated><category term='openembedded'/><category term='neo1973'/><category term='bluetooth nextlink spider a2dp'/><category term='openmoko'/><title type='text'>Chockerblockablog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://chockerblockablog.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6757089323600178361/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://chockerblockablog.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>bmidgley</name><uri>http://www.blogger.com/profile/13457747948152088906</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>12</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6757089323600178361.post-826667529719744109</id><published>2011-06-14T10:55:00.000-07:00</published><updated>2011-06-14T11:04:19.540-07:00</updated><title type='text'>Android must-have list</title><content type='html'>I'm using a phone on virgin mobile. There are a few apps I'd suggest people try on android.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Gaia (for offline maps) &lt;/li&gt;&lt;li&gt;Backcountry navigator (another offline map app)&lt;/li&gt;&lt;li&gt;Amazon appstore&lt;/li&gt;&lt;li&gt;Quick Settings (just in case this reveals some settings)&lt;/li&gt;&lt;li&gt;Kindle reader&lt;/li&gt;&lt;li&gt;Runkeeper (there are others but this is what I'm using)&lt;/li&gt;&lt;li&gt;Google Earth (IF your phone can run it)&lt;/li&gt;&lt;li&gt;Firefox (for webgl etc, again, if your phone can run it)&lt;/li&gt;&lt;li&gt;Barcode scanner (to read the 2d barcodes you see)&lt;/li&gt;&lt;li&gt;Facebook&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;If you have some suggestions, post a comment.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6757089323600178361-826667529719744109?l=chockerblockablog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chockerblockablog.blogspot.com/feeds/826667529719744109/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6757089323600178361&amp;postID=826667529719744109' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6757089323600178361/posts/default/826667529719744109'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6757089323600178361/posts/default/826667529719744109'/><link rel='alternate' type='text/html' href='http://chockerblockablog.blogspot.com/2011/06/android-must-have-list.html' title='Android must-have list'/><author><name>bmidgley</name><uri>http://www.blogger.com/profile/13457747948152088906</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6757089323600178361.post-3569135669627258695</id><published>2011-04-05T15:04:00.000-07:00</published><updated>2011-04-05T15:08:43.726-07:00</updated><title type='text'>Passing data into a facebook iframe app</title><content type='html'>When you send someone to your facebook app, you probably want to be able to track that referral. Obviously, since your app runs in an iframe, you can't see the parameters that were used to reach the parent page.&lt;br /&gt;&lt;br /&gt;Fortunately, facebook allows you to get data sent into your application. Add the parameter "app_data" to the url that is used to reach your page...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;font-size:85%;" &gt;http://www.facebook.com/pages/My-Great-Page/1...1?sk=app_3...9&amp;amp;app_data=213&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now, use the method in my last post to access the signed request and you can find your referral information in&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;font-size:85%;" &gt;data["app_data"]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Whew! Another coding disaster averted.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6757089323600178361-3569135669627258695?l=chockerblockablog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chockerblockablog.blogspot.com/feeds/3569135669627258695/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6757089323600178361&amp;postID=3569135669627258695' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6757089323600178361/posts/default/3569135669627258695'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6757089323600178361/posts/default/3569135669627258695'/><link rel='alternate' type='text/html' href='http://chockerblockablog.blogspot.com/2011/04/passing-data-into-facebook-iframe-app.html' title='Passing data into a facebook iframe app'/><author><name>bmidgley</name><uri>http://www.blogger.com/profile/13457747948152088906</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6757089323600178361.post-2191776776670937769</id><published>2011-03-02T14:11:00.001-08:00</published><updated>2011-04-05T15:04:44.973-07:00</updated><title type='text'>Facebook fan/like gate from rails</title><content type='html'>Every facebook example is always written first in php. For example, &lt;a href="http://www.chilipepperdesign.com/2011/02/15/reveal-fan-gate-like-gate-facebook-iframe-tab-tutorial-with-php"&gt;detecting a fan&lt;/a&gt;.&lt;br /&gt;Some are never translated. For the record, here's a rails version. This goes in the controller (or even better, a helper).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;p = params['signed_request'].split('.')[1]&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family:courier new;"&gt;json = Base64.decode64(p + "=" * (4 - p.size % 4))&lt;br /&gt;data = ActiveSupport::JSON.decode(json)&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;    liked = data["page"]["liked"]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Note the encoded string needs to be padded with = signs until it's a multiple of 4 bytes long.&lt;br /&gt;&lt;br /&gt;The background on this is facebook has disabled static/fbml tabs from being added to fan pages. Instead, create an app and add the app to your page. This is to cover what people used to do with the fb:visible-to-connection fbml tag.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6757089323600178361-2191776776670937769?l=chockerblockablog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chockerblockablog.blogspot.com/feeds/2191776776670937769/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6757089323600178361&amp;postID=2191776776670937769' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6757089323600178361/posts/default/2191776776670937769'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6757089323600178361/posts/default/2191776776670937769'/><link rel='alternate' type='text/html' href='http://chockerblockablog.blogspot.com/2011/03/facebook-fanlike-gate-from-rails.html' title='Facebook fan/like gate from rails'/><author><name>bmidgley</name><uri>http://www.blogger.com/profile/13457747948152088906</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6757089323600178361.post-6018628118365987726</id><published>2010-05-19T21:32:00.000-07:00</published><updated>2010-05-25T20:18:11.443-07:00</updated><title type='text'>from your parasite, with love</title><content type='html'>I am fascinated with the idea that a &lt;a href="http://autoimmunetherapies.com/helminthic_therapy_purchase.html"&gt;parasite&lt;/a&gt; might help with autoimmune disorders. In the UK studies have been conducted researching the effect on &lt;a href="http://www.mstrust.org.uk/news/article.jsp?id=2885"&gt;MS&lt;/a&gt; and &lt;a href="http://research.nottingham.ac.uk/newsreviews/newsDisplay.aspx?id=270"&gt;crohn's disease&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I know it is creepy to think about, but the kind of worms they are talking about here do NOT reproduce or significantly grow in the host. They happily latch on and enjoy the ride and if you live in a place with even the most basic sanitation, the parasites will eventually die out. Tragic.&lt;br /&gt;&lt;br /&gt;One study found that when the parasite was present, the immune system responded measurably. It shifted the T cell production toward a type of defender that is less likely to damage the body but could still effectively fight infection. What a way to embrace a new guest.&lt;br /&gt;&lt;br /&gt;Some autoimmune disorders strike suddenly and have devastating effects before you could respond with this kind of therapy. It seems type 1 diabetes (maybe even type 2) would fall into this group. This would be a case where you need to show a commitment in advance--not in sickness but in health.&lt;br /&gt;&lt;br /&gt;When the UK studies were finished and the experimental group was offered the drug to kill off the parasites, some participants said no thanks... they wanted to affirm their relationship. I'm sure the worms felt the same way.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6757089323600178361-6018628118365987726?l=chockerblockablog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chockerblockablog.blogspot.com/feeds/6018628118365987726/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6757089323600178361&amp;postID=6018628118365987726' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6757089323600178361/posts/default/6018628118365987726'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6757089323600178361/posts/default/6018628118365987726'/><link rel='alternate' type='text/html' href='http://chockerblockablog.blogspot.com/2010/05/from-your-parasite-with-love.html' title='from your parasite, with love'/><author><name>bmidgley</name><uri>http://www.blogger.com/profile/13457747948152088906</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6757089323600178361.post-823533608645765073</id><published>2010-05-02T19:42:00.000-07:00</published><updated>2010-05-19T21:27:58.918-07:00</updated><title type='text'>For the record, my diet</title><content type='html'>A couple of family members have asked about what I'm doing with my diet. It is pretty sane really and I just want to put it down for the record.&lt;br /&gt;&lt;br /&gt;I ran through a diet like the south beach diet and afterward wanted to maintain my weight. This is what I'm doing now to hold things steady. I've mostly tried to replace the worst things I was eating before with good stuff.&lt;table width="80%"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Replace...&lt;/td&gt;&lt;td style="vertical-align: top;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;With...&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;Doughnuts, cake, cookies&lt;/td&gt;&lt;td style="vertical-align: top;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;Wheat toast, sugar-free jam&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;Snacky foods, chips, etc&lt;/td&gt;&lt;td style="vertical-align: top;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;Apples, carrots, grapefruit&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;Juice, soda, sweet drinks&lt;/td&gt;&lt;td style="vertical-align: top;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;Water, low-sugar hot cocoa&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;Gatorade&lt;/td&gt;&lt;td style="vertical-align: top;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;Propel&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;Worst of the fast food... fries, soda, shake&lt;/td&gt;&lt;td style="vertical-align: top;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;Stick with a hamburger&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;One reason it was such a no-brainer to leave sweets out of my diet is after going through the south beach diet twice, I never want to do it again. It is a pretty miserable few weeks. Sugar is an addiction and eating it makes you want to eat more of it after the high passes. I felt  a real feeling of withdrawal when I gave it up during the no-carb phase. If you try south beach or something like it, I'd suggest you get a friend to do it at the same time. Both times I had a pact with a coworker and had to show I could stay with it.&lt;br /&gt;&lt;br /&gt;Juice may be derived from something "natural" like fruit, but it's just a slightly less refined form of sugar than the pure stuff. No one should argue with the idea that it's better to just get the good stuff direct from the fruit.&lt;br /&gt;&lt;br /&gt;I discovered I need to take a multivitamin. The corners of my mouth get tender and painful if I don't keep that up, a vitamin B deficiency. I suspect I'm getting less fortified flour, possibly the only redeeming value in cake, etc. I miss out on now.&lt;br /&gt;&lt;br /&gt;On exercise... exercise without fixing your diet isn't likely to work. While waiting to see dad finish the St. George marathon, I was amazed to see runner after runner cross the finish line who were clearly carrying an extra 30, 40, 50 pounds. It's quite possible to be fit and still overweight. I've started exercising recently but most of the weight loss was before I started that.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6757089323600178361-823533608645765073?l=chockerblockablog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chockerblockablog.blogspot.com/feeds/823533608645765073/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6757089323600178361&amp;postID=823533608645765073' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6757089323600178361/posts/default/823533608645765073'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6757089323600178361/posts/default/823533608645765073'/><link rel='alternate' type='text/html' href='http://chockerblockablog.blogspot.com/2010/05/couple-of-family-members-have-asked.html' title='For the record, my diet'/><author><name>bmidgley</name><uri>http://www.blogger.com/profile/13457747948152088906</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6757089323600178361.post-5349745213880985522</id><published>2009-01-10T22:19:00.000-08:00</published><updated>2009-01-10T23:12:42.064-08:00</updated><title type='text'>CES report: ASUS T91 and D200</title><content type='html'>There was a lot of glitz at CES this year. More than one booth had dazzling white light streaming down from overhead, apparently to invoke awe. The one booth I felt had something worth bathing in this kind of highlight was run by ASUS. (Thankfully they just had normal lighting :)&lt;br /&gt;&lt;br /&gt;First, the T91 is the touchscreen convertible laptop, revamped from their 9" laptop. The staff was quick to mention this was a prototype and might not be exactly the same in a shipping version, due around March.&lt;br /&gt;&lt;br /&gt;The T91 is on the left and my p1510d, for comparison, is on the right. They are similar but the T91 is thinner.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_kzi7eC12R9A/SWmX378W2MI/AAAAAAAAABU/qk8x1GAA_88/s1600-h/t91-compared.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 198px;" src="http://1.bp.blogspot.com/_kzi7eC12R9A/SWmX378W2MI/AAAAAAAAABU/qk8x1GAA_88/s320/t91-compared.jpg" alt="" id="BLOGGER_PHOTO_ID_5289926224562804930" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_kzi7eC12R9A/SWmY7S7DsVI/AAAAAAAAABk/O4Q_vAoQuZw/s1600-h/t91-right.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 93px;" src="http://4.bp.blogspot.com/_kzi7eC12R9A/SWmY7S7DsVI/AAAAAAAAABk/O4Q_vAoQuZw/s320/t91-right.jpg" alt="" id="BLOGGER_PHOTO_ID_5289927381782606162" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_kzi7eC12R9A/SWmYW9D5hBI/AAAAAAAAABc/FrJHAy1mgJo/s1600-h/t91-left.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 74px;" src="http://4.bp.blogspot.com/_kzi7eC12R9A/SWmYW9D5hBI/AAAAAAAAABc/FrJHAy1mgJo/s320/t91-left.jpg" alt="" id="BLOGGER_PHOTO_ID_5289926757438817298" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;the "bump" under the previous eee models is gone! The T91 is a sleek, symmetrical slab&lt;/li&gt;&lt;li&gt;it was suggested the machine will run about $500&lt;/li&gt;&lt;li&gt;the windows version should have 16GB internal ssd, no word on Linux model&lt;br /&gt;&lt;/li&gt;&lt;li&gt;will include a GPS and TV tuner (!)&lt;/li&gt;&lt;li&gt;apparently the antenna connector on the right side is for TV signals&lt;br /&gt;&lt;/li&gt;&lt;li&gt;model on display had an integrated web cam&lt;br /&gt;&lt;/li&gt;&lt;li&gt;stereo microphones, one on each side of the camera&lt;/li&gt;&lt;li&gt;SD slot in front&lt;/li&gt;&lt;li&gt;VGA output in back&lt;/li&gt;&lt;li&gt;apparent SD slot on left, covered by a door marked "disk-expander"&lt;/li&gt;&lt;/ul&gt;I'm excited to get one of these to try it out! It should be a great use of the Atom CPU.&lt;br /&gt;&lt;br /&gt;The other interesting model is the D200. This is apparently meant to be like a media player machine, but it also includes a wifi access point, two slots for drives, and a 4-port switch. Very interesting stuff.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6757089323600178361-5349745213880985522?l=chockerblockablog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chockerblockablog.blogspot.com/feeds/5349745213880985522/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6757089323600178361&amp;postID=5349745213880985522' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6757089323600178361/posts/default/5349745213880985522'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6757089323600178361/posts/default/5349745213880985522'/><link rel='alternate' type='text/html' href='http://chockerblockablog.blogspot.com/2009/01/ces-report-asus-t91-and-d200.html' title='CES report: ASUS T91 and D200'/><author><name>bmidgley</name><uri>http://www.blogger.com/profile/13457747948152088906</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_kzi7eC12R9A/SWmX378W2MI/AAAAAAAAABU/qk8x1GAA_88/s72-c/t91-compared.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6757089323600178361.post-8016106282839772200</id><published>2008-09-08T10:05:00.000-07:00</published><updated>2008-09-08T10:17:22.389-07:00</updated><title type='text'>erlang</title><content type='html'>&lt;pre style="font-family: arial;" wrap=""&gt;My favorite usergroup around here has to be the &lt;a href="http://www.urug.org/"&gt;Utah Ruby User Group&lt;/a&gt;. The topics are often related to rails, but there's usually some good topic that wanders beyond rails.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.surgeworks.com/"&gt;Surgeworks&lt;/a&gt; sponsors the group and gives out technical books at our meetings. I got the pragmatic bookshelf erlang book. It's quite fascinating. It was fun to see footnotes comparing erlang with prolog and ruby. I like learning about computer languages and it was great fun sitting down with this book.&lt;br /&gt;&lt;br /&gt;erlang "objects" if you can call them that are sort of artifacts of the language rather than explicit constructs. It reminds me of the way one of my college instructors "discovered" objects with us in a scheme lecture.&lt;br /&gt;&lt;br /&gt;I carefully read the first part of the book and skimmed the rest. The second part of the book has a good level of detail that requires you to be in a project to make best use of it. Hopefully some day I will :)&lt;br /&gt;&lt;br /&gt;Finally, erlang has the absolute best name for its included db, "Mnesia".&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6757089323600178361-8016106282839772200?l=chockerblockablog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chockerblockablog.blogspot.com/feeds/8016106282839772200/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6757089323600178361&amp;postID=8016106282839772200' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6757089323600178361/posts/default/8016106282839772200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6757089323600178361/posts/default/8016106282839772200'/><link rel='alternate' type='text/html' href='http://chockerblockablog.blogspot.com/2008/09/erlang.html' title='erlang'/><author><name>bmidgley</name><uri>http://www.blogger.com/profile/13457747948152088906</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6757089323600178361.post-7127520381709240554</id><published>2008-05-09T08:30:00.000-07:00</published><updated>2008-05-09T08:44:04.405-07:00</updated><title type='text'>reviving a cobalt</title><content type='html'>Surgeworks had a cobalt raq2 kicking around so I asked if I could try to get it running. I was able to put debian on it. Netbooting the installer resulted in "unit boot failed". Watching the serial console reveals the kernel elf binary was corrupt when it came time to execute it.&lt;br /&gt;&lt;br /&gt;In the end it worked using another computer to put the installer on the hard drive temporarily.&lt;br /&gt;&lt;br /&gt;download nfsroot.tar.gz referred to in &lt;a href="http://www.cyrius.com/debian/cobalt/install.html"&gt;http://www.cyrius.com/debian/cobalt/install.html&lt;/a&gt;&lt;br /&gt;fdisk the hard drive, remove all partitions, create a single primary partition, at least 5MB&lt;br /&gt;format the boot partition with mke2fs -r 0&lt;br /&gt;untar nfsroot.tar.gz into the partition&lt;br /&gt;move everything to the top directory: mv nfsroot/* .&lt;br /&gt;modify default.colo to load everything from the disk instead of network:&lt;br /&gt;-nfs {dhcp-next-server} {dhcp-root-path} vmlinux-2.6.18-6-r5k-cobalt {initrd}&lt;br /&gt;+load vmlinux-2.6.18-6-r5k-cobalt {initrd}&lt;br /&gt;&lt;br /&gt;Then put the drive in the cobalt, boot up, and let the installer take over the whole drive. The temporary partition gets overwritten.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6757089323600178361-7127520381709240554?l=chockerblockablog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chockerblockablog.blogspot.com/feeds/7127520381709240554/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6757089323600178361&amp;postID=7127520381709240554' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6757089323600178361/posts/default/7127520381709240554'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6757089323600178361/posts/default/7127520381709240554'/><link rel='alternate' type='text/html' href='http://chockerblockablog.blogspot.com/2008/05/reviving-cobalt.html' title='reviving a cobalt'/><author><name>bmidgley</name><uri>http://www.blogger.com/profile/13457747948152088906</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6757089323600178361.post-2798408325015042249</id><published>2008-04-10T08:34:00.000-07:00</published><updated>2008-04-21T10:39:27.751-07:00</updated><title type='text'>cracks in acts_as_paranoid</title><content type='html'>This may be my first rails blog entry. It's born out of pure frustration. :)&lt;br /&gt;&lt;br /&gt;When you destroy an activerecord object that uses acts_as_paranoid, the record is flagged instead of actually deleted. You can then look at the database and review those deleted items. Combined with acts_as_audited you get an interesting audit trail.&lt;br /&gt;&lt;br /&gt;acts_as_paranoid monkeys with AR to pull this off. Unfortunately there are times when cracks show through.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;When you call find, do not use :include to join in a paranoid model unless you make arrangements to drop out deleted records&lt;/li&gt;&lt;li&gt;If you want to use a :through relation with a paranoid model, you must add a clause to drop deleted records.  &lt;pre  style="font-family:courier new;"&gt;&lt;span style="font-size:78%;"&gt;&lt;code&gt;&lt;/code&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-family:Georgia,serif;"&gt;The latter you do with something like:&lt;br /&gt;&lt;/span&gt;&lt;pre  style="font-weight: bold;font-family:courier new;"&gt;&lt;span style="font-size:78%;"&gt;&lt;code&gt;has_many :movies, :through =&gt; :dancer_movies, :conditions =&gt; ['dancer_movies.deleted_at is null']&lt;/code&gt;&lt;/span&gt;&lt;/pre&gt; &lt;span style="font-family:Georgia,serif;"&gt;I'll add more as I discover them.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6757089323600178361-2798408325015042249?l=chockerblockablog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chockerblockablog.blogspot.com/feeds/2798408325015042249/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6757089323600178361&amp;postID=2798408325015042249' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6757089323600178361/posts/default/2798408325015042249'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6757089323600178361/posts/default/2798408325015042249'/><link rel='alternate' type='text/html' href='http://chockerblockablog.blogspot.com/2008/04/cracks-in-actsasparanoid.html' title='cracks in acts_as_paranoid'/><author><name>bmidgley</name><uri>http://www.blogger.com/profile/13457747948152088906</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6757089323600178361.post-1136598642433073280</id><published>2008-03-24T07:34:00.000-07:00</published><updated>2008-06-10T11:31:38.002-07:00</updated><title type='text'>AT&amp;T Tilt</title><content type='html'>I have been using a Treo 700p for almost two years now. Verizon replaced my motorola e815 flip phone with the 700p when their forced-upgrade killed bluetooth dialup networking.&lt;br /&gt;&lt;br /&gt;My Verizon contract is up and I'm ready for a change. I had considered Sprint for the cheaper data and the possibility of wimax in the next year or so. I decided to go with AT&amp;amp;T for a few reasons...&lt;br /&gt;&lt;ul&gt;&lt;li&gt;GSM is handy for traveling, use in a laptop, experimenting with my neo1973&lt;/li&gt;&lt;li&gt;Using GSM 3G, some phones can do voice and data simultaneously&lt;/li&gt;&lt;li&gt;Verizon wireless has been very heavy-handed (It was not fun when they started having billing errors and sending me bills for $2000+)&lt;/li&gt;&lt;li&gt;It'll be fun to have a phone with a GPS.&lt;/li&gt;&lt;li&gt;I would love to use an iPhone 3G instead, but the SDK can't support background processes and the iPhone won't do DUN or PAN&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;The tilt is able to do DUN with my n810 and my ubuntu laptop, but it can be tricky.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Simultaneous voice and 3G data doesn't work with DUN. This reveals that MS sends the DUN client direct to the GSM chip instead of creating a virtual modem like we have with the bluez dund.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;I followed the tip to reset the phone when it was counting down to install some extra software. Apparently the extra software disables features.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;In Ubuntu, I had to log out and run a command like "passkey-agent --default 9876" before firing up DUN. The phone &amp;amp; laptop kept failing to pair when entering a pin using the gnome gui.&lt;/li&gt;&lt;li&gt;The internet sharing app DOES allow for simultaneous data and voice (using PAN).&lt;/li&gt;&lt;li&gt;The phone delivers data rates up to about 580kbps. *Much* better than the older ppc devices I tried.&lt;/li&gt;&lt;li&gt;My neo1973 with original gsm firmware can use this new sim card. It's the first sim I have had success with.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6757089323600178361-1136598642433073280?l=chockerblockablog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chockerblockablog.blogspot.com/feeds/1136598642433073280/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6757089323600178361&amp;postID=1136598642433073280' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6757089323600178361/posts/default/1136598642433073280'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6757089323600178361/posts/default/1136598642433073280'/><link rel='alternate' type='text/html' href='http://chockerblockablog.blogspot.com/2008/03/at-tilt.html' title='AT&amp;T Tilt'/><author><name>bmidgley</name><uri>http://www.blogger.com/profile/13457747948152088906</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6757089323600178361.post-4697739363242555729</id><published>2008-03-16T17:05:00.000-07:00</published><updated>2008-12-09T05:16:44.904-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bluetooth nextlink spider a2dp'/><title type='text'>Dead spider</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_kzi7eC12R9A/R923CFDQdFI/AAAAAAAAAAY/BaESS4SBP_c/s1600-h/livingspider.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_kzi7eC12R9A/R923CFDQdFI/AAAAAAAAAAY/BaESS4SBP_c/s320/livingspider.jpg" alt="" id="BLOGGER_PHOTO_ID_5178496392889398354" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Nextlink's Spider bluetooth headset is infamous for its failure rate. It's a great headset with a class 1 radio and decent features, but it seems many of them were fitted with lipoly cells that can't hold their charge well. When a lipoly cell runs down below 3.0v, the battery can be permanently damaged so it's a significant problem.&lt;br /&gt;&lt;br /&gt;I kept my set plugged in whenever I wasn't using it, but last night it finally went south when the plug came out of the power socket and allowed the battery to drain. After that, the LED would not turn on with any amount of fiddling. I opened it and found the battery, swelled, registered just a touch over 0v on the multimeter. This means it's dead and isn't coming back.&lt;br /&gt;&lt;br /&gt;I attached a battery harvested from a helicopter. Now the headset works properly and I don't have to worry about the battery getting too low. It's just not so stylish any more.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6757089323600178361-4697739363242555729?l=chockerblockablog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chockerblockablog.blogspot.com/feeds/4697739363242555729/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6757089323600178361&amp;postID=4697739363242555729' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6757089323600178361/posts/default/4697739363242555729'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6757089323600178361/posts/default/4697739363242555729'/><link rel='alternate' type='text/html' href='http://chockerblockablog.blogspot.com/2008/03/dead-spider.html' title='Dead spider'/><author><name>bmidgley</name><uri>http://www.blogger.com/profile/13457747948152088906</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_kzi7eC12R9A/R923CFDQdFI/AAAAAAAAAAY/BaESS4SBP_c/s72-c/livingspider.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6757089323600178361.post-4563746735160174653</id><published>2008-03-09T01:39:00.000-08:00</published><updated>2008-12-09T05:16:45.074-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='neo1973'/><category scheme='http://www.blogger.com/atom/ns#' term='openmoko'/><category scheme='http://www.blogger.com/atom/ns#' term='openembedded'/><title type='text'>Neo1973: No wifi/3g/battery life? no problem</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_kzi7eC12R9A/SC8huqGMpCI/AAAAAAAAAAg/WCWR6sSLYlY/s1600-h/IMAGE_027.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_kzi7eC12R9A/SC8huqGMpCI/AAAAAAAAAAg/WCWR6sSLYlY/s320/IMAGE_027.jpg" alt="" id="BLOGGER_PHOTO_ID_5201413180094194722" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I decided to rig a better setup for USB host. What I did was open the hub and short the +5v provided to client ports to the +5 on the uplink port. This makes the hub unusable  for other purposes, but gives me a nice single-cable solution for a neo hub. I just needed to add a female usb a to mini usb adapter.&lt;br /&gt;&lt;br /&gt;The usb device in the picture provides speedy data through verizon cdma/evdo.&lt;br /&gt;&lt;br /&gt;I was able to get fastcharge to work on connection. In /etc/udev/rules.d/neohub.rules:&lt;br /&gt;&lt;br /&gt;SUBSYSTEM=="usb", ACTION=="add", PRODUCT=="1410/2110/0", RUN+="/etc/udev/scripts/neohub.sh"&lt;br /&gt;&lt;br /&gt;and in /etc/udev/scripts/neohub.sh:&lt;br /&gt;&lt;br /&gt;#!/bin/sh&lt;br /&gt;echo -n fast_cccv &gt; /sys/devices/platform/s3c2410-i2c/i2c-adapter/i2c-0/0-0008/chgmode&lt;br /&gt;&lt;br /&gt;/etc/rcS.d/S98host:&lt;br /&gt;&lt;br /&gt;#!/bin/sh&lt;br /&gt;echo host &gt;/sys/devices/platform/s3c2410-ohci/usb_mode&lt;br /&gt;&lt;p&gt; Some issues remain: &lt;/p&gt;&lt;ul&gt;&lt;li&gt;this would need to be reworked for freerunner&lt;/li&gt;&lt;li&gt;there are no decent linux drivers for usb wifi that give us master mode to make an AP&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6757089323600178361-4563746735160174653?l=chockerblockablog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chockerblockablog.blogspot.com/feeds/4563746735160174653/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6757089323600178361&amp;postID=4563746735160174653' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6757089323600178361/posts/default/4563746735160174653'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6757089323600178361/posts/default/4563746735160174653'/><link rel='alternate' type='text/html' href='http://chockerblockablog.blogspot.com/2008/03/neo1973-no-wifi3gbattery-life-no.html' title='Neo1973: No wifi/3g/battery life? no problem'/><author><name>bmidgley</name><uri>http://www.blogger.com/profile/13457747948152088906</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_kzi7eC12R9A/SC8huqGMpCI/AAAAAAAAAAg/WCWR6sSLYlY/s72-c/IMAGE_027.jpg' height='72' width='72'/><thr:total>1</thr:total></entry></feed>
