<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Killersite</title>
	<atom:link href="http://www.killersite.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.killersite.com</link>
	<description>&#34;Hope is not a method and wishes are not plans.&#34;</description>
	<lastBuildDate>Tue, 12 Jun 2012 18:36:32 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Remove Associations on @ManyToMany Delete</title>
		<link>http://www.killersite.com/2012/05/remove-associations-manytomany/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=remove-associations-manytomany</link>
		<comments>http://www.killersite.com/2012/05/remove-associations-manytomany/#comments</comments>
		<pubDate>Tue, 15 May 2012 17:57:59 +0000</pubDate>
		<dc:creator>Ben S.</dc:creator>
				<category><![CDATA[Dev Note]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Spring Roo]]></category>

		<guid isPermaLink="false">http://www.killersite.com/?p=536</guid>
		<description><![CDATA[Here&#8217;s a quick note summarizing my investigation on JPA @ManyToMany&#8230; When you have a @ManyToMany one side will be the side that &#8220;ownes&#8221; the relationship and the other side does not. This means which side of the Many-To-Many will be in charge of updating the join table on the add or remove of the relationship. Here are my simplified [...]]]></description>
				<content:encoded><![CDATA[<p>Here&#8217;s a quick note summarizing my investigation on JPA @ManyToMany&#8230;</p>
<p>When you have a @ManyToMany one side will be the side that &#8220;ownes&#8221; the relationship and the other side does not. This means which side of the Many-To-Many will be in charge of updating the join table on the add or remove of the relationship.</p>
<p>Here are my simplified test Entities.</p>
<pre>public class MyUser {
    @ManyToMany(cascade = CascadeType.PERSIST, fetch = FetchType.EAGER)
    private Set&lt;Auth&gt; roles = new HashSet&lt;Auth&gt;();
}
public class Auth {
    @ManyToMany(fetch = FetchType.LAZY, mappedBy = "roles")
    private Set&lt;MyUser&gt; users = new HashSet&lt;MyUser&gt;();
}</pre>
<p>So when you remove the &#8220;owner&#8221; Entity MyUser it will remove the row in the relationship table that relates to Auth. But I was having a hard time figuring out the best way to get the relationships to MyUser instances severed (not deleted) when my code removes the &#8220;not owning&#8221; Entity MyAuth.</p>
<p>The way to do it is removing the relationship manually with a @PreRemove <a href="http://openjpa.apache.org/builds/1.1.0/docs/jpa_overview_pc_callbacks.html">JPA lifecycle callback</a> annotation on the Auth Class.</p>
<pre>    @PreRemove
    @SuppressWarnings("unused")
    private void removeUsers() {
    	for (MyUser user: users) {
    		user.getRoles().remove(this);
    	}
    }</pre>
<p>This will get called right before the Auth object is removed and clear out the MyUser references to this Auth object.</p>
<p>Is there a better way to do this?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.killersite.com/2012/05/remove-associations-manytomany/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Setup Spring Data cross store with SQL and Neo4j</title>
		<link>http://www.killersite.com/2012/04/setup-spring-data-cross-store-database/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=setup-spring-data-cross-store-database</link>
		<comments>http://www.killersite.com/2012/04/setup-spring-data-cross-store-database/#comments</comments>
		<pubDate>Thu, 05 Apr 2012 16:22:40 +0000</pubDate>
		<dc:creator>Ben S.</dc:creator>
				<category><![CDATA[Dev Note]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Spring Roo]]></category>

		<guid isPermaLink="false">http://www.killersite.com/?p=486</guid>
		<description><![CDATA[Polyglot persistence is all about augmenting existing applications with more specialized, sophisticated data models. The Spring Data project delivers on this vision, providing a natural way to map domain objects to both JPA-supported data stores and the Neo4j graph database. Here is a quick walk through of my first attempt to have a domain object&#8217;s [...]]]></description>
				<content:encoded><![CDATA[<p><a href="http://architects.dzone.com/articles/martin-fowler-polyglot">Polyglot persistence</a> is all about augmenting existing applications with more specialized, sophisticated data models. The <a href="http://www.springsource.org/spring-data">Spring Data</a> project delivers on this vision, providing a natural way to map domain objects to both JPA-supported data stores and the Neo4j graph database.</p>
<p>Here is a quick walk through of my first attempt to have a domain object&#8217;s properties saved to a database via Hibernate and to Neo4j database.</p>
<p>All we&#8217;re going to do to start is have a single property called &#8220;nickname&#8221; stored in a <a href="http://neo4j.org/">Neo4J</a> datastore. Nothing very useful or interesting about this but I&#8217;ll use that as a way to show the minimal setup for getting the Object properties stored in multiple databases and combined on save/access.</p>
<p>In a future post I&#8217;ll hopefully do something more interesting with this very cool/useful technique.</p>
<p>Let&#8217;s start with a very simple <strong>Roo script</strong> to build a full enterprise java app.</p>
<pre>project --topLevelPackage com.ex --projectName Neo4jTest --java 6 --packaging JAR
jpa setup --provider HIBERNATE --database HYPERSONIC_IN_MEMORY

entity jpa --class ~.domain.UserAccount --activeRecord false
field string --fieldName firstName
field string --fieldName nickname

repository jpa --interface ~.repository.UserAccountRepository --entity ~.domain.UserAccount
service --interface ~.service.UserAccountService --entity ~.domain.UserAccount

web mvc setup
web mvc all --package ~.web</pre>
<p>This will output a spring configured webapp that saves to a SQL database via Hibernate. You can run the app with the following to try it out.</p>
<pre>mvn jetty:run</pre>
<p>So now the plan is to set it up so that the nickname property of the UserAccount domain object is saved to a neo4j database while the firstname property is saved to the SQL database.</p>
<p>The first step is to update the maven <strong>pom.xml</strong> file with some additional dependencies.</p>
<p>Add the following to the &lt;properties&gt; section for the versions to use</p>
<pre>&lt;spring-data-neo4j.version&gt;2.1.0.BUILD-SNAPSHOT&lt;/spring-data-neo4j.version&gt;
&lt;neo4j.version&gt;1.6&lt;/neo4j.version&gt;</pre>
<p>Add the dependencies for the neo4j database and the spring-data connector.</p>
<pre>&lt;dependency&gt;
&lt;groupId&gt;org.neo4j&lt;/groupId&gt;
&lt;artifactId&gt;neo4j-kernel&lt;/artifactId&gt;
&lt;version&gt;${neo4j.version}&lt;/version&gt;
&lt;type&gt;test-jar&lt;/type&gt;
&lt;scope&gt;test&lt;/scope&gt;
&lt;/dependency&gt;
&lt;dependency&gt;
&lt;groupId&gt;org.springframework.data&lt;/groupId&gt;
&lt;artifactId&gt;spring-data-neo4j-cross-store&lt;/artifactId&gt;
&lt;version&gt;${spring-data-neo4j.version}&lt;/version&gt;
&lt;/dependency&gt;</pre>
<p>You might have some dependency conflicts (like I did) which will necessitate the following exclusion change to the existing spring-data-jpa dependency.</p>
<pre>&lt;dependency&gt;
&lt;groupId&gt;org.springframework.data&lt;/groupId&gt;
&lt;artifactId&gt;spring-data-jpa&lt;/artifactId&gt;
&lt;version&gt;1.0.3.RELEASE&lt;/version&gt;
&lt;exclusions&gt;
&lt;exclusion&gt;
&lt;groupId&gt;org.springframework.data&lt;/groupId&gt;
&lt;artifactId&gt;spring-data-commons-core&lt;/artifactId&gt;
&lt;/exclusion&gt;
&lt;/exclusions&gt;
&lt;/dependency&gt;</pre>
<p>Lastly in order to get the neo4j aspect4j weaving done when the project build is called you need to add the following to the aspectj-maven-plugin plugin under the &lt;aspectLibraries&gt; section.</p>
<pre>&lt;aspectLibrary&gt;
&lt;groupId&gt;org.springframework.data&lt;/groupId&gt;
&lt;artifactId&gt;spring-data-neo4j-aspects&lt;/artifactId&gt;
&lt;/aspectLibrary&gt;</pre>
<p>Now we need to setup the Neo4j database. Spring makes this very simple via the neo4j namespace.</p>
<p>Add the namespace to <strong>applicationContext.xml</strong></p>
<pre>xmlns:neo4j="http://www.springframework.org/schema/data/neo4j"</pre>
<p>and the schema location</p>
<pre>http://www.springframework.org/schema/data/neo4j http://www.springframework.org/schema/data/neo4j/spring-neo4j-2.0.xsd</pre>
<p>then setting up the db is just the following one line config.</p>
<pre>&lt;neo4j:config storeDirectory="target/db-test" entityManagerFactory="entityManagerFactory"/&gt;</pre>
<p>Now add a couple Java Annotations (which adds some more aspect code) we can get the nickname property saved to the graph Database and the firstname property saved to the SQL database.</p>
<p>Add the following annotations to the <strong>UserAccount.java</strong> file.</p>
<pre>@NodeEntity(partial = true)
public class UserAccount {

private String firstName;

@GraphProperty
String nickname;
}</pre>
<p>This marks the Java Bean as to be &#8220;partially&#8221; saved to the Neo4j database and specifically the <strong>nickname</strong> property is not saved to the SQL database.</p>
<p>the last piece to do is override the default service code that Roo created that saves the Entity via Hibernate. We need to add code to also save the Entity to Neo4J.</p>
<p>Add the following to <strong>UserAccountServiceImpl.java</strong>.</p>
<pre>public class UserAccountServiceImpl implements UserAccountService {

	public void saveUserAccount(UserAccount userAccount) {
		userAccountRepository.save(userAccount);
		userAccount.persist();
	}

	public UserAccount updateUserAccount(UserAccount userAccount) {
		if (userAccount != null) {
			userAccount.persist();
		}
		return userAccountRepository.save(userAccount);
	}

	public UserAccount findUserAccount(Long id) {
		if (id == null) return null;
			final UserAccount userAccount = userAccountRepository.findOne(id);
		if (userAccount != null) {
			userAccount.persist();
		}
		return userAccount;
	}
}</pre>
<p>Once you add these methods Roo will automatically remove the same generated methods from the .aj aspect files.</p>
<p>Next time I will <a href="http://docs.neo4j.org/spring/SpringDataNeo4j_DeveloperNotes.pdf">add some relationships</a> and code to do things that <a href="http://www.keeptabs.com">take advantage of the Graph structure of the Neo4j database</a>. Also a useful tool is Neoclipse for visualizing the saved Neo4j data.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.killersite.com/2012/04/setup-spring-data-cross-store-database/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Roo performance issue</title>
		<link>http://www.killersite.com/2012/04/roo-performance-issue/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=roo-performance-issue</link>
		<comments>http://www.killersite.com/2012/04/roo-performance-issue/#comments</comments>
		<pubDate>Tue, 03 Apr 2012 19:33:37 +0000</pubDate>
		<dc:creator>Ben S.</dc:creator>
				<category><![CDATA[Dev Note]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[KeepTabs]]></category>
		<category><![CDATA[Spring Roo]]></category>

		<guid isPermaLink="false">http://www.killersite.com/?p=481</guid>
		<description><![CDATA[To follow up on my debugging of the Hibernate issue I was having a couple days ago in the KeepTabs project where viewing a single bookmark loads the entire User graph&#8230; It turned out that the issue was a bug in the auto-generated JSPX files that Spring Roo MVC created. This is one of the [...]]]></description>
				<content:encoded><![CDATA[<p>To follow up on my debugging of the <a href="http://www.hibernate.org/">Hibernate</a> issue I was having a couple days ago in the <a href="http://www.keeptabs.com">KeepTabs</a> project where viewing a single bookmark loads the entire User graph&#8230;</p>
<p>It turned out that the issue was a bug in the auto-generated JSPX files that Spring Roo MVC created.</p>
<p>This is one of the big problems with code generators. When you rely on others code it is sometimes a lot harder to debug and track down silly issues.</p>
<p>I added a <a href="https://jira.springsource.org/browse/ROO-3112">JIRA issue</a> for this and hopefully the fix will make it into the next Roo release. The quick answer is to remove the following unnecessary code from the generated display.jspx file.</p>
<pre>&lt;c:set var="sec_object" value="${fn:escapeXml(object)}" /&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.killersite.com/2012/04/roo-performance-issue/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SpringSource Tool Suite with Google Plugin</title>
		<link>http://www.killersite.com/2012/04/springsource-tool-suite-with-google-plugin/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=springsource-tool-suite-with-google-plugin</link>
		<comments>http://www.killersite.com/2012/04/springsource-tool-suite-with-google-plugin/#comments</comments>
		<pubDate>Mon, 02 Apr 2012 19:08:35 +0000</pubDate>
		<dc:creator>Ben S.</dc:creator>
				<category><![CDATA[Dev Note]]></category>
		<category><![CDATA[Google Web Toolkit]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Startup Journal]]></category>

		<guid isPermaLink="false">http://www.killersite.com/?p=475</guid>
		<description><![CDATA[I had the toughest time getting a GWT project working in STS via the Google Plugin. I must have spent a full day tracking this down. So if you are in STS and try to get a Spring Roo GWT app to you might see errors like - The import javax.validation.ConstraintViolation cannot be resolved... ...did you [...]]]></description>
				<content:encoded><![CDATA[<p>I had the toughest time getting a <a href="https://developers.google.com/web-toolkit/">GWT project</a> working in <a href="http://www.springsource.com/developer/sts">STS</a> via the Google Plugin. I must have spent a full day tracking this down.</p>
<p>So if you are in STS and try to get a <a href="http://www.springsource.org/spring-roo">Spring Roo GWT app</a> to you might see errors like -</p>
<p style="padding-left: 30px;"><code> The import<br />
javax.validation.ConstraintViolation cannot be resolved...</code><br />
<code><br />
...did you forget to inherit a required<br />
module?</code></p>
<p>The fix was to uninstall and upgrade the &#8220;m2e project configurators for Eclipse WTP&#8221; to version 0.15 from 0.14.</p>
<p>Hope that helps someone.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.killersite.com/2012/04/springsource-tool-suite-with-google-plugin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Spring Data Polyglot Persistence</title>
		<link>http://www.killersite.com/2012/03/spring-data-polyglot-persistence/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=spring-data-polyglot-persistence</link>
		<comments>http://www.killersite.com/2012/03/spring-data-polyglot-persistence/#comments</comments>
		<pubDate>Thu, 29 Mar 2012 18:44:06 +0000</pubDate>
		<dc:creator>Ben S.</dc:creator>
				<category><![CDATA[Dev Note]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[KeepTabs]]></category>

		<guid isPermaLink="false">http://www.killersite.com/?p=471</guid>
		<description><![CDATA[Next part of the KeepTabs.com storage back-end will be to use Spring Data to do polyglot persistence to a MySql and Neo4J databases. Might also need to use a Document database for the web-snapshots. Any suggestions?]]></description>
				<content:encoded><![CDATA[<p>Next part of the KeepTabs.com storage back-end will be to use <a href="http://www.springsource.org/spring-data">Spring Data</a> to do polyglot persistence to a MySql and <a href="http://neo4j.org/spring/">Neo4J</a> databases.</p>
<p>Might also need to use a Document database for the web-snapshots. Any suggestions?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.killersite.com/2012/03/spring-data-polyglot-persistence/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hibernate rope-a-dope</title>
		<link>http://www.killersite.com/2012/03/hibernate-rope-a-dope/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=hibernate-rope-a-dope</link>
		<comments>http://www.killersite.com/2012/03/hibernate-rope-a-dope/#comments</comments>
		<pubDate>Thu, 29 Mar 2012 13:04:47 +0000</pubDate>
		<dc:creator>Ben S.</dc:creator>
				<category><![CDATA[Dev Note]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[KeepTabs]]></category>
		<category><![CDATA[Startup Journal]]></category>
		<category><![CDATA[Sucks]]></category>

		<guid isPermaLink="false">http://www.killersite.com/?p=464</guid>
		<description><![CDATA[KeepTabs.com development update. Now have to work on the inevitable Hibernate mapping issues. So now I have an issue where viewing a single bookmark loads the entire User graph. This is obviously some JPA screwup in my @manyto&#8230; annotations. To debug I&#8217;ll start by changing the FetchType to LAZY and see if that helps. Then [...]]]></description>
				<content:encoded><![CDATA[<h2>KeepTabs.com development update.</h2>
<p>Now have to work on the inevitable Hibernate mapping issues. So now I have an issue where viewing a single bookmark loads the entire User graph. This is obviously some JPA screwup in my @manyto&#8230; annotations.</p>
<p>To debug I&#8217;ll start by changing the FetchType to LAZY and see if that helps. Then maybe start removing some links and see if I can get to the bottom of this issue.</p>
<p>Strange because the call to fetch all of a users bookmarks is instantaneous but viewing a single bookmark takes like 20 seconds&#8230; something is very messed up <img src='http://www.killersite.com/blog/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.killersite.com/2012/03/hibernate-rope-a-dope/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Securing Entity Access with Hibernate or Spring Security</title>
		<link>http://www.killersite.com/2011/12/securing-entity-access-with-hibernate-or-spring-security/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=securing-entity-access-with-hibernate-or-spring-security</link>
		<comments>http://www.killersite.com/2011/12/securing-entity-access-with-hibernate-or-spring-security/#comments</comments>
		<pubDate>Mon, 19 Dec 2011 18:27:28 +0000</pubDate>
		<dc:creator>Ben S.</dc:creator>
				<category><![CDATA[Dev Note]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.killersite.com/?p=457</guid>
		<description><![CDATA[DAO Methods Spring Security 3.0 introduced the ability to use Spring EL expressions as an authorization mechanism in addition to the simple use of configuration attributes and access-decision voters which have seen before. Expression-based access control is built on the same architecture but allows complicated boolean logic to be encapsulated in a single expression. With [...]]]></description>
				<content:encoded><![CDATA[<h1>DAO Methods</h1>
<p>Spring Security 3.0 introduced the ability to use Spring EL expressions as an authorization mechanism in addition to the simple use of configuration attributes and access-decision voters which have seen before. Expression-based access control is built on the same architecture but allows complicated boolean logic to be encapsulated in a single expression.</p>
<p>With Spring Security you can use an EL statement to limit accessibility via some property of the method parameter.</p>
<pre>@PreAuthorize("#contact.name == authentication.name")
public void doSomething(Contact contact);</pre>
<p>Here we are accessing another built-in expression, &#8220;authentication&#8221;, which is the Authentication stored in the security context.</p>
<p>Another option is to filter the Method&#8217;s returned List and only return object that meet ACL criteria.</p>
<p>This is done using the <strong>@PostFilter</strong> annotation, Spring Security iterates through the returned collection and removes any elements for which the supplied expression is false. The name filterObject refers to the current object in the collection.</p>
<pre>@PostFilter("filterObject.owners.email == principal.username or hasRole('ROLE_ADMIN')")
List findAll();</pre>
<p>The downside to this is the query to the database will return all the Account objects so the DB performance will be impacted.</p>
<h1>Hibernate Filters</h1>
<p>Filters are a way to combat this potential Database performance issue.</p>
<p>A filter criteria allows you to define a restriction clause similar to the existing &#8220;where&#8221; attribute available on the class and various collection elements.</p>
<p>You define a filter with <strong>@FilterDef</strong> giving it a name and named parameters with <strong>@ParamDef</strong>. Then you can specify usage of that filter on fields of an Entity to limit the returned values.</p>
<p>So to limit entity access you could have a filter like this -</p>
<pre>// Define a filter
@FilterDef(name="restrictToUserIdFilter", parameters={@ParamDef(name="userId", type="String")}

// Add a filter to an Entity
@Filter(
name = "restrictToUserIdFilter",
condition="userId = :currentUserId"
)

// Then you enable the filter on the session you make the Criteria query in

Session session = sessionFactory.getCurrentSession();
Filter filter = session.enableFilter("restrictToUserIdFilter");
filter.setParameter("currentUserId", SecurityContextHolder.getContext().getAuthentication().getPrincipal().getUsername());

List results = session.createQuery("from Employee as e where e.salary &gt; :targetSalary")
.setLong("targetSalary", new Long(1000000))
.list();</pre>
<p>This will basically wrap your Hibernate generated SQL in a WHERE clause so that only Employee entities with userId = the logged in user will be shown.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.killersite.com/2011/12/securing-entity-access-with-hibernate-or-spring-security/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Social Politics</title>
		<link>http://www.killersite.com/2011/12/social-politics/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=social-politics</link>
		<comments>http://www.killersite.com/2011/12/social-politics/#comments</comments>
		<pubDate>Mon, 12 Dec 2011 21:22:26 +0000</pubDate>
		<dc:creator>Ben S.</dc:creator>
				<category><![CDATA[Politics]]></category>
		<category><![CDATA[Startup Journal]]></category>

		<guid isPermaLink="false">http://www.killersite.com/?p=449</guid>
		<description><![CDATA[What would a Social Politics application look like? Remove the importance of money in politics. Allow people to evangelize issues and candidates to their connections. Promote &#8220;real world&#8221; actions by motivated groups of people to affect their representative government at all levels. Make Government more responsive to the wishes of their real constituents. Not the narrow [...]]]></description>
				<content:encoded><![CDATA[<p>What would a Social Politics application look like?</p>
<ul>
<li>Remove the importance of money in politics.</li>
<li>Allow people to evangelize issues and candidates to their connections.</li>
<li>Promote &#8220;real world&#8221; actions by motivated groups of people to affect their representative government at all levels.</li>
<li>Make Government more responsive to the wishes of their real constituents. Not the narrow interest groups.</li>
</ul>
<p>Here are some interesting startups working on Socializing Politics. I think there is still much work and opportunity to be explored in this area.</p>
<p><a href="http://www.votizen.com/">Votizen</a> is an online network of real voters who have expressed their commitment to be engaged citizens. A free service, Votizen allows you to see your real voting history, learn the issues, endorse candidates, write open letters, and take collective action.</p>
<p><a href="http://yatterbox.com/">Yatterbox</a> is a political social media website that presents and archives all the social media output of MPs (UK version) and Senators, Representatives, Governors and Congressional Committees (US version). This includes updates from Twitter, Facebook, Flickr, YouTube, RSS feeds.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.killersite.com/2011/12/social-politics/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Courage in the face of doubters</title>
		<link>http://www.killersite.com/2011/07/courage-in-the-face-of-doubters/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=courage-in-the-face-of-doubters</link>
		<comments>http://www.killersite.com/2011/07/courage-in-the-face-of-doubters/#comments</comments>
		<pubDate>Wed, 27 Jul 2011 13:39:49 +0000</pubDate>
		<dc:creator>Ben S.</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Startup Journal]]></category>

		<guid isPermaLink="false">http://www.killersite.com/blog/2011/07/courage-in-the-face-of-doubters/</guid>
		<description><![CDATA[A startup life can be very lonely and isolating. When you think about how many business ventures fail and the fact that to be successful you have to beat a new path to customers; It should be no surprise that you will not have many cheerleaders during your hardest moments. We all are conditioned to [...]]]></description>
				<content:encoded><![CDATA[<p>A startup life can be very lonely and isolating. When you think about how many business ventures fail and the fact that to be successful you have to beat a new path to customers; It should be no surprise that you will not have many cheerleaders during your hardest moments.</p>
<p>We all are conditioned to the mythology of the &#8220;instant success&#8221; story. The kid with the idea on a Monday and the IPO in a couple short months. But deep down we all know that is never the case.</p>
<p><span style="font-size: small; font-family: arial, helvetica, sans-serif;"><img style="float: right;" src="http://imperfectaction.com/blog/wp-content/uploads/2009/06/courage.jpg" alt="Courage" width="358" height="450" /></span></p>
<p>&#8220;Instant success takes time&#8221; is one of my favorite truisms. New startups, amazing polished products, or ideas that just rocket to success out of nowhere and have often been preceded by a long period of preparation, rehearsal, and trial-and-error experimentation.</p>
<p><span style="color: #000000; font-family: arial, helvetica, sans-serif;"><span style="font-size: small;"><span style="line-height: 21px;">Matt Hendrick has a poignant post titled </span><span style="line-height: 21px;"><a href="http://matthendrick.org/2011/04/on-perseverance/">On Perseverance</a></span></span><span style="line-height: 21px; font-size: small;"> that speaks to the attitude needed to make it in a new venture.</span></span></p>
<p style="padding-left: 30px;"><span style="color: #252525; font-size: 12px; line-height: 18px; font-family: arial, helvetica, sans-serif;"><span style="color: #000000;">&#8220;It wo</span>n’t be easy. Taking this path requires sacrifice. Humble yourself. We all need money to survive in this world. Do you think you’re &#8220;above&#8221; being a waiter, or working a pizza delivery job on the side to keep the lights on? Just how badly do you want to succeed? There’s a famous saying that my friends and I latched onto some years ago: &#8220;Successful people do what unsuccessful people won’t do, even when they don’t want to do it.&#8221; You might not want to get up at 5:30 in the morning to work a second job, but your situation may require it. Are you up to the challenge?&#8221;</span></p>
<p><span style="font-family: arial, helvetica, sans-serif; font-size: small;">Winning and the courage to see your dreams through is no mystery. Successful people have invested in three underpinnings of their confidence.</span></p>
<p><strong><span style="font-family: arial, helvetica, sans-serif; font-size: small;">First is responsibility. </span></strong></p>
<p><span style="font-family: arial, helvetica, sans-serif; font-size: small;">They&#8217;ve already confronted facts truthfully and taken accountability for his or her personal decisions.</span></p>
<p><strong><span style="font-family: arial, helvetica, sans-serif; font-size: small;">Next is collaboration. </span></strong></p>
<p><span style="font-family: arial, helvetica, sans-serif; font-size: small;">They&#8217;ve created allies and associates, not adversaries in all their relationships.</span></p>
<p><strong><span style="font-family: arial, helvetica, sans-serif; font-size: small;">Finally there is initiative thinking.</span></strong></p>
<p><span style="font-family: arial, helvetica, sans-serif; font-size: small;"> They try to make continuous small-scale improvements instead of counting only on the periodic smash hit success.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.killersite.com/2011/07/courage-in-the-face-of-doubters/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SEO defined.</title>
		<link>http://www.killersite.com/2011/05/seo-or-search-engine-optimization/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=seo-or-search-engine-optimization</link>
		<comments>http://www.killersite.com/2011/05/seo-or-search-engine-optimization/#comments</comments>
		<pubDate>Thu, 12 May 2011 14:31:09 +0000</pubDate>
		<dc:creator>Ben S.</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.killersite.com/blog/2011/05/seo-or-search-engine-optimization-is-the-skill-of-placing-your-site-within-the-first-couple-of-pages-of-the-internet-search-engines-for-any-intelligently-defined-selection-of-keywords-and-phrases-seo/</guid>
		<description><![CDATA[Search engine optimization is the procedure having your site a greater rank within the internet search engine listing. Search engine optimization Friendly Web addresses approximately known as static Web addresses represent an URL structure where links on the website have the symptoms of a static structure like &#8220;/category/sub-category/page-name&#8221; as opposed to dynamic structure. During the [...]]]></description>
				<content:encoded><![CDATA[<p>Search engine optimization is the procedure having your site a greater rank within the internet search engine listing.  Search engine optimization Friendly Web addresses approximately known as static Web addresses represent an URL structure where links on the website have the symptoms of a static structure like &#8220;/category/sub-category/page-name&#8221; as opposed to dynamic structure.</p>
<p>During the last decade, Online marketing has observed a superb growth when it comes to its growth and from numerous techniques it&#8217;s banner ad campaigns that is in the best position.</p>
<p>Keyword focusing on happens when you produce a specific page or pages to become a fitting response for any internet search engine query.  It&#8217;s crafting your page to ensure that search engines like Google can certainly discern the page matches a particular search query.  Keyword focusing on is really a popular term among online marketer&#8217;s.  The following factor to see in keyword focusing on is when frequently phrase seems in your body in comparison with other words in your body.  You would like top listing about the search engines like Google, and you have to target key phrases, so you receive a #1 listing.  </p>
<p>Actually, determining which technique to choose is really a complex problem and is dependent on the keyword and who&#8217;s searching for this.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.killersite.com/2011/05/seo-or-search-engine-optimization/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using disk: enhanced

 Served from: www.killersite.com @ 2013-06-19 03:19:09 by W3 Total Cache -->