<?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-6542328170627954510</id><updated>2011-12-23T20:09:01.210-08:00</updated><category term='itm198'/><category term='paper'/><category term='Actuate'/><category term='shindig'/><category term='Reports'/><category term='Credibility'/><category term='QA'/><category term='outline'/><category term='Microstrategy'/><category term='Amazon'/><category term='Performance Tuning'/><category term='XML'/><category term='ggu'/><category term='API'/><category term='Performance Testing'/><category term='Scalability Testing'/><category term='recommendation engine'/><category term='opensocial'/><category term='open social'/><category term='Testing'/><category term='Advertising API'/><category term='Topics'/><category term='Reddit'/><category term='twitter'/><category term='Load Testing'/><category term='BI'/><category term='Topic'/><category term='QA Engineering'/><category term='business idea'/><category term='JDOM'/><category term='review'/><category term='papers'/><category term='Cognos'/><category term='Quality Assurance'/><title type='text'>Dan's Quality Assurance Blog</title><subtitle type='html'>Writing about the QA tools I'm working on, and archiving the wisdom I've gained</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://id10tsavant.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6542328170627954510/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://id10tsavant.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>TheWarhammerCheapskate</name><uri>http://www.blogger.com/profile/05877189088721854364</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>12</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6542328170627954510.post-9183482666533370814</id><published>2010-10-13T22:04:00.000-07:00</published><updated>2010-10-14T16:11:01.042-07:00</updated><title type='text'>Software I want to write in the near future</title><content type='html'>&lt;p&gt;Software I want to write in the near future&lt;/p&gt;&lt;ul&gt;&lt;li&gt;A Link Checker that Actually works- Password Support, Regex for avoiding and inclusion, multiple threads for speed, the ability to "Map" a site&lt;/li&gt;&lt;li&gt;An epub to MP3 Converter&lt;/li&gt;&lt;li&gt;a cyclical stock analyzer&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/6542328170627954510-9183482666533370814?l=id10tsavant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://id10tsavant.blogspot.com/feeds/9183482666533370814/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://id10tsavant.blogspot.com/2010/10/software-i-want-to-write-in-near-future.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6542328170627954510/posts/default/9183482666533370814'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6542328170627954510/posts/default/9183482666533370814'/><link rel='alternate' type='text/html' href='http://id10tsavant.blogspot.com/2010/10/software-i-want-to-write-in-near-future.html' title='Software I want to write in the near future'/><author><name>TheWarhammerCheapskate</name><uri>http://www.blogger.com/profile/05877189088721854364</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6542328170627954510.post-8266577008155513568</id><published>2010-10-01T14:23:00.000-07:00</published><updated>2010-10-01T14:31:35.934-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='QA Engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='Scalability Testing'/><category scheme='http://www.blogger.com/atom/ns#' term='Performance Testing'/><category scheme='http://www.blogger.com/atom/ns#' term='Load Testing'/><category scheme='http://www.blogger.com/atom/ns#' term='Performance Tuning'/><title type='text'>Performance Testing Basics</title><content type='html'>&lt;p class="ecxMsoNormal"&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt; &lt;/span&gt;The most important  thing to remember is that you are not testing an application…you are testing a  system. I mean system in two senses of the word. First, modern applications  typically run on more than one server: For example: the UI, Billing,  Administration/Customer Service components of an “Application” are generally  miniature apps in their own right that have to work together. Second, even a set  of components is deployed into some kind of infrastructure that they will then  be dependent on for Data (DB, SOA), Network (SMTP, HTTP, Media Translation) or  other (Load Balancing) services. Because of the distributed nature of  applications it is generally not enough to simply test the front end component  and turn the problem over to development when performance is dismal. Instead a  good performance tester must be involved in the development process from the  concept stage on. So instead of writing about what a “Team Player” I am, in my  cover letter, I decided that I would share my process for conducting performance  tests with you.&lt;/p&gt; &lt;p class="ecxMsoNormal"&gt; &lt;/p&gt; &lt;p class="ecxMsoNormal"&gt; &lt;/p&gt; &lt;p class="ecxMsoNormal"&gt;Design Phase:&lt;/p&gt; &lt;ul type="disc"&gt;&lt;li class="ecxMsoNormal"&gt;Identify the physical architecture and internal    integration points to be used in the &lt;span&gt; &lt;/span&gt;application. Use this    information to determine potential bottlenecks when it comes to performance,    Scalability and Stability tests.    &lt;/li&gt;&lt;li class="ecxMsoNormal"&gt;Identify the external (to the system) services that the    application under test uses- i.e. what Web Services, Data Bases, Media    Devices, Firewalls… will the system need to integrate with, and are they    available in QA and capable of handling a performance test (if not what    resources do you need).   &lt;/li&gt;&lt;li class="ecxMsoNormal"&gt;Identify artificial bottlenecks in the test    environment: Is one machine a Pentium II with 256MB Ram…while another machine    is a Quad Core with 6 Gigs of Ram using a SAN? If so,&lt;span&gt;  &lt;/span&gt;and    no hardware upgrades are available, then the physical layout of the system    under test will need to planned so that the most resource intensive components    are put on the strongest machines   &lt;/li&gt;&lt;li class="ecxMsoNormal"&gt;Negotiate expectations with management/other teams as    to what tests can, cannot, should and should not be done (and note there will    be some tests that should be done, but cannot be done due to Hardware    Limitations). Conflicts can often be resolved at the management level, by    borrowing, renting Hardware otherwise unavailable.   &lt;/li&gt;&lt;li class="ecxMsoNormal"&gt;Design and have written “test cases” for the test in    general these will fall into 3 (maybe 4 categories)   &lt;ul type="circle"&gt;&lt;li class="ecxMsoNormal"&gt;Performance tests- How does the system perform under      normal load over a medium period of time (1-2 Hours)     &lt;/li&gt;&lt;li class="ecxMsoNormal"&gt;Scalability Tests- How does the system scale as load      increases (i.e. if I add a UI server is the system capable of handling twice      as many users or does the system crash because the billing server can’t      handle the additional users) Note, this type of test is often called and      bottleneck test     &lt;/li&gt;&lt;li class="ecxMsoNormal"&gt;Stability Tests- How long can a system stay up under      normal loads without crashing. Also, does system release resources.     &lt;/li&gt;&lt;li class="ecxMsoNormal"&gt;Stress tests- intentionally overload servers, look      for dropped connections, data loss, disk corruption…&lt;/li&gt;&lt;/ul&gt;   &lt;/li&gt;&lt;li class="ecxMsoNormal"&gt;Establish expected minimum criteria. Sometimes criteria    will simply be no regressions from previous results, but often they will be    quite explicit   &lt;ul type="circle"&gt;&lt;li class="ecxMsoNormal"&gt;X number of concurrent users with mean transaction      time of Y and Mode time of Z and less then percentage A transactions having      an error     &lt;/li&gt;&lt;li class="ecxMsoNormal"&gt;Uptime/Stability- X Hours without reboot with Y      Maximum Errors     &lt;/li&gt;&lt;li class="ecxMsoNormal"&gt;Billing Server Must Support 8 UI Servers&lt;/li&gt;&lt;/ul&gt;   &lt;/li&gt;&lt;li class="ecxMsoNormal"&gt;Agree on a format for test results   &lt;/li&gt;&lt;li class="ecxMsoNormal"&gt;Testing components individually- Often, if there is    insufficient hardware to test scalability properly individual components will    have to be tested individually to see if they can handle loads higher than    generated by the baseline system. (i.e. a Monitoring system might need to    monitor 100 servers….but QA may not have 100 servers available)    &lt;/li&gt;&lt;li class="ecxMsoNormal"&gt;Write test scripts as needed (Load Runner, Silk    Performer, Custom Client…)   &lt;/li&gt;&lt;li class="ecxMsoNormal"&gt;Write Monitoring Scripts (Windows Performance Monitor    profiles, Shell Scripts   &lt;/li&gt;&lt;li class="ecxMsoNormal"&gt;Talk to Admins, DBAs to get initial OS, DB, SOA, App    Server tuning parameters&lt;/li&gt;&lt;/ul&gt; &lt;p class="ecxMsoNormal"&gt; &lt;/p&gt; &lt;p class="ecxMsoNormal"&gt;Execution Phase:&lt;/p&gt; &lt;ul type="disc"&gt;&lt;li class="ecxMsoNormal"&gt;Initial Round- Run performance tests only, any basic    performance failures should be filled as Sev 1 bugs immediately   &lt;/li&gt;&lt;li class="ecxMsoNormal"&gt;Note areas were system uses resources unexpectedly    (i.e. memory allocation keeps increasing, HD usage more than expected ….)   &lt;/li&gt;&lt;li class="ecxMsoNormal"&gt;Use initial testing data Dev, DBA, Admin feedback for    performance tuning   &lt;/li&gt;&lt;li class="ecxMsoNormal"&gt;As performance tests return within appropriate    tolerences…start running stability tests    &lt;/li&gt;&lt;li class="ecxMsoNormal"&gt;Use data gathered to tune the system and to retest    after, between performance tests   &lt;/li&gt;&lt;li class="ecxMsoNormal"&gt;Run component/scalability tests   &lt;/li&gt;&lt;li class="ecxMsoNormal"&gt;Run Stress tests (if needed)   &lt;/li&gt;&lt;li class="ecxMsoNormal"&gt;Report on tests as they come in, and file bugs (as    tests complete)&lt;/li&gt;&lt;/ul&gt; &lt;p class="ecxMsoNormal"&gt; &lt;/p&gt; &lt;p class="ecxMsoNormal"&gt;Interpreting Tuning Data&lt;/p&gt; &lt;ul type="disc"&gt;&lt;li class="ecxMsoNormal"&gt;It is important what and where higher than expected    resource usage is occurring (UI, Database Server, Other Service (Billing,    Messaging…) and there are a million different things that can be tuned, below    is a summary of some common ones I have encountered:   &lt;ul type="circle"&gt;&lt;li class="ecxMsoNormal"&gt;OS Level     &lt;ul type="square"&gt;&lt;li class="ecxMsoNormal"&gt;Max Number of Threads       &lt;/li&gt;&lt;li class="ecxMsoNormal"&gt;Priority Level Of App Server       &lt;/li&gt;&lt;li class="ecxMsoNormal"&gt;Cleanliness of the system (i.e. are there multiple        big apps running on a server when there shouldn’t be)       &lt;/li&gt;&lt;li class="ecxMsoNormal"&gt;TCP Settings       &lt;/li&gt;&lt;li class="ecxMsoNormal"&gt;Monitoring (including virus)    software&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p class="ecxMsoNormal" style="margin-left: 1.25in;"&gt; &lt;/p&gt; &lt;ul type="disc"&gt;&lt;ul type="circle"&gt;&lt;li class="ecxMsoNormal"&gt;IIS/J2EE Server Levels     &lt;ul type="square"&gt;&lt;li class="ecxMsoNormal"&gt;Connection Pools       &lt;/li&gt;&lt;li class="ecxMsoNormal"&gt;Logging Levels       &lt;/li&gt;&lt;li class="ecxMsoNormal"&gt;(Other Disk writes)       &lt;/li&gt;&lt;li class="ecxMsoNormal"&gt;Code Specific Problems        &lt;/li&gt;&lt;li class="ecxMsoNormal"&gt;Network Problems       &lt;/li&gt;&lt;li class="ecxMsoNormal"&gt;TCP Keep Alive       &lt;/li&gt;&lt;li class="ecxMsoNormal"&gt;Garbage Collection Parameters       &lt;/li&gt;&lt;li class="ecxMsoNormal"&gt;Memory Usage Model       &lt;/li&gt;&lt;li class="ecxMsoNormal"&gt;Inefficient Buffering&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt; &lt;p class="ecxMsoNormal" style="margin-left: 0.75in;"&gt; &lt;/p&gt; &lt;ul type="disc"&gt;&lt;ul type="circle"&gt;&lt;li class="ecxMsoNormal"&gt;Database Specific Parameters:     &lt;ul type="square"&gt;&lt;li class="ecxMsoNormal"&gt;Isolation Levels       &lt;/li&gt;&lt;li class="ecxMsoNormal"&gt;Index Model for Key Tables       &lt;/li&gt;&lt;li class="ecxMsoNormal"&gt;Lookup Table Structure       &lt;/li&gt;&lt;li class="ecxMsoNormal"&gt;Transaction/Rollback Management       &lt;/li&gt;&lt;li class="ecxMsoNormal"&gt;Reads vs. Writes&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li class="ecxMsoNormal"&gt;The tuning parameters above are used in conjunction    with test data gathered during testing so if problems occur on the database    server then the items for DB tuning can be tried.&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/6542328170627954510-8266577008155513568?l=id10tsavant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://id10tsavant.blogspot.com/feeds/8266577008155513568/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://id10tsavant.blogspot.com/2010/10/performance-testing-basics.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6542328170627954510/posts/default/8266577008155513568'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6542328170627954510/posts/default/8266577008155513568'/><link rel='alternate' type='text/html' href='http://id10tsavant.blogspot.com/2010/10/performance-testing-basics.html' title='Performance Testing Basics'/><author><name>TheWarhammerCheapskate</name><uri>http://www.blogger.com/profile/05877189088721854364</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6542328170627954510.post-9130576519769658336</id><published>2010-09-24T21:34:00.000-07:00</published><updated>2010-09-28T14:18:43.465-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='QA'/><category scheme='http://www.blogger.com/atom/ns#' term='Quality Assurance'/><category scheme='http://www.blogger.com/atom/ns#' term='Testing'/><category scheme='http://www.blogger.com/atom/ns#' term='Reports'/><category scheme='http://www.blogger.com/atom/ns#' term='Actuate'/><category scheme='http://www.blogger.com/atom/ns#' term='BI'/><category scheme='http://www.blogger.com/atom/ns#' term='Cognos'/><category scheme='http://www.blogger.com/atom/ns#' term='Microstrategy'/><title type='text'>What I Know About Testing Reports</title><content type='html'>About half my career has been spent working on reports in one way or another including stints at Actuate corporation and Visa's BI department&lt;br /&gt;&lt;br /&gt;I recently wrote a small piece on testing database reports as part of a job application posting it here for future reference:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; * Define the Data (etl or static)&lt;br /&gt; * Test The Prompts&lt;br /&gt; * Test The Filters (the data)&lt;br /&gt; * Test the report&lt;br /&gt; * Test The Dimension Tables &amp;amp; cross Validate&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Define (create) the data:&lt;br /&gt;The data set needs to contain a broad enough range of data to test the report, this means:&lt;br /&gt;&lt;br /&gt; * All attributes values in defined value fields (i.e. reason code, merchant category code) should be in the fact table.&lt;br /&gt; * Metrics need to range from the smallest realistic values to the highest (i.e. if the data will have values in the billions and the thousands both should be represented as it may reveal problems with graphs and rounding errors).&lt;br /&gt; * For fact table All possible hierarchy's have to be represented (i.e. If a Business may have 3 levels of child business those possibilities should be represented)&lt;br /&gt; * All possible relationships should be represented (i.e. there may be more than hierarchical relationships represented- Peers, Vendors, Partners...&lt;br /&gt; * Dimension Tables are updated and correct&lt;br /&gt; * All fact tables are populated so that their likely levels of grouping is represented several times (i.e. if you are testing a report for checking what was bough in a week the fact table should have data for several different weeks, several different suppliers and several different categories of items FOR EACH SUPPLIER)&lt;br /&gt; * There is sufficient data to test all the filters (in terms of what to exclude what to include&lt;br /&gt; * The data can either be generated or created manually but there should be a way to wipe, restore and modify the data&lt;br /&gt; * If the DB has aggregates do the aggregates match the details (i.e. if aggregates are for January data and details are for February that will not work well)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Test The Prompts:&lt;br /&gt;&lt;br /&gt; * Do the prompts cover the parameters defined in the spec&lt;br /&gt; * Do the attributes the business wants to be able to filter on appear in the filters&lt;br /&gt; * Do any of the attributes covered in the prompts impact performance (for instance filtering on a "comments attribute"  could slow down the report because it can have as many values as there are rows in the fact table).&lt;br /&gt; * Is data security enforced in the prompts, for instance can a supplier view the data of their competitors by typing in a competitor's supplier id.&lt;br /&gt; * Are the expected values in each prompt (if static)&lt;br /&gt; * Are the prompts updated when a dimension table is updated (if dynamic)&lt;br /&gt; * If prompt is based on another prompt, is the relationship enforced&lt;br /&gt; * For report builders are all the expected column options present&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Test the Filters(rows):&lt;br /&gt;&lt;br /&gt; * Do the built in filters keep out the data they are supposed to keep out (write SQL for what is expected to keep out and compare data sets)&lt;br /&gt; * Do the built in filters let in ALL the data they are supposed to let (write SQL for what is Expected to let in and compare data sets)&lt;br /&gt; * Keep in + Keep out rows should sum to the row count of the fact table&lt;br /&gt; * Does each Prompt work correctly (write SQL for what should be filtered out/in and compare to report)&lt;br /&gt; * Note that filters, effects may not be revealed to QA team in which case these tests need to be derived from the business rules&lt;br /&gt; * Is data security enforced (i.e. if reports are by region, US region users should not see Western Europe data)&lt;br /&gt; * Check for metrics that look incorrect due to rounding errors&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Test the report (columns):&lt;br /&gt;&lt;br /&gt; * Are non-aggregable metrics treated correctly (counts are notorius for this)&lt;br /&gt; * Are all the expected columns present and in the right order&lt;br /&gt; * Are the grouping levels correct&lt;br /&gt; * do the drill downs drill down to the composition of the parent&lt;br /&gt; * Are the calculated fields calculated correctly (this can also reveal ETL problems where the report just passes through data that is incorrectly processed)&lt;br /&gt; * Are any graphs out of scale (are some graphs useless because because they show widely disparate ranges)&lt;br /&gt; * Is the font/look and feel correct&lt;br /&gt; * Are the copyright/disclaimers correct/present&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Test The Dimension Tables &amp;amp; Cross Validate:&lt;br /&gt;&lt;br /&gt; * Take the query used for the report, and gradually remove a table at a time from the joins if the amount of records increases it means that there is a value in the fact table that does not exist in the dimension table&lt;br /&gt; * Do the same metrics agree in different reports (i.e. Revenue for Q2 1999 for Business X should be the same in a reports, unless it is defined differently)&lt;br /&gt; * Are aggregates and detail reports consistent&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6542328170627954510-9130576519769658336?l=id10tsavant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://id10tsavant.blogspot.com/feeds/9130576519769658336/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://id10tsavant.blogspot.com/2010/09/what-i-know-about-testing-reports.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6542328170627954510/posts/default/9130576519769658336'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6542328170627954510/posts/default/9130576519769658336'/><link rel='alternate' type='text/html' href='http://id10tsavant.blogspot.com/2010/09/what-i-know-about-testing-reports.html' title='What I Know About Testing Reports'/><author><name>TheWarhammerCheapskate</name><uri>http://www.blogger.com/profile/05877189088721854364</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6542328170627954510.post-7793317821691236382</id><published>2009-07-09T11:56:00.000-07:00</published><updated>2009-07-12T17:37:12.167-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='API'/><category scheme='http://www.blogger.com/atom/ns#' term='Advertising API'/><category scheme='http://www.blogger.com/atom/ns#' term='XML'/><category scheme='http://www.blogger.com/atom/ns#' term='Amazon'/><category scheme='http://www.blogger.com/atom/ns#' term='JDOM'/><title type='text'>A Simple example for working using JDOM as a client for Amazon Advertising API</title><content type='html'>Well the paper is done, and I will post my comments in a while, but for now... a simple example for working with jdom... note that it wont work as posted, because I am taking out the Access Key, also it uses a a custom class called Review which I'll post separately.&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="Cpp"&gt;&lt;br /&gt;import java.net.URL;&lt;br /&gt;import com.sun.syndication.io.XmlReader;&lt;br /&gt;import org.jdom.Document;&lt;br /&gt;import org.jdom.Element;&lt;br /&gt;import org.jdom.input.SAXBuilder;&lt;br /&gt;import java.util.*;&lt;br /&gt;import java.io.*;&lt;br /&gt;import org.jdom.filter.*;&lt;br /&gt;&lt;br /&gt;public class FeedParserByProduct &lt;br /&gt;{&lt;br /&gt;	   public static void main(String[] args) throws Exception &lt;br /&gt;	   {&lt;br /&gt;		   File f = new File("c:\\temp\\testdata"+System.currentTimeMillis()+".txt");&lt;br /&gt;		   f.createNewFile();&lt;br /&gt;		  &lt;br /&gt;		   FileWriter fw=new FileWriter(f);&lt;br /&gt;		   //List&lt;Review&gt;lRev=getReviewData("B0013O98SW","Windows-OS-Operating System");&lt;br /&gt;		   //List&lt;Review&gt;lRev=getReviewData("B00022PTT8","Windows-OS-Operating System");&lt;br /&gt;		   //List&lt;Review&gt;lRev=getReviewData("B000KRG6P6","Wolf-Shirt");&lt;br /&gt;		   //List&lt;Review&gt;lRev=getReviewData("B00193QFFG","Monitor-3star");&lt;br /&gt;		   List&lt;Review&gt;lRev=getReviewData(args[0],args[1]);&lt;br /&gt;		   &lt;br /&gt;		   appendReviewersDataToReviewData(lRev);&lt;br /&gt;		   fw.write(lRev.get(0).getRowHeaders()+"\r\n");&lt;br /&gt;		   for(int i=0;i&lt;lRev.size();i++)&lt;br /&gt;		   {&lt;br /&gt;			   fw.write(lRev.get(i).getRawDataRowFormat()+"\r\n");&lt;br /&gt;		   }&lt;br /&gt;		 System.out.println("Composite RealScore1 is:"+getMeanRealScore1Composite(lRev));&lt;br /&gt;		   //System.out.println("done");&lt;br /&gt;		 fw.flush(); &lt;br /&gt;		}&lt;br /&gt;	   &lt;br /&gt;	   public static double getMeanRealScore1Composite(List&lt;Review&gt; revs) throws Exception&lt;br /&gt;	   {&lt;br /&gt;		   double d=0;&lt;br /&gt;		   for(int i=0;i&lt;revs.size();i++)&lt;br /&gt;		   {&lt;br /&gt;			   d+=revs.get(i).getRealScore1();&lt;br /&gt;		   }&lt;br /&gt;		   return d/revs.size();&lt;br /&gt;		   &lt;br /&gt;		   &lt;br /&gt;	   }&lt;br /&gt;	   static void appendReviewersDataToReviewData(List&lt;Review&gt; revList)throws Exception&lt;br /&gt;	   {&lt;br /&gt;		   for (int i=0;i&lt;revList.size();i++)&lt;br /&gt;		   {&lt;br /&gt;			   Review r = revList.get(i);&lt;br /&gt;			   Document d =getReviewerData(r.ReviewerID);&lt;br /&gt;			   appendReviewerToReview(d,r);&lt;br /&gt;		   }&lt;br /&gt;	   }&lt;br /&gt;	   private static void appendReviewerToReview(Document d, Review r) &lt;br /&gt;	   {&lt;br /&gt;		   	  int runningStarTotal=0;&lt;br /&gt;		   	  int numberOfFives=0;&lt;br /&gt;		   	  int keyWordAppears=0;&lt;br /&gt;		   	  int totalHelpfulVotes=0;&lt;br /&gt;		   	  int totalVotes=0;&lt;br /&gt;		   	  int holder=0;&lt;br /&gt;	          Element e = d.getRootElement();&lt;br /&gt;	          ElementFilter ef = new ElementFilter( "Customers", null );         &lt;br /&gt;	          List el = e.getContent( ef );&lt;br /&gt;	          e=(Element)el.get(0);&lt;br /&gt;	          ef = new ElementFilter( "Customer", null );&lt;br /&gt;	          el = e.getContent( ef );&lt;br /&gt;	          e=(Element)el.get(0);&lt;br /&gt;	          &lt;br /&gt;	          ef = new ElementFilter( "CustomerReviews", null );&lt;br /&gt;	          el = e.getContent( ef );&lt;br /&gt;	          e=(Element)el.get(0);&lt;br /&gt;	          &lt;br /&gt;	          ef = new ElementFilter( "TotalReviews", null );&lt;br /&gt;	          el = e.getContent( ef );&lt;br /&gt;	          &lt;br /&gt;	          Element esub=null;&lt;br /&gt;	          esub=(Element)el.get(0);&lt;br /&gt;	          String sx =esub.getText();&lt;br /&gt;	          holder=Integer.parseInt(sx);&lt;br /&gt;	          r.reviewer_TotalReviews=holder;&lt;br /&gt;	          &lt;br /&gt;&lt;br /&gt;	          ef = new ElementFilter( "Review", null );&lt;br /&gt;	          el=e.getContent( ef );&lt;br /&gt;	          &lt;br /&gt;	           //System.out.println(el.size());&lt;br /&gt;	          for(int i=0;i&lt;el.size();i++)&lt;br /&gt;	          {&lt;br /&gt;	        	  esub=(Element)el.get(i);&lt;br /&gt;	        	  //get the rating&lt;br /&gt;	        	  ef=new ElementFilter( "Rating", null );&lt;br /&gt;	        	  el=esub.getContent(ef);	        	  &lt;br /&gt;	        	  holder=Integer.parseInt(((Element)el.get(0)).getText());&lt;br /&gt;	        	  runningStarTotal=runningStarTotal+holder;	        	  &lt;br /&gt;	        	  if(holder==5){numberOfFives +=1;}&lt;br /&gt;	        	  &lt;br /&gt;	        	  //get HelpfulVotes&lt;br /&gt;	        	  ef=new ElementFilter( "HelpfulVotes", null );&lt;br /&gt;	        	  el=esub.getContent(ef);	        	  &lt;br /&gt;	        	  holder=Integer.parseInt(((Element)el.get(0)).getText());&lt;br /&gt;	        	  totalHelpfulVotes=runningStarTotal+holder;&lt;br /&gt;	        	  &lt;br /&gt;	        	  //Get Total Votes&lt;br /&gt;	        	  ef=new ElementFilter( "TotalVotes", null );&lt;br /&gt;	        	  el=esub.getContent(ef);	        	  &lt;br /&gt;	        	  holder=Integer.parseInt(((Element)el.get(0)).getText());&lt;br /&gt;	        	  totalVotes=runningStarTotal+holder;	        	  	        	  &lt;br /&gt;	        	  //Check to see if any key words appear in review&lt;br /&gt;	        	  //deprecated as it seems that multiple reviews on the same subject can be good or bad&lt;br /&gt;	        	  &lt;br /&gt;	          }&lt;br /&gt;	          &lt;br /&gt;		   	  r.reviewer_TotalReviewPoints=runningStarTotal;&lt;br /&gt;		   	  r.reviewer_TotalFives=numberOfFives;&lt;br /&gt;		   	 //keyWordAppears=0;&lt;br /&gt;		   	  r.reviewer_HelpfulVotes= totalHelpfulVotes;&lt;br /&gt;		   	  r.reviewer_TotalVotes=totalVotes; &lt;br /&gt;	   }&lt;br /&gt;	   &lt;br /&gt;&lt;br /&gt;	   &lt;br /&gt;	   &lt;br /&gt;	   /**&lt;br /&gt;	    * &lt;br /&gt;	    * @param Reviews- Modefies review data list to enrich the profile&lt;br /&gt;	    */&lt;br /&gt;	   static Document getReviewerData(String ReviewerID) throws Exception&lt;br /&gt;	   {&lt;br /&gt;		   &lt;br /&gt;		   Document doc=getXMLDoc("http://ecs.amazonaws.com/onca/xml?" +&lt;br /&gt;			   "Service=AWSECommerceService&amp;" +&lt;br /&gt;			   "AWSAccessKeyId=AKIAJKIZAU3BXLEUC4DA&amp;" +&lt;br /&gt;			   "AssociateTag=dvshchyokin@hotmail.com&amp;" +&lt;br /&gt;			   "Operation=CustomerContentLookup&amp;" +&lt;br /&gt;			   "CustomerId="+ReviewerID+&lt;br /&gt;			   "&amp;ResponseGroup=CustomerReviews");&lt;br /&gt;		   return doc;&lt;br /&gt;	   }&lt;br /&gt;	   private static Document getXMLDoc(String s) throws Exception&lt;br /&gt;	   {&lt;br /&gt;		   //System.out.println(s);&lt;br /&gt;		   LinkedList&lt;Review&gt; ret = new LinkedList&lt;Review&gt;();&lt;br /&gt;		   //String s ="http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService&amp;AWSAccessKeyId=AKIAJKIZAU3BXLEUC4DA&amp;Operation=ItemLookup&amp;ItemId=B0013O98SW&amp;ResponseGroup=Reviews&amp;Version=2008-08-19";&lt;br /&gt;		   URL feedUrl = new URL(s);&lt;br /&gt;                    &lt;br /&gt;           XmlReader xmlr=new XmlReader(feedUrl);&lt;br /&gt;&lt;br /&gt;              Document doc = null;&lt;br /&gt;&lt;br /&gt;           SAXBuilder sb = new SAXBuilder();&lt;br /&gt;           doc = sb.build(feedUrl);  &lt;br /&gt;           return doc;&lt;br /&gt;	   }&lt;br /&gt;	   &lt;br /&gt;	   &lt;br /&gt;	   static List&lt;Review&gt; getReviewData(String productID, String pKeyWords) throws Exception&lt;br /&gt;	   {&lt;br /&gt;		   LinkedList&lt;Review&gt; ret= new LinkedList();&lt;br /&gt;		  for(int j=1;j&lt;50;j++)&lt;br /&gt;		  {&lt;br /&gt;		   try{&lt;br /&gt;				   Document doc=getXMLDoc("http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService&amp;AWSAccessKeyId=[USE YOUR OWN ACCESS KEY]&amp;Operation=ItemLookup&amp;ItemId="+ productID +"&amp;ResponseGroup=Reviews&amp;Version=2008-08-19&amp;ReviewPage="+Integer.toString(j));&lt;br /&gt;		           Element e =doc.getRootElement();&lt;br /&gt;		          &lt;br /&gt;		          ElementFilter ef = new ElementFilter( "Items", null );&lt;br /&gt;		          List el = e.getContent( ef );&lt;br /&gt;		          e=(Element)el.get(0);&lt;br /&gt;		          ef = new ElementFilter( "Item", null );&lt;br /&gt;		          el = e.getContent( ef );&lt;br /&gt;		          e=(Element)el.get(0);&lt;br /&gt;		          ef = new ElementFilter( "CustomerReviews", null );&lt;br /&gt;		          el = e.getContent( ef );&lt;br /&gt;		          e=(Element)el.get(0);&lt;br /&gt;		          ef = new ElementFilter( "Review", null );&lt;br /&gt;		          el = e.getContent( ef );&lt;br /&gt;		          String temp;&lt;br /&gt;		          for(int i=0;i&lt;el.size();i++)&lt;br /&gt;		          {&lt;br /&gt;		       	   temp=concatReviewData((Element)el.get(i));&lt;br /&gt;		       	   ret.add(new Review(temp,pKeyWords));&lt;br /&gt;		          }&lt;br /&gt;		   }&lt;br /&gt;		   catch(Exception ex){break;}&lt;br /&gt;		  }&lt;br /&gt;          return ret;&lt;br /&gt;	   }&lt;br /&gt;	   &lt;br /&gt;	   static String concatReviewData(Element e)&lt;br /&gt;	   {&lt;br /&gt;&lt;br /&gt;		   String temp="";&lt;br /&gt;		   List el =e.getContent();&lt;br /&gt;		   for(int i=0;i&lt;el.size();i++)&lt;br /&gt;		   {&lt;br /&gt;			   temp=temp+((Element)el.get(i)).getText()+"|";&lt;br /&gt;			 &lt;br /&gt;		   }&lt;br /&gt;		   ElementFilter ef = new ElementFilter( "Reviewer", null );&lt;br /&gt;           el = e.getContent( ef );&lt;br /&gt;           e=(Element)el.get(0);&lt;br /&gt;           el=e.getContent();&lt;br /&gt;		   for(int j=0;j&lt;el.size();j++)&lt;br /&gt;		   {&lt;br /&gt;			   temp=temp+((Element)el.get(j)).getText()+"|";&lt;br /&gt;		   }&lt;br /&gt;		   //System.out.println(temp);&lt;br /&gt;		   return temp; &lt;br /&gt;	   }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6542328170627954510-7793317821691236382?l=id10tsavant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://id10tsavant.blogspot.com/feeds/7793317821691236382/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://id10tsavant.blogspot.com/2009/07/simple-example-for-working-using-jdom.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6542328170627954510/posts/default/7793317821691236382'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6542328170627954510/posts/default/7793317821691236382'/><link rel='alternate' type='text/html' href='http://id10tsavant.blogspot.com/2009/07/simple-example-for-working-using-jdom.html' title='A Simple example for working using JDOM as a client for Amazon Advertising API'/><author><name>TheWarhammerCheapskate</name><uri>http://www.blogger.com/profile/05877189088721854364</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6542328170627954510.post-6872145251910418722</id><published>2009-06-30T02:57:00.000-07:00</published><updated>2009-06-30T03:07:05.840-07:00</updated><title type='text'>Working Outline of the Paper</title><content type='html'>&lt;p style="margin-bottom: 0in;"&gt;Outline for: Credibility on the Internet- The war against guerrilla marketing&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;Thesis- recommendations on the Internet can no longer be trusted at face value. The solution is to find ways to score the reliability of a review using a model similar to the way credit scoring is done, using information gleaned from other parts of the Internet to find information about the poster of the interview to rate how credible a review is.&lt;/p&gt; &lt;p style="margin-bottom: 0in;"&gt;High Level Outline:&lt;/p&gt; &lt;ol&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;What is credibility&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;Where and how to obtain  credibility data&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;Some proposed credibility models&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;Some informal (read fixed) test of  the proposed credibility models&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;What is needed to improve online  credibility&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;(Appendix A) Who/What is the  “enemy” of credibility&lt;/p&gt; &lt;/li&gt;&lt;/ol&gt; &lt;p style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/p&gt; &lt;ol&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;u&gt;&lt;b&gt;What is credibility&lt;/b&gt;&lt;/u&gt;&lt;/p&gt;  &lt;ol&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;Defining the Output 3   contributing factors to credibility&lt;/p&gt;   &lt;ol&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;A review's credibility can be    rated in 4 different dimensions&lt;/p&gt;    &lt;ol&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;b&gt;Objectivity&lt;/b&gt;-Does the     review come from an actual user or does it come from a bot or a     guerilla.&lt;/p&gt;     &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;b&gt;Suitability&lt;/b&gt;- Is the     reviewer qualified to give advice on the product or service he is     reviewing.&lt;/p&gt;     &lt;ol&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;For example: if the quality of      a given company's diamonds is reviewed by someone who doesn't      know jewelry ... the review is not credible, even if the      reviewer was “objective”&lt;/p&gt;     &lt;/li&gt;&lt;/ol&gt;     &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;" align="left"&gt;&lt;b&gt;Timeliness- &lt;/b&gt;&lt;span style="font-weight: normal;"&gt;How     timely is the information in the review&lt;/span&gt;&lt;/p&gt;     &lt;ol&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in; font-weight: normal;" align="left"&gt;      For example, does the review cover the current version of a      piece of software or the last version.       &lt;/p&gt;      &lt;ol&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in; font-weight: normal;" align="left"&gt;       How much does a product change over time&lt;/p&gt;       &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in; font-weight: normal;" align="left"&gt;       Varies from product category to product category&lt;/p&gt;      &lt;/li&gt;&lt;/ol&gt;     &lt;/li&gt;&lt;/ol&gt;    &lt;/li&gt;&lt;/ol&gt;   &lt;/li&gt;&lt;/ol&gt;  &lt;/li&gt;&lt;/ol&gt;  &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;" align="left"&gt;&lt;u&gt;&lt;b&gt;Where and how to  obtain credibility data&lt;/b&gt;&lt;/u&gt;&lt;/p&gt;  &lt;ol&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in; font-weight: normal;" align="left"&gt;To   catch a marketer (patterns of guerilla marketers)&lt;/p&gt;   &lt;ol&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in; font-weight: normal;" align="left"&gt;Social    Networks (groups and individuals)&lt;/p&gt;    &lt;ol&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in; font-weight: normal;" align="left"&gt;     Using opensocial to check social networks&lt;/p&gt;    &lt;/li&gt;&lt;/ol&gt;    &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in; font-weight: normal;" align="left"&gt;Forums&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in; font-weight: normal;" align="left"&gt;Groups&lt;/p&gt;    &lt;ol&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in; font-weight: normal;" align="left"&gt;     Facebook&lt;/p&gt;     &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in; font-weight: normal;" align="left"&gt;     Yahoo&lt;/p&gt;     &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in; font-weight: normal;" align="left"&gt;     Google&lt;/p&gt;    &lt;/li&gt;&lt;/ol&gt;    &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in; font-weight: normal;" align="left"&gt;Amazon&lt;/p&gt;    &lt;ol&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in; font-weight: normal;" align="left"&gt;     E-Commerce API&lt;/p&gt;     &lt;ol&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in; font-weight: normal;" align="left"&gt;      &lt;/p&gt;     &lt;/li&gt;&lt;/ol&gt;    &lt;/li&gt;&lt;/ol&gt;    &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in; font-weight: normal;" align="left"&gt;Search    Engines&lt;/p&gt;    &lt;ol&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in; font-weight: normal;" align="left"&gt;     google can search for hits by type of content (i.e. given     screenname x, find where it appears on: review sites, forums,web     pages...)     ex...http://www.google.com/#q=%20ivan_rous&amp;amp;hl=en&amp;amp;sa=G&amp;amp;tbo=1&amp;amp;tbs=rvw:1,qdr:w&amp;amp;fp=2kCy_h2xdw8&lt;/p&gt;     &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in; font-weight: normal;" align="left"&gt;     Links with that specific ID in it (a lot is good...to many is bad)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;Text patterns surrounding the link...i.e. are there forum posts with text repeated (2 times isn't bad many many times is)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;   &lt;/li&gt;&lt;/ol&gt;  &lt;/li&gt;&lt;/ol&gt; &lt;/li&gt;&lt;/ol&gt; &lt;ul&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;&lt;/p&gt;  &lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6542328170627954510-6872145251910418722?l=id10tsavant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://id10tsavant.blogspot.com/feeds/6872145251910418722/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://id10tsavant.blogspot.com/2009/06/working-outline-of-paper.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6542328170627954510/posts/default/6872145251910418722'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6542328170627954510/posts/default/6872145251910418722'/><link rel='alternate' type='text/html' href='http://id10tsavant.blogspot.com/2009/06/working-outline-of-paper.html' title='Working Outline of the Paper'/><author><name>TheWarhammerCheapskate</name><uri>http://www.blogger.com/profile/05877189088721854364</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6542328170627954510.post-3050747610991546966</id><published>2009-05-26T20:37:00.000-07:00</published><updated>2009-05-26T20:45:59.834-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Credibility'/><title type='text'>So we have 4 criteria, now for some approaches to each...</title><content type='html'>&lt;span style="font-weight: bold;"&gt;1. Approaches to establishing Credibility:  &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;a)Interesting article by &lt;a href="http://bit.ly/12wqQe"&gt;&lt;span style="text-decoration: underline;"&gt;Chris Messina&lt;/span&gt;&lt;/a&gt;, one of the topics it covers is how to establish identity (a component of credibility), one interesting approach is that:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Suppose you are trying to decide if PersonX is really PersonX&lt;/li&gt;&lt;li&gt;Compare your social graph with his&lt;/li&gt;&lt;li&gt;if you know some of the same people that he knows, in a certain domain then PersonX is likely to be who he says he is.&lt;/li&gt;&lt;/ul&gt;b)Polling several different services&lt;br /&gt;&lt;ul&gt;&lt;li&gt;If I say I am PersonX on twitter, and I am personX on facebook and I am personX on Google, and my profiles on each service match, then I am likely PersonX&lt;/li&gt;&lt;li&gt;For additional security, you can compare social graphs!&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/6542328170627954510-3050747610991546966?l=id10tsavant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://id10tsavant.blogspot.com/feeds/3050747610991546966/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://id10tsavant.blogspot.com/2009/05/so-we-have-4-criteria-now-for-some.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6542328170627954510/posts/default/3050747610991546966'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6542328170627954510/posts/default/3050747610991546966'/><link rel='alternate' type='text/html' href='http://id10tsavant.blogspot.com/2009/05/so-we-have-4-criteria-now-for-some.html' title='So we have 4 criteria, now for some approaches to each...'/><author><name>TheWarhammerCheapskate</name><uri>http://www.blogger.com/profile/05877189088721854364</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6542328170627954510.post-5715171418304460267</id><published>2009-05-26T19:39:00.000-07:00</published><updated>2009-05-26T20:14:52.886-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='shindig'/><category scheme='http://www.blogger.com/atom/ns#' term='Topics'/><category scheme='http://www.blogger.com/atom/ns#' term='recommendation engine'/><category scheme='http://www.blogger.com/atom/ns#' term='Topic'/><category scheme='http://www.blogger.com/atom/ns#' term='opensocial'/><title type='text'>Scrap Outline 1, Heres a better topic (IMHO)</title><content type='html'>Here's an Idea for a topic for a paper:&lt;br /&gt;&lt;br /&gt;Research would be in the area of: The viability of a better recommendation engine by using the opensocial API. specifically... recommendations should have at least these dimensions:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Credibility: Is the reviewer who he says he is, is that 5 star review for the new camera from a real, satisfied, customer or  from the guerrilla marketing department at Sony&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Suitability: Can't think of a better one word description...but does the reviewers taste and skill level match yours?I.e. the kind of Football Helmet Peyton Manning uses, may not be the best football helmet for your Pop Warner aged son, especially if your Pop Warner aged son is a Defensive Lineman instead of a quarterback. Or, if a South Indian says the food at a restaurant was bland, that may mean it is too spicy for you!&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Timeliness: Just because the 1985 Model of the Car was great does not mean the 2009 model was great&lt;/li&gt;&lt;li&gt;Reliability: Most products are reviewed as new. How well do the last? How does their performance, effectiveness change over time? This need not be a physical break down, suppose your computer has a brand new 133MHZ mother board, it will work...but...&lt;/li&gt;&lt;/ol&gt;The paper would bring together research  about the fitness of the current OpenSocial API &amp;amp; existing exposed data for the different components of the recommendation engine(Credibility, Suitibility, Timeliness, Reliability). Both the areas where it is suitable and where more API availability/Data is needed would be covered. Lastly the engine's recommendations would be evaluated (with possibly some assumptions based on research) against a published set of Informal test cases. The recommendation would likely be modeled at the algorithm level, and only implemented (in something like Apache Shindig client) if time permits.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6542328170627954510-5715171418304460267?l=id10tsavant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://id10tsavant.blogspot.com/feeds/5715171418304460267/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://id10tsavant.blogspot.com/2009/05/scrap-outline-1-topicbusiness-plan.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6542328170627954510/posts/default/5715171418304460267'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6542328170627954510/posts/default/5715171418304460267'/><link rel='alternate' type='text/html' href='http://id10tsavant.blogspot.com/2009/05/scrap-outline-1-topicbusiness-plan.html' title='Scrap Outline 1, Heres a better topic (IMHO)'/><author><name>TheWarhammerCheapskate</name><uri>http://www.blogger.com/profile/05877189088721854364</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6542328170627954510.post-1697275622652341604</id><published>2009-05-24T09:43:00.000-07:00</published><updated>2009-05-26T00:10:56.714-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open social'/><category scheme='http://www.blogger.com/atom/ns#' term='paper'/><category scheme='http://www.blogger.com/atom/ns#' term='outline'/><category scheme='http://www.blogger.com/atom/ns#' term='review'/><title type='text'>Topic Update</title><content type='html'>Topic Update:&lt;br /&gt;&lt;br /&gt;Reddit did not work, not a single response to my post. Oh well, I will try again.&lt;br /&gt;But the next attempt will be on a different topic as I have been assigned a topic to write about.&lt;br /&gt;My assignment is...Open Social.&lt;br /&gt;&lt;br /&gt;I guess I will start by making an outline (I'll update this post as it happens)&lt;br /&gt;&lt;br /&gt;1. What is Open Social&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;ul&gt;&lt;li&gt;Intro&lt;/li&gt;&lt;li&gt;Containers&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Client Side API (js)&lt;/li&gt;&lt;li&gt;Server Side API (java)- Open Rhino?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;How it is currently being used&lt;/li&gt;&lt;li&gt;Limitations&lt;/li&gt;&lt;li&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;2. Question about Open Social That will be the thesis&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6542328170627954510-1697275622652341604?l=id10tsavant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://id10tsavant.blogspot.com/feeds/1697275622652341604/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://id10tsavant.blogspot.com/2009/05/topic-update-reddit-did-not-work-not.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6542328170627954510/posts/default/1697275622652341604'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6542328170627954510/posts/default/1697275622652341604'/><link rel='alternate' type='text/html' href='http://id10tsavant.blogspot.com/2009/05/topic-update-reddit-did-not-work-not.html' title='Topic Update'/><author><name>TheWarhammerCheapskate</name><uri>http://www.blogger.com/profile/05877189088721854364</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6542328170627954510.post-6975085719676826423</id><published>2009-05-23T02:07:00.000-07:00</published><updated>2009-05-26T15:04:58.617-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Topics'/><category scheme='http://www.blogger.com/atom/ns#' term='Reddit'/><category scheme='http://www.blogger.com/atom/ns#' term='Topic'/><title type='text'>Using Reddit to Help Me Decide on a Topic</title><content type='html'>I submitted the question of what my paper topic should be to &lt;a href="http://www.reddit.com/r/technology/comments/8mnl3/i_am_taking_a_class_on_social_media_and_business/"&gt;reddit.com&lt;/a&gt;. Lets see what The People think. Here is the post:&lt;br /&gt;So I am taking a class on Business and Social media, I can have the professor assign me a topic or I can suggest my own. So, since social media is a dialog, I thought I would elicit some feedback. So, dear redditors if you were taking such a class, what would you write your paper on? Some broad areas I was considering:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;User tools for social services&lt;br /&gt;&lt;/li&gt;&lt;li&gt;White hat social media marekting&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Black hat social media marketing -Monetization strategies for social media&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The long tail of social networking&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/6542328170627954510-6975085719676826423?l=id10tsavant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://id10tsavant.blogspot.com/feeds/6975085719676826423/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://id10tsavant.blogspot.com/2009/05/using-reddit-to-help-me-decide-on-topic.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6542328170627954510/posts/default/6975085719676826423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6542328170627954510/posts/default/6975085719676826423'/><link rel='alternate' type='text/html' href='http://id10tsavant.blogspot.com/2009/05/using-reddit-to-help-me-decide-on-topic.html' title='Using Reddit to Help Me Decide on a Topic'/><author><name>TheWarhammerCheapskate</name><uri>http://www.blogger.com/profile/05877189088721854364</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6542328170627954510.post-7042707641681426751</id><published>2009-05-23T01:14:00.000-07:00</published><updated>2009-05-23T02:15:51.760-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='papers'/><category scheme='http://www.blogger.com/atom/ns#' term='ggu'/><title type='text'>Peerless</title><content type='html'>&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;One of the great untapped academic uses of the internet (at least at GGU) is the lack of paper peer review. The professors sometimes split people into teams but even this does not seem to elicit a lot of good feedback (at least most of the time). Blogs can help in this area for at least four reasons:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Focus of feedback&lt;/li&gt;&lt;li&gt;Timeliness of feedback&lt;/li&gt;&lt;li&gt;Anonymity&lt;/li&gt;&lt;li&gt;A Wider Net&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Focus Focus Focus&lt;/span&gt;&lt;br /&gt;I think the reason for this is most students aren't very good writers, and it is just too much effort to get people to read an entire paper (even if its only 5 pages). One of the nice things about blogs, as a form of writing, is that they break things up into nice, bit size, chunks for people to digest slowly, perfect for review as you go. In my writing, I am not trying to be Emanual Kant, where each sentence is profound, but also takes 10 minutes to understand. Instead a good paper really only has 2 or 3 complex ideas that are difficult to explain, and that is where I need the help. So rather than waste my reviewers valuable time reading the entire paper, I think it helps to have them review only specific parts of a paper. This helps them, and me focus on the areas that need it.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Time is of the Essence&lt;/span&gt;&lt;br /&gt;How many times have you had someone review a paper knowing full well that it is too late for major changes? Putting a paper on a blog as you write it makes sure: a) You actually write it gradually as opposed to the last minute (again bite sized chunks), and b) You find and weed out the truly bad ideas when they come up, rather than 3 hours before the paper is due.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Come on baby make it hurt so good&lt;br /&gt;&lt;/span&gt;Both in brick and mortar and online classes at big universities share at least one basic problem: Students are mostly strangers to each other. Everything students have been taught about social etiquette tells them that telling people how much their writing sucks is not a good way to start interacting.&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;Thus, many people will refrain from giving good feedback simply because giving good feedback (criticism) to strangers is impolite&lt;span style="font-weight: bold;"&gt;. &lt;/span&gt;Which leads us to...&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;No one knows you are a Dog on the internet&lt;br /&gt;&lt;/span&gt;People will (anonymously) say things on the internet, that they will not say in real life. I believe, we will test this hypothesis, that this is an advantage of the internet. People love to argue, and if you make provocative posts people will chime in with opinons which will show you the weakness of your arguement/ideas (assuming you can weed out the obvious trolls)&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;. &lt;/span&gt;&lt;/span&gt;Also if your post doesn't make sense,and you have enough people reading your blog, and your readers are sane, it will show you where you should explain your ideas better.&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Are you Pondering what I'm Pondering&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;One of the other problems with class-mates reviewing your paper, is that they may not be any better or more knowledgeable writers than you&lt;/span&gt;. In addition, social media is a wide area and the topic you are covering may be very different from theirs. One of the things I hope to get from publicizing this blog is feedback from people who ARE NOT my classmates, or necessarily even college students but are instead interested and learning about/reasearching the same topic I am writing about.&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt; &lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6542328170627954510-7042707641681426751?l=id10tsavant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://id10tsavant.blogspot.com/feeds/7042707641681426751/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://id10tsavant.blogspot.com/2009/05/peerless.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6542328170627954510/posts/default/7042707641681426751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6542328170627954510/posts/default/7042707641681426751'/><link rel='alternate' type='text/html' href='http://id10tsavant.blogspot.com/2009/05/peerless.html' title='Peerless'/><author><name>TheWarhammerCheapskate</name><uri>http://www.blogger.com/profile/05877189088721854364</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6542328170627954510.post-2453181019274167880</id><published>2009-05-23T00:34:00.000-07:00</published><updated>2009-05-23T01:10:50.555-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='paper'/><category scheme='http://www.blogger.com/atom/ns#' term='itm198'/><title type='text'>What's Going on Here</title><content type='html'>&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;I am a decent writer, I tend to get A's on my papers and I can get my point accross in corporate emails on 4 continents. But, ITM 198, the Golden Gate University Class I am taking, is about trying new things. The class in and of itself is a departure from the "Hard Skills" classes I have taken to date, and education is supposed to broaden your horizons right? So, which horizons do I want broadened? Well, one of my goals for this class is to change the way I write papers.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Whats in it for me&lt;/span&gt;&lt;br /&gt;In addition to studying how social media helps businesses, I thought I would look into how social media helps me write. Though I believe I am a strong writer overall, I think that one of my weaker points is taking notes and keeping sources straight. I tend to scribble indecipherable notes, as I read, on  scrap pieces of paper, which I then lose&lt;span style="font-weight: bold;"&gt;. &lt;/span&gt;So when it is time to write, I end up surfing the net or crawling through a book, trying to find my sources from memory. This is a huge time-waster, and I think a blog will help. So...here is my list of resolutions for keeping this blog as the central repository of knowledge for my paper:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Post parts of the paper as posts when inspiration strikes&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Submit my comments, notes, juxtapositional observations on articles I read as posts&lt;/li&gt;&lt;li&gt;Include links to read later as posts&lt;/li&gt;&lt;li&gt;Use this blog to summarize my attempts at using other social media (reddit, 4chan, answers?) to help me write my paper&lt;/li&gt;&lt;li&gt;What else (please comment)?&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6542328170627954510-2453181019274167880?l=id10tsavant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://id10tsavant.blogspot.com/feeds/2453181019274167880/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://id10tsavant.blogspot.com/2009/05/whats-going-on-here.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6542328170627954510/posts/default/2453181019274167880'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6542328170627954510/posts/default/2453181019274167880'/><link rel='alternate' type='text/html' href='http://id10tsavant.blogspot.com/2009/05/whats-going-on-here.html' title='What&apos;s Going on Here'/><author><name>TheWarhammerCheapskate</name><uri>http://www.blogger.com/profile/05877189088721854364</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6542328170627954510.post-8304579237841473011</id><published>2009-05-23T00:16:00.000-07:00</published><updated>2009-05-23T01:11:11.284-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='business idea'/><category scheme='http://www.blogger.com/atom/ns#' term='twitter'/><title type='text'>Twitter Didn't Satisfy Me</title><content type='html'>My first choice of blog (o.k. micro-blog) was twitter, but after a week on twitter I decided that a traditional blog works better. Here's why:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;I actually want comments&lt;/span&gt;&lt;br /&gt;Twitter seems to be just a bunch of people blathering into space (some with good links btw), so it is good for status updates to people following you, but it is not a good means of two way communications. I think a good paper comes from dialog, and twitter fails to do that.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Twitter doesn't let you search(or edit) what you posted.&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;This is a real problem since for all I know, my professor for this class is reading a blog with a bunch of spelling errors. Also since I started following two people, my own posts get buried quickly and I can't find what I wrote a few days ago (at least not easily).&lt;br /&gt;&lt;br /&gt;I know a lot of this stuff can be done through the Twitter API (possibly a future business idea), but right now I just don't have time to make a decent client for it.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Blogspot lets you post by SMS as well&lt;br /&gt;&lt;/span&gt;For some reason, I didn't think that a blog could be posted to by SMS&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;, &lt;/span&gt;so I was pleasently surprised&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;when this option&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;/span&gt;came up on my blogspot signup. I sometimes get ideas in pretty strange places, and I have a 25 dollar a month data plan to justify. So, for me, this is a killer feature&lt;span style="font-weight: bold;"&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6542328170627954510-8304579237841473011?l=id10tsavant.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://id10tsavant.blogspot.com/feeds/8304579237841473011/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://id10tsavant.blogspot.com/2009/05/twitter-didnt-satisfy-me.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6542328170627954510/posts/default/8304579237841473011'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6542328170627954510/posts/default/8304579237841473011'/><link rel='alternate' type='text/html' href='http://id10tsavant.blogspot.com/2009/05/twitter-didnt-satisfy-me.html' title='Twitter Didn&apos;t Satisfy Me'/><author><name>TheWarhammerCheapskate</name><uri>http://www.blogger.com/profile/05877189088721854364</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
