<?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-28760156</id><updated>2012-05-16T23:09:50.852-07:00</updated><category term='socrenchus'/><category term='Computer Science'/><category term='SFM'/><category term='apple'/><category term='mac'/><category term='CSH'/><category term='wcode'/><category term='xorg-dev'/><category term='dashboard'/><category term='multitouch'/><category term='google'/><category term='Augmented Reality'/><category term='Computer Vision'/><title type='text'>Bryan Goldstein's Blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='/index.phpfeeds/posts/default'/><link rel='self' type='application/atom+xml' href='/files/blogRSS.php'/><link rel='alternate' type='text/html' href='/index.php'/><link rel='hub' href='/index.php'/><link rel='next' type='application/atom+xml' href='/files/blogRSS.php?start-index=26&amp;max-results=25'/><author><name>Bryan Goldstein</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/--DittlS9dbw/AAAAAAAAAAI/AAAAAAAAB4s/STYrH-pQ1NY/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>32</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-28760156.post-2962304627924039816</id><published>2012-04-26T09:25:00.000-07:00</published><updated>2012-04-26T09:25:04.319-07:00</updated><title type='text'>Status Quo Ante</title><content type='html'>I was talking to a friend about how&amp;nbsp;technology advances and people stay the same. I told him that you need to fight people in order to show them that they are doing things wrong, but if you succeed the rewards make it worth your while.&lt;br /&gt;&lt;br /&gt;He brought up the following experiment:&lt;br /&gt;&lt;blockquote class="tr_bq" style="text-align: justify;"&gt;Researchers put a group of monkeys in a room and hung bananas over a staircase in the middle. Whenever a monkey went for the bananas all the other&amp;nbsp;monkeys&amp;nbsp;were punished for it.&amp;nbsp;&lt;/blockquote&gt;&lt;blockquote class="tr_bq" style="text-align: justify;"&gt;Eventually the monkeys began to defend the staircase beating up any individual who went for the bananas. The punishment was taken away, and the behavior remained.&lt;/blockquote&gt;&lt;blockquote class="tr_bq" style="text-align: justify;"&gt;Then, a new monkey was swapped with one of the old monkeys, and of course he got beat up for his greed. One by one the monkeys were swapped out until none of the monkeys remaining had any knowledge of the punishment given for an attempt at the bananas.&lt;/blockquote&gt;&lt;blockquote class="tr_bq" style="text-align: justify;"&gt;What do you think these monkeys did when a new monkey tried to go for the bananas? As you may or may not have guessed, they still beat up the new monkey for his careless actions.&lt;/blockquote&gt;I like to think that it is best to live your life as the monkey who isn't afraid to take risks and fight the status quo for the off chance that the reason things are the way they are have been buried&amp;nbsp;beneath&amp;nbsp;the sands of time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28760156-2962304627924039816?l=www.brysgo.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='/index.php?id=2962304627924039816' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28760156&amp;postID=2962304627924039816&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='/index.php?id=2962304627924039816'/><link rel='self' type='application/atom+xml' href='/index.php?id=2962304627924039816'/><link rel='alternate' type='text/html' href='/index.php?id=2962304627924039816' title='Status Quo Ante'/><author><name>Bryan Goldstein</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/--DittlS9dbw/AAAAAAAAAAI/AAAAAAAAB4s/STYrH-pQ1NY/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28760156.post-423787194991427450</id><published>2012-02-21T09:43:00.000-08:00</published><updated>2012-02-21T09:43:20.139-08:00</updated><title type='text'>Contracting to Fund Socrenchus</title><content type='html'>Only time will tell if it is a wise decision to take on contracts to fund my distributed online education startup, but I just complete my first one. It ended up being pretty time consuming so I will try to avoid more contracts for at least a few months.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I can't say too much about the contract except that it is an awesome tool for situational awareness on the battlefield that FluxData is developing for the DARPA.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;My next move is to build excitement around my idea. Spring quarter I will have one co-op working for me, and hopefully that number will double by summer. Right now Socrenchus needs two things, programmers, and money to feed the programmers. The way to get both of those is through excitement. So get excited, Socrenchus will show the world how all of the technological breakthroughs of late can be put toward making the world a better place.&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/28760156-423787194991427450?l=www.brysgo.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='/index.php?id=423787194991427450' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28760156&amp;postID=423787194991427450&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='/index.php?id=423787194991427450'/><link rel='self' type='application/atom+xml' href='/index.php?id=423787194991427450'/><link rel='alternate' type='text/html' href='/index.php?id=423787194991427450' title='Contracting to Fund Socrenchus'/><author><name>Bryan Goldstein</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/--DittlS9dbw/AAAAAAAAAAI/AAAAAAAAB4s/STYrH-pQ1NY/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28760156.post-5006248793117990156</id><published>2012-01-31T18:02:00.000-08:00</published><updated>2012-02-12T09:03:29.598-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='socrenchus'/><title type='text'>Socrenchus LLC</title><content type='html'>Socrenchus is now a Limited Liability&amp;nbsp;Corporation&amp;nbsp;in the state of New York. What does that mean? I'll ask my lawyer as soon as she graduates law school. All jokes aside, all I need to do is&amp;nbsp;fulfill&amp;nbsp;a publication requirement and I will be one baby step closer to my dreams of changing the world.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28760156-5006248793117990156?l=www.brysgo.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='/index.php?id=5006248793117990156' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28760156&amp;postID=5006248793117990156&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='/index.php?id=5006248793117990156'/><link rel='self' type='application/atom+xml' href='/index.php?id=5006248793117990156'/><link rel='alternate' type='text/html' href='/index.php?id=5006248793117990156' title='Socrenchus LLC'/><author><name>Bryan Goldstein</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/--DittlS9dbw/AAAAAAAAAAI/AAAAAAAAB4s/STYrH-pQ1NY/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28760156.post-138478421363685667</id><published>2012-01-31T17:56:00.001-08:00</published><updated>2012-02-12T09:04:32.804-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='socrenchus'/><title type='text'>First Two Weeks of Working for Myself</title><content type='html'>I’m closing in on the end of my second week of working furiously on my education platform full time, and I thought I would put in a word about how it’s going so far.&lt;br /&gt;&lt;br /&gt;The first week was a mess of meetings and scrambling to throw together pieces of a crazy idea. I began to settle in mid-week when I began crashing the offices of Fluxdata, a multispectral startup I have worked for in the past. By the end of the first week, I had the skeleton ready for my little experiment/publicity stunt.&lt;br /&gt;&lt;br /&gt;Jump to now and I can finally see my first deliverable turning into something I would feel comfortable releasing. I went to the Innovation Center at RIT to find an extra set of pre-experimental testers, and the rest is still unwritten history. Things are moving faster then I could have hoped for and at this rate I know I will have something to be proud of come spring.&lt;br /&gt;&lt;br /&gt;Stay Tuned,&lt;br /&gt;Bryan&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Reposted from wordpress.&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28760156-138478421363685667?l=www.brysgo.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='/index.php?id=138478421363685667' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28760156&amp;postID=138478421363685667&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='/index.php?id=138478421363685667'/><link rel='self' type='application/atom+xml' href='/index.php?id=138478421363685667'/><link rel='alternate' type='text/html' href='/index.php?id=138478421363685667' title='First Two Weeks of Working for Myself'/><author><name>Bryan Goldstein</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/--DittlS9dbw/AAAAAAAAAAI/AAAAAAAAB4s/STYrH-pQ1NY/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28760156.post-177338202681481927</id><published>2012-01-31T17:55:00.000-08:00</published><updated>2012-02-12T09:04:53.673-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>Goooooooooooooooooooooooooooooogle</title><content type='html'>My first summer in the Bay Area was so wonderful, I just had to go back for more. This time I spent it working for one of my favorite companies, Google. I loved Google before working there and I love it after, but my blog would have quite a whole without a Google post.&lt;br /&gt;&lt;br /&gt;I spent my time working in Partner Solutions, a little known organization that deals with Google's larger players. When having a simple web interface to deal with a Google customer doesn't cut it, PSO (Partner Solutions) is there to save the day.&lt;br /&gt;&lt;br /&gt;Everyone at Google was super nice and willing to help, and working there makes you never want to leave. This happens to also be the biggest danger of working at Google. If you go to Google, you need to make sure you budget your time well. And that means knowing how to say no.&lt;br /&gt;&lt;br /&gt;The community at Google, in contrast to Apple, is SUPER open. All it takes once you're in is an email and you can meet people whom you could only read about in the papers before. I would recommend Google to anyone, and would like to go back after I've had enough of my own adventures.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28760156-177338202681481927?l=www.brysgo.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='/index.php?id=177338202681481927' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28760156&amp;postID=177338202681481927&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='/index.php?id=177338202681481927'/><link rel='self' type='application/atom+xml' href='/index.php?id=177338202681481927'/><link rel='alternate' type='text/html' href='/index.php?id=177338202681481927' title='Goooooooooooooooooooooooooooooogle'/><author><name>Bryan Goldstein</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/--DittlS9dbw/AAAAAAAAAAI/AAAAAAAAB4s/STYrH-pQ1NY/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28760156.post-9209450999925343743</id><published>2012-01-23T20:50:00.000-08:00</published><updated>2012-02-12T09:04:53.677-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>Blogger took it up a notch</title><content type='html'>After using Wordpress for a year, I'm sort of fed up with it, like most blogging platforms it doesn't give me quite what I want. &amp;nbsp;Blogger on the other hand, has a brand new design&amp;nbsp;reminiscent&amp;nbsp;of JFK's slicked back hair. I'm back to blogger from now, the archives here go much further back, so feel free to judge the younger version of me.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28760156-9209450999925343743?l=www.brysgo.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='/index.php?id=9209450999925343743'/><link rel='self' type='application/atom+xml' href='/index.php?id=9209450999925343743'/><link rel='alternate' type='text/html' href='/index.php?id=9209450999925343743' title='Blogger took it up a notch'/><author><name>Bryan Goldstein</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/--DittlS9dbw/AAAAAAAAAAI/AAAAAAAAB4s/STYrH-pQ1NY/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-28760156.post-4417416663599565124</id><published>2010-06-28T12:09:00.000-07:00</published><updated>2012-02-12T09:05:03.930-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='apple'/><title type='text'>Apple Development Technologies Internship</title><content type='html'>&lt;div&gt;Edited from the&amp;nbsp;original:&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;I can't really say much about what I'm doing at Apple other than that I am working on Xcode 4 and having tons of fun.&lt;/blockquote&gt;Time passes, products get released, and NDAs expire. I think it is safe to talk about my experience at Apple. &amp;nbsp;I will start by saying that I had an&amp;nbsp;amazing&amp;nbsp;time and met many wonderful people. I will continue on with the rest of my experience.&lt;br /&gt;&lt;br /&gt;I worked as a Software Engineering intern on Xcode 4, which for those of you who don't know, is Apple's IDE (Integrated Development Environment). While the feature set I spent most of my time working on didn't find its way into the final product, a few tiny things did.&lt;br /&gt;&lt;br /&gt;Working for Apple is like signing up to be a rockstar. You really feel special the whole time you work there, and this is carefully&amp;nbsp;orchestrated&amp;nbsp;to get the maximum output from their employees. On the downside, they manage to squeeze a ton of work out of you for relatively low pay. One thing you will find is that the more you deal with Apple, the more you will run into the 'Apple card.' The Apple card is used to get you to agree to something you wouldn't normally agree to, but&amp;nbsp;because&amp;nbsp;they are Apple, you will.&lt;br /&gt;&lt;br /&gt;Overall I would say my summer in Cupertino was a positive experience. I really enjoyed my time there and every time I use Xcode 4 and open a curly brace (the one behavior I actually changed), I think about the summer that like it or not, changed my life for the better.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28760156-4417416663599565124?l=www.brysgo.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='/index.php?id=4417416663599565124' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28760156&amp;postID=4417416663599565124&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='/index.php?id=4417416663599565124'/><link rel='self' type='application/atom+xml' href='/index.php?id=4417416663599565124'/><link rel='alternate' type='text/html' href='/index.php?id=4417416663599565124' title='Apple Development Technologies Internship'/><author><name>Bryan Goldstein</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/--DittlS9dbw/AAAAAAAAAAI/AAAAAAAAB4s/STYrH-pQ1NY/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28760156.post-9159029109429874940</id><published>2010-05-13T20:24:00.000-07:00</published><updated>2010-05-18T19:45:07.247-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Computer Vision'/><category scheme='http://www.blogger.com/atom/ns#' term='SFM'/><category scheme='http://www.blogger.com/atom/ns#' term='Augmented Reality'/><category scheme='http://www.blogger.com/atom/ns#' term='Computer Science'/><title type='text'>Real Time SFM Research</title><content type='html'>In the last couple weeks, part of my time has been spent researching structure from motion.  More specifically, I was exploring potential augmented reality applications.  This research was done as part of the requirements for my introduction to computer vision class.  Being my first graduate class (in a combined MS/BS program) I was not informed that the goal was pick an easy project so you can do well and not spend too much time stressing over it.&lt;br /&gt;&lt;br /&gt;Anyways, two weeks was not nearly enough time to complete a real time structure from motion solution so my results were quite elementary and basically what you would expect from an undergraduate student doing a project he is clearly under-qualified for.  However, the research I did was able to really get me thinking about the problem and I have decided to continue with the research even though the class is over.&lt;br /&gt;&lt;br /&gt;While, I was able to find one paper that claimed to have a solution for real time SFM, what really peaked my interest was a couple of papers written by &lt;a href="http://mi.eng.cam.ac.uk/%7Eer258/"&gt;Professor Edward Rosten&lt;/a&gt; from Cambridge University.  In addition to a stupendous machine-learning generated FAST feature tracker which he provides freely on his website, he also developed an incredible 3D pose tracking algorithm that takes two relatively simple tracking techniques and merges them for better results.  These results were demonstrated by shaking the camera and running around the laboratory without losing the objects being tracked.&lt;br /&gt;&lt;br /&gt;My goal is to use this tracking algorithm to build a probabilistic model of potential poses and use them for tracking while continually updating the model.  I don't expect it to be easy to do but I think it is a project that is worthy of my free time.  When undertaking such projects I remember that it is better to have tried and failed than never to have tried at all.  If you have any comments or suggestions leave them below or send me an email.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28760156-9159029109429874940?l=www.brysgo.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='/index.php?id=9159029109429874940' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28760156&amp;postID=9159029109429874940&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='/index.php?id=9159029109429874940'/><link rel='self' type='application/atom+xml' href='/index.php?id=9159029109429874940'/><link rel='alternate' type='text/html' href='/index.php?id=9159029109429874940' title='Real Time SFM Research'/><author><name>Bryan Goldstein</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/--DittlS9dbw/AAAAAAAAAAI/AAAAAAAAB4s/STYrH-pQ1NY/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28760156.post-7391046562836757399</id><published>2010-02-06T18:27:00.000-08:00</published><updated>2010-05-20T10:00:03.226-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='multitouch'/><category scheme='http://www.blogger.com/atom/ns#' term='xorg-dev'/><title type='text'>My Xserver Repository on Github</title><content type='html'>I moved my xserver github repository to &lt;a href="http://github.com/brysgo/xserver"&gt;http://github.com/brysgo/xserver&lt;/a&gt; now this is not to make people thing that my repo is the official one, instead it is so I can use the master branch to mirror the official one.  This will allow me to make the blob branch the one I am modifying.  Now this major change isn't just based on an outburst of OCD, although I can't say that it didn't have anything to do with it.  A second benefit of this, that I will not be able to take advantage of, but others will, is that my master branch can be forked with github.  Since I plan on keeping the master branch up to date with the official repository using a cron job, others can take advantage of this and fork my repo with github.  I don't know if anyone will find this helpful, but I certainly would have.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28760156-7391046562836757399?l=www.brysgo.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='/index.php?id=7391046562836757399' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28760156&amp;postID=7391046562836757399&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='/index.php?id=7391046562836757399'/><link rel='self' type='application/atom+xml' href='/index.php?id=7391046562836757399'/><link rel='alternate' type='text/html' href='/index.php?id=7391046562836757399' title='My Xserver Repository on Github'/><author><name>Bryan Goldstein</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/--DittlS9dbw/AAAAAAAAAAI/AAAAAAAAB4s/STYrH-pQ1NY/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28760156.post-871241416686338097</id><published>2010-01-23T22:29:00.000-08:00</published><updated>2010-05-20T10:00:03.226-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='multitouch'/><category scheme='http://www.blogger.com/atom/ns#' term='xorg-dev'/><title type='text'>Xserver Blob Branch</title><content type='html'>The blob branch is still continuing and will hopefully get finished by the end of the school year.  I have been using the issues list in github.com as my to-do list for the project.  When I get through the rest of the things listed there my code should be ready for another review.  After I run it past Peter, I will either have another list of issues to take care of, or I will be able to start testing.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Anyone who wants can still check up on my work, I keep the &lt;a href="http://github.com/brysgo/xserver-blob"&gt;github repository&lt;/a&gt; up to date with mine.  If you want to look over my shoulder, you can look at my changes by taking a diff using 'git diff' against the HEAD of the official xserver git repo.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you have a suggestion, feel free to send it my way.  If you have patches to submit I will be happy to take a look at them.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28760156-871241416686338097?l=www.brysgo.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='/index.php?id=871241416686338097' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28760156&amp;postID=871241416686338097&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='/index.php?id=871241416686338097'/><link rel='self' type='application/atom+xml' href='/index.php?id=871241416686338097'/><link rel='alternate' type='text/html' href='/index.php?id=871241416686338097' title='Xserver Blob Branch'/><author><name>Bryan Goldstein</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/--DittlS9dbw/AAAAAAAAAAI/AAAAAAAAB4s/STYrH-pQ1NY/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28760156.post-6502392649981000191</id><published>2009-12-13T08:11:00.000-08:00</published><updated>2010-05-20T10:01:25.923-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='multitouch'/><category scheme='http://www.blogger.com/atom/ns#' term='CSH'/><category scheme='http://www.blogger.com/atom/ns#' term='xorg-dev'/><title type='text'>Winter Quarter MT Status Update</title><content type='html'>Now that my coursework has eased up slightly, I will be allocating more time for multi-touch work.  I plan on picking up the pace of my Xorg blob events project and also CSH's multi-touch table.&lt;br /&gt;&lt;br /&gt;While they still aren't in a working state yet, my blob events repositories are available on git hub &lt;a href="http://www.github.com/brysgo"&gt;here&lt;/a&gt;.  If you want to take a look at what I have so far, run a git diff against head of the mainstream xserver or inputproto repository.&lt;br /&gt;&lt;br /&gt;Progress on CSH multi-touch was on hold towards the end of last quarter due to some of the complications caused by attempting to do blob detection with visible light.  Namely, it would be very hard to cancel out the projector's image in the camera.  This quarter instead of doing this, CSH will be turning to the time tested method of rear Diffuse Illumination (DI).  For this, CSH will be buying 4 LED boards containing 48 LEDs each.  I also plan on bringing up the purchase of a PS3 eye camera since the one we are currently using is being borrowed and still has the IR filter in it.  It would be preferable to get a pre-modded PS3 eye that already has the filter we need.&lt;br /&gt;&lt;br /&gt;The CSH multi-touch machine has been wiped and Arch Linux has replaced Ubuntu since rolling releases are easier to work with right now.  The latest version of X is running on this machine and "mpx" is functional.  I am working with Ryan Huffman to try and get his mpx tuio driver working.&lt;br /&gt;&lt;br /&gt;The CSH multi-touch table should be starting to come together towards the end of the quarter, I hope to have it ready well before the RIT Innovation Fair so that CSHers have ample time to write software for it.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Edit: &lt;/div&gt;&lt;div&gt;&gt; Actually ended up buying 8x48 led boards&lt;/div&gt;&lt;div&gt;&gt; Voted money to buy a PS3 eye that we will have to change the filter on ourselves&lt;/div&gt;&lt;div&gt;&gt; Still no luck in attempts to get the mpx tuio driver working, computer locks up&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28760156-6502392649981000191?l=www.brysgo.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='/index.php?id=6502392649981000191' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28760156&amp;postID=6502392649981000191&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='/index.php?id=6502392649981000191'/><link rel='self' type='application/atom+xml' href='/index.php?id=6502392649981000191'/><link rel='alternate' type='text/html' href='/index.php?id=6502392649981000191' title='Winter Quarter MT Status Update'/><author><name>Bryan Goldstein</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/--DittlS9dbw/AAAAAAAAAAI/AAAAAAAAB4s/STYrH-pQ1NY/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28760156.post-3927678450125682768</id><published>2009-10-04T19:48:00.000-07:00</published><updated>2010-05-20T10:00:50.932-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='multitouch'/><category scheme='http://www.blogger.com/atom/ns#' term='CSH'/><title type='text'>Delegation of CSH Projects</title><content type='html'>When I see a project I need to see working, I generally do it.  But after a rather blunt reminder from an interviewer, I realised not only that this makes me less efficient in groups, it also has the potential to make other people hate working with me.&lt;br /&gt;&lt;br /&gt;So for the benefit of myself, and the people around me, I have decided to delegate all of my current project, except for the one that I have the most to learn from.  I have effectively begun the process of handing over the reigns on all of my CSH projects to this years freshmen, in hopes that they will some day do the same.&lt;br /&gt;&lt;br /&gt;Together, with a little guidance, they will be doing what I could not have hoped to accomplish all by myself.  With that said, I will have more time to focus on the project that matters most to me at this point.&lt;br /&gt;&lt;br /&gt;That project would be getting a TUIO based blob protocol working in X.org.  The project I spent many a summers day working on, will hopefully come to an end in a reasonable amount of time.  And in all my recent epiphanies of project delegation, It is clear to me why Peter doesn't just add multi-touch support himself.  There are so many things you can do with a project when you are in as deep as he is, and even though they may all be trivial to you, if you try to do them all yourself, you will get nothing done.  Instead you have to focus on the task at hand, and teach the people around you to help.&lt;br /&gt;&lt;br /&gt;Good luck freshman taking on my projects, if you need any help, don't hesitate to ask.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28760156-3927678450125682768?l=www.brysgo.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='/index.php?id=3927678450125682768' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28760156&amp;postID=3927678450125682768&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='/index.php?id=3927678450125682768'/><link rel='self' type='application/atom+xml' href='/index.php?id=3927678450125682768'/><link rel='alternate' type='text/html' href='/index.php?id=3927678450125682768' title='Delegation of CSH Projects'/><author><name>Bryan Goldstein</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/--DittlS9dbw/AAAAAAAAAAI/AAAAAAAAB4s/STYrH-pQ1NY/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28760156.post-7907243058638407391</id><published>2009-09-19T15:04:00.000-07:00</published><updated>2010-05-20T10:01:25.924-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='multitouch'/><category scheme='http://www.blogger.com/atom/ns#' term='CSH'/><title type='text'>Diffused Illumination Multitouch</title><content type='html'>Last night I made an attempt to get the CSH FTIR multi-touch table working.  The problem was that all attempts to make a compliant surface had failed.  In addition, the IR light sources are not nearly strong enough.  The solution I decided to go with involved unplugging the IR lights, and using visible light Diffused Illumination (DI).&lt;br /&gt;&lt;br /&gt;If you can minimize shadows with good ambient light sources, you can get pretty decent blobs.  And the only change I had to make to the default touchlib configuration was add an invert filter right before the threshold filter.&lt;br /&gt;&lt;br /&gt;I still have not mounted the projector, or the camera, but I will post on how well the table does when I do.  And I still have not given up on multi-touch xserver so I will post more on that as well when I have more to post.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28760156-7907243058638407391?l=www.brysgo.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='/index.php?id=7907243058638407391' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28760156&amp;postID=7907243058638407391&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='/index.php?id=7907243058638407391'/><link rel='self' type='application/atom+xml' href='/index.php?id=7907243058638407391'/><link rel='alternate' type='text/html' href='/index.php?id=7907243058638407391' title='Diffused Illumination Multitouch'/><author><name>Bryan Goldstein</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/--DittlS9dbw/AAAAAAAAAAI/AAAAAAAAB4s/STYrH-pQ1NY/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28760156.post-2043518486075708891</id><published>2009-08-19T20:28:00.000-07:00</published><updated>2010-05-20T10:00:03.227-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='multitouch'/><category scheme='http://www.blogger.com/atom/ns#' term='xorg-dev'/><title type='text'>The State of X Blob Events</title><content type='html'>My progress on this project isn't picking up quite as quickly as I had expected it to.  At the moment I have in place most of what is needed for blob events to work, the only problem is that much of it has not been entirely reworked for all the updates made in the XI2 protocol.  There are parts that are updated, but I am still working on sorting through the rest of the code left in the patch originally created by Peter Hutterer.&lt;br /&gt;&lt;br /&gt;I assumed that this would go quickly once I got the hang of it, but as I continued on to different parts of the patch, I realized how little I actually followed.  So I am not approaching this project the same way as my previous projects. I am treating it like a jigsaw puzzle and getting a piece in where ever I can, and reworking it until it is right.&lt;br /&gt;&lt;br /&gt;I feel as if this is foul way to go about a project, but it is the only way I can think of right now. This project has left me asking so much questions, that I find myself at a point where I have become reluctant to ask them, for fear that I may just be wasting other people's time.  I will, however, continue to work on this project until it is complete, but I feel as though it is time for me to rethink my approach.  I made a &lt;a href="http://www.github.com/brysgo/xserver-blob"&gt;github repository for my blob branch&lt;/a&gt;, it is mainly for me to back up my work, since it doesn't include the changes to inputproto, and doesn't compile, but it would also be a good place for anyone willing to throw some good advice my way to start.&lt;br /&gt;&lt;br /&gt;This is my todo list so far:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;strike&gt;Create an internal event in include/events.h [include/eventstr.h]&lt;br /&gt;&lt;/strike&gt;&lt;/li&gt;&lt;li&gt;&lt;strike&gt;Use the internal event in GetBlobEvents [dix/getevents.c]&lt;br /&gt;&lt;/strike&gt;&lt;/li&gt;&lt;li&gt;&lt;strike&gt;Convert from internal to XI2 event in EventToXI2 [dix/eventconvert.c]&lt;/strike&gt;&lt;/li&gt;&lt;li&gt;Move blob stuff from slave to master devices in DeepCopyDeviceClasses&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Add blob class stuff to internal DeviceChangedEvent&lt;/li&gt;&lt;li&gt;Move Xi/listdev.c stuff to Xi/querydev.c&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/28760156-2043518486075708891?l=www.brysgo.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='/index.php?id=2043518486075708891' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28760156&amp;postID=2043518486075708891&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='/index.php?id=2043518486075708891'/><link rel='self' type='application/atom+xml' href='/index.php?id=2043518486075708891'/><link rel='alternate' type='text/html' href='/index.php?id=2043518486075708891' title='The State of X Blob Events'/><author><name>Bryan Goldstein</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/--DittlS9dbw/AAAAAAAAAAI/AAAAAAAAB4s/STYrH-pQ1NY/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28760156.post-2178902301778358495</id><published>2009-05-22T10:14:00.000-07:00</published><updated>2009-05-22T21:06:43.794-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xorg-dev'/><title type='text'>Tips for Setting Up an Xorg Development Environment</title><content type='html'>First you should go &lt;a href="http://www.x.org/wiki/Development/git"&gt;here&lt;/a&gt;. I would also recommend is who-t.blogspot.com, where you can find a neat git super module that, if you can get it working, would be the best solution. If you are still pulling your hair out, read on.&lt;br /&gt;&lt;br /&gt;I had many frustrations getting an X development environment set up for the first time so I will try and list some tips so that you can avoid the trouble I did.&lt;br /&gt;&lt;br /&gt;First install the following packages, I may have missed a few but you should be able to tell by errors you get along the way what packages you need.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;sudo apt-get install autoconf libtool gettext xutils-dev libssl-dev&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;The build script at the website above is good, but when you can't get stuff working and find yourself repeatedly running the script, you want something that will let you pick up where you left off.  I modified the script to possibly save you hours you can find the script at the bottom of this post.&lt;br /&gt;&lt;br /&gt;You can use it the same way you used the other script, with one added feature.  If it quits on you run:&lt;br /&gt;&lt;blockquote&gt;export stage=$?&lt;/blockquote&gt;when you want to try building again from that step, run:&lt;br /&gt;&lt;blockquote&gt;./build.sh build $stage&lt;/blockquote&gt;or if you have a different step that you want to go from, you can just type the step number.&lt;br /&gt;&lt;br /&gt;Do not run the script with sudo, use su.  The pkgconfig doesn't like sudo.&lt;br /&gt;&lt;br /&gt;I am using nvidia,  you will have to replace the nv driver in the script with whatever driver you have.&lt;br /&gt;&lt;br /&gt;If you still have trouble building, look in the output to see where it is going wrong.  If a package is missing install it, then try again.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;The Build Script&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="anchor" id="line-185"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-186"&gt;&lt;/span&gt;&lt;p class="line867"&gt;&lt;span class="anchor" id="line-187"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-188"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-189"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-190"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-191"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-192"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-193"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-194"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-195"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-196"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-197"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-198"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-199"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-200"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-201"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-202"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-203"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-204"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-205"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-206"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-207"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-208"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-209"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-210"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-211"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-212"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-213"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-214"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-215"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-216"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-217"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-218"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-219"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-220"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-221"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-222"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-223"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-224"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-225"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-226"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-227"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-228"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-229"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-230"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-231"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-232"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-233"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-234"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-235"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-236"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-237"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-238"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-239"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-240"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-241"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-242"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-243"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-244"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-245"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-246"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-247"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-248"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-249"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-250"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-251"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-252"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-253"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-254"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-255"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-256"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-257"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-258"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-259"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-260"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-261"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-262"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-263"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-264"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-265"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-266"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-267"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-268"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-269"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-270"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-271"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-272"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-273"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-274"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-275"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-276"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-277"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-278"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-279"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-280"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-281"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-282"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-283"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-284"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-285"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-286"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-287"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-288"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-289"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-290"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-291"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-292"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-293"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-294"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-295"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-296"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-297"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-298"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-299"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-300"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-301"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-302"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-303"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-304"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-305"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-306"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-307"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-308"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-309"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-310"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-311"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-312"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-313"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-314"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-315"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-316"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-317"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-318"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-319"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-320"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-321"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-322"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-323"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-324"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-325"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-326"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-327"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-328"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-329"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-330"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-331"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-332"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-333"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-334"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-335"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-336"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-337"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-338"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-339"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-340"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-341"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-342"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-343"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-344"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-345"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-346"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-347"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-348"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-349"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-350"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-351"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-352"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-353"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-354"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-355"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-356"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-357"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-358"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-359"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-360"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-361"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-362"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-363"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-364"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-365"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-366"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-367"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-368"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-369"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-370"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-371"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-372"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-373"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-374"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-375"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-376"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-377"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-378"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-379"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-380"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-381"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-382"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-383"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-384"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-385"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-386"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-387"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-388"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-389"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-390"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-391"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-392"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-393"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-394"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-395"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-396"&gt;&lt;/span&gt;&lt;pre&gt;PREFIX="/opt/gfx-test"&lt;br /&gt;PKG_CONFIG_PATH=/opt/gfx-test/lib/pkgconfig&lt;br /&gt;&lt;br /&gt;# Attempt to detect proper concurrency level&lt;br /&gt;CPU_CORES=`cat /proc/cpuinfo | grep -m1 "cpu cores" | sed s/".*: "//`&lt;br /&gt;CONCURRENCY_LEVEL=$(( $CPU_CORES + 1 ))&lt;br /&gt;&lt;br /&gt;MAKE="make"&lt;br /&gt;&lt;br /&gt;REPOS="\&lt;br /&gt;git://git.freedesktop.org/git/xorg/util/macros \&lt;br /&gt;git://git.freedesktop.org/git/xorg/proto/x11proto \&lt;br /&gt;git://git.freedesktop.org/git/xorg/proto/damageproto \&lt;br /&gt;git://git.freedesktop.org/git/xorg/proto/xextproto \&lt;br /&gt;git://git.freedesktop.org/git/xorg/proto/fontsproto \&lt;br /&gt;git://git.freedesktop.org/git/xorg/proto/videoproto \&lt;br /&gt;git://git.freedesktop.org/git/xorg/proto/renderproto \&lt;br /&gt;git://git.freedesktop.org/git/xorg/proto/inputproto \&lt;br /&gt;git://git.freedesktop.org/git/xorg/proto/xf86vidmodeproto \&lt;br /&gt;git://git.freedesktop.org/git/xorg/proto/xf86dgaproto \&lt;br /&gt;git://git.freedesktop.org/git/xorg/proto/xf86driproto \&lt;br /&gt;git://git.freedesktop.org/git/xorg/proto/xcmiscproto \&lt;br /&gt;git://git.freedesktop.org/git/xorg/proto/scrnsaverproto \&lt;br /&gt;git://git.freedesktop.org/git/xorg/proto/bigreqsproto \&lt;br /&gt;git://git.freedesktop.org/git/xorg/proto/resourceproto \&lt;br /&gt;git://git.freedesktop.org/git/xorg/proto/compositeproto \&lt;br /&gt;git://git.freedesktop.org/git/xorg/proto/fixesproto \&lt;br /&gt;git://git.freedesktop.org/git/xorg/proto/evieproto \&lt;br /&gt;git://git.freedesktop.org/git/xorg/proto/kbproto \&lt;br /&gt;git://git.freedesktop.org/git/xorg/lib/libxtrans \&lt;br /&gt;git://git.freedesktop.org/git/xorg/lib/libX11 \&lt;br /&gt;git://git.freedesktop.org/git/xorg/lib/libXext \&lt;br /&gt;git://git.freedesktop.org/git/xorg/lib/libxkbfile \&lt;br /&gt;git://git.freedesktop.org/git/xorg/lib/libfontenc \&lt;br /&gt;git://git.freedesktop.org/git/xorg/lib/libXfont \&lt;br /&gt;git://git.freedesktop.org/git/xorg/lib/libXfixes \&lt;br /&gt;git://git.freedesktop.org/git/xorg/lib/libXdamage \&lt;br /&gt;git://git.freedesktop.org/git/xorg/lib/libXv \&lt;br /&gt;git://git.freedesktop.org/git/xorg/lib/libXvMC \&lt;br /&gt;git://git.freedesktop.org/git/xorg/lib/libXxf86vm \&lt;br /&gt;git://git.freedesktop.org/git/xorg/lib/libXinerama \&lt;br /&gt;git://git.freedesktop.org/git/xorg/proto/dri2proto \&lt;br /&gt;git://git.freedesktop.org/git/xorg/proto/glproto \&lt;br /&gt;git://git.freedesktop.org/git/xorg/lib/libpciaccess \&lt;br /&gt;git://git.freedesktop.org/git/pixman \&lt;br /&gt;git://git.freedesktop.org/git/xcb/proto \&lt;br /&gt;git://git.freedesktop.org/git/xcb/pthread-stubs \&lt;br /&gt;git://git.freedesktop.org/git/xcb/libxcb \&lt;br /&gt;git://git.freedesktop.org/git/xorg/proto/randrproto \&lt;br /&gt;git://git.freedesktop.org/git/mesa/drm \&lt;br /&gt;git://git.freedesktop.org/git/mesa/mesa \&lt;br /&gt;git://git.freedesktop.org/git/xorg/xserver \&lt;br /&gt;git://git.freedesktop.org/git/xorg/driver/xf86-input-mouse \&lt;br /&gt;git://git.freedesktop.org/git/xorg/driver/xf86-input-keyboard \&lt;br /&gt;git://git.freedesktop.org/git/xorg/driver/xf86-video-nv"&lt;br /&gt;&lt;br /&gt;modules="\&lt;br /&gt;fontsproto \&lt;br /&gt;x11proto \&lt;br /&gt;xextproto \&lt;br /&gt;videoproto \&lt;br /&gt;renderproto \&lt;br /&gt;inputproto \&lt;br /&gt;damageproto \&lt;br /&gt;xf86vidmodeproto \&lt;br /&gt;xf86dgaproto \&lt;br /&gt;xf86driproto \&lt;br /&gt;xcmiscproto \&lt;br /&gt;scrnsaverproto \&lt;br /&gt;bigreqsproto \&lt;br /&gt;resourceproto \&lt;br /&gt;compositeproto \&lt;br /&gt;resourceproto \&lt;br /&gt;evieproto \&lt;br /&gt;kbproto \&lt;br /&gt;fixesproto \&lt;br /&gt;libxtrans \&lt;br /&gt;proto \&lt;br /&gt;pthread-stubs \&lt;br /&gt;libxcb \&lt;br /&gt;libX11 \&lt;br /&gt;libXext \&lt;br /&gt;libxkbfile \&lt;br /&gt;libfontenc \&lt;br /&gt;libXfont \&lt;br /&gt;libXv \&lt;br /&gt;libXvMC \&lt;br /&gt;libXxf86vm \&lt;br /&gt;libXinerama \&lt;br /&gt;libXfixes \&lt;br /&gt;libXdamage \&lt;br /&gt;dri2proto \&lt;br /&gt;glproto \&lt;br /&gt;libpciaccess \&lt;br /&gt;pixman \&lt;br /&gt;randrproto"&lt;br /&gt;&lt;br /&gt;init()&lt;br /&gt;{&lt;br /&gt;        for repo in $REPOS; do&lt;br /&gt;                echo "Cloning $repo"&lt;br /&gt;                git clone $repo&lt;br /&gt;        done&lt;br /&gt;        cd macros&lt;br /&gt;        echo "Building macros"&lt;br /&gt;        ./autogen.sh --prefix="$PREFIX"&lt;br /&gt;        ($MAKE)&lt;br /&gt;        make install&lt;br /&gt;        cd ..&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;update_modules()&lt;br /&gt;{&lt;br /&gt;        for module in $modules; do&lt;br /&gt;                echo "Updating $module"&lt;br /&gt;                cd $module&lt;br /&gt;                git pull&lt;br /&gt;                cd ..&lt;br /&gt;        done&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;build_module()&lt;br /&gt;{&lt;br /&gt; cd $1&lt;br /&gt; echo ======================&lt;br /&gt; echo configuring $1&lt;br /&gt; echo ======================&lt;br /&gt; ./autogen.sh --prefix="$PREFIX"&lt;br /&gt; echo ======================&lt;br /&gt; echo building $1&lt;br /&gt; echo ======================&lt;br /&gt; if [ $? -ne 0 ]; then&lt;br /&gt;  echo "Failed to configure $1."&lt;br /&gt;  exit $build_stage&lt;br /&gt; fi&lt;br /&gt; ($MAKE)&lt;br /&gt; make install&lt;br /&gt; cd ..&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;build_drm()&lt;br /&gt;{&lt;br /&gt;        cd drm&lt;br /&gt;        ./autogen.sh --prefix="$PREFIX"&lt;br /&gt;        ($MAKE)&lt;br /&gt;        make -C linux-core&lt;br /&gt;        # assuming you're on Linux, otherwise use bsd-core&lt;br /&gt;        make install&lt;br /&gt;        cd ..&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;build_mesa()&lt;br /&gt;{&lt;br /&gt;        cd mesa&lt;br /&gt;        ./autogen.sh --prefix=$PREFIX --with-driver=dri --disable-glut #--with-state-trackers="egl dri2"&lt;br /&gt;        if [ $? -ne 0 ]; then&lt;br /&gt;                echo "Failed to configure Mesa."&lt;br /&gt;                exit $build_stage&lt;br /&gt;        fi&lt;br /&gt;        ($MAKE)&lt;br /&gt;        make install&lt;br /&gt;        mkdir -p $PREFIX/bin&lt;br /&gt;        install -m755 progs/xdemos/{glxinfo,glxgears} $PREFIX/bin/&lt;br /&gt;        cd ..&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;build_xserver()&lt;br /&gt;{&lt;br /&gt;        cd xserver&lt;br /&gt;        ./autogen.sh --prefix=$PREFIX --enable-builtin-fonts --with-xkb-path=/usr/share/X11/xkb&lt;br /&gt;        if [ $? -ne 0 ]; then&lt;br /&gt;                echo "Failed to configure X server."&lt;br /&gt;                exit $build_stage&lt;br /&gt;        fi&lt;br /&gt;        ($MAKE)&lt;br /&gt;        make install&lt;br /&gt;        chown root $PREFIX/bin/Xorg&lt;br /&gt;        chmod +s $PREFIX/bin/Xorg&lt;br /&gt;        cd ..&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;build_mouse()&lt;br /&gt;{&lt;br /&gt;        cd xf86-input-mouse&lt;br /&gt;        ./autogen.sh --prefix=$PREFIX&lt;br /&gt;        ($MAKE)&lt;br /&gt;        make install&lt;br /&gt;        cd ..&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;build_keyboard()&lt;br /&gt;{&lt;br /&gt;        cd xf86-input-keyboard&lt;br /&gt;        ./autogen.sh --prefix=$PREFIX&lt;br /&gt;        ($MAKE)&lt;br /&gt;        make install&lt;br /&gt;        cd ..&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;build_nvidia()&lt;br /&gt;{&lt;br /&gt;        cd xf86-video-nv&lt;br /&gt;        ./autogen.sh --prefix=$PREFIX&lt;br /&gt;        ($MAKE)&lt;br /&gt;        make install&lt;br /&gt;        cd ..&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;build ()&lt;br /&gt;{&lt;br /&gt;        export ACLOCAL="aclocal -I $PREFIX/share/aclocal"&lt;br /&gt;        export PKG_CONFIG_PATH="$PREFIX/lib/pkgconfig"&lt;br /&gt; export build_stage=0&lt;br /&gt;        for i in $modules; do&lt;br /&gt;  if [ $build_stage -ge $1 ]; then&lt;br /&gt;   build_module $i&lt;br /&gt;  fi&lt;br /&gt;  let "build_stage += 1"&lt;br /&gt;        done&lt;br /&gt;# build drm&lt;br /&gt; if [ $build_stage -ge $1 ]; then&lt;br /&gt;  build_drm&lt;br /&gt; fi&lt;br /&gt; let "build_stage += 1"&lt;br /&gt;#build mesa&lt;br /&gt; if [ $build_stage -ge $1 ]; then&lt;br /&gt;  build_mesa&lt;br /&gt; fi&lt;br /&gt; let "build_stage += 1"&lt;br /&gt;#buildxserver&lt;br /&gt; if [ $build_stage -ge $1 ]; then&lt;br /&gt;  build_xserver&lt;br /&gt; fi&lt;br /&gt; let "build_stage += 1"&lt;br /&gt;#mouse&lt;br /&gt; if [ $build_stage -ge $1 ]; then&lt;br /&gt;  build_mouse&lt;br /&gt; fi&lt;br /&gt; let "build_stage += 1"&lt;br /&gt;#keyboard&lt;br /&gt; if [ $build_stage -ge $1 ]; then&lt;br /&gt;  build_keyboard&lt;br /&gt; fi&lt;br /&gt; let "build_stage += 1"&lt;br /&gt;#nvidia&lt;br /&gt; if [ $build_stage -ge $1 ]; then&lt;br /&gt;  build_nvidia&lt;br /&gt; fi&lt;br /&gt; let "build_stage += 1"&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;case "$1" in&lt;br /&gt;        init)&lt;br /&gt;                init&lt;br /&gt;                ;;&lt;br /&gt;        build)&lt;br /&gt;                case "$2" in&lt;br /&gt;                  ?*)&lt;br /&gt;                    build $2&lt;br /&gt;                    ;;&lt;br /&gt;                  *)&lt;br /&gt;                    build 0&lt;br /&gt;                    ;;&lt;br /&gt;  esac&lt;br /&gt;                ;;&lt;br /&gt;        update)&lt;br /&gt;                update_modules&lt;br /&gt;                ;;&lt;br /&gt;        *)&lt;br /&gt;                echo "Usage: $0 init | build [stage] | update"&lt;br /&gt;                exit -1&lt;br /&gt;esac&lt;/pre&gt;&lt;span class="anchor" id="line-397"&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Running your new X&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Follow the instructions &lt;a href="http://www.x.org/wiki/Development/git"&gt;here&lt;/a&gt; to get it running, you will probably need to link your xkeyboard-config to your current setup unless you want to build that too.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28760156-2178902301778358495?l=www.brysgo.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='/index.php?id=2178902301778358495' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28760156&amp;postID=2178902301778358495&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='/index.php?id=2178902301778358495'/><link rel='self' type='application/atom+xml' href='/index.php?id=2178902301778358495'/><link rel='alternate' type='text/html' href='/index.php?id=2178902301778358495' title='Tips for Setting Up an Xorg Development Environment'/><author><name>Bryan Goldstein</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/--DittlS9dbw/AAAAAAAAAAI/AAAAAAAAB4s/STYrH-pQ1NY/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28760156.post-1627001269185080401</id><published>2009-05-13T21:40:00.000-07:00</published><updated>2010-05-20T10:01:25.924-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='multitouch'/><category scheme='http://www.blogger.com/atom/ns#' term='CSH'/><category scheme='http://www.blogger.com/atom/ns#' term='xorg-dev'/><title type='text'>A New Summer with New Projects</title><content type='html'>The focus of this summer is going to be on open source projects and CSH related projects.  Now anyone who is reading this should know what open source is, but you probably don't know what I mean by a CSH project.  CSH is the Computer Science House at Rochester Institute Of Technology where I am wrapping up my Freshman year.  I have been living on CSH all year, and have benefited greatly from the experience.&lt;br /&gt;&lt;br /&gt;Each year CSHers work on big projects, we have a great deal of projects that receive a good deal of work.  This summer I have a few that I plan to single out.  One thing I have always wanted to work on, and finally have an excuse to, is multi-touch technology.  CSHers this year built a new Frustrated Total Internal Reflection (FTIR) table and has been working hard to get the hardware working as much as they can.&lt;br /&gt;&lt;br /&gt;They are using TouchLib, or TBeta, which ever will co-operate for one demo or the next, and they are interfacing with home-brew TUIO applications that several people have been working on.&lt;br /&gt;&lt;br /&gt;Now the part that bothers me, is that the multi-touch input completely bypasses the computers native systems, and goes directly to whatever applications are implementing the protocol.  This works for demos, but it isn't a multi-touch computer, its a multi-touch demo.  Multi-touch demos are all too common, but multi-touch computers are few and far between.&lt;br /&gt;&lt;br /&gt;My first goal for this summer is to get the foundations for an open source multi-touch computer working using the groundwork already laid by Peter Hutterer with MPX, which was recently merged with the mainstream X.  I have contacted Peter, and my first goal is to accomplish the task he gave me.  While it is a relatively simple task, the hard part will be familiarizing myself with the X code base, and even setting up a proper building and testing environment.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28760156-1627001269185080401?l=www.brysgo.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='/index.php?id=1627001269185080401' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28760156&amp;postID=1627001269185080401&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='/index.php?id=1627001269185080401'/><link rel='self' type='application/atom+xml' href='/index.php?id=1627001269185080401'/><link rel='alternate' type='text/html' href='/index.php?id=1627001269185080401' title='A New Summer with New Projects'/><author><name>Bryan Goldstein</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/--DittlS9dbw/AAAAAAAAAAI/AAAAAAAAB4s/STYrH-pQ1NY/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28760156.post-5381099980785402103</id><published>2008-04-23T10:38:00.000-07:00</published><updated>2010-05-20T09:57:24.780-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wcode'/><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><category scheme='http://www.blogger.com/atom/ns#' term='dashboard'/><title type='text'>My Mac Projects</title><content type='html'>At this point it is looking like I will never get the chance to fix up all of my mac projects like Gwidget or Wcode.  I would be happy to pass either of them on to anyone willing to pick up where I left off.  Drop me an email if your interested, my only condition is that previous Wcode customers get free updates.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28760156-5381099980785402103?l=www.brysgo.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='/index.php?id=5381099980785402103' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28760156&amp;postID=5381099980785402103&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='/index.php?id=5381099980785402103'/><link rel='self' type='application/atom+xml' href='/index.php?id=5381099980785402103'/><link rel='alternate' type='text/html' href='/index.php?id=5381099980785402103' title='My Mac Projects'/><author><name>Bryan Goldstein</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/--DittlS9dbw/AAAAAAAAAAI/AAAAAAAAB4s/STYrH-pQ1NY/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28760156.post-5324404028347303742</id><published>2007-11-02T17:19:00.000-07:00</published><updated>2010-05-20T09:57:24.781-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wcode'/><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><category scheme='http://www.blogger.com/atom/ns#' term='dashboard'/><title type='text'>Delay in Wcode/Disappear/Gwidget updates and fixes</title><content type='html'>It may be clear to anyone looking for a working version of Gwidget, or a more Leopard friendly version of Wcode that I haven't had a chance to update any of my software.  I have been very busy lately with other things like school work.  I also am currently unable to update my website at http://bryan.iindigo3d.com because of ftp problems.  This doesn't mean that I am done developing my software, it just means that I am waiting until at least second semester to get my own hosting and start all my projects back up.  I also have some pretty good ideas for future killer apps, so hang in there.  For those of you that need support, or just have questions/suggestions about future versions of my software, feel free to &lt;a href="http://bryan.iindigo3d.com/page0/page0.php"&gt;email me&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Update: I no longer have a need to find hosting, because I have found all I need for free.  This blogger page, combined with google pages, is now my new website.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28760156-5324404028347303742?l=www.brysgo.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='/index.php?id=5324404028347303742' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28760156&amp;postID=5324404028347303742&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='/index.php?id=5324404028347303742'/><link rel='self' type='application/atom+xml' href='/index.php?id=5324404028347303742'/><link rel='alternate' type='text/html' href='/index.php?id=5324404028347303742' title='Delay in Wcode/Disappear/Gwidget updates and fixes'/><author><name>Bryan Goldstein</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/--DittlS9dbw/AAAAAAAAAAI/AAAAAAAAB4s/STYrH-pQ1NY/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28760156.post-8202016295015816452</id><published>2007-05-06T20:37:00.000-07:00</published><updated>2010-05-20T09:56:43.323-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><category scheme='http://www.blogger.com/atom/ns#' term='dashboard'/><title type='text'>Gwidget 1.1 Released</title><content type='html'>I just posted a minor update of Gwidget, there is but one, very handy difference in this new version.  The difference is that this version gives you the ability to select and copy text.  There are some small changes in links on the back also but nothing that is very noticable.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bryan.iindigo3d.com/page1/page4/page4.html"&gt;More Info&lt;/a&gt; | &lt;a href="http://brysgo.googlepages.com/Gwidget.wdgt.zip"&gt;Download&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28760156-8202016295015816452?l=www.brysgo.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='/index.php?id=8202016295015816452' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28760156&amp;postID=8202016295015816452&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='/index.php?id=8202016295015816452'/><link rel='self' type='application/atom+xml' href='/index.php?id=8202016295015816452'/><link rel='alternate' type='text/html' href='/index.php?id=8202016295015816452' title='Gwidget 1.1 Released'/><author><name>Bryan Goldstein</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/--DittlS9dbw/AAAAAAAAAAI/AAAAAAAAB4s/STYrH-pQ1NY/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28760156.post-8816734064771192992</id><published>2007-05-05T15:09:00.000-07:00</published><updated>2010-05-20T09:57:24.781-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wcode'/><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><category scheme='http://www.blogger.com/atom/ns#' term='dashboard'/><title type='text'>New Home For My Software</title><content type='html'>I have finally created a new web site after the web site that widgetfactor.com, the web site for wcode, which I had been paying someone an overly large ammount to create and host, has disappeared and took the site down with him.  The person I was paying's boss at Lexink took the domain for his own site without any response when I emailed him about posibly aquireing the domain from him.&lt;br /&gt;&lt;br /&gt;After being severely ripped off like that, I have recoved with a basic web site of my own.  I will begin searching for my own domain and hosting but in the mean time, it is kindly being hosted by John Wells at http://bryan.iindigo3d.com.  This means the the very new very fresh integration of sparkle into Wcode will unfortuately not be able to automatically update the next version of Wcode.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28760156-8816734064771192992?l=www.brysgo.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='/index.php?id=8816734064771192992' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28760156&amp;postID=8816734064771192992&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='/index.php?id=8816734064771192992'/><link rel='self' type='application/atom+xml' href='/index.php?id=8816734064771192992'/><link rel='alternate' type='text/html' href='/index.php?id=8816734064771192992' title='New Home For My Software'/><author><name>Bryan Goldstein</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/--DittlS9dbw/AAAAAAAAAAI/AAAAAAAAB4s/STYrH-pQ1NY/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28760156.post-5532661978129276833</id><published>2007-04-23T17:40:00.000-07:00</published><updated>2010-05-20T09:56:43.323-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><category scheme='http://www.blogger.com/atom/ns#' term='dashboard'/><title type='text'>Gwidget 1.0 Is HERE!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_KjtUww_50A4/Ri1Tg78zGtI/AAAAAAAAAAs/DikQLZsGSD8/s1600-h/Picture+1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_KjtUww_50A4/Ri1Tg78zGtI/AAAAAAAAAAs/DikQLZsGSD8/s320/Picture+1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5056789781920553682" /&gt;&lt;/a&gt;&lt;br /&gt;I am proud to announce the immediate availability of Gwidget 1.0.  It now uses Skweezer instead of Google mobile.  As a result, the search results are much neater.  Features such as Google Calculator, Google Dictionary, and Google Spellcheck now work flawlessly.  When you click on the results now the page loading is generally much faster and adds a page loading indicator so you will know if the page is loading or Gwidget is just not working.  All of the colors are the same and the news and image search options were removed in order to put more focus on the web searching.  Don't take my word for it, try it yourself and see why I am so excited about it!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://brysgo.googlepages.com/Gwidget.wdgt.zip"&gt;Download Gwidget 1.0 Now!&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Please leave a comment if you have questions, suggestions, compliments, or criticism.&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript" src="http://osx.iusethis.com/app/include/gwidget"&gt;&lt;/script&gt;&lt;br /&gt;&lt;noscript&gt;&lt;a href="http://osx.iusethis.com/app/gwidget"&gt;&lt;/a&gt;&lt;/noscript&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28760156-5532661978129276833?l=www.brysgo.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='/index.php?id=5532661978129276833' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28760156&amp;postID=5532661978129276833&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='/index.php?id=5532661978129276833'/><link rel='self' type='application/atom+xml' href='/index.php?id=5532661978129276833'/><link rel='alternate' type='text/html' href='/index.php?id=5532661978129276833' title='Gwidget 1.0 Is HERE!'/><author><name>Bryan Goldstein</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/--DittlS9dbw/AAAAAAAAAAI/AAAAAAAAB4s/STYrH-pQ1NY/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_KjtUww_50A4/Ri1Tg78zGtI/AAAAAAAAAAs/DikQLZsGSD8/s72-c/Picture+1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28760156.post-5663800499273159501</id><published>2007-04-12T17:46:00.000-07:00</published><updated>2010-05-20T09:57:24.781-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wcode'/><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><category scheme='http://www.blogger.com/atom/ns#' term='dashboard'/><title type='text'>Gwidget+Wcode Progress</title><content type='html'>Gwidget:&lt;br /&gt;&lt;br /&gt;The other day I worked on Gwidget.  I changed the method of getting pages and results from Google mobile to skweezer and the regular Google search.  The search results are now much more presentable.  Opening pages in Gwidget is also much faster now, and when you do open the page it is not split into sections on multiple pages like it was before so it is much more compatible with the widget.  The other advantage this setup gives besides improved speed and reliability, is the ability for me to set up support for Google dictionary, calculator, and other similar search services.  With that, I also removed the image and news search in favor of spending more time on the regular web search.  I would consider reviving them later on if I get enough requests for it.  I will be releasing it as soon as I get a chance to brush it up a bit.&lt;br /&gt;&lt;br /&gt;Wcode:&lt;br /&gt;&lt;br /&gt;Yesterday a friend sent me a class to add some syntax coloring.  I tried it out in Wcode and I thought it was fantastic.  In addition to line numbering, it colors the html tags and the html comments and only has some minor faults to overcome.  I also wanted it to color quotes, javascript, and css.  Coloring quotes was a nearly impossible task since a bug in the NSScanner class does not allow searching of the same character twice in a row with one scanner.  I stayed up until two in the morning writing an extremely complicated work around for this bug.  So now the quotes are colored and I will be working on adding and improving more syntax coloring.  Once I complete my work with syntax coloring I hope to make a system to manage indenting.  You can probably expect another release when that is done.&lt;br /&gt;&lt;br /&gt;Please leave a comment if you have questions, suggestions, compliments, or criticism.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28760156-5663800499273159501?l=www.brysgo.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='/index.php?id=5663800499273159501' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28760156&amp;postID=5663800499273159501&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='/index.php?id=5663800499273159501'/><link rel='self' type='application/atom+xml' href='/index.php?id=5663800499273159501'/><link rel='alternate' type='text/html' href='/index.php?id=5663800499273159501' title='Gwidget+Wcode Progress'/><author><name>Bryan Goldstein</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/--DittlS9dbw/AAAAAAAAAAI/AAAAAAAAB4s/STYrH-pQ1NY/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28760156.post-962275336824579187</id><published>2006-12-18T15:11:00.000-08:00</published><updated>2010-05-20T09:56:43.324-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><category scheme='http://www.blogger.com/atom/ns#' term='dashboard'/><title type='text'>Plans for Gwidget</title><content type='html'>I enjoy working on Gwidget a lot and I have tons of things I would like to add to it when I have time.  I would like to change gwidget to get it's results from google.com instead of google's mobile web.  This way a bunch more of google's search features will work.  Another thing that would allow you to do is make all of the customizations that google allows like changing the number of results per page.  The next thing I want to do is have clicked results open with skweeze.com instead of google's mobile web.  This would eliminate having the displayed page on multiple pages instead of just one.  After that there are a whole bunch of things I could think of doing.  I got requests for country specific searches, I will look into that.  I will also try and fix gwidget so it works as well in foreign languages as it does in english, but I don't know how hard that will be.  Any way, I can't say if I will have time to do all this, but keep watching for updates.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28760156-962275336824579187?l=www.brysgo.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='/index.php?id=962275336824579187' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28760156&amp;postID=962275336824579187&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='/index.php?id=962275336824579187'/><link rel='self' type='application/atom+xml' href='/index.php?id=962275336824579187'/><link rel='alternate' type='text/html' href='/index.php?id=962275336824579187' title='Plans for Gwidget'/><author><name>Bryan Goldstein</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/--DittlS9dbw/AAAAAAAAAAI/AAAAAAAAB4s/STYrH-pQ1NY/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28760156.post-6195100093977806075</id><published>2006-12-09T17:59:00.000-08:00</published><updated>2010-05-20T09:56:43.325-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><category scheme='http://www.blogger.com/atom/ns#' term='dashboard'/><title type='text'>Gwidget 0.5 (Now 0.5.1)</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_KjtUww_50A4/RXtvAksbdDI/AAAAAAAAAAU/PzJPfnW5NSc/s1600-h/Gwidget+Screen+Shot.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_KjtUww_50A4/RXtvAksbdDI/AAAAAAAAAAU/PzJPfnW5NSc/s320/Gwidget+Screen+Shot.png" alt="" id="BLOGGER_PHOTO_ID_5006717466393146418" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://brysgo.googlepages.com/Gwidget.wdgt.zip"&gt;Click here to download&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The the most frequent request for Gwidget is for it to be resizable.  Well now, after about twelve hours of non-stop working, you can finally resize Gwidget.  I also added a white color scheme option because someone wanted it to look more like googles' widgets.  You may also notice other small changes.   Also, If you want to show your support for Gwidget you can &lt;a href="https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&amp;business=brysgo%40gmail%2ecom&amp;amp;item_name=Gwidget&amp;no_shipping=2&amp;amp;amp;amp;amp;amp;amp;no_note=1&amp;tax=0&amp;amp;currency_code=USD&amp;lc=US&amp;amp;bn=PP%2dDonationsBF&amp;amp;charset=UTF%2d8"&gt;donate&lt;/a&gt; however much you feel it's worth.&lt;br /&gt;&lt;br /&gt;I have also released version 0.5.1 which is just a bug fix for a pretty big problem that occurs for people who have not used any version of Gwidget before version 0.5.&lt;br /&gt;&lt;br /&gt;&lt;form action="https://www.paypal.com/cgi-bin/webscr" method="post"&gt;&lt;input name="cmd" value="_xclick" type="hidden"&gt;&lt;input name="business" value="brysgo@gmail.com" type="hidden"&gt;&lt;input name="item_name" value="Gwidget" type="hidden"&gt;&lt;input name="no_shipping" value="2" type="hidden"&gt;&lt;input name="no_note" value="1" type="hidden"&gt;&lt;input name="currency_code" value="USD" type="hidden"&gt;&lt;input name="tax" value="0" type="hidden"&gt;&lt;input name="lc" value="US" type="hidden"&gt;&lt;input name="bn" value="PP-DonationsBF" type="hidden"&gt;&lt;input src="https://www.paypal.com/en_US/i/btn/x-click-butcc-donate.gif" name="submit" alt="Make payments with PayPal - it's fast, free and secure!" align="right" border="0" type="image"&gt;&lt;img alt="" src="https://www.paypal.com/en_US/i/scr/pixel.gif" border="0" height="1" width="1" /&gt;&lt;/form&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28760156-6195100093977806075?l=www.brysgo.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='/index.php?id=6195100093977806075' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28760156&amp;postID=6195100093977806075&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='/index.php?id=6195100093977806075'/><link rel='self' type='application/atom+xml' href='/index.php?id=6195100093977806075'/><link rel='alternate' type='text/html' href='/index.php?id=6195100093977806075' title='Gwidget 0.5 (Now 0.5.1)'/><author><name>Bryan Goldstein</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/--DittlS9dbw/AAAAAAAAAAI/AAAAAAAAB4s/STYrH-pQ1NY/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_KjtUww_50A4/RXtvAksbdDI/AAAAAAAAAAU/PzJPfnW5NSc/s72-c/Gwidget+Screen+Shot.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28760156.post-116518072067124830</id><published>2006-12-03T13:01:00.000-08:00</published><updated>2010-05-20T09:56:43.325-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><category scheme='http://www.blogger.com/atom/ns#' term='dashboard'/><title type='text'>Gwidget 0.2</title><content type='html'>I just released Gwidget 0.2.  The major difference is that there are now four colors to pick from. Other small changes have been made that you may or may not notice.  &lt;a href="http://www.macupdate.com/download.php/23380/Gwidget.wdgt.zip"&gt;Click here to download it now.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/x/blogger/4921/3051/1600/930213/Picture%201.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/x/blogger/4921/3051/320/112449/Picture%201.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28760156-116518072067124830?l=www.brysgo.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='/index.php?id=116518072067124830' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28760156&amp;postID=116518072067124830&amp;isPopup=true' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='/index.php?id=116518072067124830'/><link rel='self' type='application/atom+xml' href='/index.php?id=116518072067124830'/><link rel='alternate' type='text/html' href='/index.php?id=116518072067124830' title='Gwidget 0.2'/><author><name>Bryan Goldstein</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/--DittlS9dbw/AAAAAAAAAAI/AAAAAAAAB4s/STYrH-pQ1NY/s512-c/photo.jpg'/></author><thr:total>5</thr:total></entry></feed>
