<?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-8280090213351354159</id><updated>2011-09-22T07:21:43.298-07:00</updated><category term='Anti-Bot'/><category term='Flaw'/><category term='Store'/><category term='Binding'/><category term='Captcha'/><category term='Image'/><category term='Review'/><category term='Bug'/><category term='Pirates'/><category term='DataGrid'/><category term='DataBinding'/><category term='IQ'/><category term='Ram'/><category term='H2'/><category term='Christian'/><category term='T-Shirt'/><category term='smudges'/><category term='Flash'/><category term='DropDownButton'/><category term='mercenary'/><category term='Hard Drive'/><category term='worship'/><category term='DRM'/><category term='karaoke'/><category term='Mono'/><category term='evil'/><category term='corrupted'/><category term='Book'/><category term='Solution'/><category term='empathy'/><category term='Dyson'/><category term='Robert A. Heinlein'/><category term='ADO.Net'/><category term='Vacuum'/><category term='facebook'/><category term='H2Sharp'/><category term='HDD'/><category term='Alternative'/><category term='music'/><category term='work around'/><category term='SslStream'/><category term='Port'/><category term='C#'/><category term='company'/><category term='Starship Troopers'/><category term='touch screen'/><category term='3D'/><category term='StructLayout'/><category term='clock'/><category term='Database'/><category term='Persistent'/><category term='signing'/><category term='SSD'/><category term='The Circle'/><category term='Dynamic'/><category term='Union'/><category term='ItemSource'/><category term='DC41'/><category term='embeddable'/><category term='WPF'/><category term='password'/><category term='Silverlight'/><category term='Ted Dekker'/><category term='capitalism'/><title type='text'>JonoPorter's Random Thoughts</title><subtitle type='html'>A place for my random thoughts, my brain could no longer accommodate them.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://jonoporter.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8280090213351354159/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://jonoporter.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>JonoPorter</name><uri>http://www.blogger.com/profile/05139619465175598926</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>24</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8280090213351354159.post-7681038649651851515</id><published>2011-09-21T18:57:00.000-07:00</published><updated>2011-09-22T07:21:43.313-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Vacuum'/><category scheme='http://www.blogger.com/atom/ns#' term='Dyson'/><category scheme='http://www.blogger.com/atom/ns#' term='DC41'/><category scheme='http://www.blogger.com/atom/ns#' term='Flaw'/><title type='text'>The Dyson DC41 Review (Flawed)</title><content type='html'>&lt;p class="MsoNormal"&gt;This is a great product and is probably the best vacuum out there. But that hasn't stopped me from noticing a few defects. There are really 2 major ones that nearly made me return this product. &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;The first issue is that they got rid of the foot lever that typical vacuums have to engage the beater bar. Instead you just force it down&lt;span&gt; &lt;/span&gt;and start vacuuming and when you are done you just put it back up and it latches and stays upright. This is pretty neat but when you are putting it upright there are 2 distinct things that happen, it engages the wand hose and then it engages the lock that holds it up. The switch for the hose is much louder and happens first so this leads you to believe the vacuum is upright and to let go when it is not latched properly causing it to fall over if you are not quick enough to catch it. This makes me respond by putting it upright much more forcefully then I want to do to something I’ve bought for nearly $600. &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;The second main issue is the path the air flows to the motor. There are 3 zones in the canister. The air goes from the outer to the inner getting cleaner as it progresses. The outer one is for big debris and dust, and then air flows through those tiny cyclones on the top and deposits its finer dust in the middle zone. Finally after leaving those cyclones the air goes through the filter (accessible though the top of the canister) and down the inner zone to the motor then finally out through the filter in the ball. The problem with this is that when you empty the canister the dust can and will cross contaminate from the other zones and into the post filter, inner zone. This means next time the vacuum is started it will suck in that dust into the motor and the ball filter. &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;So here is the story of how I found out about this defect: to test out the DC41 I took it to a house that was very dirty (some parts had not been vacuumed for a year) and vacuumed nearly the whole house. I had to empty the canister 3 times. After the 3rd time the vacuum got clogged (A peppermint in the narrow hose tool) and it activated the thermal cutoff. After learning about the thermal cutoff and what it meant, I took apart the vacuum and cleaned out all the access ports. Also looked at the post motor filter and saw that it was absolutely filthy but the filter in the canister was still white. So the dust was bypassing the canister filter somehow. So I figured it was when I dumped the canister the dust plume went everywhere including back up into the part of canister that is meant to be dust free. That amount of dust can’t be good for the motor. &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Here are a few more nit picks: &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;It feels a little harder to navigate then the DC25&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;I wish it had a light and something to automatically rewind the cord.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Sometimes it feels like it’s about to break in my hands.&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;It does not have a spot for all the tools.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;The hose wand sometimes doesn’t extend all the way out of the hose and sometimes causes the airway to be blocked when used. I think the DC25’s wand was better. &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;The reason I decided to keep this vacuum is the active base plate, I have a lot of wood flooring in my house and I want to get as much dust up before I use the Swiffer. Using this vacuum I now only have to use one pad each time I clean with the Swiffer instead of several. &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;And the DC41 will not be facing that dirty house again so it will never be that full of dust again. &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Here are few good things about it:&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;It has great suction.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;It survived that dirty house.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Its cord is long enough that I can plug it in anywhere and vacuum the entire floor.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Ultimately I think this is a great vacuum but for $600 I expect the best with no flaws and this has 2 too many flaws for that price. Unfortunately I can’t find a better vacuum so I’m stuck with this one.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8280090213351354159-7681038649651851515?l=jonoporter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonoporter.blogspot.com/feeds/7681038649651851515/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8280090213351354159&amp;postID=7681038649651851515' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8280090213351354159/posts/default/7681038649651851515'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8280090213351354159/posts/default/7681038649651851515'/><link rel='alternate' type='text/html' href='http://jonoporter.blogspot.com/2011/09/dyson-dc41-review-flawed.html' title='The Dyson DC41 Review (Flawed)'/><author><name>JonoPorter</name><uri>http://www.blogger.com/profile/05139619465175598926</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-8280090213351354159.post-7754038238911223026</id><published>2010-10-19T20:38:00.000-07:00</published><updated>2010-10-19T20:38:00.121-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Starship Troopers'/><category scheme='http://www.blogger.com/atom/ns#' term='Robert A. Heinlein'/><category scheme='http://www.blogger.com/atom/ns#' term='Review'/><category scheme='http://www.blogger.com/atom/ns#' term='Book'/><title type='text'>Review of Starship Troopers by Robert A. Heinlein</title><content type='html'>I just read starship troopers by Robert A. Heinlein. It was definitely not what I was expecting, but I enjoyed it. It’s completely different from the movie. He spends like 60% of it in boot camp the other 30% in officer training and 10% in combat. During most of the time while in boot camp, he has flashbacks to his social and political class. And during his officer training they talk mostly about social and political stuff. So this is political and social essay hidden as a science fiction book.  Considering this was written in 1959 it seamed like he was talking about today’s society. He was spot on with a lot of subjects. I would recommend this book.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8280090213351354159-7754038238911223026?l=jonoporter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonoporter.blogspot.com/feeds/7754038238911223026/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8280090213351354159&amp;postID=7754038238911223026' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8280090213351354159/posts/default/7754038238911223026'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8280090213351354159/posts/default/7754038238911223026'/><link rel='alternate' type='text/html' href='http://jonoporter.blogspot.com/2010/10/review-of-starship-troopers-by-robert.html' title='Review of Starship Troopers by Robert A. Heinlein'/><author><name>JonoPorter</name><uri>http://www.blogger.com/profile/05139619465175598926</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-8280090213351354159.post-5519035927780441407</id><published>2010-10-14T21:58:00.000-07:00</published><updated>2010-10-19T08:41:32.058-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='The Circle'/><category scheme='http://www.blogger.com/atom/ns#' term='Ted Dekker'/><category scheme='http://www.blogger.com/atom/ns#' term='Review'/><category scheme='http://www.blogger.com/atom/ns#' term='Book'/><title type='text'>Review of The Circle by Ted Dekker.</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.thomasnelson.com/CPRImages/ProductMedium/1595545328.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 99px; height: 150px;" src="http://www.thomasnelson.com/CPRImages/ProductMedium/1595545328.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;I just read the first three books of the circle series by Ted Dekker. I was quite disappointed. The first book had a good hook with the main character living in two worlds. When he falls asleep in one he awakes in the other. This was very interesting. One of the worlds was loosely based on the Bible where in one generation they go from the Garden of Eden to the equivalent of crucifixion of Christ. The other is modern day where some baddy is trying to take over the world with a virus. The mechanics of jumping between worlds and seeing his version of the bible was the only thing that kept me reading. Other then that the characters are just too simple, and the plot is rather weak. He kills off and brings back characters so often that you expect everyone who dies to come back.  The events in the modern earth are so unlikely and insulting to my intelligence that in the last book I just scanned though them so I can skip ahead to the bible world, which itself was very predictable. So my conclusion is that I would not recommend these books to a friend. &lt;br /&gt;&lt;br /&gt;But here are books I would recommend:&lt;br /&gt;The Wheel of Time series by Robert Jorden and Brandon Sanderson,&lt;br /&gt;The Mistborn series by Brandon Sanderson,&lt;br /&gt;The Honor Harrington series by David Weber,&lt;br /&gt;The Banned and the Banished series by James Clemens,&lt;br /&gt;The Gaunt’s Ghosts series by Dan Abnett,&lt;br /&gt;The Malazan Book of the Fallen series by Steven Erikson,&lt;br /&gt;The Zombie Survival Guide and World War Z by Max Brooks,&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8280090213351354159-5519035927780441407?l=jonoporter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonoporter.blogspot.com/feeds/5519035927780441407/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8280090213351354159&amp;postID=5519035927780441407' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8280090213351354159/posts/default/5519035927780441407'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8280090213351354159/posts/default/5519035927780441407'/><link rel='alternate' type='text/html' href='http://jonoporter.blogspot.com/2010/10/review-of-circle-by-ted-dekker.html' title='Review of The Circle by Ted Dekker.'/><author><name>JonoPorter</name><uri>http://www.blogger.com/profile/05139619465175598926</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-8280090213351354159.post-5558149485058783524</id><published>2010-08-12T15:24:00.001-07:00</published><updated>2010-08-12T15:34:51.958-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='smudges'/><category scheme='http://www.blogger.com/atom/ns#' term='password'/><category scheme='http://www.blogger.com/atom/ns#' term='touch screen'/><title type='text'>Smudge proof Touch Screen password screen.</title><content type='html'>The current problem with touch screen password screens is that smudges can give away what your password is if you don’t clean them right after you log in. The smudges reveal where you put your finger to press the numeric touchpad or the pattern you put in. &lt;br /&gt;&lt;br /&gt;The simple solution is to randomly change the location of the buttons each time the screen is presented. This only works for numeric touchpad’s though and has the issue of people expecting numbers to be in order. So I recommend using colors instead. &lt;br /&gt;Here are examples of what it would look like:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_aVCllmmdP4k/TGR1qcbKjOI/AAAAAAAAA1g/LwvfN4d33QY/s1600/ColorPass2.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 195px; height: 320px;" src="http://2.bp.blogspot.com/_aVCllmmdP4k/TGR1qcbKjOI/AAAAAAAAA1g/LwvfN4d33QY/s320/ColorPass2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5504654016598674658" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_aVCllmmdP4k/TGR1qBtdZ1I/AAAAAAAAA1Y/3nueAc9lLWE/s1600/ColorPass1.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 195px; height: 320px;" src="http://4.bp.blogspot.com/_aVCllmmdP4k/TGR1qBtdZ1I/AAAAAAAAA1Y/3nueAc9lLWE/s320/ColorPass1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5504654009427650386" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This would eliminate the issue of smudges giving away passwords making a much more secure way of protecting cell phones.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8280090213351354159-5558149485058783524?l=jonoporter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonoporter.blogspot.com/feeds/5558149485058783524/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8280090213351354159&amp;postID=5558149485058783524' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8280090213351354159/posts/default/5558149485058783524'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8280090213351354159/posts/default/5558149485058783524'/><link rel='alternate' type='text/html' href='http://jonoporter.blogspot.com/2010/08/smudge-proof-touch-screen-password.html' title='Smudge proof Touch Screen password screen.'/><author><name>JonoPorter</name><uri>http://www.blogger.com/profile/05139619465175598926</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://2.bp.blogspot.com/_aVCllmmdP4k/TGR1qcbKjOI/AAAAAAAAA1g/LwvfN4d33QY/s72-c/ColorPass2.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8280090213351354159.post-5723526558300859584</id><published>2009-05-01T07:29:00.000-07:00</published><updated>2009-05-01T07:46:46.990-07:00</updated><title type='text'>Robot Beauty contestant?</title><content type='html'>If you read the transcripts of Miss California’s interview with Greta Van Susteren at &lt;br /&gt;&lt;a href="http://www.foxnews.com/story/0,2933,518574,00.html"&gt;http://www.foxnews.com/story/0,2933,518574,00.html&lt;/a&gt;&lt;br /&gt;&lt;BR\&gt;&lt;BR\&gt;&lt;br /&gt;You will notice her answers are very odd, almost idiotic. Then reading them it made me realize that her answers seem to come from a version of ELIZA &lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/ELIZA"&gt;&lt;br /&gt;http://en.wikipedia.org/wiki/ELIZA&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;BR\&gt;&lt;BR\&gt;&lt;br /&gt;So they must be building robots now and putting them in beauty contests!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8280090213351354159-5723526558300859584?l=jonoporter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonoporter.blogspot.com/feeds/5723526558300859584/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8280090213351354159&amp;postID=5723526558300859584' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8280090213351354159/posts/default/5723526558300859584'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8280090213351354159/posts/default/5723526558300859584'/><link rel='alternate' type='text/html' href='http://jonoporter.blogspot.com/2009/05/robot-beauty-contestant.html' title='Robot Beauty contestant?'/><author><name>JonoPorter</name><uri>http://www.blogger.com/profile/05139619465175598926</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-8280090213351354159.post-214204267526097462</id><published>2009-04-02T14:57:00.000-07:00</published><updated>2009-04-02T14:59:57.997-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IQ'/><category scheme='http://www.blogger.com/atom/ns#' term='facebook'/><title type='text'>Publicly displaying IQ tests.</title><content type='html'>I think of all the quizzes on facebook the IQ test is the worse. In a nation where we are taught from childhood and whose declaration of independence states “that all men are created equal” the action of publicly displaying an IQ score is destructive. It states that we all are not created equal; assaulting a core cultural belief. It causes resentment in those who score lower and arrogance in those who score higher. Even though an arbitrary measurement like IQ shows that we are not equal; it’s just downright rude to mention it or display it is like some badge.  No good has ever come from utterance of the words: “I’m better then you.”&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8280090213351354159-214204267526097462?l=jonoporter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonoporter.blogspot.com/feeds/214204267526097462/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8280090213351354159&amp;postID=214204267526097462' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8280090213351354159/posts/default/214204267526097462'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8280090213351354159/posts/default/214204267526097462'/><link rel='alternate' type='text/html' href='http://jonoporter.blogspot.com/2009/04/publicly-displaying-iq-tests.html' title='Publicly displaying IQ tests.'/><author><name>JonoPorter</name><uri>http://www.blogger.com/profile/05139619465175598926</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-8280090213351354159.post-3188808654734840776</id><published>2009-01-14T18:57:00.000-08:00</published><updated>2009-01-14T18:57:00.242-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='corrupted'/><category scheme='http://www.blogger.com/atom/ns#' term='Bug'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='Silverlight'/><title type='text'>The project file ‘ ‘ has been renamed or is no longer in the solution. In Silverlight.</title><content type='html'>Recently one of my projects at work was moved to a different SCM. After the move a message box that said “The project file ‘ ‘ has been renamed or is no longer in the solution.” would appear every time we tried to compile the solution.  After a while I figured out how to fix this. The solution has a silverlight project; somehow the web app that hosted it got corrupted. The fix was simple right click on the project and click “Properties” and under “Silverlight Applications” tab remove the blank silverlight project and add the intended silverlight project. The code now compiles.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8280090213351354159-3188808654734840776?l=jonoporter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonoporter.blogspot.com/feeds/3188808654734840776/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8280090213351354159&amp;postID=3188808654734840776' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8280090213351354159/posts/default/3188808654734840776'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8280090213351354159/posts/default/3188808654734840776'/><link rel='alternate' type='text/html' href='http://jonoporter.blogspot.com/2009/01/project-file-has-been-renamed-or-is-no.html' title='The project file ‘ ‘ has been renamed or is no longer in the solution. In Silverlight.'/><author><name>JonoPorter</name><uri>http://www.blogger.com/profile/05139619465175598926</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>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8280090213351354159.post-7305444957733532121</id><published>2008-12-05T17:48:00.000-08:00</published><updated>2008-12-05T17:48:01.344-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DRM'/><category scheme='http://www.blogger.com/atom/ns#' term='music'/><category scheme='http://www.blogger.com/atom/ns#' term='Alternative'/><category scheme='http://www.blogger.com/atom/ns#' term='signing'/><title type='text'>Alternative to music DRM.</title><content type='html'>Lots of people don’t like DRM mainly because it’s a bad solution. A few problems with it are: that it is dependent on a central server that eventually shuts down, you lose the music if you change your computer, and you can’t make back up copies.&lt;br /&gt;&lt;br /&gt;Most people say the best alternative is no DRM and sell music for cheap which is a lot better from the customers perspective but the music companies really don’t like it because there is no anti piracy methods and they think they will make less money.&lt;br /&gt;&lt;br /&gt;An alternative implementation I have thought up is to create a new container for the music file. The container would hold the music and metadata and very detailed information about the user who bought the music online and it would be digitally signed with the private key of the publisher. The players for this format would refuse to play the music if it was not properly signed.&lt;br /&gt;&lt;br /&gt;If the information is changed then it would not validate.&lt;br /&gt;&lt;br /&gt;As far as the end user is concerned the file would play where ever they copy it too. And would but just like a non DRM file.  Now you may ask “how does this stop piracy? If the music can be copied anywhere then it is no better then No DRM!”&lt;br /&gt;&lt;br /&gt;It works differently then DRM because instead trying to stop people from making any copies it makes it easy to know exactly who is making illegal copies. If a music file is found being distributed online you know exactly who bought it and can easily go to court. After a while people would realize how easily they can be caught and stop putting music online or sharing it with friends. Also if a computer has a bunch of music on it, it would be easy to tell if they bought it or if it’s an illegal copy.&lt;br /&gt;&lt;br /&gt;This solution requires no central server just the authorized player that has a list of authorized publishers. It is no where near perfect and is easier to circumvent then current DRM, but it has one major advantage over DRM: it does not harm legitimate users. People who follow the law would have no desire to circumvent it, only people who want to pirate it. Only scenario where legitimate users would want to circumvent it would be to play music on some device that does not have an authorized player for it.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This kind of DRM can be easily applied to movies and computer games. It could actually be more effective on computer games then on music.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8280090213351354159-7305444957733532121?l=jonoporter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonoporter.blogspot.com/feeds/7305444957733532121/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8280090213351354159&amp;postID=7305444957733532121' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8280090213351354159/posts/default/7305444957733532121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8280090213351354159/posts/default/7305444957733532121'/><link rel='alternate' type='text/html' href='http://jonoporter.blogspot.com/2008/12/alternative-to-music-drm.html' title='Alternative to music DRM.'/><author><name>JonoPorter</name><uri>http://www.blogger.com/profile/05139619465175598926</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-8280090213351354159.post-8547991200662024894</id><published>2008-12-01T20:41:00.000-08:00</published><updated>2008-12-01T20:41:00.093-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hard Drive'/><category scheme='http://www.blogger.com/atom/ns#' term='SSD'/><category scheme='http://www.blogger.com/atom/ns#' term='Ram'/><category scheme='http://www.blogger.com/atom/ns#' term='HDD'/><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><category scheme='http://www.blogger.com/atom/ns#' term='Persistent'/><title type='text'>Fast Persistent Data Storage Idea</title><content type='html'>There are several types of data storage technologies out there. The hard drive is cheap but slow seek speeds kills it when random access occurs, and a physical impact can literally kill it. Flash memory is faster then a hard drive and can withstand physical impacts but it has a limited lifetime do to the number of writes it can take. Random access memory like ddr3 is even faster then the flash memory and does not have lifetime issues, but is volatile meaning it looses its data when it loses power.&lt;br /&gt;&lt;br /&gt;A while ago I thought of an idea on how to have the speed of ram but have it persist like flash. Its rather simple really, just combine on a single chip or board a equal amount of ram and flash and a capacitor to power the ram long enough to write the rams contents to the flash.&lt;br /&gt;&lt;br /&gt;So this is how it would work:&lt;br /&gt;&lt;br /&gt;When powering up the device (ram, flash, capacitor, and controller) would copy the contents of the flash over to the ram and charge the capacitors.&lt;br /&gt;&lt;br /&gt;Until the capacitors are fully charged access to the drive would be denied.&lt;br /&gt;&lt;br /&gt;When the device is accessed all reading and writing is done to the ram.&lt;br /&gt;&lt;br /&gt;When the device looses power it copies the Rams data over to the flash. (Could add logic to only copy what has changed.)&lt;br /&gt;&lt;br /&gt;This increases costs quite a bit but it gets rid of all the weaknesses of known storage technologies. It will be shock resistant, fast, long lasting, and its data persistent.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8280090213351354159-8547991200662024894?l=jonoporter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonoporter.blogspot.com/feeds/8547991200662024894/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8280090213351354159&amp;postID=8547991200662024894' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8280090213351354159/posts/default/8547991200662024894'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8280090213351354159/posts/default/8547991200662024894'/><link rel='alternate' type='text/html' href='http://jonoporter.blogspot.com/2008/12/fast-persistent-data-storage-idea.html' title='Fast Persistent Data Storage Idea'/><author><name>JonoPorter</name><uri>http://www.blogger.com/profile/05139619465175598926</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-8280090213351354159.post-6497688445608173875</id><published>2008-12-01T19:50:00.000-08:00</published><updated>2008-12-01T19:50:00.759-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Port'/><category scheme='http://www.blogger.com/atom/ns#' term='Silverlight'/><category scheme='http://www.blogger.com/atom/ns#' term='Mono'/><category scheme='http://www.blogger.com/atom/ns#' term='SslStream'/><title type='text'>Porting Mono's SslStream to SilverLight</title><content type='html'>I have recently run into another problem with Microsoft’s stripping of the silverlight runtime. This time I was looking into using Sockets, because of the crippled WCF implementation. But sockets have been badly stripped. The only thing in the System.Net.Sockets namespace is the Socket class. No TcpClient no UdpClient and no NetworkStream. The System.Net.Security namespace is also gone. Meaning no SslStream. &lt;br /&gt;&lt;br /&gt;With no SslStream and a sorely lacking implementation of WCF, silverlight is pretty insecure. Not in the fashion of a computer virus but in how FTP transmits passwords in clear text.&lt;br /&gt;&lt;br /&gt;I’m not sure what kind of applications Microsoft expects people to write without being able send files larger then a few megabytes with WCF or to secure their Socket’s data with an SslStream.  I’m starting to think Microsoft made a very bad mistake with trying to shrink the runtime so much. I bet people will either write insecure applications and blame silverlight or avoid it all together. Deep market penetration caused by a small download will mean nothing if developers don’t write programs for silverlight. &lt;br /&gt;&lt;br /&gt;Anyways that’s enough complaining about the free framework that Microsoft spent a lot of money to write.&lt;br /&gt;&lt;br /&gt;A rather simple yet time consuming solution to this issue is to port Mono’s implementation of .Net APIs that are needed. I’m not sure how much effort will be needed, but it should be rather simple to do. Write access to Mono’s repository would be required keep it synced with Mono so that’s not something I can do. Basically you would just sprinkle some compiler directives to exclude classes and methods that are not possible. Also add extension methods to extend silverlight classes that don’t have needed methods. Then write build scripts that compile those for silverlight. For limited subset of classes like the NetworkStream it should be relatively easy to port them to silverlight. Classes like the SslStream will require more effort because of its reliance on Certificate stores.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8280090213351354159-6497688445608173875?l=jonoporter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonoporter.blogspot.com/feeds/6497688445608173875/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8280090213351354159&amp;postID=6497688445608173875' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8280090213351354159/posts/default/6497688445608173875'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8280090213351354159/posts/default/6497688445608173875'/><link rel='alternate' type='text/html' href='http://jonoporter.blogspot.com/2008/12/porting-monos-sslstream-to-silverlight.html' title='Porting Mono&apos;s SslStream to SilverLight'/><author><name>JonoPorter</name><uri>http://www.blogger.com/profile/05139619465175598926</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-8280090213351354159.post-4496149040034433589</id><published>2008-11-19T18:24:00.000-08:00</published><updated>2008-11-19T18:24:00.351-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Solution'/><category scheme='http://www.blogger.com/atom/ns#' term='Pirates'/><category scheme='http://www.blogger.com/atom/ns#' term='capitalism'/><category scheme='http://www.blogger.com/atom/ns#' term='mercenary'/><title type='text'>My Solution to the Pirates</title><content type='html'>Currently there has been a large amount of talk about the Somali pirates. The solution to this problem is rather simple. No it’s not sending in the US Navy. No in this scenario my solution is much simpler. Let capitalism have a whack at it. Some mercenary company needs to sell their services to the companies that own these ships for escort duty. Comparing to what I assume and multi-million dollar ransom demands hiring an army of mercenaries would be small in comparison.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8280090213351354159-4496149040034433589?l=jonoporter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonoporter.blogspot.com/feeds/4496149040034433589/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8280090213351354159&amp;postID=4496149040034433589' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8280090213351354159/posts/default/4496149040034433589'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8280090213351354159/posts/default/4496149040034433589'/><link rel='alternate' type='text/html' href='http://jonoporter.blogspot.com/2008/11/my-solution-to-pirates.html' title='My Solution to the Pirates'/><author><name>JonoPorter</name><uri>http://www.blogger.com/profile/05139619465175598926</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-8280090213351354159.post-4985899096371799920</id><published>2008-11-14T17:50:00.000-08:00</published><updated>2008-11-14T19:11:32.817-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='work around'/><category scheme='http://www.blogger.com/atom/ns#' term='Dynamic'/><category scheme='http://www.blogger.com/atom/ns#' term='DataGrid'/><category scheme='http://www.blogger.com/atom/ns#' term='ItemSource'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='Silverlight'/><category scheme='http://www.blogger.com/atom/ns#' term='Binding'/><category scheme='http://www.blogger.com/atom/ns#' term='DataBinding'/><title type='text'>A Dynamic SilverLight DataGrid.</title><content type='html'>&lt;div style="MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt"&gt;&lt;div style="OVERFLOW: auto"&gt;&lt;br /&gt;Note: this article is about how to set the values for the DataGrid. If you want to see how to add columns dynamically check out this article: &lt;a href="http://blogs.msdn.com/scmorris/archive/2008/04/14/defining-silverlight-datagrid-columns-at-runtime.aspx"&gt;http://blogs.msdn.com/scmorris/archive/2008/04/14/defining-silverlight-datagrid-columns-at-runtime.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I’ve recently come across 3 very annoying limitations in Silverlight 2.0 while trying to use the data grid. The first is that the  DataTable class does not exist. This is the typical way to set the ItemSource for other .Net DataGrid/GridViews. The second is that Databinding in Silverlight CANNOT do indexes or any other special kind of binding (&lt;a href="http://msdn.microsoft.com/en-us/library/cc189022(VS.95).aspx"&gt;http://msdn.microsoft.com/en-us/library/cc189022(VS.95).aspx&lt;/a&gt;) it only supports property bindings.  So the idea of just binding to array[index] cannot be done. The third is there is no manual way to add rows to the DataGrid. You can only set ItemsSource. Its like they ca&lt;br /&gt;&lt;br /&gt;So the only way to feed the Datagrid is to have a class collection with the properties you need. So obviously Microsoft does not want you to have dynamic datagrids. One work around is to use IConvertor (&lt;a href="http://blogs.msdn.com/deepak_verma/archive/2008/07/19/dynamic-creation-binding-of-silverlight-datagrid.aspx"&gt;http://blogs.msdn.com/deepak_verma/archive/2008/07/19/dynamic-creation-binding-of-silverlight-datagrid.aspx&lt;/a&gt;) But this only allows one way databinding and for my project it requires two way databinding. So I obviously can’t use that.&lt;br /&gt;&lt;br /&gt;Other people have concluded the only way around this is to use code generation to create the classes with the properties they need. As cool and powerful as code generation is, I find it to be buggy, hard to debug, and generally very nasty to work with.  Since I didn’t have the time or energy to write my own CodeGen solution and can’t use any 3rd party code I figured out another solution that is easier to do, works, but is potentially very slow for Grids with a large number of columns.&lt;br /&gt;&lt;br /&gt;Basically you use a linked list for your row. This can be done because every element in a linked list is accessible via a property. The “Next” property in a link list is what makes this possible and what can make it slow. To access the nth column you just have n-1 “Next”s in the Path followed by “Value”.  In the code below I am setting a column’s Binding property.&lt;br /&gt;&lt;br /&gt;&lt;DIV Style=" Margin-Left=0pt; Margin-Right=0pt;"&gt;&lt;DIV Style=" overflow='auto';"&gt;column.Binding = &lt;FONT Color=#0000ff&gt;new&lt;/FONT&gt; &lt;FONT Color=#2b91af&gt;Binding&lt;/FONT&gt;(CreatePath(columnIndex));&lt;SPAN style='font-family:Times New Roman'&gt;&lt;br&gt;&lt;FONT Color=#0000ff&gt;&lt;/SPAN&gt;&lt;SPAN style='font-family:Courier New'&gt;&lt;br&gt;string&lt;/FONT&gt; CreatePath(&lt;FONT Color=#0000ff&gt;int&lt;/FONT&gt; columnIndex)&lt;br&gt;{&lt;FONT Color=#2b91af&gt;&lt;div style="margin-left:20pt"&gt;StringBuilder&lt;/FONT&gt; result = &lt;FONT Color=#0000ff&gt;new&lt;/FONT&gt; &lt;FONT Color=#2b91af&gt;StringBuilder&lt;/FONT&gt;();&lt;FONT Color=#0000ff&gt;&lt;br&gt;for&lt;/FONT&gt; (&lt;FONT Color=#0000ff&gt;int&lt;/FONT&gt; index = 0; index &amp;lt columnIndex; index++)&lt;br&gt;{&lt;div style="margin-left:20pt"&gt;result.Append(&lt;FONT Color=#a31515&gt;&amp;quotNext.&amp;quot&lt;/FONT&gt;);&lt;/div&gt;}&lt;br&gt;result.Append(&lt;FONT Color=#a31515&gt;&amp;quotValue&amp;quot&lt;/FONT&gt;);&lt;FONT Color=#0000ff&gt;&lt;br&gt;return&lt;/FONT&gt; result.ToString();&lt;/div&gt;}&lt;/SPAN&gt;&lt;SPAN style='font-family:Times New Roman'&gt;&lt;b&gt;&lt;br&gt;&lt;/b&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;br /&gt;When creating the actual ItemsSource create a list of link list nodes and fill it with the first node from each row. In the below code the trueSource is just a sample collection that would work.&lt;br /&gt;&lt;br /&gt;&lt;DIV Style=" Margin-Left=0pt; Margin-Right=0pt;"&gt;&lt;DIV Style=" overflow='auto';"&gt;&lt;FONT Color=#0000ff&gt;&lt;SPAN style='font-family:Courier New'&gt;&lt;br&gt;var&lt;/FONT&gt; trueSource = &lt;FONT Color=#0000ff&gt;new&lt;/FONT&gt; &lt;FONT Color=#0000ff&gt;object&lt;/FONT&gt;[][]&lt;br&gt;{&lt;FONT Color=#0000ff&gt;&lt;div style="margin-left:20pt"&gt;new&lt;/FONT&gt; []{ &lt;FONT Color=#a31515&gt;&amp;quotRow&amp;quot&lt;/FONT&gt;, &lt;FONT Color=#a31515&gt;&amp;quotOne&amp;quot&lt;/FONT&gt; },&lt;FONT Color=#0000ff&gt;&lt;br&gt;new&lt;/FONT&gt; []{ &lt;FONT Color=#a31515&gt;&amp;quotRow&amp;quot&lt;/FONT&gt;, &lt;FONT Color=#a31515&gt;&amp;quotTwo&amp;quot&lt;/FONT&gt; },&lt;/div&gt;};&lt;/SPAN&gt;&lt;SPAN style='font-family:Times New Roman'&gt;&lt;br&gt;&lt;FONT Color=#2b91af&gt;&lt;/SPAN&gt;&lt;SPAN style='font-family:Courier New'&gt;&lt;br&gt;List&lt;/FONT&gt;&amp;lt&lt;FONT Color=#2b91af&gt;LinkedListNode&lt;/FONT&gt;&amp;lt&lt;FONT Color=#0000ff&gt;object&lt;/FONT&gt;&amp;gt&amp;gt itemSource = &lt;FONT Color=#0000ff&gt;new&lt;/FONT&gt; &lt;FONT Color=#2b91af&gt;List&lt;/FONT&gt;&amp;lt&lt;FONT Color=#2b91af&gt;LinkedListNode&lt;/FONT&gt;&amp;lt&lt;FONT Color=#0000ff&gt;object&lt;/FONT&gt;&amp;gt&amp;gt();&lt;FONT Color=#0000ff&gt;&lt;br&gt;foreach&lt;/FONT&gt; (&lt;FONT Color=#0000ff&gt;var&lt;/FONT&gt; item &lt;FONT Color=#0000ff&gt;in&lt;/FONT&gt; trueSource)&lt;br&gt;{&lt;FONT Color=#0000ff&gt;&lt;div style="margin-left:20pt"&gt;var&lt;/FONT&gt; row = &lt;FONT Color=#0000ff&gt;new&lt;/FONT&gt; &lt;FONT Color=#2b91af&gt;LinkedList&lt;/FONT&gt;&amp;lt&lt;FONT Color=#0000ff&gt;object&lt;/FONT&gt;&amp;gt(item);&lt;br&gt;itemSource.Add(row.First);&lt;/div&gt;}&lt;br&gt;dataGrid.ItemSource = itemSource;&lt;/SPAN&gt;&lt;SPAN style='font-family:Times New Roman'&gt;&lt;b&gt;&lt;br&gt;&lt;/b&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;br /&gt;There you have it. It’s very hacky, it’s potentially slow and code generation is your only other option (that I know of). Microsoft really dropped the ball on this one.&lt;br /&gt;&lt;br /&gt;If you have yet to figure out why it can be slow here is the reason: let’s say you have 32 columns  in order to bind to the last element the “Next” property has to be called 31 times to get to the node that contains its “Value”. That is 31 extra calls then a direct binding. Since data binding uses reflection that will make it even slower. But with machines being so fast as they are now I doubt you will notice the speed hit, unless you have a lot of columns and a lot of rows. If that’s the case Code generation and all its hair pulling fun is your only other option (that I know of).&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/8280090213351354159-4985899096371799920?l=jonoporter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonoporter.blogspot.com/feeds/4985899096371799920/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8280090213351354159&amp;postID=4985899096371799920' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8280090213351354159/posts/default/4985899096371799920'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8280090213351354159/posts/default/4985899096371799920'/><link rel='alternate' type='text/html' href='http://jonoporter.blogspot.com/2008/11/dynamic-silverlight-datagrid.html' title='A Dynamic SilverLight DataGrid.'/><author><name>JonoPorter</name><uri>http://www.blogger.com/profile/05139619465175598926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8280090213351354159.post-548540975521229068</id><published>2008-10-14T21:15:00.000-07:00</published><updated>2008-12-01T14:59:24.109-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><category scheme='http://www.blogger.com/atom/ns#' term='DropDownButton'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Drop Down Buttons for WPF</title><content type='html'>The problem is the DropDownButton for WPF does not exist. And if you are like me you need one but really don’t want to have to write one. The most common scenario for drop down buttons is putting them in a toolbar. I have found a simple way to emulate the drop down button exactly without writing a line of code. Just use put a full blown Menu in.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8280090213351354159-548540975521229068?l=jonoporter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonoporter.blogspot.com/feeds/548540975521229068/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8280090213351354159&amp;postID=548540975521229068' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8280090213351354159/posts/default/548540975521229068'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8280090213351354159/posts/default/548540975521229068'/><link rel='alternate' type='text/html' href='http://jonoporter.blogspot.com/2008/10/drop-down-buttons-for-wpf.html' title='Drop Down Buttons for WPF'/><author><name>JonoPorter</name><uri>http://www.blogger.com/profile/05139619465175598926</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-8280090213351354159.post-2071453140088562540</id><published>2008-07-31T16:02:00.000-07:00</published><updated>2008-12-01T15:10:39.098-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3D'/><category scheme='http://www.blogger.com/atom/ns#' term='Captcha'/><category scheme='http://www.blogger.com/atom/ns#' term='Anti-Bot'/><category scheme='http://www.blogger.com/atom/ns#' term='Image'/><title type='text'>Another Captcha Idea (Identify/Captcha)</title><content type='html'>&lt;p&gt;With the recent failures with the captcha for gmail and other major mail service providers it has became apparent that captchas need to be improved. So I pondered on this for a while and a came up with the identify/captcha idea where you have the standard captcha but you also include a background image that has items the user has to identify. Here is a mockup of what I am talking about:&lt;br /&gt;&lt;/p&gt;&lt;img id="BLOGGER_PHOTO_ID_5229318132197375186" style="margin: 0px auto 10px; display: block; text-align: center;" alt="" src="http://bp0.blogger.com/_aVCllmmdP4k/SJJFIpciPNI/AAAAAAAAAAM/5dMzfQ_W-PI/s320/Identify.Captcha" border="0" /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;insert&gt;&lt;br /&gt;&lt;br /&gt;The background itself being something other then whitespace would trip up the bot makers for a while but the real kicker is the “What is in the picture?” bit. Having 6 check boxes gives 64 possible answers that’s a 1/64 chance of a bot guessing it right. If the bots get the text right 1/3 of the time then that is a 1/192 chance of the bot answering correctly. Sounds like a good odds to me.&lt;br /&gt;&lt;br /&gt;Now let’s think about how to break this system (what the bot makers would think) well they could easily create a database of pictures and correct answers. So to foil that we will need a very large collection of pictures to make the DB unmanageable and we need to distort the pictures to make any hashing attempt fail. The rest is left as an exercise for the reader.&lt;br /&gt;&lt;br /&gt;Now all is needed is for me to convince Google to start using this.&lt;/insert&gt;&lt;/p&gt;&lt;p&gt;EDIT:&lt;br /&gt;&lt;insert&gt;&lt;/insert&gt;&lt;/p&gt;&lt;p&gt;&lt;insert&gt;My brother pointed out that having to have a database of images is pretty much unacceptable because image recognition can eventually defeat any distortions. So to make this idea better the image should be a 3d rendering of the objects with random textures, positions and angles and lighting making it so you can have a virtually unlimited number of images with objects in it.  This would force the bot makers to actually do object recognition.  This idea is more processor intensive but you will no longer have to store the Database or create it.&lt;br /&gt;&lt;/insert&gt;&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8280090213351354159-2071453140088562540?l=jonoporter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonoporter.blogspot.com/feeds/2071453140088562540/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8280090213351354159&amp;postID=2071453140088562540' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8280090213351354159/posts/default/2071453140088562540'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8280090213351354159/posts/default/2071453140088562540'/><link rel='alternate' type='text/html' href='http://jonoporter.blogspot.com/2008/07/another-captcha-idea-identifycaptcha.html' title='Another Captcha Idea (Identify/Captcha)'/><author><name>JonoPorter</name><uri>http://www.blogger.com/profile/05139619465175598926</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://bp0.blogger.com/_aVCllmmdP4k/SJJFIpciPNI/AAAAAAAAAAM/5dMzfQ_W-PI/s72-c/Identify.Captcha' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8280090213351354159.post-6370699991897951823</id><published>2008-07-10T17:18:00.000-07:00</published><updated>2008-07-10T17:19:10.822-07:00</updated><title type='text'>Modifying collections inside a constructor.</title><content type='html'>I’m adding this to a list of no nos.&lt;br /&gt;&lt;br /&gt;Imagine you add the object to a collection inside the constructor.  Then throw an exception? Well when you get an incomplete object inside the collection.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8280090213351354159-6370699991897951823?l=jonoporter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonoporter.blogspot.com/feeds/6370699991897951823/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8280090213351354159&amp;postID=6370699991897951823' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8280090213351354159/posts/default/6370699991897951823'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8280090213351354159/posts/default/6370699991897951823'/><link rel='alternate' type='text/html' href='http://jonoporter.blogspot.com/2008/07/modifying-collections-inside.html' title='Modifying collections inside a constructor.'/><author><name>JonoPorter</name><uri>http://www.blogger.com/profile/05139619465175598926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8280090213351354159.post-4768527168648186613</id><published>2008-06-28T13:32:00.001-07:00</published><updated>2008-06-28T13:32:48.430-07:00</updated><title type='text'>Silverlight is too light.</title><content type='html'>I’m trying to make a game using my physics engine and silverlight  and the engine mostly works setting the compact framework symbol gets rid of most of the compiler errors. But one error that really annoyed me was that it said List&lt;t&gt;.RemoveAll was missing. Talk about annoying. I use it several times in the engine so it can’t be allowed to be missing.&lt;br /&gt;&lt;br /&gt;I’m just glad that they allow extension methods that way I can re-add the functionality they took out.&lt;br /&gt;&lt;br /&gt;But why remove that method? I know with silverlight they are trying to trim off the fat, but this is more like cutting out the muscle.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8280090213351354159-4768527168648186613?l=jonoporter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonoporter.blogspot.com/feeds/4768527168648186613/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8280090213351354159&amp;postID=4768527168648186613' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8280090213351354159/posts/default/4768527168648186613'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8280090213351354159/posts/default/4768527168648186613'/><link rel='alternate' type='text/html' href='http://jonoporter.blogspot.com/2008/06/silverlight-is-too-light.html' title='Silverlight is too light.'/><author><name>JonoPorter</name><uri>http://www.blogger.com/profile/05139619465175598926</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-8280090213351354159.post-3415402605720139162</id><published>2008-06-04T19:48:00.000-07:00</published><updated>2008-06-04T16:47:53.051-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='H2Sharp'/><category scheme='http://www.blogger.com/atom/ns#' term='H2'/><category scheme='http://www.blogger.com/atom/ns#' term='embeddable'/><category scheme='http://www.blogger.com/atom/ns#' term='Database'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='ADO.Net'/><title type='text'>The Search for the Perfect Database.</title><content type='html'>&lt;p class="MsoNormal"&gt;I have been searching for a database to use in a certain application for years. And none of them ever quite met all my needs until now. The program needed a database for each machine it ran on so the first requirement was that is had to be embeddable and not have a separate install. This eliminated a majority of the mainstream database systems out there. I also wanted this database to work on both Linux and Windows. I found Firebird which actually worked well for me, but had a few issues. They were the lack of good online documentation and the bug prone Ado.Net provider; which leads to my next requirement it had to have an interface with .Net. &lt;span style="font-size:0;"&gt;&lt;/span&gt;After working with firebird for a long time I finally decided to shift my database from firebird to another system. VistaDB 3 looked really appealing to me because of it being completely managed. I even switched over to it for a while, but the documentation was lacking and it ran slow (and didn’t want to spend the time fixing that.), and would have to buy it. &lt;span style="font-size:0;"&gt;&lt;/span&gt;That was when I found H2, but it had one problem it’s a Java database. In order to use it I used IKVM.Net. But I then had another problem H2 had no ADO.Net interface so I wrote one. &lt;a href="http://h2sharp.googlecode.com/"&gt;Thus H2Sharp was born.&lt;/a&gt; So far I have been pleased with H2 and my only issue so far is the ~20MB class library that comes with IKVM. &lt;/p&gt;&lt;p class="MsoNormal"&gt;I have looked at nearly every database out on the market and have tried a few of them. So here is a list of databases I considered or used.&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;?xml:namespace prefix = o /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;MS SQL Express (Used):&lt;br /&gt;Windows only, separate install, resource hog, not embeddable.&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;SqlCE(Considered)&lt;br /&gt;Windows only, lack of needed features. &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;db4o(Considered):&lt;br /&gt;Viral GPL or pay big bucks, also was too different. &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;SQLite (Considered):&lt;br /&gt;Not Managed, bad concurrency, ADO.Net interface was buggy.&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;DB2 (Considered):&lt;br /&gt;The free version was not embeddable and had artificial limitations and had to pay for embeddable.&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;Oracle (Considered):&lt;br /&gt;The free version was not embeddable and had artificial limitations, separate install.&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;SharpHSQL (Considered):&lt;br /&gt;Power loss causes corruption, did not seem to be in active development.&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;IBM cloudscape, Apache Derby, JavaDB (Considered):&lt;br /&gt;Would have had to install Java and .Net and have it run in a separate process.&lt;br /&gt;(Considered it before I found IKVM.Net and found H2 before I found IKVM.Net)&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;FireBird (Used):&lt;br /&gt;Embeddable only on windows, lacking documentation, ADO.Net interface was buggy.&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;VistaDB(Used):&lt;br /&gt;Lacking documentation, speed was slow, had to buy. &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;H2 (Using):&lt;br /&gt;Needs IKVM.Net’s ~20MB dlls for .Net usage. &lt;a href="http://h2sharp.googlecode.com/"&gt;Needs H2Sharp&lt;/a&gt;.&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8280090213351354159-3415402605720139162?l=jonoporter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonoporter.blogspot.com/feeds/3415402605720139162/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8280090213351354159&amp;postID=3415402605720139162' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8280090213351354159/posts/default/3415402605720139162'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8280090213351354159/posts/default/3415402605720139162'/><link rel='alternate' type='text/html' href='http://jonoporter.blogspot.com/2008/06/search-for-perfect-database.html' title='The Search for the Perfect Database.'/><author><name>JonoPorter</name><uri>http://www.blogger.com/profile/05139619465175598926</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-8280090213351354159.post-1859111292775267891</id><published>2008-06-02T18:19:00.000-07:00</published><updated>2008-06-04T16:49:25.076-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='T-Shirt'/><category scheme='http://www.blogger.com/atom/ns#' term='Store'/><category scheme='http://www.blogger.com/atom/ns#' term='empathy'/><title type='text'>Open up a cafepress Store.</title><content type='html'>I have created a CafePress store with 3 different shirts. This was because I thought of an idea for a funny T-Shirt (&lt;a href="http://www.cafepress.com/jonoporter.272194275"&gt;the empathy one&lt;/a&gt;); I added 2 other shirts that are from art I’ve created. Take a look. Now the place is rather expensive and I only get about 1 dollar if you buy one, so only buy them if you really want them.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.cafepress.com/JonoPorter"&gt;here is a link.&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8280090213351354159-1859111292775267891?l=jonoporter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonoporter.blogspot.com/feeds/1859111292775267891/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8280090213351354159&amp;postID=1859111292775267891' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8280090213351354159/posts/default/1859111292775267891'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8280090213351354159/posts/default/1859111292775267891'/><link rel='alternate' type='text/html' href='http://jonoporter.blogspot.com/2008/06/open-up-cafepress-store.html' title='Open up a cafepress Store.'/><author><name>JonoPorter</name><uri>http://www.blogger.com/profile/05139619465175598926</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-8280090213351354159.post-2273092988655858011</id><published>2008-05-22T18:10:00.000-07:00</published><updated>2008-06-04T16:48:42.776-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Christian'/><category scheme='http://www.blogger.com/atom/ns#' term='worship'/><category scheme='http://www.blogger.com/atom/ns#' term='karaoke'/><title type='text'>The worship machine.</title><content type='html'>It’s a rather simple concept probably already done. It was thought up because of a small group I attended had a worship session where all we did was listen to music. I ask why and one of my friends said it’s a new song and didn’t know the words. The Bible says “Make a joyful noise unto the LORD, all ye lands” (Psalm 100:1) not just listen to a joyful noise. So I thought up of this concept.&lt;br /&gt;&lt;br /&gt;Take a karaoke machine and modify it to project the words onto a wall and program it with Christian songs. Or take a computer with a projector and run a karaoke program with Christian songs. As I said it’s rather simple. This would allow small groups to have a worship session that would allow them to sing God’s praises not just listen to a CD of someone who did that a while ago.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8280090213351354159-2273092988655858011?l=jonoporter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonoporter.blogspot.com/feeds/2273092988655858011/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8280090213351354159&amp;postID=2273092988655858011' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8280090213351354159/posts/default/2273092988655858011'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8280090213351354159/posts/default/2273092988655858011'/><link rel='alternate' type='text/html' href='http://jonoporter.blogspot.com/2008/05/worship-machine.html' title='The worship machine.'/><author><name>JonoPorter</name><uri>http://www.blogger.com/profile/05139619465175598926</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-8280090213351354159.post-3806498586629488350</id><published>2008-05-20T18:40:00.000-07:00</published><updated>2008-06-04T16:49:00.708-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='clock'/><category scheme='http://www.blogger.com/atom/ns#' term='evil'/><category scheme='http://www.blogger.com/atom/ns#' term='company'/><title type='text'>The evil company’s clock.</title><content type='html'>I just thought of something interesting. The evil company’s clock. It would be a clock that from 9 AM it would make each hour 15 minutes longer then after 5 PM it would make each hour 7.5 minutes shorter. Thus if a employee trusts this clock he/she would work 2 hours more and only charge for the usual 8.&lt;br /&gt;&lt;br /&gt;So if your company offers free clocks beware!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8280090213351354159-3806498586629488350?l=jonoporter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonoporter.blogspot.com/feeds/3806498586629488350/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8280090213351354159&amp;postID=3806498586629488350' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8280090213351354159/posts/default/3806498586629488350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8280090213351354159/posts/default/3806498586629488350'/><link rel='alternate' type='text/html' href='http://jonoporter.blogspot.com/2008/05/evil-companys-clock.html' title='The evil company’s clock.'/><author><name>JonoPorter</name><uri>http://www.blogger.com/profile/05139619465175598926</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-8280090213351354159.post-1382639960570485597</id><published>2008-03-19T12:23:00.000-07:00</published><updated>2008-03-19T12:25:21.957-07:00</updated><title type='text'>How to find your IP address in OS/2</title><content type='html'>In the command line type:&lt;br /&gt;hostid&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8280090213351354159-1382639960570485597?l=jonoporter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonoporter.blogspot.com/feeds/1382639960570485597/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8280090213351354159&amp;postID=1382639960570485597' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8280090213351354159/posts/default/1382639960570485597'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8280090213351354159/posts/default/1382639960570485597'/><link rel='alternate' type='text/html' href='http://jonoporter.blogspot.com/2008/03/how-to-find-your-ip-address-in-os2.html' title='How to find your IP address in OS/2'/><author><name>JonoPorter</name><uri>http://www.blogger.com/profile/05139619465175598926</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-8280090213351354159.post-1245870228986450202</id><published>2008-02-21T18:42:00.000-08:00</published><updated>2008-05-20T13:49:34.104-07:00</updated><title type='text'>Jade Empire: The Installer.</title><content type='html'>I recently tried to install Jade Empire. So far it has taken over 2 hours. The most annoying part of it is that a majority of the time it is doing nothing! Absolutely Zero processor usage! It’s as if the programmers decided it was a good idea to add a few random calls to wait/sleep. This makes me angry, I don’t sit down after a long day at work and say “what game do I want to watch install today?” I remember my dad once said playing games is a waste of time, so far Jade Empire has proven him right.&lt;br /&gt;&lt;br /&gt;Update: It was the DVD drive I used that Jade Empire did not like.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8280090213351354159-1245870228986450202?l=jonoporter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonoporter.blogspot.com/feeds/1245870228986450202/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8280090213351354159&amp;postID=1245870228986450202' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8280090213351354159/posts/default/1245870228986450202'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8280090213351354159/posts/default/1245870228986450202'/><link rel='alternate' type='text/html' href='http://jonoporter.blogspot.com/2008/02/jade-empire-installer.html' title='Jade Empire: The Installer.'/><author><name>JonoPorter</name><uri>http://www.blogger.com/profile/05139619465175598926</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-8280090213351354159.post-5999429147166588094</id><published>2008-02-19T15:59:00.000-08:00</published><updated>2008-02-19T17:40:48.210-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Union'/><category scheme='http://www.blogger.com/atom/ns#' term='StructLayout'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Creating Unions in C#</title><content type='html'>Here is a Small trick to create a C/C++ like union in C#.&lt;br /&gt;&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbspYou have to use the StructLayout attribute applied to the class. the StructLayout attribute needs to be passed the parameter LayoutKind.Explicit. This makes it so you can declare the exact offset in the number of Bytes each field will have. Naturally you will need to use another attribute for each of the fields to specify this offset; the name of this attribute is FieldOffset. Both of these Attributes are in the System.Runtime.InteropServices namespace.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Here is an example where 2 32bit integers will share the same memory address as a 64bit integer.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;!-- --Start of code block&lt;br /&gt;--&gt;&lt;DIV Style=" Margin-Left=10pt; Margin-Right=2pt;"&gt;&lt;DIV Style=" overflow='auto';"&gt;&lt;FONT Color=#0000ff&gt;using&lt;/FONT&gt; System.Runtime.InteropServices;&lt;SPAN style='font-family:Times New Roman'&gt;&lt;br&gt;&lt;/SPAN&gt;&lt;SPAN style='font-family:Courier New'&gt;&lt;div style="margin-left:20pt"&gt;[&lt;FONT Color=#2b91af&gt;StructLayout&lt;/FONT&gt;(&lt;FONT Color=#2b91af&gt;LayoutKind&lt;/FONT&gt;.Explicit)]&lt;FONT Color=#0000ff&gt;&lt;br&gt;public&lt;/FONT&gt; &lt;FONT Color=#0000ff&gt;struct&lt;/FONT&gt; &lt;FONT Color=#2b91af&gt;PairID&lt;/FONT&gt;&lt;br&gt;{&lt;div style="margin-left:20pt"&gt;[&lt;FONT Color=#2b91af&gt;FieldOffset&lt;/FONT&gt;(0)]&lt;FONT Color=#0000ff&gt;&lt;br&gt;public&lt;/FONT&gt; &lt;FONT Color=#0000ff&gt;long&lt;/FONT&gt; Id;&lt;br&gt;[&lt;FONT Color=#2b91af&gt;FieldOffset&lt;/FONT&gt;(0)]&lt;FONT Color=#0000ff&gt;&lt;br&gt;public&lt;/FONT&gt; &lt;FONT Color=#0000ff&gt;int&lt;/FONT&gt; LowId;&lt;br&gt;[&lt;FONT Color=#2b91af&gt;FieldOffset&lt;/FONT&gt;(&lt;FONT Color=#0000ff&gt;sizeof&lt;/FONT&gt;(&lt;FONT Color=#0000ff&gt;int&lt;/FONT&gt;))]&lt;FONT Color=#0000ff&gt;&lt;br&gt;public&lt;/FONT&gt; &lt;FONT Color=#0000ff&gt;int&lt;/FONT&gt; HighId;&lt;/div&gt;}&lt;FONT Color=#0000ff&gt;&lt;/SPAN&gt;&lt;SPAN style='font-family:Courier New'&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/div&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;!-- &lt;br /&gt;End of code block----&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8280090213351354159-5999429147166588094?l=jonoporter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonoporter.blogspot.com/feeds/5999429147166588094/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8280090213351354159&amp;postID=5999429147166588094' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8280090213351354159/posts/default/5999429147166588094'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8280090213351354159/posts/default/5999429147166588094'/><link rel='alternate' type='text/html' href='http://jonoporter.blogspot.com/2008/02/creating-unions-in-c.html' title='Creating Unions in C#'/><author><name>JonoPorter</name><uri>http://www.blogger.com/profile/05139619465175598926</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-8280090213351354159.post-3721249345861786492</id><published>2008-02-19T11:43:00.000-08:00</published><updated>2008-02-19T11:48:22.593-08:00</updated><title type='text'>Decided to Create a Blog.</title><content type='html'>&lt;p class="MsoNormal"&gt;I have decided that I should finally make a blog, though I don’t really have time to maintain one. People around me have started to show signs that I annoy them with my ideas, so I decided to see if the internet that is comprised of complete and utter strangers will care about my random thoughts. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8280090213351354159-3721249345861786492?l=jonoporter.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jonoporter.blogspot.com/feeds/3721249345861786492/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8280090213351354159&amp;postID=3721249345861786492' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8280090213351354159/posts/default/3721249345861786492'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8280090213351354159/posts/default/3721249345861786492'/><link rel='alternate' type='text/html' href='http://jonoporter.blogspot.com/2008/02/decided-to-create-blog.html' title='Decided to Create a Blog.'/><author><name>JonoPorter</name><uri>http://www.blogger.com/profile/05139619465175598926</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
