<?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-8704831762200248869</id><updated>2011-09-21T16:22:36.148-04:00</updated><category term='linux'/><category term='PHP'/><category term='peoplebacon'/><category term='lyfe'/><category term='hypogeum'/><category term='framework'/><category term='Git'/><category term='near space balloon'/><category term='SVN'/><category term='rockets'/><category term='Centos'/><title type='text'>Tech Bloggery^2</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://tendrid.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8704831762200248869/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://tendrid.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Tendrid</name><uri>http://www.blogger.com/profile/15436864373884438896</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WjoMQ5NWf98/SkkR9wk_hFI/AAAAAAAAABQ/v2uZCortTr0/S220/face.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>9</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8704831762200248869.post-5900998556937748458</id><published>2011-03-30T11:54:00.005-04:00</published><updated>2011-03-30T15:41:42.817-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Git'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='peoplebacon'/><category scheme='http://www.blogger.com/atom/ns#' term='SVN'/><category scheme='http://www.blogger.com/atom/ns#' term='Centos'/><title type='text'>An svn users' tale of the Git (bare) learning curve.</title><content type='html'>&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;Herein lies my woeful tale of Git assumptions and the specters of SVN, rabidly haunting my brain meats with errant lies.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;I am an SVN guy. I'll outright admit it not matter how much 1337-credit i lose in doing so (offended? I also hate NoSQL and most of the major frameworks).  However, with all you hip kids moving to Git, I felt the need to sip on the purple koolaid juts enough to hold a conversation with you criminally insane miscreants.  This is the story how I &lt;i&gt;perhaps&lt;/i&gt; sipped a little to much (double entendre!!!).&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;For those of you who are like me, and looking for a helping hand, i'm going to paste the fuck-off error i kept getting, and how I fixed it (with proper git workflow!):&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;refusing to update checked out branch: refs/heads/dev&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;By default, updating the current branch in a non-bare repository is denied, because it will make the index and work tree inconsistent with what you pushed, and will require 'git reset --hard' to match the work tree to HEAD.&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;You can set 'receive.denyCurrentBranch' configuration variable to 'ignore' or 'warn' in the remote repository to allow pushing into its current branch; however, this is not recommended unless you arranged to update its work tree to match what you pushed in some other way.&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;To squelch this message and still keep the default behaviour, set 'receive.denyCurrentBranch' configuration variable to 'refuse'.&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;If you're getting this error, read on! I promise you I have the answer.  And not the "oh, just convert it to a bare repo" like the rest of the internet says.  They are wrong.  Join me in joyous perseverance!&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;Now, I've used Git on and off for a few years now, mostly to keep track of work on a local machine, however I wanted to implement a Git server that could keep track of a repo/ master branch much like how I currently use SVN.  And that, is the beginning of "How I wasted a day of my life, a story of misunderstanding and hardship".  I'm talking Ann Frank hardship.  And as a personal note to you Git guys out there,  DOCUMENTATION! seriously.  How in the hell does that error at the top of the page help anyone?  How about a "why this is bad" note or link?  You wasted a day of my life, and i want it back.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;If you meandered like a &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: arial; "&gt;retard &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: arial; "&gt;down the same path as me, you probably did the following:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: arial; "&gt;make directory on server, and git init&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: arial; "&gt;add some files, git commit -a&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: arial; "&gt;make directory on client, and git clone&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: arial; "&gt;edit files, git commit -a, git push&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: arial; "&gt;Git sez: "ERROR. YOU SUX. RTFM CUZ UR SHIT IZNT BARE. FUCKIN N00B."&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;After braving the depths of the internetz, I came across a cult of people explaining that "all you needed to do" was convert to a bare repo, and all would be well.  This sounded a tab fishy to me, as up until this point nobody had cared to explain what a bare repo was (as I later discovered, it is just the contents of the .git directory.  no browsable file structure).  After reading a few websites on Git workflow, and heeding some sage advice from a local development firm (&lt;a href="http://www.srtsolutions.com/"&gt;SRT&lt;/a&gt;), I bravely decided to abandon my SVN knowledge, and start playing with branches.  Here is what i found (and what fixed my problem).&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;Create a git repo on your "Host/Storage Server":&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;mkdir repo&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;cd repo&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;git init&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;At this point, you have an empty master branch, so lets add a blank file (or copy your own files in to the dir at this point), and commit it.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;touch README&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;git add *&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;git commit -a -m "here is my first commit"&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;Now at this point, if we were to clone the master, edit README, and commit from another machine, you'd get the fuck-off error ourlined above.  So instead of fighting Git, lets place nice.  Following the git workflow, you shouldnt be doing development directly in to your master branch (as it awkwardly attempts to point out in the error message).  Instead, the master branch should only be deployment-ready versions of your code (ie: SVN tags).  So lets add a branch in which we'll be doing some of our development:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;git branch dev&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;Ok, now head over to your "Client/Dev Server" and clone the repo.   I use ssh as a transport because its simple and I like that, but if you want to get all difficult and fancy, you can use the git-daemon which implements the git:// option (which is just ssh on port 9140 or some shit, so I would suggest the simple, cool-guy way, which is ssh).&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;git clone ssh://username@ip.or.fqdn/path/to/repo&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;git branch dev&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;git checkout dev&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;At this point, you have a full working copy of the git repo on your machine in which you have created and started work in the dev branch (like we made on our server).  You can now feel free to mess up the joint by committing or editing files.  Then simply:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;git commit -a&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;git push&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;Bam! you have yourself a hosted Git server!  Now that you have your working setup, I would suggest you read over &lt;a href="http://nvie.com/posts/a-successful-git-branching-model/"&gt;this handy workflow&lt;/a&gt; which will help you further understand / make user of Git.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8704831762200248869-5900998556937748458?l=tendrid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tendrid.blogspot.com/feeds/5900998556937748458/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tendrid.blogspot.com/2011/03/svn-users-tale-of-git-learning-curve.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8704831762200248869/posts/default/5900998556937748458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8704831762200248869/posts/default/5900998556937748458'/><link rel='alternate' type='text/html' href='http://tendrid.blogspot.com/2011/03/svn-users-tale-of-git-learning-curve.html' title='An svn users&apos; tale of the Git (bare) learning curve.'/><author><name>Tendrid</name><uri>http://www.blogger.com/profile/15436864373884438896</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WjoMQ5NWf98/SkkR9wk_hFI/AAAAAAAAABQ/v2uZCortTr0/S220/face.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8704831762200248869.post-6801109869236033939</id><published>2010-09-14T09:57:00.011-04:00</published><updated>2010-09-14T11:43:33.667-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='peoplebacon'/><title type='text'>Social Landscape (mental vomit)</title><content type='html'>&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;These are just some thoughts i wanted to get out somewhere.  I did not edit this post, so you may contract ADD by reading it.  Consume at your own risk.  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;Social networks face problems&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;i&gt;Signal to noise ratio.&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;i&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;i&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;There is no way (easy) to filter data on your needs.  I assume facebook is heading in this direction based on their recent classification of all things on their website, but twitter still relies on their archaic text search, which forces the user to consciously decided what they like (every time they look to be entertained), and search for it.  They build a way to create lists (predefined ways to sort data) but seriously, who uses these?  The solve for this problem would be to predict what the user enjoy (not just what bands they like, but what interests them on a core level, ie: extroverted, or introverted personality types?) which poses a different problem; how do you categorize all human interest?  If you apply scope to the interest (ie music) you can classify the data (music) itself, and deliver content based on what they enjoy such as the pandora model, but even pandora requires the user to train the system.  The golden ticket is to develop a system in which the users navigation and every day usage defines their interest dataset.  After all, our actions are based entirely on our interests.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;i&gt;Interface for input.&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;A sale is nothing more than convincing someone your item/service is worth the exchange of their effort (be it effort as work, turned in to money, or effort in buying the item itself).  I recently spent a great deal of effort (time, energy, and money) on a house.  It is something that I clearly use every day, and enjoy very much.  It was worth it.  When purchasing an item thats worth very little (an mp3 or trinket costing less than $3), we're working on such a small scale that the money doesn't really enter in to it.  The effort of filling out personal information and clicking through a payment system is tedious, and will drive people away (unless you compensate with a lower price, ie: a $0.25 mp3, which is what a lot of websites will do, however this only works on a small cross-section of people that consider that effort to be worth $2).  The resolution for this is an easy checkout. Systems like Amazon and iTunes have this down to one click, which is why they are wildly popular.  These websites sell a direct item or service, but a social network is no different.  Instead of working with a monetary value, social networks ask for effort in its purest of forms.  Currently, these systems have multiple, relatively easy methods for direct user input, however it seems they have reached their limit.&lt;br /&gt;&lt;br /&gt;The golden ticket here, is increased payout (currency or effort) to the user.  Foursquare is a system that requires users to "check in" to their location via a mobile phone application.  The trade off for this effort is gaining badges (a virtual, solid asset currency) and alerting friends of their location.  This system is in contrast to google latitude, which is a completely passive system (zero currency, zero effort) which rewards your user very little.  There is no gain of virtual currency such as badges or points or even archival data (which can be trended, offering the user a log of places they have been, ie: effort).  Another danger lesson to learn from this example is: you must have both sides of the scale.  Creating a system that is 100% free (zero currency, zero effort) does not offer a sale.  A trade must take place for the user to feel achievement.  In summation, the trick is to create a trade, in which a users effort is worth less than the value of the item/service/data.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;How to Capitalize&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;The goal for the company should be to make money over time, by increasing payout (virtual rewards) while attempting to charge the user a monetary value.  Facebook attempts this by allowing the user to purchase virtual gifts for their friends.  That reward isnt all that great, so its not a very big success.  Online games such as Gunbound have been offering a free game model with purchasable shortcuts (ie: weapons that can be obtained in the game) for years.  This model has not only proven itself useful, but is beginning to bleed over in to the larger markets, where games such as World of Warcraft offer special pets or items that are only available for purchase for a $10-$15 fee.  Even Console games such as Modern Warfare allow users to purchase new maps to play, or even clothes that they can wear in the game.  In both cases, these items do not offer a strategic advancement, yet offer a social clout or bragging rights (ie: attention).&lt;br /&gt;&lt;br /&gt;Standing on the shoulders of giants.&lt;br /&gt;&lt;br /&gt;To the new developer, social networking sites should be viewed as content delivery networks based on a scale of real-time to archival.&lt;br /&gt;&lt;br /&gt;Build a system that takes advantage of the lacking in some systems.  A service that archives tweets, and provides badges base on keywords, retweets, or application usage. The badges and or point system would be the reward, but the input is passive, which is 100% free.  This poses a problem.  We need to create a small amount of work so we have a sale.  We can force our users to work (farmville: your plants are dieing), nag our users into working based on new users (mafiawars: your friend needs your help in a mob fight), or create a environment in which your rewards are not just a horde of collected trinkets, but a full currency in which they can be traded.  The only problem with that is you are offering your users a get rich quick scheme (by retweeting over and over to gain points).&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;b&gt;(this is where i began to teeter off, and get bored of my own post)&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;Twitter = real-time&lt;br /&gt;Facebook = text:real-time, pictures:real-time/archival&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Value to the user:&lt;br /&gt;&lt;br /&gt;Attention:&lt;br /&gt;- twitter&lt;br /&gt;- facebook feed&lt;br /&gt;- facebook photo tags&lt;br /&gt;&lt;br /&gt;Productivity:&lt;br /&gt;- Farmville: productivity (viewable as a farm) achieved through effort&lt;br /&gt;- Mafiawars: productivity (viewable as stats) achieved through effort&lt;br /&gt;- Online gambling: productivity achieved through risk and ability&lt;br /&gt;&lt;br /&gt;Monetary:&lt;br /&gt;- A few websites have tried to pay users for their content in the past, but no names come to mind. (mostly because they failed due to the payout being less than the effort to generate the content)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8704831762200248869-6801109869236033939?l=tendrid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tendrid.blogspot.com/feeds/6801109869236033939/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tendrid.blogspot.com/2010/09/social-landscape-mental-vomit.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8704831762200248869/posts/default/6801109869236033939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8704831762200248869/posts/default/6801109869236033939'/><link rel='alternate' type='text/html' href='http://tendrid.blogspot.com/2010/09/social-landscape-mental-vomit.html' title='Social Landscape (mental vomit)'/><author><name>Tendrid</name><uri>http://www.blogger.com/profile/15436864373884438896</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WjoMQ5NWf98/SkkR9wk_hFI/AAAAAAAAABQ/v2uZCortTr0/S220/face.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8704831762200248869.post-9159314652874119746</id><published>2010-03-04T11:16:00.006-05:00</published><updated>2010-03-04T11:53:02.932-05:00</updated><title type='text'>Hollywood has your number.</title><content type='html'>I havent had cable for months.  When you that long without something in your life, you forget why you banished it in the first place.  For this reason, cable was installed in my house a few weeks ago.  Last night, I was reminded why 8 months ago I held a sacrificial ax to a run of coax and bellowed "NO MORE!  WITH THIS ACTION, I CLEANSE THIS HOME".&lt;br /&gt;&lt;br /&gt;I witnessed a commercial that made me want to look away, however as if some sort of invisible clockwork-orangesqe device was strapped to my eyes, I was forced to gaze onward.   As my soul was slowly devoured by a preview for the movie "Kick Some Past", I wondered to myself "who would see this abomination?".  Right before I was free from my 30 second prison, I was enticed with an answer: "Visit us online for the R rated trailer".&lt;br /&gt;&lt;br /&gt;Tits.&lt;br /&gt;&lt;br /&gt;Curious, I went to their website to view the trailer which I was sure had some sexua&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_WjoMQ5NWf98/S4_gSdGvVmI/AAAAAAAAAGc/RAvc3WDscIg/s1600-h/Hot+Tub+Time+Machine+-+Restricted+Trailer.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 320px; height: 206px;" src="http://2.bp.blogspot.com/_WjoMQ5NWf98/S4_gSdGvVmI/AAAAAAAAAGc/RAvc3WDscIg/s320/Hot+Tub+Time+Machine+-+Restricted+Trailer.png" alt="" id="BLOGGER_PHOTO_ID_5444817082169382498" border="0" /&gt;&lt;/a&gt;l hook. Upon arrival, I was posed a few simple questions.  I responded in the usual fashion.  I submitted "dsagds dsgdsgs 48111 us 1 1 1950" which was instantly rejected.  After playing with the settings a few times, I realized this system was not going to let me in for any reason (even after putting in my real information).  My wife then went to the website and entered her info in, and was able to view the trailer.  She suggested I use "James" (my birth name) instead of "Jim".  Access granted.&lt;br /&gt;&lt;br /&gt;This crappy little movie website somehow had access to everyones name, birthday and zipcode.  Once I realized this, I excitedly mashed my f12 key to access the site data via firebug.  If I were lucky, they would be accessing the authentication file outside of flash, and therfore make it easily viewable to firebug.  I submitted the data and saw the page access "http://www.kicksomepast.com/restricted/integrity.php" via POST.  On a hunch, I passed some GET values to the file under the same parameter names.  Success!&lt;br /&gt;&lt;br /&gt;So if any of you hackers out there want access to a challenge/response that authenticates data about a person, feel free to use this URL:&lt;br /&gt;&lt;br /&gt;http://www.kicksomepast.com/restricted/integrity.php?dob=&amp;amp;country=&amp;amp;first=&amp;amp;last=&amp;amp;zip=&lt;br /&gt;&lt;br /&gt;where:&lt;br /&gt;dob = m/d/y (8/15/1975)&lt;br /&gt;country=us (or you can check out their website to get the other county codes)&lt;br /&gt;first=name (bob)&lt;br /&gt;last=name (smith)&lt;br /&gt;zip=zip (48108)&lt;br /&gt;&lt;br /&gt;Enjoy!&lt;br /&gt;&lt;br /&gt;PS: Yes. There are tits in the movie.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8704831762200248869-9159314652874119746?l=tendrid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tendrid.blogspot.com/feeds/9159314652874119746/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tendrid.blogspot.com/2010/03/hollywood-has-your-number.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8704831762200248869/posts/default/9159314652874119746'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8704831762200248869/posts/default/9159314652874119746'/><link rel='alternate' type='text/html' href='http://tendrid.blogspot.com/2010/03/hollywood-has-your-number.html' title='Hollywood has your number.'/><author><name>Tendrid</name><uri>http://www.blogger.com/profile/15436864373884438896</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WjoMQ5NWf98/SkkR9wk_hFI/AAAAAAAAABQ/v2uZCortTr0/S220/face.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_WjoMQ5NWf98/S4_gSdGvVmI/AAAAAAAAAGc/RAvc3WDscIg/s72-c/Hot+Tub+Time+Machine+-+Restricted+Trailer.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8704831762200248869.post-7442953265076332062</id><published>2009-07-20T22:35:00.010-04:00</published><updated>2010-03-09T15:21:08.613-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='framework'/><category scheme='http://www.blogger.com/atom/ns#' term='peoplebacon'/><category scheme='http://www.blogger.com/atom/ns#' term='hypogeum'/><title type='text'>The Hypogeum PHP Framework</title><content type='html'>I finally finished the one to many workings of the PHP Framework (Hypogeum) I am building.  The framework is geared to be simple yet efficent.  Each object has a database definition that links it to one or many tables in a database (ie: a user has user info in the "user" table, and the users avatar resides in the "avatar" table).  Once defining your user with one simple array, the class autolads your data and gives you all kinds of ways to manpulate that user, including ways to extend your own functions (like a login function) off of the class.  Here are a few quick examples as to things you could do with Hypogeum:&lt;br /&gt;&lt;br /&gt;&lt;span&gt;// get user with the unique_id of 1 from the database&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;$me = $c-&gt;user(1);&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;span&gt;// echo out the users name&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;echo $me-&gt;attr('username');&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;/&lt;/span&gt;&lt;span&gt;/ write a new user name to memory&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;$me-&gt;attr('username', 'MyNewName');&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;// save the users new name&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;$&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;me-&gt;save();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now the neat part is, all of the tables are bound to the same object, so lets say you want to change the users avatar image title, but thats not in the user table!  no fear.  You have already told the user class that we have multiple tables.&lt;br /&gt;&lt;br /&gt;&lt;span&gt;//set new avatar title&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;$me-&gt;attr('avatarTtitle','This is my new title');&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;span&gt;//save the avatar title&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;$me-&gt;save();&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;The class knows that the 'avatarTitle' field exisist in the 'avatar' table, so it writes accordingly.  If you have multiple fields with the same name, its as easy as:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;$me-&gt;attr('avatar.avatarTitle','This is my new title');&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The framework knows to look for a period, and try to use that as a table name.  If it cannot, it throws an exception.  And i know what you're thinking; "what if i put $me-&gt;attr('avatar',"x'; Drop Table users;")"?  Well, a few things.  If you wanna break your own database, go for it.  However you wont be able to use my framework.  Everything that interacts with the database is made safe via php filtering, but before that it has ot match the Regex that you define for each field.&lt;br /&gt;&lt;br /&gt;So far i bet youre saying "big deal.  so you can get one user from a table".  Heres a few more options:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;$us = $c-&gt;user-&gt;search('Jim');&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;foreach($us as $key =&gt; $val){&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    echo $us-&gt;attr('displayname');&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This will allow you to search the user table (on the field or fields you have mapped for string seraching) for users with name 'Jim'.  Lets say you want to find all users that have the letters "er" in their last name.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;$us = $c-&gt;user-&gt;search('er',true,'lastName');&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The second argument in the search method tells the function to perform a SQL Like search.  The third binds the search to a custom field (any field mapped to the table).&lt;br /&gt;&lt;br /&gt;If you want to find all of the users that are between the age of 18 and 25, you simply:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;$us = $c-&gt;user-&gt;searchBetween(18,25,'age');&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;if you want to get all of your users:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;$us = $c-&gt;user-&gt;getAll();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now heres where i get to the awesome part.  You can map objects (oe to many) together.  Lets say you have a table of user attributes such as "happy, sad, flaky, duck-like, etc..." and you want to map these attributes to a user.  With one line of code in the user class:&lt;br /&gt;&lt;br /&gt;&lt;span&gt;// table, id to map from, id to map to&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;map( 'user_attrib', 'user_id', 'user_id' );&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;you will automaticly map those attributes when you get your user info.  so now, when you get your user info, the mapped data comes with it.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;$me = $c-&gt;user(1);&lt;br /&gt;echo $me-&gt;attr('username')." is:\n";&lt;br /&gt;foreach($me-&gt;getMapChildren() as $key =&gt; $val ){&lt;br /&gt;echo $val-&gt;attr('attributeName')."\n";&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;This would output something like this:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Tendrid is:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;happy&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;duck-like&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;etc...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It only outputs the attributes that match the current users user_id in the attributes table.  And yes, it scales.  Even if you get all of the users in the database (say you have 1000), that only requires one sql statment.  Once it retrieves all of the users, it then performs a second SQL statment based on a list of all of the ids.  So even with 1000 users, all having 50 unique attributes, you only have 2 sql statments.  Also, if the attribute already exisist in memory (based on the unique id of the class.  In this case being attrib_id) then the framework does not include that in the SQL query, instead it just maps a reference to the attribute already existing in memory.  This type of read-check occures on all objects. ie:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;$c-&gt;user(1);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;$c-&gt;user(1);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Would only result in one SQL statment.&lt;br /&gt;&lt;br /&gt;On top of all this sweet stuff, the framework also has an extended layout class which has a template system based on sprintf expressions.  Once you define the objects html template, you can simply do this:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;$us = $c-&gt;user-&gt;getAll();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;foreach( $us as $key =&gt; $val ){&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    $val-&gt;draw();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This will pass the objects current parameters into the template, and output the object formatted in the HTML directly to the browser.  The draw method even supports custom sub templates (such as different sizes) all of which are indavidaly set.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;$us = $c-&gt;user-&gt;getAll();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;foreach( $us as $key =&gt; $val ){&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    $val-&gt;draw(SMALL);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;     $val-&gt;draw(MEDIUM);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;     $val-&gt;draw(LARGE);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;There are a lot more features to this framework, and i will go over them in detail in the future.  The framework will eventually live at hypogeum.net but there isn't much there now :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8704831762200248869-7442953265076332062?l=tendrid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tendrid.blogspot.com/feeds/7442953265076332062/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tendrid.blogspot.com/2009/07/hypogeum-php-framework.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8704831762200248869/posts/default/7442953265076332062'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8704831762200248869/posts/default/7442953265076332062'/><link rel='alternate' type='text/html' href='http://tendrid.blogspot.com/2009/07/hypogeum-php-framework.html' title='The Hypogeum PHP Framework'/><author><name>Tendrid</name><uri>http://www.blogger.com/profile/15436864373884438896</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WjoMQ5NWf98/SkkR9wk_hFI/AAAAAAAAABQ/v2uZCortTr0/S220/face.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8704831762200248869.post-3117880700038102735</id><published>2009-07-15T16:37:00.004-04:00</published><updated>2009-07-15T16:59:36.279-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rockets'/><category scheme='http://www.blogger.com/atom/ns#' term='peoplebacon'/><title type='text'>MORE PARTS!!!</title><content type='html'>We just put in another order to sparkfun for our upcoming rocket build out:&lt;br /&gt;&lt;br /&gt;&lt;a href="https://www.sparkfun.com/commerce/product_info.php?products_id=9275"&gt;DC to DC converter module 6A&lt;/a&gt; (Count: 4)&lt;br /&gt;&lt;a href="https://www.sparkfun.com/commerce/product_info.php?products_id=9087"&gt;XBee Pro 900 XSC RPSMA&lt;/a&gt; (Count: 2)&lt;br /&gt;&lt;a href="https://www.sparkfun.com/commerce/product_info.php?products_id=8613"&gt;JST Vertical Connector&lt;/a&gt; (Count: 10)&lt;br /&gt;&lt;a href="https://www.sparkfun.com/commerce/product_info.php?products_id=8936"&gt;GPS Micro-Mini&lt;/a&gt; (Count: 1)&lt;br /&gt;&lt;a href="https://www.sparkfun.com/commerce/product_info.php?products_id=115"&gt;Break Away Female Headers&lt;/a&gt; (Count: 10)&lt;br /&gt;&lt;a href="https://www.sparkfun.com/commerce/product_info.php?products_id=501"&gt;IC Hook Test Leads&lt;/a&gt; (Count: 2)&lt;br /&gt;&lt;a href="https://www.sparkfun.com/commerce/product_info.php?products_id=8161"&gt;Breakout Board for MEMs Barometric Pressure Sensor - SCP1000&lt;/a&gt; (Count: 1)&lt;br /&gt;&lt;a href="https://www.sparkfun.com/commerce/product_info.php?products_id=116"&gt;Break Away Headers - Straight&lt;/a&gt; (Count: 10)&lt;br /&gt;&lt;a href="https://www.sparkfun.com/commerce/product_info.php?products_id=525"&gt;I2C EEPROM - 256kbit&lt;/a&gt; (Count: 10)&lt;br /&gt;&lt;a href="https://www.sparkfun.com/commerce/product_info.php?products_id=8257"&gt;Humidity and Temperature Sensor - SHT15 Breakout&lt;/a&gt; (Count: 1)&lt;br /&gt;&lt;a href="https://www.sparkfun.com/commerce/product_info.php?products_id=9233"&gt;SMA Male to RPSMA Female Adapter&lt;/a&gt; (Count: 2)&lt;br /&gt;&lt;a href="https://www.sparkfun.com/commerce/product_info.php?products_id=9143"&gt;900MHz Duck Antenna RP-SMA&lt;/a&gt; (Count: 2)&lt;br /&gt;&lt;a href="https://www.sparkfun.com/commerce/product_info.php?products_id=8272"&gt;2mm 10pin XBee Socket&lt;/a&gt; (Count: 8)&lt;br /&gt;&lt;a href="https://www.sparkfun.com/commerce/product_info.php?products_id=8276"&gt;Breakout Board for XBee Module&lt;/a&gt; (Count: 2)&lt;br /&gt;&lt;a href="https://www.sparkfun.com/commerce/product_info.php?products_id=8925"&gt;SCP1000 Gasket&lt;/a&gt; (Count: 1)&lt;br /&gt;&lt;br /&gt;Some of these things will also be used for the balloon launch that we plan on being a part of later this fall.  More to come on both projects as they unfold.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8704831762200248869-3117880700038102735?l=tendrid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tendrid.blogspot.com/feeds/3117880700038102735/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tendrid.blogspot.com/2009/07/more-parts.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8704831762200248869/posts/default/3117880700038102735'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8704831762200248869/posts/default/3117880700038102735'/><link rel='alternate' type='text/html' href='http://tendrid.blogspot.com/2009/07/more-parts.html' title='MORE PARTS!!!'/><author><name>Tendrid</name><uri>http://www.blogger.com/profile/15436864373884438896</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WjoMQ5NWf98/SkkR9wk_hFI/AAAAAAAAABQ/v2uZCortTr0/S220/face.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8704831762200248869.post-8535584175726740964</id><published>2009-07-06T12:23:00.005-04:00</published><updated>2009-07-06T13:23:48.732-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='peoplebacon'/><category scheme='http://www.blogger.com/atom/ns#' term='lyfe'/><title type='text'>New updates to Lyfe.net</title><content type='html'>I've implemented a few new features in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Lyfe&lt;/span&gt;.net over the past few weeks, but I haven't really had time to sit down and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;clickty&lt;/span&gt;-clack out the hows and whys on my keyboard (until now).&lt;br /&gt;&lt;br /&gt;Short &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;Urls&lt;/span&gt; - We &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;implemented&lt;/span&gt; a base 64 (as in a base 64 symbol set, not the encoding mime type), so now &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;urls&lt;/span&gt; are weird looking and like 2-3 characters shorter!  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;Thats&lt;/span&gt; how you can tell they're fancy.  We shorten the URLs by working with a larger symbol set (0123456789&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz&lt;/span&gt;-_) instead of the expected base ten set (0123456789).  This makes a number like 16000000 boiled down to z2G0.  We do this for the sake of twitter, and other social networks where text space is vital.  We have a test example script &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_7"&gt;available&lt;/span&gt; &lt;a href="http://lyfe.net/example/base64.php"&gt;here&lt;/a&gt;.  Special thanks to Jeff for sassing up the code with bit tricks.&lt;br /&gt;&lt;br /&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;Habla&lt;/span&gt; chat - I &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_9"&gt;implemented&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;Habla&lt;/span&gt; for those of you who have questions.  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;Im&lt;/span&gt; &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_12"&gt;usually&lt;/span&gt; &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_13"&gt;available&lt;/span&gt; at during the day.  Just look for the chat box in the bottom right corner of the screen on &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;Lyfe&lt;/span&gt;.net&lt;br /&gt;&lt;br /&gt;Social network - Auto posting to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;facebook&lt;/span&gt; and twitter is fully &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_16"&gt;implemented&lt;/span&gt;,  however there are a couple of bugs with the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;signup&lt;/span&gt; i need to work out (when i get the time).&lt;br /&gt;&lt;br /&gt;I will have more to update on &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;Lyfe&lt;/span&gt; when i get some time,  &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_19"&gt;Unfortunately&lt;/span&gt; other projects (such as &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;peoplebacon&lt;/span&gt;.com) are taking up a great deal of my time.  Oh, and wedding planning has a &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_21"&gt;tendency&lt;/span&gt; to monopolize time as well.&lt;br /&gt;&lt;br /&gt;-Jim&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8704831762200248869-8535584175726740964?l=tendrid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tendrid.blogspot.com/feeds/8535584175726740964/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tendrid.blogspot.com/2009/07/new-updates-to-lyfenet.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8704831762200248869/posts/default/8535584175726740964'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8704831762200248869/posts/default/8535584175726740964'/><link rel='alternate' type='text/html' href='http://tendrid.blogspot.com/2009/07/new-updates-to-lyfenet.html' title='New updates to Lyfe.net'/><author><name>Tendrid</name><uri>http://www.blogger.com/profile/15436864373884438896</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WjoMQ5NWf98/SkkR9wk_hFI/AAAAAAAAABQ/v2uZCortTr0/S220/face.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8704831762200248869.post-7133880600423492437</id><published>2009-07-01T11:29:00.002-04:00</published><updated>2009-07-01T12:31:49.045-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='peoplebacon'/><category scheme='http://www.blogger.com/atom/ns#' term='near space balloon'/><title type='text'>Quick ignite notes:</title><content type='html'>Here is a quick list i am throwing together to further inform the visitors of ignite about what it was i was muttering on about up on stage.&lt;br /&gt;&lt;br /&gt;The radio I mentioned (which we will be using for our next launch) is an &lt;a href="http://www.sparkfun.com/commerce/product_info.php?products_id=9087"&gt;XBee Pro&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The GPS I featured in my slide was the &lt;a href="http://www.sparkfun.com/commerce/product_info.php?products_id=9060"&gt;Venus634FLPx&lt;/a&gt;, but you may want to go with &lt;a href="http://www.sparkfun.com/commerce/product_info.php?products_id=9171"&gt;this product&lt;/a&gt; because it is much easier to work with, plus it stores your GPS data onboard (so no need to record the data on your ground station).&lt;br /&gt;&lt;br /&gt;I featured 4 cameras all of which had the time laps feature, but was told after my speech that the now famous &lt;a href="http://chdk.wikia.com/wiki/CHDK"&gt;cannon hacks&lt;/a&gt; can work on a broad range of cameras, and one of the features they boast is time lapse photography.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8704831762200248869-7133880600423492437?l=tendrid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tendrid.blogspot.com/feeds/7133880600423492437/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tendrid.blogspot.com/2009/07/quick-ignite-notes.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8704831762200248869/posts/default/7133880600423492437'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8704831762200248869/posts/default/7133880600423492437'/><link rel='alternate' type='text/html' href='http://tendrid.blogspot.com/2009/07/quick-ignite-notes.html' title='Quick ignite notes:'/><author><name>Tendrid</name><uri>http://www.blogger.com/profile/15436864373884438896</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WjoMQ5NWf98/SkkR9wk_hFI/AAAAAAAAABQ/v2uZCortTr0/S220/face.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8704831762200248869.post-3769396136632747838</id><published>2009-06-29T15:09:00.000-04:00</published><updated>2009-06-29T15:11:12.257-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='peoplebacon'/><title type='text'>Ignite - Ann Arbor</title><content type='html'>Five minutes, 20 slides. What would you say? &lt;p&gt;If you had five minutes on stage what would you say? What if you only got 20 slides and they rotated automatically after 15 seconds? Around the world geeks have been putting together Ignite nights to show their answers.&lt;/p&gt; &lt;p&gt;Ignite was started in Seattle in 2006 by Brady Forrest and Bre Pettis. Since then 100s of 5 minute talks have been given across the world. There are thriving Ignite communities in Seattle, Portland, Paris, NYC and now Ann Arbor.&lt;/p&gt; &lt;p&gt;We invite you to attend the first ever, Ignite Ann Arbor event.  You may learn a thing or two, or perhaps even make some good networking contacts.&lt;/p&gt; &lt;p&gt;To learn more about this event, head over to &lt;a href="http://www.igniteannarbor.com/" target="_blank"&gt;http://www.igniteannarbor.com&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Please RSVP at: &lt;a href="http://igniteannarbor.eventbrite.com/" target="_blank"&gt;http://igniteannarbor.eventbrite.com&lt;/a&gt; (Space is limited!)&lt;br /&gt;Twitter search term: &lt;a href="http://twitter.com/#search?q=%23ignitea2" target="_blank"&gt;#ignitea2&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8704831762200248869-3769396136632747838?l=tendrid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tendrid.blogspot.com/feeds/3769396136632747838/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tendrid.blogspot.com/2009/06/ignite-ann-arbor.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8704831762200248869/posts/default/3769396136632747838'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8704831762200248869/posts/default/3769396136632747838'/><link rel='alternate' type='text/html' href='http://tendrid.blogspot.com/2009/06/ignite-ann-arbor.html' title='Ignite - Ann Arbor'/><author><name>Tendrid</name><uri>http://www.blogger.com/profile/15436864373884438896</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WjoMQ5NWf98/SkkR9wk_hFI/AAAAAAAAABQ/v2uZCortTr0/S220/face.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8704831762200248869.post-4263005708075866136</id><published>2009-06-24T17:42:00.000-04:00</published><updated>2009-06-24T17:43:43.052-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='peoplebacon'/><category scheme='http://www.blogger.com/atom/ns#' term='lyfe'/><title type='text'>How not to live a life of ultimate happiness</title><content type='html'>&lt;p&gt;Like a raging bull on steroids, i have blindly taken up the task of resurrecting a project of mine, long forgotten by the user base it once had. Lyfe.net was once a very involved vice of mine that monopolized my time to such a degree that i lost sleep due to hallucinations about the project going awry. I will use this blog to illustrate a great deal of mistakes i made in the past, and a personal road map as not to repeat them.&lt;/p&gt; &lt;p&gt;Welcome to my self inflicted blight.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Entry:&lt;/strong&gt;&lt;br /&gt;My journey started long ago, sometime in January of 2004. I had just purchased my first camera phone (a Nokia 3650; the first camera phone released in North America) and wanted nothing more than to send images directly to my already established blog of daily insanity (neverendingdoom.com). Long story short, i wrote some code, and got it working. Soon after, my blog readers expressed interest in a service so that they could do the same. After some more code pounding, Lyfe.net was launched some time in early 2006. Users could sign up, and send pictures directly to Lyfe.net, or Myspace.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Decay:&lt;/strong&gt;&lt;br /&gt;As Lyfe.net became more popular, i began to create new features. I was under the impression that people wanted functionality out of a service, (which i now know to be total bullshit. want proof? how many assholes gave a green beer to each other, or threw a snowball at their friends on Facebook vs the people that actually use any of the advanced applications? the numbers are staggering) The first feature i wrote in was a survey application that allowed the user to create a series of questions, then put the survey on their Myspace profile. Once you took the survey, it would save all the answers and show you who your answers were most like. This application failed. In my opinion, it was totally bad ass. I think 6 people created surveys, and a total of 15 people took them. A total flop. So then i moved on to creating a game out of the picture aspect of the website. There was a weekly scavenger hunt to be launched that anyone could join. I was to design the first one, and the person who found all the items in my list and sent them to Lyfe.net first won. Their prize was the ability to design the next scavenger hunt. It was a great idea (and it may even work today) but nobody jumped on board. I equate this mostly to the fact that camera phones were still very early, and people commonly forgot they had the option of taking pictures with their phone. My next goal was to work video support into Lyfe.net, but when i asked my user base for videos to test with, i only received one. I ceased all development on the project the next day.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Resolve:&lt;/strong&gt;&lt;br /&gt;About a year ago i came up with a fancy idea to implement groups into Lyfe.net. I planned out the implementation, but was pulled away for another project. But now, 5 years after my initial code was written, i have started development yet again on the Lyfe.net project. I have wrangled the other two unfortunate souls i commonly called on for help with the project to put some time and effort into resurrecting this project. Perhaps Lyfe.net was before its time. Perhaps the idea is a total failure and I’m a jackass for not letting it die off, but everyone needs a hobby.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8704831762200248869-4263005708075866136?l=tendrid.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tendrid.blogspot.com/feeds/4263005708075866136/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tendrid.blogspot.com/2009/06/how-not-to-live-life-of-ultimate.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8704831762200248869/posts/default/4263005708075866136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8704831762200248869/posts/default/4263005708075866136'/><link rel='alternate' type='text/html' href='http://tendrid.blogspot.com/2009/06/how-not-to-live-life-of-ultimate.html' title='How not to live a life of ultimate happiness'/><author><name>Tendrid</name><uri>http://www.blogger.com/profile/15436864373884438896</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_WjoMQ5NWf98/SkkR9wk_hFI/AAAAAAAAABQ/v2uZCortTr0/S220/face.jpg'/></author><thr:total>0</thr:total></entry></feed>
