<?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'><id>tag:blogger.com,1999:blog-28760156</id><updated>2010-02-28T15:23:15.692-08:00</updated><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'/><author><name>Bryan Goldstein</name><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>24</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-28760156.post-7391046562836757399</id><published>2010-02-06T18:27:00.000-08:00</published><updated>2010-02-06T18:34:37.645-08:00</updated><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=brysgo.blogspot.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='https://www.blogger.com/comment.g?blogID=28760156&amp;postID=7391046562836757399&amp;isPopup=true' title='1 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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15394380484252121066'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</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-01-23T22:52:43.032-08:00</updated><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=brysgo.blogspot.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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15394380484252121066'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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-01-23T23:09:41.292-08:00</updated><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=brysgo.blogspot.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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15394380484252121066'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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>2009-10-04T20:04:39.468-07:00</updated><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=brysgo.blogspot.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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15394380484252121066'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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>2009-09-19T15:20:10.652-07:00</updated><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=brysgo.blogspot.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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15394380484252121066'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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>2009-09-01T06:41:32.824-07:00</updated><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=brysgo.blogspot.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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15394380484252121066'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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=brysgo.blogspot.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='https://www.blogger.com/comment.g?blogID=28760156&amp;postID=2178902301778358495&amp;isPopup=true' title='0 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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15394380484252121066'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</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>2009-05-13T22:01:55.125-07:00</updated><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=brysgo.blogspot.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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15394380484252121066'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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>2008-04-23T10:42:25.901-07:00</updated><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=brysgo.blogspot.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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15394380484252121066'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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>2008-01-24T11:59:02.350-08:00</updated><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=brysgo.blogspot.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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15394380484252121066'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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>2007-05-06T20:42:43.899-07:00</updated><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=brysgo.blogspot.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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15394380484252121066'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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>2007-05-05T15:27:01.981-07:00</updated><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=brysgo.blogspot.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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15394380484252121066'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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>2008-12-09T08:57:53.325-08:00</updated><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=brysgo.blogspot.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='https://www.blogger.com/comment.g?blogID=28760156&amp;postID=5532661978129276833&amp;isPopup=true' title='1 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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15394380484252121066'/></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 xmlns:thr='http://purl.org/syndication/thread/1.0'>1</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>2007-04-12T18:15:39.023-07:00</updated><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=brysgo.blogspot.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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15394380484252121066'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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>2006-12-18T15:24:22.996-08:00</updated><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=brysgo.blogspot.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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15394380484252121066'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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>2008-12-09T08:57:53.465-08:00</updated><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=brysgo.blogspot.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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15394380484252121066'/></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 xmlns:thr='http://purl.org/syndication/thread/1.0'>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>2006-12-05T10:48:01.710-08:00</updated><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=brysgo.blogspot.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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15394380484252121066'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28760156.post-116459327575745163</id><published>2006-11-26T17:54:00.000-08:00</published><updated>2006-11-28T13:22:17.976-08:00</updated><title type='text'>Gwidget 0.1 Released!</title><content type='html'>My first widget, Gwidget (jee' wid jet), was just released.  It is unlike any of the other search widgets currently up for grabs.  It searches google and displays the results right on your dashboard.  Also, unless you select the option not to, it displays the website you click on right in the widget.  Try it out.  Leave a comment and tell me what you think about it, also tell me what you think I should add.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://wcode.iindigo3d.com/Gwidget.wdgt.zip"&gt;Click here to download it.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/4921/3051/1600/Picture%203.png"&gt;&lt;img style="float:none; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/4921/3051/320/Picture%203.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/4921/3051/1600/Picture%202.png"&gt;&lt;img style="float:none; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/4921/3051/320/Picture%202.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-116459327575745163?l=brysgo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='/index.php?id=116459327575745163' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=28760156&amp;postID=116459327575745163&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='/index.php?id=116459327575745163'/><link rel='self' type='application/atom+xml' href='/index.php?id=116459327575745163'/><link rel='alternate' type='text/html' href='/index.php?id=116459327575745163' title='Gwidget 0.1 Released!'/><author><name>Bryan Goldstein</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15394380484252121066'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28760156.post-116404965222934815</id><published>2006-11-20T10:56:00.000-08:00</published><updated>2006-11-28T13:19:42.780-08:00</updated><title type='text'>Wcode 2.0 Released!!!!!!!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/4921/3051/1600/Picture%201.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/4921/3051/320/Picture%201.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;&lt;a href="http://www.macupdate.com/download.php/18199/Wcode_2.0.zip"&gt;Download Wcode 2.0 Here&lt;/a&gt;&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;Wcode 2.0 version was released last night somewhere close to 2am.  It is the result of hours and hours and hours of hard work.  Although it is rewritten from scratch, some of the noticeable features are the new template system that allows anyone who wishes to easily create and share their own templates for Wcode.  Another noticeable feature is the built in widget preview, this allows you to get your layout straight with out going back and forth to dashboard a million times.  Another feature you will notice is a remade info.plist editor.  This is a new full featured design that gives you every option available for creating your info.plist file.  Also, when you start typing in the search field, you will notice a big difference.  Instead of just searching the file you have open, it searches all of the files you have opened and the titles of all the files you have not yet opened.  You will also notice the improved design and stability.  In addition to that their are many things you will not notice right of the bat, but it is all new, completely remade.  Do yourself a favor and download a copy, you'll love it!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28760156-116404965222934815?l=brysgo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='/index.php?id=116404965222934815' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=28760156&amp;postID=116404965222934815&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='/index.php?id=116404965222934815'/><link rel='self' type='application/atom+xml' href='/index.php?id=116404965222934815'/><link rel='alternate' type='text/html' href='/index.php?id=116404965222934815' title='Wcode 2.0 Released!!!!!!!'/><author><name>Bryan Goldstein</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15394380484252121066'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28760156.post-116157049241388488</id><published>2006-10-22T19:17:00.000-07:00</published><updated>2006-10-22T19:28:12.423-07:00</updated><title type='text'>Wcode 2.0 getting closer</title><content type='html'>I accomplished a lot this weekend in terms of Wcode.  I created the info.plist editor and it is a hundred times cooler than the last one.  I also worked out a few bugs and worked on making this release perfect.  Also Jeremy and I have started working on converting the templates, we have the search widget template done and the default plain template done.  The rest should be done within one or two weeks.  After that, all that is left to do is code the registration system in and it's done!  Also, the people that created the code that is used in the rss template do not want us releasing it with our program, so it will be available for download seperately and all that you will have to do is open in, and it will be installed into wcode.  But if anyone at all is interested in making a template before the release of Wcode 2.0 please contact me. Wcode is going to need good templates in order to have a fighting chance against dashcode, apple's version of my program.  Alse, feel free to make comments, I will try to answer them all.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28760156-116157049241388488?l=brysgo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='/index.php?id=116157049241388488' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=28760156&amp;postID=116157049241388488&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='/index.php?id=116157049241388488'/><link rel='self' type='application/atom+xml' href='/index.php?id=116157049241388488'/><link rel='alternate' type='text/html' href='/index.php?id=116157049241388488' title='Wcode 2.0 getting closer'/><author><name>Bryan Goldstein</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15394380484252121066'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28760156.post-116095097323077709</id><published>2006-10-15T15:18:00.000-07:00</published><updated>2006-10-15T15:22:53.243-07:00</updated><title type='text'>Wcode 2.0 Questions</title><content type='html'>OK, a lot of you are probably have a few of the same questions about wcode 2.0.  Widgets in leopard, as far as I am aware of are the same as widgets in tiger.  Second, the 2.0 release will be a universal binary.  The last question everyone is probably wondering is why the heck is this thing taking so long.  The answer to that question is that while this version is almost complete, I have not yet created the templates.  If you've read my blog you know the templates are now just files instead of code that is built into the program.  So while the template system works for the default blank template, I have not had any time to port the other templates.  The last thing I have not done yet that I would like to do is create an interface for the info.plist file.  This is available in the current wcode but I would like to improve it.&lt;br /&gt;&lt;br /&gt;If you are interested in making a template that you would like to have posted with the release of Wcode 2.0, email me at brysgo at gmail d0t ç0m and i will try and help you to make a template.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28760156-116095097323077709?l=brysgo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='/index.php?id=116095097323077709' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=28760156&amp;postID=116095097323077709&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='/index.php?id=116095097323077709'/><link rel='self' type='application/atom+xml' href='/index.php?id=116095097323077709'/><link rel='alternate' type='text/html' href='/index.php?id=116095097323077709' title='Wcode 2.0 Questions'/><author><name>Bryan Goldstein</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15394380484252121066'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28760156.post-116042454877666527</id><published>2006-10-09T13:00:00.000-07:00</published><updated>2006-10-09T13:23:24.586-07:00</updated><title type='text'>Accepting Google Checkout as well as paypal for wcode.</title><content type='html'>Now in addition to accepting purchases via paypal I will also accept purchases with Google Checkout.  Here here is the new button.&lt;br /&gt;&lt;br /&gt;&lt;form action="https://checkout.google.com/cws/v2/Merchant/313513510209199/checkout" id="BB_BuyButtonForm" method="post" name="BB_BuyButtonForm"&gt;&lt;br /&gt;    &lt;input name="cart" type="hidden" value="PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxjaGVja291dC1zaG9wcGluZy1jYXJ0IHhtbG5zPSJodHRwOi8vY2hlY2tvdXQuZ29vZ2xlLmNvbS9zY2hlbWEvMiI+DQogIDxzaG9wcGluZy1jYXJ0Pg0KICAgIDxpdGVtcz4NCiAgICAgIDxpdGVtPg0KICAgICAgICA8aXRlbS1uYW1lPldjb2RlPC9pdGVtLW5hbWU+DQogICAgICAgIDxpdGVtLWRlc2NyaXB0aW9uPldpZGdldCBjcmVhdGlvbiBzb2Z0d2FyZS48L2l0ZW0tZGVzY3JpcHRpb24+DQogICAgICAgIDxxdWFudGl0eT4xPC9xdWFudGl0eT4NCiAgICAgICAgPHVuaXQtcHJpY2UgY3VycmVuY3k9IlVTRCI+MTUuMDwvdW5pdC1wcmljZT4NCiAgICAgIDwvaXRlbT4NCiAgICA8L2l0ZW1zPg0KICA8L3Nob3BwaW5nLWNhcnQ+DQogIDxjaGVja291dC1mbG93LXN1cHBvcnQ+DQogICAgPG1lcmNoYW50LWNoZWNrb3V0LWZsb3ctc3VwcG9ydCAvPg0KICA8L2NoZWNrb3V0LWZsb3ctc3VwcG9ydD4NCjwvY2hlY2tvdXQtc2hvcHBpbmctY2FydD4NCg0K"/&gt;&lt;br /&gt;    &lt;input name="signature" type="hidden" value="n2ysgcqQx0S23oXO76Dcl1P2KqQ="/&gt;&lt;br /&gt;    &lt;input alt="" src="https://checkout.google.com/buttons/buy.gif?merchant_id=313513510209199&amp;amp;w=117&amp;amp;h=48&amp;amp;style=trans&amp;amp;variant=text&amp;amp;loc=en_US" type="image"/&gt;&lt;br /&gt;&lt;/form&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28760156-116042454877666527?l=brysgo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='/index.php?id=116042454877666527' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=28760156&amp;postID=116042454877666527&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='/index.php?id=116042454877666527'/><link rel='self' type='application/atom+xml' href='/index.php?id=116042454877666527'/><link rel='alternate' type='text/html' href='/index.php?id=116042454877666527' title='Accepting Google Checkout as well as paypal for wcode.'/><author><name>Bryan Goldstein</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15394380484252121066'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28760156.post-114874579826367371</id><published>2006-05-27T09:00:00.000-07:00</published><updated>2006-05-27T09:03:18.270-07:00</updated><title type='text'>Wcode 2.0 Coming Soon</title><content type='html'>I have been working very hard for the last couple of weeks to bring you Wcode 2.0.  Wcode 2.0 is a complete rewrite of wcode, the design is simmilar but the code is rewriten from scratch.  &lt;br /&gt;&lt;br /&gt;Some new features:&lt;br /&gt;- There is a new template system uses template files so anyone who wants can create and share their own templates.  &lt;br /&gt;- The preview feature now runs the widget in wcode.  It is not a substitute for the build and run button but it is definetly better than previewing in Safari.&lt;br /&gt;- The search bar is also improved.  It searches every file you've opened and all imediate files in the widget's titles.  The search doesn't make it through folders unless you have opened a file the when you search the folder that file is in will not be filtered out.&lt;br /&gt;- there is also an huge increase in overall performance&lt;br /&gt;&lt;br /&gt;I hope everone else is as excited about it as I am.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28760156-114874579826367371?l=brysgo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='/index.php?id=114874579826367371' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=28760156&amp;postID=114874579826367371&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='/index.php?id=114874579826367371'/><link rel='self' type='application/atom+xml' href='/index.php?id=114874579826367371'/><link rel='alternate' type='text/html' href='/index.php?id=114874579826367371' title='Wcode 2.0 Coming Soon'/><author><name>Bryan Goldstein</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15394380484252121066'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28760156.post-114874454203835370</id><published>2006-05-27T08:39:00.000-07:00</published><updated>2006-05-27T08:42:22.043-07:00</updated><title type='text'>What is this blog about?</title><content type='html'>I just decided I am going to use this blog.  It will be about whatever I decide to post on it, mainly about my software and macintosh stuff but also other random things.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28760156-114874454203835370?l=brysgo.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='/index.php?id=114874454203835370' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=28760156&amp;postID=114874454203835370&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='/index.php?id=114874454203835370'/><link rel='self' type='application/atom+xml' href='/index.php?id=114874454203835370'/><link rel='alternate' type='text/html' href='/index.php?id=114874454203835370' title='What is this blog about?'/><author><name>Bryan Goldstein</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15394380484252121066'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry></feed>