<?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:blogger='http://schemas.google.com/blogger/2008' 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-1885941715345341708</id><updated>2026-10-08T04:37:11.843-07:00</updated><category term="development"/><category term="programming"/><category term="django"/><category term="appengine gae java python"/><category term="berlin"/><category term="chrome"/><category term="cloud"/><category term="coding"/><category term="deployment"/><category term="eclipse"/><category term="gdd"/><category term="github"/><category term="google"/><category term="howto"/><category term="infrastructure"/><category term="java"/><category term="opera"/><category term="python"/><category term="saas"/><category term="testing"/><category term="tools"/><category term="tutorial"/><title type='text'>Equally True</title><subtitle type='html'>Personal blog covering range of topics around software development.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://equallytrue.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1885941715345341708/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://equallytrue.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Juha S</name><uri>http://www.blogger.com/profile/16783678110582703635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>13</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1885941715345341708.post-5387001965188473200</id><published>2012-05-12T02:49:00.000-07:00</published><updated>2012-06-15T04:52:26.962-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="cloud"/><category scheme="http://www.blogger.com/atom/ns#" term="deployment"/><category scheme="http://www.blogger.com/atom/ns#" term="development"/><category scheme="http://www.blogger.com/atom/ns#" term="infrastructure"/><category scheme="http://www.blogger.com/atom/ns#" term="saas"/><title type='text'>Free PaaS options for deving, experimenting and more</title><content type='html'>&lt;br /&gt;
&lt;i&gt;It seems that almost all the major Platform as a Service providers offer some kind of free plan. I thought to share a few of them for others to see and benefit. They are especially useful if you are trying to learn a new technology and try out different service providers.&lt;/i&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;








&lt;span style=&quot;font-size: large;&quot;&gt;Careful, don&#39;t get locked in&lt;/span&gt;&lt;/h2&gt;
&lt;br /&gt;
&lt;div&gt;
The providers have realized that most customers don&#39;t want to change providers once they have passed the learning curve on one provider. As a customer you should however be ready to move your deployment as quickly as possible. You can do this by avoiding the proprietary technologies provided by the service providers or at least abstract their usage in a way that makes it easy to rewrite those parts if you change providers. AppEngine is good example of a provider that offers a wide range of proprietary technologies that will make moving your deployment away from there difficult if you haven&#39;t thought about it when developing it.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
If you have time to learn a bit go ahead and try do deploy your app to a few of the platforms listed below, if it goes well you might get the confidence to change to a better suited provider if the time comes in the future. Some of the providers require more effort, but if you want to try an easy one take a look at Heroku, it supports easy deployment through Git.&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;




&lt;a href=&quot;http://www.google.com/enterprise/cloud/appengine/&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Google App Engine&amp;nbsp;&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;separator&quot; style=&quot;display: inline;&quot;&gt;
&lt;img border=&quot;0&quot; width=&quot;144&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7XDOxKBTgctttYYYDoQaa9YeG2rSQfAmST4_UWXQLQ_J2CmwrgQvbKim2VyZjXtmxAEqmn9mGzia_Id1e6lb0fZIZ2cRjTkN_umQWR24TCy0MJBHsAzBcnLVDSCPMbplXcURUBU5MqeRd/s1600/gae.png&quot; /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;Offers&lt;/b&gt;: Python, Go and Java (and any other JVM language) platform, and many useful services.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Note: &lt;/b&gt;Appengine offers you to many Google specific technologies like Datastore, Channel API, Tasks and Cron. This makes is more difficult to migrate out of AppEngine. Also if you use 3rd party libraries or frameworks, they may not work because of the proprietary datastore.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Free plan: &lt;/b&gt;1GB database, 1GB outgoing bandwidth/day and&amp;nbsp;50k DB ops/day. Check more detailed breakdown on their &lt;a href=&quot;http://www.google.com/enterprise/cloud/appengine/pricing.html&quot;&gt;pricing page&lt;/a&gt;. These limits are enough for most private websites or blogs, Based on peoples experiences you can get 300k+ page views per month within the limits for average app (discussion &lt;a href=&quot;https://groups.google.com/forum/#!msg/google-appengine/D7F6DwhuBVo/yHRInotL8NcJ&quot;&gt;here&lt;/a&gt;).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;








&lt;a href=&quot;http://www.heroku.com/&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Heroku&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;separator&quot; style=&quot;display: inline;&quot;&gt;
&lt;img border=&quot;0&quot; src=&quot;https://nav.heroku.com/images/logos/logo.png&quot; /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;b&gt;Offers:&lt;/b&gt;&amp;nbsp;Ruby, Node.js, Clojure, Java, Python, and Scala platform. In addition they offer support for many other languages through &lt;a href=&quot;https://devcenter.heroku.com/articles/buildpacks&quot;&gt;buildpacks&lt;/a&gt;.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;Note: &lt;/b&gt;Heroku is a quality provider from what I have heard. They support easy deployment through git.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;a href=&quot;https://devcenter.heroku.com/categories/billing&quot;&gt;&lt;b&gt;Free plan&lt;/b&gt;&lt;/a&gt;: 750 processing hours (enough for 100% uptime), 5MB database. So usually the database size is the limiting factor.&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;








&lt;a href=&quot;http://www.engineyard.com/products/cloud&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Engine Yard Cloud&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;separator&quot; style=&quot;display: inline;&quot;&gt;
&lt;img border=&quot;0&quot; src=&quot;http://www.h-online.com/imgs/43/7/1/7/7/5/2/Engine_yard_horizontal200-8acc7c2490409d6b.png&quot; width=&quot;180&quot; /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;b&gt;Offers:&lt;/b&gt;&amp;nbsp;Ruby on rails stack.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;Free tryout:&lt;/b&gt;&amp;nbsp;500 instance hours free (must be used within 6 months), more&amp;nbsp;&lt;a href=&quot;http://www.engineyard.com/products/cloud/pricing&quot;&gt;here&lt;/a&gt;.&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;








&lt;a href=&quot;https://www.windowsazure.com/&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Windows Azure&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;separator&quot; style=&quot;display: inline;&quot;&gt;
&lt;img border=&quot;0&quot; src=&quot;http://www.microsoft.com/global/windowsazure/publishingimages/windowsazure_blog_images/bloglogo.png&quot; /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;Offers: &lt;/b&gt;.net, node.js, Java, PHP or&amp;nbsp;&lt;a href=&quot;https://www.windowsazure.com/en-us/develop/other/&quot;&gt;other&lt;/a&gt; (language of your choice).&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Note:&lt;/b&gt;&amp;nbsp;You&#39;ll be on&amp;nbsp;Microsoft&amp;nbsp;stack, so don&#39;t dream of MySQL here.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;a href=&quot;https://www.windowsazure.com/en-us/pricing/free-trial/&quot;&gt;Free trial:&lt;/a&gt; &lt;/b&gt;3 month trial includes&amp;nbsp;750 hours on small instance (enough for 100% uptime), 1GB database, 20GB storage, 20GB outbound bandwidth&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;a href=&quot;http://www.cloudfoundry.com/&quot;&gt;Cloud Foundry&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;display: inline;&quot;&gt;
&lt;a href=&quot;http://www.eweekeurope.co.uk/wp-content/uploads/2011/08/VMWare-Cloud-Foundry.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://www.eweekeurope.co.uk/wp-content/uploads/2011/08/VMWare-Cloud-Foundry.jpg&quot; width=&quot;95&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Cloud foundry is an interesting one. They use their &lt;a href=&quot;http://cloudfoundry.org/&quot;&gt;Open Source PaaS platform&lt;/a&gt;. You can download and install this image to your own machine if you want. This also means you can privately run their PaaS platform on any infrastructure you choose, EC2 for example.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Offers: &lt;/b&gt;Ruby, Node.js, Java or &lt;a href=&quot;http://blog.cloudfoundry.com/post/13481011644/running-standalone-web-applications-on-cloud-foundry&quot;&gt;any other&lt;/a&gt; technology. MySQL, Postgres, Mongo or Redis database. Read more about their &lt;a href=&quot;http://docs.cloudfoundry.com/infrastructure/overview.html&quot;&gt;infrastructure&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Free during beta. &lt;/b&gt;Beta will end during 2012, but pricing after that&amp;nbsp;is not announced.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;



&lt;a href=&quot;https://openshift.redhat.com/&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Redhat Openshift&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;separator&quot; style=&quot;display: inline;&quot;&gt;
&lt;img border=&quot;0&quot; height=&quot;90&quot; width=&quot;97&quot; src=&quot;https://openshift.redhat.com/app/images/logo-medium.png&quot; /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;Offers&lt;/b&gt;: Java, Ruby, Node.js, Python, PHP and Perl. MySQL, PostgreSQL and MongoDB databases.  More about their features &lt;a href=&quot;https://openshift.redhat.com/community/developers/technologies&quot;&gt;here&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Note: &lt;/b&gt; The service looks very developer friendly, and already on the landing page you can see them advertising &quot;No Lock in&quot;. They also have &lt;a href=&quot;https://openshift.redhat.com/community/&quot;&gt;community section&lt;/a&gt; in their site following the open source traditions.
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;a href=&quot;https://openshift.redhat.com/community/blogs/openshift-delivers-more-free-memory-and-storage-for-your-applications&quot; target=&quot;_blank&quot;&gt;Free plan:&lt;/a&gt; &lt;/b&gt;3x 500MB ram and 1GB HD. Their whole operations seems to be around free plan. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;




&lt;a href=&quot;https://www.dotcloud.com/&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;dotCloud&amp;nbsp;&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;separator&quot; style=&quot;display: inline;&quot;&gt;
&lt;img border=&quot;0&quot; width=&quot;200&quot; src=&quot;https://www.dotcloud.com/static/img/logo.png&quot; /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;Offers&lt;/b&gt;: Any technology (well, maybe not every, but their supported &lt;a href=&quot;http://docs.dotcloud.com/services/&quot;&gt;technology list&lt;/a&gt; is impressively long).&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Note: &lt;/b&gt;They show their &lt;a href=&quot;http://docs.dotcloud.com/services/roadmap/&quot; target=&quot;_blank&quot;&gt;roadmap&lt;/a&gt;, which is nice touch of openness. Many technologies seem to be in &quot;upcoming&quot; or &quot;alpha&quot; stage.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;a href=&quot;https://www.dotcloud.com/pricing/&quot; target=&quot;_blank&quot;&gt;Free plan:&lt;/a&gt; &lt;/b&gt;Two services of your choice, for example Python and MongoDB. Databases have 10MB hd and 10MB ram in free plan.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;




&lt;a href=&quot;https://appharbor.com&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;AppHarbor&amp;nbsp;&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;separator&quot; style=&quot;display: inline;&quot;&gt;
&lt;img border=&quot;0&quot; width=&quot;138&quot; src=&quot;https://d1h96yxpqwsy0s.cloudfront.net/assets/images/appharbor.png&quot; /&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;Offers&lt;/b&gt;: .NET platfor as a service. Many additional services available as Add-Ons.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;a href=&quot;https://www.dotcloud.com/pricing/&quot; target=&quot;_blank&quot;&gt;Free plan:&lt;/a&gt; &lt;/b&gt;Free plan includes 1 web worker unit. In addition they have wide variety of Add-Ons that have free option including: Mysql, CouchDb, MongoDb and RabbitMQ (task queue).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;


&lt;span style=&quot;font-size: large;&quot;&gt;&lt;a href=&quot;http://aws.amazon.com/ec2/&quot;&gt;Amazon EC2&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;div class=&quot;separator&quot; style=&quot;display: inline;&quot;&gt;
&lt;img border=&quot;0&quot; src=&quot;http://josefernandes.pt/sites/all/files/styles/medium/public/amazon-aws-logo.png&quot; width=&quot;160&quot; /&gt;&lt;/div&gt;
&lt;br /&gt;
EC2 is actually an IaaS (Infrastructure as a Service), but I included it here, because if you have some&amp;nbsp;administrative&amp;nbsp;skills you can quite quickly set up any platform you like.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Offers:&lt;/b&gt;&amp;nbsp;Virtual machine (Linux or Windows) and related services.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Note:&lt;/b&gt;&amp;nbsp; You&#39;ll have to manage the virtual machine yourself, so you&#39;ll most probably need to get familiar with linux commandline. Managing any security or other problems on the OS level yourself isn&#39;t for everybody and requires some skills and effort.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;a href=&quot;http://aws.amazon.com/free/&quot;&gt;Free plan:&lt;/a&gt;&lt;/b&gt;&amp;nbsp;1 year only. 750 hours per month Micro Instance (enough for 100% uptime), 100MB storage, 30GB Elastic Block Storage and 5GB S3 storage. Detailed limitations&amp;nbsp;&lt;a href=&quot;http://aws.amazon.com/free/&quot;&gt;here&lt;/a&gt;. Biggest limitation for many is low CPU performance of the Micro instance.&amp;nbsp;&lt;a href=&quot;http://www.phoronix.com/scan.php?page=article&amp;amp;item=amazon_ec2_micro&amp;amp;num=1&quot;&gt;Here&lt;/a&gt;&amp;nbsp;are&amp;nbsp;some benchmark results that show it&#39;s CPU is comparable to the Nokia N900 smartphone.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Cloud Database providers&lt;/span&gt;&lt;/h2&gt;
&lt;br /&gt;
You can also get Database as a service. Using database through public internet does bring some performance and security issues, but they are easy for testing out new databases.&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;MongoDB: &lt;a href=&quot;https://mongolab.com/&quot;&gt;MongoLab&lt;/a&gt;&amp;nbsp;offers 240MB free database.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;MySQL: &amp;nbsp;&lt;a href=&quot;http://xeround.com/&quot;&gt;Xeround&lt;/a&gt;&amp;nbsp;offers 10MB database for free.&lt;/li&gt;
&lt;li&gt;Apache CouchDB: &lt;a href=&quot;https://cloudant.com/#!/solutions/cloud&quot;&gt;Cloudant&lt;/a&gt; offers 250MB database for free.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Reddit discussion about this post: &lt;a href=&quot;http://www.reddit.com/r/programming/comments/tkrck/free_paas_options_for_deving_experimenting_and/&quot; target=&quot;_blank&quot; &gt;Link&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
Want to learn more about PaaS? O&#39;Reilly has a new book called &lt;a href=&quot;http://www.amazon.com/gp/product/1449323421/ref=as_li_qf_sp_asin_tl?ie=UTF8&amp;tag=equal03-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=1449323421&quot;&gt;Understanding PaaS&lt;/a&gt;&lt;img src=&quot;http://www.assoc-amazon.com/e/ir?t=equal03-20&amp;l=as2&amp;o=1&amp;a=1449323421&quot; width=&quot;1&quot; height=&quot;1&quot; border=&quot;0&quot; alt=&quot;&quot; style=&quot;border:none !important; margin:0px !important;&quot; /&gt;
 (released Jan 2012).&lt;br&gt;
&lt;br&gt;
Follow me in Twitter: &lt;a href=&quot;http://www.twitter.com/JuhaFinn&quot;&gt;&lt;b&gt;@JuhaFinn&lt;/b&gt;&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;&lt;/div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://equallytrue.blogspot.com/feeds/5387001965188473200/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://equallytrue.blogspot.com/2012/05/free-paas-options-for-deving.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1885941715345341708/posts/default/5387001965188473200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1885941715345341708/posts/default/5387001965188473200'/><link rel='alternate' type='text/html' href='http://equallytrue.blogspot.com/2012/05/free-paas-options-for-deving.html' title='Free PaaS options for deving, experimenting and more'/><author><name>Juha S</name><uri>http://www.blogger.com/profile/16783678110582703635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7XDOxKBTgctttYYYDoQaa9YeG2rSQfAmST4_UWXQLQ_J2CmwrgQvbKim2VyZjXtmxAEqmn9mGzia_Id1e6lb0fZIZ2cRjTkN_umQWR24TCy0MJBHsAzBcnLVDSCPMbplXcURUBU5MqeRd/s72-c/gae.png" height="72" width="72"/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1885941715345341708.post-3353681356572441072</id><published>2012-05-04T10:32:00.000-07:00</published><updated>2012-05-05T15:39:26.908-07:00</updated><title type='text'>170+ Django conference videos</title><content type='html'>&lt;div&gt;
It&#39;s great that many software conferences nowadays put their videos online, DjangoCon has been especially good on this. Those who can&#39;t attend the real conference for budget or geographical reasons get a chance to experience some great presentations. It&#39;s great for pushing the overall web development level upward.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxeTnjFI-wecM4yzj-gH3WOckZCa7wU1o1HXZ3_WMujDmLv95YX1laDmPSsmP51k6RAyOKDNvOHAufc-21rxZbe4XfJT7ZpMXr2UlBhgMJOhLjjauALYCtGoByG9sh_ysg9uylLFdPnMDb/s1600/12799.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;50&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxeTnjFI-wecM4yzj-gH3WOckZCa7wU1o1HXZ3_WMujDmLv95YX1laDmPSsmP51k6RAyOKDNvOHAufc-21rxZbe4XfJT7ZpMXr2UlBhgMJOhLjjauALYCtGoByG9sh_ysg9uylLFdPnMDb/s320/12799.png&quot;  /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
I collected here mainly DjangoCon presentations, but there are a few other quality talks in the Other Videos section. &lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;In case someone is interested of scraping data from pages with JQuery and Chrome console here is script I wrote. It gets title, urls and date from blip.tv, reverses the order and prints it as a list html element. I load JQuery to the page with a JQuerify bookmarklet. I find JQuery quite handy for small tasks like this. Here is the script:&lt;/i&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: small;&quot;&gt;&lt;/span&gt;
&lt;pre style=&quot;overflow-x: scroll;&quot;&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: small;&quot;&gt;$.each( $(&quot;.EpisodeList .clearfix&quot;).toArray().reverse(), function(i,data){ 
    console.log(&#39;&amp;lt;li&amp;gt;&amp;lt;a href=&quot;&#39; + $(data).find(&quot;h3 a&quot;)[0] + &#39;&quot;&amp;gt;&#39; +$(data).find(&quot;h3&quot;).first().text().trim() +&#39;&amp;lt;/a&amp;gt; &amp;lt;span style=&quot;color:gray;font-size:0.9em;&quot;&amp;gt;&#39; + $(data).find(&quot;.MetaDataPairs .ReleaseDate h6&quot;).text() + &#39;&amp;lt;/span&amp;gt;&amp;lt;/li&amp;gt;&#39;);
});
&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;h3&gt;







Categories:&lt;/h3&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;#5selected&quot;&gt;5 selected videos&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#djangocon2011&quot;&gt;DjangoCon 2011&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#djangocone2011&quot;&gt;DjangoCon Europe 2011&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#djangocon2010&quot;&gt;DjangoCon 2010&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#djangocone2010&quot;&gt;DjangoCon Europe 2010&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#djangocon2009&quot;&gt;DjangoCon 2009&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#others&quot;&gt;Other Videos&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;h3 id=&quot;5selected&quot;&gt;






&lt;span style=&quot;font-size: large;&quot;&gt;5 selected videos&lt;/span&gt;&lt;/h3&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
Here are five videos to get you started dealing with some common topics: caching, forms, deployment and security.&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;DjangoCon 2011 Keynote - David Eaves &lt;iframe src=&quot;http://blip.tv/play/AYLUiiUC.html?p=1&quot; width=&quot;596&quot; height=&quot;334&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;embed type=&quot;application/x-shockwave-flash&quot; src=&quot;http://a.blip.tv/api.swf#AYLUiiUC&quot; style=&quot;display:none&quot;&gt;&lt;/embed&gt;&lt;/li&gt;
&lt;li&gt;Cache rules everything around me &lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;334&quot; src=&quot;http://blip.tv/play/AYLUmnkC.html?p=1&quot; width=&quot;596&quot;&gt;&lt;/iframe&gt;&lt;embed src=&quot;http://a.blip.tv/api.swf#AYLUmnkC&quot; style=&quot;display: none;&quot; type=&quot;application/x-shockwave-flash&quot;&gt;&lt;/embed&gt;&lt;/li&gt;
&lt;li&gt;Safely deploying on the cutting edge &lt;iframe src=&quot;http://blip.tv/play/AYLUky0C.html?p=1&quot; width=&quot;596&quot; height=&quot;334&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;embed type=&quot;application/x-shockwave-flash&quot; src=&quot;http://a.blip.tv/api.swf#AYLUky0C&quot; style=&quot;display:none&quot;&gt;&lt;/embed&gt;&lt;/li&gt;
&lt;li&gt;Advanced security topics &lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;334&quot; src=&quot;http://blip.tv/play/AYLUljIC.html?p=1&quot; width=&quot;596&quot;&gt;&lt;/iframe&gt;&lt;embed src=&quot;http://a.blip.tv/api.swf#AYLUljIC&quot; style=&quot;display: none;&quot; type=&quot;application/x-shockwave-flash&quot;&gt;&lt;/embed&gt;&lt;/li&gt;
&lt;li&gt;Advanced Django Form Usage &lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;334&quot; src=&quot;http://blip.tv/play/AYLUlgsC.html?p=1&quot; width=&quot;596&quot;&gt;&lt;/iframe&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;h3 id=&quot;djangocon2011&quot;&gt;






&lt;a href=&quot;http://blip.tv/djangocon&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;DjangoCon 2011&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/keynote-david-eaves-5571777&quot; target=&quot;_blank&quot;&gt;Keynote - David Eaves&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 20, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/testing-with-lettuce-and-splinter-5571880&quot; target=&quot;_blank&quot;&gt;Testing with Lettuce and Splinter&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 20, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/from-designer-to-django-er-in-six-weeks-a-story-from-solo-founder-5571943&quot; target=&quot;_blank&quot;&gt;From Designer to Django&#39;er in Six Weeks: A Story...&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 20, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/monkeying-around-with-python-at-new-relic-5572067&quot; target=&quot;_blank&quot;&gt;Monkeying Around with Python at New Relic&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 20, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/confessions-of-joe-developer-5572100&quot; target=&quot;_blank&quot;&gt;Confessions of Joe Developer&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 20, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/django-hosting-panel-5572201&quot; target=&quot;_blank&quot;&gt;Django Hosting Panel&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 20, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/the-story-and-tech-of-read-the-docs-5572247&quot; target=&quot;_blank&quot;&gt;The story and tech of Read the Docs&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 20, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/real-time-django-5572279&quot; target=&quot;_blank&quot;&gt;Real-Time Django&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 20, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/state-of-the-dsf-keynote-5572334&quot; target=&quot;_blank&quot;&gt;State of the DSF Keynote&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 20, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/secrets-of-postgresql-performance-5572403&quot; target=&quot;_blank&quot;&gt;Secrets of PostgreSQL Performance&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 20, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/fireside-chat-with-a-bdfl-5572472&quot; target=&quot;_blank&quot;&gt;Fireside Chat with a BDFL&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 20, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/lightning-talks-tue-pm-5572512&quot; target=&quot;_blank&quot;&gt;Lightning Talks Tue pm&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 20, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/keynote-brad-fitzpatrick-5572560&quot; target=&quot;_blank&quot;&gt;Keynote - Brad Fitzpatrick&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 20, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/restful-apis-promises-lies-5572618&quot; target=&quot;_blank&quot;&gt;RESTful APIs: Promises &amp;amp; Lies&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 20, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/django-package-thunderdome-is-your-package-worthy-5572659&quot; target=&quot;_blank&quot;&gt;Django Package Thunderdome: Is Your Package Wort...&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 20, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/real-world-django-deployment-using-chef-5572706&quot; target=&quot;_blank&quot;&gt;Real world Django deployment using Chef&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 20, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/a-little-south-sanity-5572755&quot; target=&quot;_blank&quot;&gt;A Little South Sanity&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 20, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/building-apis-in-django-with-tastypie-5572790&quot; target=&quot;_blank&quot;&gt;Building APIs in Django with Tastypie&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 20, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/making-the-django-orm-multilingual-5572819&quot; target=&quot;_blank&quot;&gt;Making the Django ORM Multilingual&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 20, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/stop-tilting-at-windmills-spotting-bottlenecks-5572858&quot; target=&quot;_blank&quot;&gt;Stop Tilting at Windmills - Spotting Bottlenecks&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 20, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/why-the-django-documentation-sucks-5572891&quot; target=&quot;_blank&quot;&gt;Why the Django Documentation Sucks&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 20, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/best-practices-for-front-end-django-developers-5572918&quot; target=&quot;_blank&quot;&gt;Best Practices for Front-End Django Developers&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 20, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/safely-deploying-on-the-cutting-edge-5572937&quot; target=&quot;_blank&quot;&gt;Safely deploying on the cutting edge&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 20, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/benevolent-designer-for-life-s-keynote-designers-make-it-go-to-eleven-5572992&quot; target=&quot;_blank&quot;&gt;Benevolent Designer For Life&#39;s Keynote - Designe...&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 20, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/keynote-glyph-lefkowitz-5573264&quot; target=&quot;_blank&quot;&gt;Keynote - Glyph Lefkowitz&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 21, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/advanced-django-form-usage-5573287&quot; target=&quot;_blank&quot;&gt;Advanced Django Form Usage&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 21, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/teaching-django-to-comrades-5573306&quot; target=&quot;_blank&quot;&gt;Teaching Django to Comrades&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 21, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/advanced-security-topics-5573326&quot; target=&quot;_blank&quot;&gt;Advanced security topics&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 21, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/rtfm-write-the-friendly-manual-5573341&quot; target=&quot;_blank&quot;&gt;RTFM -- wRite The Friendly Manual&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 21, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/deployment-daemons-and-datacenters-5573370&quot; target=&quot;_blank&quot;&gt;Deployment, Daemons and Datacenters&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 21, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/y-all-wanna-scrape-with-us-content-ain-t-a-thing-web-scraping-with-our-favorite-python-libraries-5573401&quot; target=&quot;_blank&quot;&gt;Y&#39;all Wanna Scrape with Us? Content Ain&#39;t a Thin...&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 21, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/making-interactive-maps-for-the-web-5573888&quot; target=&quot;_blank&quot;&gt;Making interactive maps for the web&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 21, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/cache-rules-everything-around-me-5573909&quot; target=&quot;_blank&quot;&gt;Cache rules everything around me&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 21, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/lightning-talks-wed-am-5576513&quot; target=&quot;_blank&quot;&gt;Lightning Talks - Wed am&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 22, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/testing-the-developer-strikes-back-5577365&quot; target=&quot;_blank&quot;&gt;Testing: The Developer Strikes Back&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 22, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/pinax-after-three-years-lessons-learnt-and-the-way-forward-5577420&quot; target=&quot;_blank&quot;&gt;Pinax after Three Years: Lessons Learnt and the ...&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 22, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/django-core-dev-panel-5578198&quot; target=&quot;_blank&quot;&gt;Django Core Dev Panel&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 22, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/lightning-talks-thurs-am-5582168&quot; target=&quot;_blank&quot;&gt;Lightning Talks - Thurs AM&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 23, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/taming-dependencies-with-pip-5582996&quot; target=&quot;_blank&quot;&gt;Taming dependencies with pip&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 23, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/a-summer-in-the-wild-5583459&quot; target=&quot;_blank&quot;&gt;A Summer in the Wild&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 24, 2011&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;h3 id=&quot;djangocone2011&quot;&gt;








&lt;a href=&quot;http://blip.tv/djangocon-europe-2011&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;DjangoCon Europe 2011&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon-europe-2011/monday-0930-remco-wendt-opening-5300929&quot; target=&quot;_blank&quot;&gt;Opening&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jun 21, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon-europe-2011/monday-1000-eric-florenzano-5308864&quot; target=&quot;_blank&quot;&gt;From static to real-time: one app&#39;s journey into the modern age&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jun 23, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon-europe-2011/monday-1215-jannis-leidel-5309331&quot; target=&quot;_blank&quot;&gt;How I Learned to Stop Worrying and Love Python Packaging&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jun 23, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon-europe-2011/monday-1645-lightning-talks-5309339&quot; target=&quot;_blank&quot;&gt;Lightning Talks&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jun 23, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon-europe-2011/monday-1600-idan-gazit-5309361&quot; target=&quot;_blank&quot;&gt;One size fits all: responsive web design with Django, Compass, and the Less Framework&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jun 23, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon-europe-2011/monday-1130-andy-mckay-5309429&quot; target=&quot;_blank&quot;&gt;Large Django sites at Mozilla&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jun 23, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon-europe-2011/monday-1445-dennis-bunskoek-manuel-saelices-jonas-obrist-5309433&quot; target=&quot;_blank&quot;&gt;3 CMSes in 45 minutes&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jun 23, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon-europe-2011/tuesday-1205-matt-westcott-5310579&quot; target=&quot;_blank&quot;&gt;unjoinify: a module to tame the SQL beast&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jun 24, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon-europe-2011/tuesday-1145-szilveszter-farkas-5310580&quot; target=&quot;_blank&quot;&gt;Continuous integration and continuous deployment&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jun 24, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon-europe-2011/tuesday-1330-markus-zapke-gr-ndemann-5310618&quot; target=&quot;_blank&quot;&gt;Celery - An asynchronous task queue (not only) for Django&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jun 24, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon-europe-2011/tuesday-1030-jesper-noehr-5310627&quot; target=&quot;_blank&quot;&gt;Bitbucket - Lessons learned&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jun 24, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon-europe-2011/tuesday-0930-martijn-faassen-5310658&quot; target=&quot;_blank&quot;&gt;Who cares about Zope?&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jun 24, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon-europe-2011/wednesday-1145-alex-gaynor-5311089&quot; target=&quot;_blank&quot;&gt;The Best and Worst of Django Core&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jun 24, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon-europe-2011/wednesday-1205-zachary-voase-5311165&quot; target=&quot;_blank&quot;&gt;Django on Rails: Getting Resourceful&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jun 24, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon-europe-2011/wednesday-1415-will-hardy-5311186&quot; target=&quot;_blank&quot;&gt;Taming runtime dynamic models in Django&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jun 24, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon-europe-2011/wednesday-0930-armin-ronacher-5311189&quot; target=&quot;_blank&quot;&gt;The Impact of Django&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jun 24, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon-europe-2011/wednesday-1330-andrew-godwin-5311217&quot; target=&quot;_blank&quot;&gt;Deploying, At An Unusual Scale&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jun 24, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon-europe-2011/wednesday-1030-nate-aune-anna-callahan-5311224&quot; target=&quot;_blank&quot;&gt;An iPhone-Python love affair: Building APIs for mobile&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jun 24, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon-europe-2011/wednesday-1700-russel-keith-magee-5311903&quot; target=&quot;_blank&quot;&gt;Sprint introduction&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jun 24, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon-europe-2011/wednesday-1530-andrew-godwin-andy-mckay-jesper-noehr-eric-florenzano-5312117&quot; target=&quot;_blank&quot;&gt;Scalability panel&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jun 24, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon-europe-2011/wednesday-1615-russel-keith-magee-mp4-5312130&quot; target=&quot;_blank&quot;&gt;Whither Django?&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jun 24, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon-europe-2011/wednesday-17-20-remco-wendt-5319747&quot; target=&quot;_blank&quot;&gt;Closing&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jun 27, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon-europe-2011/tuesday-1415-klaas-van-schelven-5323681&quot; target=&quot;_blank&quot;&gt;Reusable Apps using &quot;Eight Spaces&quot;&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jun 28, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon-europe-2011/tuesday-1635-ed-crewe-5323719&quot; target=&quot;_blank&quot;&gt;Integrating the Enterprise using Django&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jun 28, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon-europe-2011/tuesday-1615-jonas-obrist-5323727&quot; target=&quot;_blank&quot;&gt;The Django ORM and multilingual database contents&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jun 28, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon-europe-2011/tuesday-1655-lightning-talks-5323829&quot; target=&quot;_blank&quot;&gt;Lightning talks&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jun 28, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon-europe-2011/tuesday-1530-andrew-godwin-idan-gazit-russel-keith-magee-alex-gaynor-jannis-leidel-5323885&quot; target=&quot;_blank&quot;&gt;Core developers panel&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jun 28, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon-europe-2011/monday-1400-alex-gaynor-5343953&quot; target=&quot;_blank&quot;&gt;Django and PyPy: Performant is a word&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jul  4, 2011&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;h3 id=&quot;djangocon2010&quot;&gt;







&lt;a href=&quot;http://blip.tv/djangocon&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;DjangoCon 2010&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/distinguished-guest-speaker-4122102&quot; target=&quot;_blank&quot;&gt;Distinguished Guest Speaker&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 9, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/distinguished-guest-speaker-4125008&quot; target=&quot;_blank&quot;&gt;Distinguished Guest Speaker&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 10, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/step-away-from-that-database-4125055&quot; target=&quot;_blank&quot;&gt;Step Away From That Database&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 10, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/making-the-leap-to-django-4125204&quot; target=&quot;_blank&quot;&gt;Making the leap to Django&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 10, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/teaching-an-old-pony-new-tricks-maintaining-and-updating-an-aging-django-project-4125255&quot; target=&quot;_blank&quot;&gt;Teaching an Old Pony New Tricks: Maintaining and...&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 10, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/typewar-a-case-study-4125302&quot; target=&quot;_blank&quot;&gt;Typewar: A Case Study&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 10, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/dsf-announcements-and-q-a-4125339&quot; target=&quot;_blank&quot;&gt;DSF Announcements and Q&amp;amp;A&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 10, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/so-you-want-to-be-a-core-developer-4125399&quot; target=&quot;_blank&quot;&gt;So you want to be a core developer?&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 10, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/breaking-down-the-process-of-building-a-custom-cms-4125475&quot; target=&quot;_blank&quot;&gt;Breaking down the process of building a custom CMS&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 10, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/maps-of-imaginary-lands-4125517&quot; target=&quot;_blank&quot;&gt;Maps of Imaginary Lands&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 10, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/django-forms-tips-tricks-and-ways-to-stay-out-of-trouble-4125560&quot; target=&quot;_blank&quot;&gt;Django Forms: Tips, Tricks and Ways to Stay Out ...&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 10, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/switching-addons-mozilla-org-from-cakephp-to-django-4125605&quot; target=&quot;_blank&quot;&gt;Switching addons.mozilla.org from CakePHP to Dja...&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 10, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/pony-pwning-4125664&quot; target=&quot;_blank&quot;&gt;Pony Pwning&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 10, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/first-steps-in-performance-tuning-4125718&quot; target=&quot;_blank&quot;&gt;First steps in performance tuning&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 10, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/customizing-the-django-admin-4125761&quot; target=&quot;_blank&quot;&gt;Customizing the Django Admin&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 10, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/state-of-pinax-4125813&quot; target=&quot;_blank&quot;&gt;State of Pinax&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 10, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/domain-specific-frameworks-why-they-rock-and-what-can-we-do-to-get-more-of-them-4125844&quot; target=&quot;_blank&quot;&gt;Domain Specific Frameworks - Why they rock and w...&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 10, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/how-to-sell-django-4125876&quot; target=&quot;_blank&quot;&gt;How to sell Django&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 10, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/large-problems-in-django-mostly-solved-4125915&quot; target=&quot;_blank&quot;&gt;Large Problems in Django, Mostly Solved&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 10, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/rethinking-the-reusable-application-paradigm-4127632&quot; target=&quot;_blank&quot;&gt;Rethinking the Reusable Application Paradigm&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 11, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/treehugging-4127707&quot; target=&quot;_blank&quot;&gt;Treehugging&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 11, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/alternative-views-4128123&quot; target=&quot;_blank&quot;&gt;Alternative views&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 11, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/monitoring-code-quality-in-your-django-project-4128152&quot; target=&quot;_blank&quot;&gt;Monitoring Code Quality in Your Django Project&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 11, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/data-herding-how-to-shepherd-your-flock-through-valleys-of-darkness-4128255&quot; target=&quot;_blank&quot;&gt;Data Herding: How to Shepherd Your Flock Through...&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 11, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/lightning-talks-day-3-4129390&quot; target=&quot;_blank&quot;&gt;Lightning Talks - Day 3&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 12, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/nosql-and-django-panel-4130023&quot; target=&quot;_blank&quot;&gt;NoSQL and Django Panel&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 12, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/what-is-sprinting-4130042&quot; target=&quot;_blank&quot;&gt;What is Sprinting&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 12, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/welcome-and-chairman-s-address-4130563&quot; target=&quot;_blank&quot;&gt;Welcome and Chairman&#39;s Address&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 12, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/lightning-talks-extra-copy-of-day-3-delete-me-4130708&quot; target=&quot;_blank&quot;&gt;Lightning Talks - extra copy of day 3, delete me&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 12, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/topics-of-interest-4130976&quot; target=&quot;_blank&quot;&gt;Topics of Interest&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 12, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/why-django-sucks-and-how-we-can-fix-it-4131303&quot; target=&quot;_blank&quot;&gt;Why Django Sucks, and How We Can Fix It&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 12, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/technical-design-panel-4131811&quot; target=&quot;_blank&quot;&gt;Technical Design Panel&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 12, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/modeling-challenges-4149680&quot; target=&quot;_blank&quot;&gt;Modeling challenges&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 16, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/alice-in-performanceland-down-the-rabbit-hole-with-frank-wiles-4152898&quot; target=&quot;_blank&quot;&gt;Alice in Performanceland -- Down the Rabbit Hole...&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 17, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/learning-a-new-codebase-4153046&quot; target=&quot;_blank&quot;&gt;Learning a new codebase&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 17, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/massaging-the-pony-message-queues-and-you-4153199&quot; target=&quot;_blank&quot;&gt;Massaging the Pony: Message Queues and You&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 17, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/multi-database-patterns-4153390&quot; target=&quot;_blank&quot;&gt;Multi-database patterns&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 17, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/sprints-kickoff-4153642&quot; target=&quot;_blank&quot;&gt;Sprints Kickoff&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 17, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/scaling-the-world-s-largest-django-application-4154053&quot; target=&quot;_blank&quot;&gt;Scaling the World&#39;s Largest Django Application&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 17, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/lightning-talks-day-1-4167881&quot; target=&quot;_blank&quot;&gt;Lightning Talks - Day 1&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Sep 21, 2010&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;h3 id=&quot;djangocone2010&quot;&gt;








&lt;a href=&quot;http://blip.tv/djangocon-europe-2010&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;DjangoCon Europe 2010&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon-europe-2010/lightning-talks-first-day-3696332&quot; target=&quot;_blank&quot;&gt;Lightning Talks: First day&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;May 26, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon-europe-2010/will-hardy-free-the-developers-3696397&quot; target=&quot;_blank&quot;&gt;Will Hardy: Free the Developers&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;May 26, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon-europe-2010/jirka-sch%C3%A4fer-django-at-the-enterprise-3696429&quot; target=&quot;_blank&quot;&gt;Jirka Schäfer: Django at the enterprise&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;May 26, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon-europe-2010/honza-kr%C3%A1l-testing-django-applications-3696434&quot; target=&quot;_blank&quot;&gt;Honza Král: Testing Django Applications&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;May 26, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon-europe-2010/sean-o-connor-how-to-make-running-a-user-group-feel-like-cheating-3696432&quot; target=&quot;_blank&quot;&gt;Sean O&#39;Connor: How to make running a user group ...&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;May 26, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon-europe-2010/alex-gaynor-what-nosql-support-in-the-django-orm-looks-like-and-how-do-we-get-there-3696070&quot; target=&quot;_blank&quot;&gt;Alex Gaynor: What NoSQL support in the Django OR...&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;May 26, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon-europe-2010/armin-ronacher-the-future-of-wsgi-and-python-3-3696398&quot; target=&quot;_blank&quot;&gt;Armin Ronacher: The Future of WSGI and Python 3&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;May 26, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon-europe-2010/lightning-talks-second-day-3699994&quot; target=&quot;_blank&quot;&gt;Lightning Talks: Second day&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;May 27, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon-europe-2010/django-technical-design-panel-3700511&quot; target=&quot;_blank&quot;&gt;Django Technical Design Panel&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;May 27, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon-europe-2010/andrew-godwin-south-new-and-old-3699740&quot; target=&quot;_blank&quot;&gt;Andrew Godwin: South, New and Old&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;May 27, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon-europe-2010/peter-bengtsson-using-mongodb-in-your-django-app-implications-and-benefits-3700148&quot; target=&quot;_blank&quot;&gt;Peter Bengtsson: Using MongoDB in your Django ap...&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;May 27, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon-europe-2010/russell-keith-magee-no-bad-pony-or-explaining-django-s-development-process-3700275&quot; target=&quot;_blank&quot;&gt;Russell Keith-Magee: No! Bad Pony! or, Explainin...&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;May 27, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon-europe-2010/patrick-lauber-introduction-to-django-cms-3700049&quot; target=&quot;_blank&quot;&gt;Patrick Lauber: Introduction to django-cms&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;May 27, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon-europe-2010/beno%C3%AEt-chesneau-gunicorn-django-and-wsgi-3699826&quot; target=&quot;_blank&quot;&gt;Benoît Chesneau: Gunicorn, Django and WSGI&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;May 27, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon-europe-2010/keynote-jan-lehnardt-3699907&quot; target=&quot;_blank&quot;&gt;Keynote: Jan Lehnardt&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;May 27, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon-europe-2010/beno%C3%AEt-chesneau-relax-your-project-with-couchdb-3704343&quot; target=&quot;_blank&quot;&gt;Benoît Chesneau: Relax your project with CouchDB&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;May 28, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon-europe-2010/idan-gazit-design-for-developers-making-your-frontend-suck-less-3704780&quot; target=&quot;_blank&quot;&gt;Idan Gazit: Design for developers: Making your F...&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;May 28, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon-europe-2010/eric-holscher-getting-the-most-out-of-your-test-suite-3705020&quot; target=&quot;_blank&quot;&gt;Eric Holscher: Getting the most out of your test...&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;May 28, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon-europe-2010/joerg-kress-red-square-driving-innovation-at-bmw-with-django-3705227&quot; target=&quot;_blank&quot;&gt;Joerg Kress: Red Square Driving Innovation at BM...&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;May 28, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon-europe-2010/lighting-talks-third-day-3705436&quot; target=&quot;_blank&quot;&gt;Lighting Talks: Third day&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;May 28, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon-europe-2010/nosql-panel-3706034&quot; target=&quot;_blank&quot;&gt;NoSQL Panel&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;May 29, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon-europe-2010/episode-3706234&quot; target=&quot;_blank&quot;&gt;Song&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;May 29, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon-europe-2010/maciej-pasternacki-best-of-both-worlds-deploying-django-applications-with-capistrano-and-supervisord-3713408&quot; target=&quot;_blank&quot;&gt;Maciej Pasternacki: Best of both worlds - deploy...&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;May 31, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon-europe-2010/michael-p-jung-efficient-django-hosting-for-the-masses-3713566&quot; target=&quot;_blank&quot;&gt;Michael P. Jung: Efficient Django Hosting for th...&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;May 31, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon-europe-2010/jacob-kaplan-moss-keynote-3693345&quot; target=&quot;_blank&quot;&gt;Jacob Kaplan-Moss: Keynote&lt;/a&gt; &lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;May 26, 2010&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;h3 id=&quot;djangocon2009&quot;&gt;








&lt;a href=&quot;http://blip.tv/djangocon&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;DjangoCon 2009&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/introduction-from-the-fake-jacob-kaplan-moss-3059012&quot; target=&quot;_blank&quot;&gt;Introduction from the fake Jacob Kaplan-Moss&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jan 2, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/django-is-obsolete-but-so-is-everything-else-3059225&quot; target=&quot;_blank&quot;&gt;Django is obsolete (but so is everything else)&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jan 2, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/ur-doing-it-wrong-3059293&quot; target=&quot;_blank&quot;&gt;UR DOING IT WRONG&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jan 2, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/database-migrations-south-and-you-3059350&quot; target=&quot;_blank&quot;&gt;Database Migrations, South, And You&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jan 2, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/confessions-of-a-life-long-perl-bigot-3059396&quot; target=&quot;_blank&quot;&gt;Confessions of a life long Perl Bigot&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jan 2, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/token-testing-talk-3059472&quot; target=&quot;_blank&quot;&gt;Token Testing Talk&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jan 2, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/how-to-contribute-to-pinax-3059510&quot; target=&quot;_blank&quot;&gt;How to Contribute to Pinax&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jan 2, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/what-the-heck-went-wrong-3059545&quot; target=&quot;_blank&quot;&gt;What the Heck Went Wrong?&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jan 2, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/restful-ponies-3059622&quot; target=&quot;_blank&quot;&gt;RESTful Ponies&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jan 2, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/deploying-django-3059674&quot; target=&quot;_blank&quot;&gt;Deploying Django&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jan 2, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/cowboy-development-with-django-3059727&quot; target=&quot;_blank&quot;&gt;Cowboy Development with Django&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jan 2, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/django-technical-design-panel-3059787&quot; target=&quot;_blank&quot;&gt;Django Technical Design Panel&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jan 2, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/a-socio-political-analysis-of-open-source-community-3059857&quot; target=&quot;_blank&quot;&gt;A socio-political analysis of open source commun...&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jan 3, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/using-django-in-non-standard-ways-3059894&quot; target=&quot;_blank&quot;&gt;Using Django in Non-Standard Ways&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jan 3, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/introduction-to-pinax-3059954&quot; target=&quot;_blank&quot;&gt;Introduction to Pinax&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jan 3, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/real-time-web-and-other-buzzwords-3059999&quot; target=&quot;_blank&quot;&gt;Real-time Web and Other Buzzwords&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jan 3, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/introduction-to-geodjango-3060025&quot; target=&quot;_blank&quot;&gt;Introduction to GeoDjango&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jan 3, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/pluggable-reusable-django-apps-a-use-case-and-proposed-solution-3060067&quot; target=&quot;_blank&quot;&gt;Pluggable, Reusable Django Apps: A Use Case and ...&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jan 3, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/how-to-use-virtualenv-and-pip-to-install-stuff-3060706&quot; target=&quot;_blank&quot;&gt;How-To: use virtualenv and pip to install stuff&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jan 3, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/making-your-postgresql-database-sing-3060724&quot; target=&quot;_blank&quot;&gt;Making your PostgreSQL database sing&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jan 3, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/selling-django-to-your-superiors-success-stories-panel-3060801&quot; target=&quot;_blank&quot;&gt;Selling Django to Your Superiors: Success Storie...&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jan 3, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/lightning-talks-day-2-3060836&quot; target=&quot;_blank&quot;&gt;Lightning Talks Day 2&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jan 3, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/scaling-django-web-applications-3060922&quot; target=&quot;_blank&quot;&gt;Scaling Django Web Applications&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jan 3, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/fighting-malnutrition-with-sms-and-django-3061017&quot; target=&quot;_blank&quot;&gt;Fighting malnutrition with SMS and Django&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jan 3, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/staticgenerator-3061071&quot; target=&quot;_blank&quot;&gt;StaticGenerator!&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jan 3, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/painless-django-app-localization-with-transifex-3061121&quot; target=&quot;_blank&quot;&gt;Painless Django app localization with Transifex&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jan 3, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/google-summer-of-code-overview-panel-3061181&quot; target=&quot;_blank&quot;&gt;Google Summer of Code Overview Panel&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jan 3, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/lightning-talks-day-3-3061201&quot; target=&quot;_blank&quot;&gt;Lightning Talks Day 3&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jan 3, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/now-what-3062966&quot; target=&quot;_blank&quot;&gt;Now What&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jan 4, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/django-on-jython-ready-for-production-3063016&quot; target=&quot;_blank&quot;&gt;Django on Jython: Ready for Production&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jan 4, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/state-of-pinax-3063097&quot; target=&quot;_blank&quot;&gt;State of Pinax&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jan 4, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/how-to-name-your-open-source-django-project-after-a-famous-jazz-musician-and-concepts-behind-django-mingus-a-project-leveraging-only-reusable-apps-3063139&quot; target=&quot;_blank&quot;&gt;How to name your open source Django project afte...&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jan 4, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/when-not-to-use-the-orm-bulk-data-loading-strategies-for-large-datasets-3063151&quot; target=&quot;_blank&quot;&gt;When not to use the ORM: bulk data loading strat...&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jan 4, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/no-bad-pony-3063204&quot; target=&quot;_blank&quot;&gt;No! Bad Pony!&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jan 4, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/customizing-your-satchmo-store-3064465&quot; target=&quot;_blank&quot;&gt;Customizing your Satchmo Store&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jan 4, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/getting-the-most-out-of-the-test-client-3087854&quot; target=&quot;_blank&quot;&gt;Getting the most out of the Test Client&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jan 10, 2010&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blip.tv/djangocon/custom-signals-for-uncoupled-design-3088044&quot; target=&quot;_blank&quot;&gt;Custom Signals for Uncoupled Design&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Jan 10, 2010&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;h3 id=&quot;others&quot;&gt;







&lt;span style=&quot;font-size: large;&quot;&gt;Other videos&lt;/span&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;GoogleTechTalk - Jacob Kaplan-Moss:&amp;nbsp;&lt;a href=&quot;http://www.youtube.com/watch?v=p-WXiqrzAf8&quot; target=&quot;_blank&quot;&gt;Django: Web Development for Perfectionists with Deadlines&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Oct 8, 2007&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;History lesson:&amp;nbsp;&lt;a href=&quot;http://www.youtube.com/watch?v=aJ_7KtjIVLQ&quot; target=&quot;_blank&quot;&gt;Django: The First Five Years&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Dec 18, 2008&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.youtube.com/user/GoogleDevelopers/videos?query=djangocon+2008&quot; target=&quot;_blank&quot;&gt;DjangoCon 2008 (23 videos)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.youtube.com/watch?v=UurWsGyYuFk&quot; target=&quot;_blank&quot;&gt;Future of Django with Core Developer Alex Gaynor&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Aug 5, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.youtube.com/watch?v=7KTVws3TiC0&quot; target=&quot;_blank&quot;&gt;Django&#39;s architecture - the good, the bad, and the ugly&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: grey; font-size: 0.9em;&quot;&gt;Feb 15, 2011&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pyvideo.org/search?models=videos.video&amp;q=django&quot; target=&quot;_blank&quot;&gt;Pyvideo.org&lt;/a&gt; has loads of Python related videos including Django videos.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://lanyrd.com/topics/django/video/&quot; target=&quot;_blank&quot;&gt;Lanyrd.com&lt;/a&gt; is specialized on conference videos. They have thousands altogether and 178 in their Django section (including presentations in French).&lt;/li&gt;

&lt;/ul&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;br&gt;
Follow me in Twitter: &lt;a href=&quot;http://www.twitter.com/JuhaFinn&quot;&gt;&lt;b&gt;@JuhaFinn&lt;/b&gt;&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://equallytrue.blogspot.com/feeds/3353681356572441072/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://equallytrue.blogspot.com/2012/05/170-django-conference-videos.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1885941715345341708/posts/default/3353681356572441072'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1885941715345341708/posts/default/3353681356572441072'/><link rel='alternate' type='text/html' href='http://equallytrue.blogspot.com/2012/05/170-django-conference-videos.html' title='170+ Django conference videos'/><author><name>Juha S</name><uri>http://www.blogger.com/profile/16783678110582703635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxeTnjFI-wecM4yzj-gH3WOckZCa7wU1o1HXZ3_WMujDmLv95YX1laDmPSsmP51k6RAyOKDNvOHAufc-21rxZbe4XfJT7ZpMXr2UlBhgMJOhLjjauALYCtGoByG9sh_ysg9uylLFdPnMDb/s72-c/12799.png" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1885941715345341708.post-1663742894892956534</id><published>2012-04-29T13:06:00.000-07:00</published><updated>2012-05-04T14:10:43.980-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="chrome"/><category scheme="http://www.blogger.com/atom/ns#" term="development"/><category scheme="http://www.blogger.com/atom/ns#" term="opera"/><category scheme="http://www.blogger.com/atom/ns#" term="tools"/><title type='text'>3 useful features from Opera Dev tools that Chrome is missing</title><content type='html'>&lt;br /&gt;
Let me just start by mentioning that I am not biased towards Opera. I still use Chrome as my main browser and I think it provides the best overall user and developer experience from the available browsers. I used Opera as my main browser a while and still think it offers good innovative things others are missing, it&#39;s just refreshingly different from the FF, IE, Chrome lineup. One of the features I still miss on Chrome is the smooth mouse gestures integration. Anyway -- I think Opera has a few useful features in their development tools that are worth knowing.&lt;br /&gt;
&lt;br /&gt;
&lt;h2 style=&quot;font-size: large;&quot;&gt;




&amp;nbsp;1. Easy remote debugging&amp;nbsp;&lt;/h2&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://www.opera.com/bitmaps/products/dragonfly/doc/remote-device.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;http://www.opera.com/bitmaps/products/dragonfly/doc/remote-device.png&quot; width=&quot;194&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;http://www.opera.com/bitmaps/products/dragonfly/doc/console-hud.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;142&quot; src=&quot;http://www.opera.com/bitmaps/products/dragonfly/doc/console-hud.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
Opera Developer Tools (they call it Dragonfly) offers a nice feature easily do&amp;nbsp;&lt;a href=&quot;http://www.opera.com/dragonfly/documentation/remote/&quot;&gt;remote debugging&lt;/a&gt;. All Opera browsers (Desktop, Mobile, Mini, TV) have ability to act as remote debugging client. On the client you have to go to opera:debug page and input the ip of your desktop computer. Then on the desktop you click start listening for remote debugging connections. When you click connect on the client you just open any web page and the development tool on desktop is integrated to the mobile, you can for example: browse the DOM, inspect scripts or use the javascript console.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Edit:&amp;nbsp;&lt;/b&gt;Chrome offers&amp;nbsp;&lt;a href=&quot;https://developers.google.com/chrome-developer-tools/docs/remote-debugging&quot;&gt;a remote debugging functionality&lt;/a&gt;&amp;nbsp;too, but using opera you don&#39;t have in install any additional applications/packages for client or host. &amp;nbsp;Crome has&amp;nbsp;&lt;a href=&quot;https://developers.google.com/chrome/mobile/docs/debugging&quot;&gt;a page&lt;/a&gt;&amp;nbsp;showing how to get it working with Android browser. It doesn&#39;t seem to be as easy as Operas way though.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Adobe Shadow: &lt;/b&gt;Operas remote debugging solves very similar problem to Adobe Shadow. However, for developers like me who use Linux it&#39;s not an option so this is a very good alternative.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2 style=&quot;font-size: large;&quot;&gt;




&amp;nbsp;2. Opera Mobile &amp;amp; Mini simulator&amp;nbsp;&lt;/h2&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-S6l1d4wHVYQLGKAHgThSaXu5hvDVPPOejvmCSgp40MFRmR8wOYW-3GIEm1RsAXBeUt4LSL5s-Y2TWEVw4lRWMBc_i2xsSBmg-y-zk9k3dHNWxpaL-ItXCOd1iNP2Me4LiYjcbBnT6REX/s1600/Screenshot+-+04292012+-+10:46:29+PM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-S6l1d4wHVYQLGKAHgThSaXu5hvDVPPOejvmCSgp40MFRmR8wOYW-3GIEm1RsAXBeUt4LSL5s-Y2TWEVw4lRWMBc_i2xsSBmg-y-zk9k3dHNWxpaL-ItXCOd1iNP2Me4LiYjcbBnT6REX/s400/Screenshot+-+04292012+-+10:46:29+PM.png&quot; width=&quot;211&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
You&#39;ll have to install &lt;a href=&quot;http://www.opera.com/developer/tools/mobile/&quot;&gt;Opera Mobile or Mini simulators&lt;/a&gt; separately, but they work really well. You can choose a device from long list of devices and the simulator is customized accordingly depending on which device you choose. This is a very easy way to test your website with touch interface (mouse acts as a finger instead of a pointer in a simulator).&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Google alternatives&lt;/b&gt;: You can use Android emulator to achieve similar simulation if you have Android SDK and eclipse set up, it is just quite slow to start up and use. You can also get &lt;a href=&quot;http://ripple.tinyhippos.com/&quot;&gt;Ripple&lt;/a&gt;&amp;nbsp;as a Chrome extension does the emulation in the browser.&lt;br /&gt;
&lt;br /&gt;
&lt;h2 style=&quot;font-size: large;&quot;&gt;




&amp;nbsp;3. Network Request crafter &amp;amp; header modification

&lt;/h2&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://www.opera.com/bitmaps/products/dragonfly/doc/network-network-log-req.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;166&quot; src=&quot;http://www.opera.com/bitmaps/products/dragonfly/doc/network-network-log-req.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
These features are in the &lt;a href=&quot;http://www.opera.com/dragonfly/documentation/network/&quot;&gt;Network section&lt;/a&gt; of the Developer Tools. The Make Request is a tool that allows you to write and send your own HTTP requests. Every now and then you need a tool like this. This can be used when hackproofing your site. It is still very stripped down on features, but you can easily copy-paste any request from the previous network log page. It&#39;s easy to for example test if your CSRF protection works by re-sending a &quot;submit post&quot; request and check if the second one is registered.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Another useful feature in the Network section is to make the browser override the headers to simulate being any other browser (not just User-Agent, but all the headers). You can also define your own headers to be used.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;b&gt;Edit:&lt;/b&gt;&amp;nbsp;A guy in the Hackernews comment mentioned that there is a Chrome extension called &lt;a href=&quot;https://chrome.google.com/webstore/detail/cokgbflfommojglbmbpenpphppikmonn&quot;&gt;REST Console&lt;/a&gt;, it apparently has the ability to send crafted HTTP requests.&lt;/div&gt;
&lt;h2 style=&quot;font-size: large;&quot;&gt;




Conclusions&lt;/h2&gt;
&lt;br /&gt;
&lt;div&gt;
The point of this post wasn&#39;t to tell how good Opera is. I was just mentioning that Opera is still serious contender in the browser competition and it has features that developers should know about. I&#39;ll still keep using Chrome as my main browser, but I&#39;ll have Opera just one click away if I want to do something Chrome can&#39;t do.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Edit: &lt;/b&gt;Ironically my blogger template didn&#39;t render properly on Opera Mobile when I released this. I changed a better one that should make it readable on Opera Mobile too.&lt;br /&gt;
&lt;br /&gt;
More ways to get involved in discussion about this post:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://news.ycombinator.com/item?id=3908345&quot;&gt;Hackernews comments thread&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.reddit.com/r/programming/comments/szhfk/3_useful_features_from_opera_dev_tools_that/&quot;&gt;Reddit comments&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;br&gt;
Follow me in Twitter: &lt;a href=&quot;http://www.twitter.com/JuhaFinn&quot;&gt;&lt;b&gt;@JuhaFinn&lt;/b&gt;&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://equallytrue.blogspot.com/feeds/1663742894892956534/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://equallytrue.blogspot.com/2012/04/3-useful-features-from-opera-dev-tools.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1885941715345341708/posts/default/1663742894892956534'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1885941715345341708/posts/default/1663742894892956534'/><link rel='alternate' type='text/html' href='http://equallytrue.blogspot.com/2012/04/3-useful-features-from-opera-dev-tools.html' title='3 useful features from Opera Dev tools that Chrome is missing'/><author><name>Juha S</name><uri>http://www.blogger.com/profile/16783678110582703635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-S6l1d4wHVYQLGKAHgThSaXu5hvDVPPOejvmCSgp40MFRmR8wOYW-3GIEm1RsAXBeUt4LSL5s-Y2TWEVw4lRWMBc_i2xsSBmg-y-zk9k3dHNWxpaL-ItXCOd1iNP2Me4LiYjcbBnT6REX/s72-c/Screenshot+-+04292012+-+10:46:29+PM.png" height="72" width="72"/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1885941715345341708.post-7602313248969027283</id><published>2012-04-13T14:15:00.000-07:00</published><updated>2012-12-19T01:47:55.110-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="berlin"/><category scheme="http://www.blogger.com/atom/ns#" term="coding"/><category scheme="http://www.blogger.com/atom/ns#" term="development"/><category scheme="http://www.blogger.com/atom/ns#" term="gdd"/><category scheme="http://www.blogger.com/atom/ns#" term="google"/><title type='text'>Takeaways from Google Developer Day Berlin</title><content type='html'>&lt;span id=&quot;internal-source-marker_0.9129827823489904&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;i&gt;Here key points I had in my notes from last Novembers &lt;a href=&quot;http://www.google.com/events/developerday/2011/berlin/&quot;&gt;Google Developer Day 2011 in Berlin&lt;/a&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;
&lt;h2 style=&quot;font-weight: bold;&quot;&gt;
&lt;span style=&quot;font-family: Arial; font-size: 48px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Keynote&lt;/span&gt;&lt;/h2&gt;
&lt;span style=&quot;font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Keynote was the start for the day. There were over 2000 developers on the huge hall. There was impressive display with google-style animation and upbeat background music while we were waiting for the keynote to start. And lets not forget that they had two beatboxers on the stage doing the transition sound effects.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1NLvMC5sPz5ZR4O8qnWHy9qgHybVdIAFaNTBX4i87axFC4OGUPsH9DQX5Lj5M52xHSujF-H8TiqCO18G1-wIoux4-EsjVQ8xJHr_zR_JrnpNILHmZPBUoWMcYMnNVg0qUpqT_6cpx53GO/s640/2011-11-19%252008.54.10.jpg&quot; width=&quot;450px&quot; /&gt;&lt;br /&gt;
&lt;h2 dir=&quot;ltr&quot; style=&quot;font-weight: bold;&quot;&gt;
&lt;span style=&quot;font-family: Arial; font-size: 19px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Takeaways:&lt;/span&gt;&lt;/h2&gt;
&lt;ul style=&quot;font-weight: bold; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;li style=&quot;font-family: Arial; font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Cloud, Cloud, Cloud. They were emphasizing how concept of cloud computing is still growing in importance.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;font-family: Arial; font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Google+ Hangouts is coming and developers are encouraged to try it out. They had some demos of hangout apps.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;font-family: Arial; font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Android has huge userbase and it is growing (8 billion app installs, 300k apps on store).&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;font-family: Arial; font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;They were promoting AppEngine as backend for mobile apps, which in my opinion is a good and easy solution. &lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;font-family: Arial; font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Chrome has reached stage where it can run advanced web app that really behave like desktop apps, like 3d modeling. Improvements include JS speed optimization, WebGL improvements, SVG support, new HTML5 and CSS3 features (like 3d transforms and caching).&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;font-family: Arial; font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Demos and examples of advanced web-apps: &lt;/span&gt;&lt;/li&gt;
&lt;ul style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;li style=&quot;font-family: Arial; font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Pixlr: In browser photo editing: &lt;/span&gt;&lt;a href=&quot;http://pixlr.com/editor/&quot;&gt;&lt;span style=&quot;color: #1155cc; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;http://pixlr.com/editor/&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt; . &lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;font-family: Arial; font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;3DTin: In browser 3D modeling: &lt;/span&gt;&lt;a href=&quot;http://www.3dtin.com/&quot;&gt;&lt;span style=&quot;color: #1155cc; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;http://www.3dtin.com/&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt; Try it out!&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;font-family: Arial; font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;D3 SVG library (check examples: &lt;/span&gt;&lt;a href=&quot;http://mbostock.github.com/d3/ex/&quot;&gt;&lt;span style=&quot;color: #1155cc; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;http://mbostock.github.com/d3/ex/&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;), &lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;font-family: Arial; font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Using Kinect as input to draw real-time 3D model of you (&lt;/span&gt;&lt;a href=&quot;http://www.chromeexperiments.com/detail/kinectwebgl/&quot;&gt;&lt;span style=&quot;color: #1155cc; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;http://www.chromeexperiments.com/detail/kinectwebgl/&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;) Really cool and innovative, developer is a real hacker :)&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;font-family: Arial; font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Three.js 3D library. (source and screenshots &lt;/span&gt;&lt;a href=&quot;https://github.com/mrdoob/three.js/&quot;&gt;&lt;span style=&quot;color: #1155cc; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;https://github.com/mrdoob/three.js/&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;)&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;font-family: Arial; font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;HTML5 Audio demo: &lt;/span&gt;&lt;a href=&quot;http://gddhtml5comp.appspot.com/&quot;&gt;&lt;span style=&quot;color: #1155cc; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;http://gddhtml5comp.appspot.com/&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;font-family: Arial; font-size: 15px; font-weight: normal; list-style-type: circle; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Mask Images with CSS3: &lt;/span&gt;&lt;a href=&quot;http://girliemac.com/blog/2010/09/20/201/&quot;&gt;&lt;span style=&quot;color: #1155cc; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;http://girliemac.com/blog/2010/09/20/201/&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;font-weight: bold; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;li style=&quot;font-family: Arial; font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Bring Intents to web with webintents. Some examples: After uploading image, give intent to photo editor, photo editing web app can then let user process it and save it back to your app. Seems to be just future vision at this point.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;font-family: Arial; font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Shadow dom, isolate and encapsulate parts of dom (&lt;/span&gt;&lt;a href=&quot;http://glazkov.com/2011/01/14/what-the-heck-is-shadow-dom/&quot;&gt;&lt;span style=&quot;color: #1155cc; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;http://glazkov.com/2011/01/14/what-the-heck-is-shadow-dom/&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;)&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;font-family: Arial; font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;In App payments were released for Chrome webstore. 5% to Google, 95% to Developer, sounds good to me!&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;3DTin running in Chrome:&lt;/span&gt;&lt;b&gt;&lt;img height=&quot;338px;&quot; src=&quot;https://lh5.googleusercontent.com/wNLr3r002nxECXpoDooyo3RE1INtRPvSrGY6NZCdB1hjjRnoqz6g5yvuffcSVq08-kC60DjZNus1T-kXQC__8GkgT7riywZ4rpGAXLh0nq1fjmGzq7o&quot; width=&quot;497px;&quot; /&gt;&lt;/b&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;h2 dir=&quot;ltr&quot; style=&quot;font-weight: bold;&quot;&gt;
&lt;span style=&quot;font-family: Arial; font-size: 19px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;People on stage:&lt;/span&gt;&lt;/h2&gt;
&lt;ul style=&quot;font-weight: bold; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;li style=&quot;font-family: Arial; font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;&quot;&gt;&lt;a href=&quot;http://jameswhittaker.com/&quot;&gt;&lt;span style=&quot;color: #1155cc; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;James Whittaker&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt; - I had to double check, since his website says he works for Twitter, but he was there. Resigned Google on February.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;font-family: Arial; font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;&quot;&gt;&lt;a href=&quot;http://www.jonathanberi.com/&quot;&gt;&lt;span style=&quot;color: #1155cc; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Jonathan Beri &lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;vertical-align: baseline; white-space: pre-wrap;&quot;&gt;- Talked about hangouts&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;font-family: Arial; font-size: 15px; font-weight: normal; list-style-type: disc; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;white-space: pre-wrap;&quot;&gt;+ More whose names I didn&#39;t catch&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Kinect+WebGL&lt;/span&gt;&lt;br /&gt;
&lt;b&gt;&lt;img height=&quot;309px;&quot; src=&quot;https://lh5.googleusercontent.com/_g5pPvR6-39pVZAp1_UmDvahpDuyok3X06aVRnDyRLfoUWJ-lkJfih_gnRXerWBrpCJsx0vKGY4Hv6l80Uxxnvugdos77nqrIVegPE5SotVX4Cr5v8E&quot; width=&quot;400px;&quot; /&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Follow me in Twitter: &lt;a href=&quot;http://www.twitter.com/JuhaFinn&quot;&gt;&lt;b&gt;@JuhaFinn&lt;/b&gt;&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://equallytrue.blogspot.com/feeds/7602313248969027283/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://equallytrue.blogspot.com/2012/04/takeaways-from-google-developer-day.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1885941715345341708/posts/default/7602313248969027283'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1885941715345341708/posts/default/7602313248969027283'/><link rel='alternate' type='text/html' href='http://equallytrue.blogspot.com/2012/04/takeaways-from-google-developer-day.html' title='Takeaways from Google Developer Day Berlin'/><author><name>Juha S</name><uri>http://www.blogger.com/profile/16783678110582703635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1NLvMC5sPz5ZR4O8qnWHy9qgHybVdIAFaNTBX4i87axFC4OGUPsH9DQX5Lj5M52xHSujF-H8TiqCO18G1-wIoux4-EsjVQ8xJHr_zR_JrnpNILHmZPBUoWMcYMnNVg0qUpqT_6cpx53GO/s72-c/2011-11-19%252008.54.10.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1885941715345341708.post-7624862767265833053</id><published>2012-04-12T09:09:00.001-07:00</published><updated>2012-05-04T14:11:22.377-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="django"/><category scheme="http://www.blogger.com/atom/ns#" term="howto"/><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><category scheme="http://www.blogger.com/atom/ns#" term="tutorial"/><title type='text'>Extracting uploaded zip file with Django in memory</title><content type='html'>&lt;br /&gt;
&lt;link href=&quot;http://alexgorbatchev.com/pub/sh/current/styles/shThemeDjango.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot;&gt;&lt;/link&gt;
&lt;script src=&quot;http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js&quot; type=&quot;text/javascript&quot;&gt;
&lt;/script&gt;
&lt;script src=&quot;http://alexgorbatchev.com/pub/sh/current/scripts/shAutoloader.js&quot; type=&quot;text/javascript&quot;&gt;
&lt;/script&gt;
&lt;script src=&quot;http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPython.js&quot; type=&quot;text/javascript&quot;&gt;
&lt;/script&gt;
&lt;script src=&quot;http://alexgorbatchev.com/pub/sh/current/scripts/shBrushXml.js&quot; type=&quot;text/javascript&quot;&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
     SyntaxHighlighter.config.bloggerMode = true;
     SyntaxHighlighter.defaults[&#39;toolbar&#39;] = false;
     SyntaxHighlighter.defaults[&#39;gutter&#39;] = false;
     SyntaxHighlighter.all()
&lt;/script&gt;
&lt;style type=&quot;text/css&quot;&gt;
  .code {
  font-size:0.8em;

}

li {
  padding:0px;
}
&lt;/style&gt;
There are many situations where some time ago I woudn&#39;t hesitated to just use filesystem. But now I have started to realize the value of minimizing the usage of filesystem. Databases are designed to keep data and offer easy solutions for backup and security for example. Keeping more and more data in databases can be a good idea in some cases. I&#39;m not saying you should always just push your data to the database, but it should be a consideration. Also using AppEngine lately has affected my thinking since it doesn&#39;t even offer access to filesystem.
&lt;br /&gt;
&lt;br /&gt;
This tutorial explains how to allow users to upload zip files, open them and insert the contents into your database, all without accessing the filesystem. It is only applicable to handling text-files, but modifying it to allow binary files should not be difficult (encode the files with Base64 for example). 
&lt;br/&gt;
&lt;br/&gt;
&lt;b&gt;Caution:&lt;/b&gt; In real implementations at least the type of file as well as size should be validated to avoid filling the database or memory. Even if you check file size evil user might send zip file that is small but GB&#39;s when uncompressed, you can check uncompressed size with &lt;a href=&quot;http://docs.python.org/library/zipfile.html#zipfile.ZipInfo.file_size&quot;&gt;file_size method&lt;/a&gt; of ZipFile library (thanks RobIII for pointing this out in his comment).

&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Target:&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Offer user form to upload zip file&lt;/li&gt;
&lt;li&gt;Deflate the file in-memory&lt;/li&gt;
&lt;li&gt;Insert the content of the deflated items to the database&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Steps in this tutorial:
&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Prepare view and tamplate&lt;/li&gt;
&lt;li&gt;Python code to open the zipfile and save contents to db&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;




Prepare view and tamplate&lt;/h4&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
I like to use the django Form class. This is how I set it up:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush: py;&quot;&gt;from django import forms
class UploadFileForm(forms.Form):
    file  = forms.FileField()
&lt;/pre&gt;
&lt;div&gt;
&lt;br /&gt;
Code for the view:&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;pre class=&quot;brush: py;&quot; style=&quot;font-size: 0.8em;&quot;&gt;  def upload(request):
    if request.method == &#39;POST&#39;:
      form = UploadFileForm(request.POST, request.FILES)
      if form.is_valid():
        handlezipfile(request.FILES[&#39;file&#39;])
        return HttpResponseRedirect(&#39;/upload_successful&#39;)
    else:
      form = UploadFileForm()
    context = {&#39;form&#39;: form}
    context.update(csrf(request))
    return render_to_response(&#39;upload.html&#39;, context)
&lt;/pre&gt;
&lt;div&gt;
&lt;br /&gt;
Simply doing dictionary lookup with the name in the form for request.FILES gives us reference to the file. We actially get a UploadedFile object that is a wrapper around the file. It offers following methods:&amp;nbsp;read(), multiple_chunks() and chunks(). It also offers two properties: name and size.&lt;br /&gt;
&lt;br /&gt;
Template code:&lt;br /&gt;
&lt;br /&gt;
&lt;script class=&quot;brush: xml&quot; type=&quot;syntaxhighlighter&quot;&gt;
&lt;![CDATA[

&lt;form action=&quot;&quot; enctype=&quot;multipart/form-data&quot; method=&quot;POST&quot;&gt;

{% csrf_token %}

&lt;ul&gt;
{{ form.as_ul }}
&lt;li&gt;
    &lt;input type=&quot;submit&quot; /&gt;
  &lt;/li&gt;
&lt;/ul&gt;
&lt;/form&gt;
&lt;/script&gt;
&lt;br /&gt;
This looks a lot like any other form but it&#39;s important to add the&amp;nbsp;enctype attribute to allow sending the file along with the response.&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;




Open the zipfile and save contents to db&lt;/h4&gt;
&lt;br /&gt;
I am using the zipreader script I wrote a while ago (&lt;a href=&quot;https://github.com/JuhaS/zipreader&quot;&gt;Github repository&lt;/a&gt;) that offers a bit simpler way to open and process zip files compared to the &lt;a href=&quot;http://docs.python.org/library/zipfile.html&quot;&gt;zipfile library&lt;/a&gt;.
&lt;br /&gt;
&lt;pre class=&quot;brush: py;&quot;&gt;from zipreader import fileiterator
def handlezipfile(zipfile):
  for filename,content in fileiterator(zipfile):
    tf = TextFile()
 tf.content = c
 tf.filename = filename
 tf.save()

&lt;/pre&gt;
&lt;br /&gt;
The method simply iterates through all files and folders and inserts them to the database using our own TextFile model which has two fields: name (CharField) and content (TextField). This is assuming the zip archive only contains text files. Now the text files are in database and you can use them however you want.&lt;br /&gt;
&lt;br /&gt;
Here is the model I used for the file:
&lt;br /&gt;
&lt;pre class=&quot;brush: py;&quot;&gt;class TextFile(models.Model):
  name = models.CharField(max_length=256)
  content = models.TextField(blank=True)
&lt;/pre&gt;
&lt;br /&gt;
&lt;br&gt;
Follow me in Twitter: &lt;a href=&quot;http://www.twitter.com/JuhaFinn&quot;&gt;&lt;b&gt;@JuhaFinn&lt;/b&gt;&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://equallytrue.blogspot.com/feeds/7624862767265833053/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://equallytrue.blogspot.com/2012/04/tutorial-handling-uploaded-zip-files.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1885941715345341708/posts/default/7624862767265833053'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1885941715345341708/posts/default/7624862767265833053'/><link rel='alternate' type='text/html' href='http://equallytrue.blogspot.com/2012/04/tutorial-handling-uploaded-zip-files.html' title='Extracting uploaded zip file with Django in memory'/><author><name>Juha S</name><uri>http://www.blogger.com/profile/16783678110582703635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1885941715345341708.post-2786879997358006722</id><published>2012-04-12T09:07:00.001-07:00</published><updated>2012-05-04T14:11:37.354-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="development"/><category scheme="http://www.blogger.com/atom/ns#" term="django"/><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><title type='text'>How to cache outgoing API calls in Django</title><content type='html'>&lt;link href=&quot;http://alexgorbatchev.com/pub/sh/current/styles/shThemeDjango.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot;&gt;&lt;/link&gt;
&lt;script src=&quot;http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js&quot; type=&quot;text/javascript&quot;&gt;
&lt;/script&gt;
&lt;script src=&quot;http://alexgorbatchev.com/pub/sh/current/scripts/shAutoloader.js&quot; type=&quot;text/javascript&quot;&gt;
&lt;/script&gt;
&lt;script src=&quot;http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPython.js&quot; type=&quot;text/javascript&quot;&gt;
&lt;/script&gt;
&lt;script src=&quot;http://alexgorbatchev.com/pub/sh/current/scripts/shBrushXml.js&quot; type=&quot;text/javascript&quot;&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
     SyntaxHighlighter.config.bloggerMode = true;
     SyntaxHighlighter.defaults[&#39;toolbar&#39;] = false;
     SyntaxHighlighter.defaults[&#39;gutter&#39;] = false;
     SyntaxHighlighter.all()
&lt;/script&gt;
&lt;style type=&quot;text/css&quot;&gt;
  .code {
  font-size:0.8em;

}

li {
  padding:0px;
}
&lt;/style&gt;
&lt;br /&gt;
&lt;h2&gt;


&lt;span style=&quot;font-size: small; font-weight: normal;&quot;&gt;&lt;i&gt;Most of the articles about caching in Django are about caching users requests. Here I want to show how to use it to cache outgoing requests to 3rd party services.&lt;/i&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h2&gt;






Useful during development phase&lt;/h2&gt;
&lt;div&gt;
I was recently doing some development for a Django project that used &lt;a href=&quot;https://api.stackexchange.com/docs&quot;&gt;StackOverflow API&lt;/a&gt;. After some testing I got a notice that I used up the API quota (it&#39;s only 300 for unregistered apps). So I thought it&#39;s best to add caching to outgoing API calls. I would probably be able to stay under typical quota limits, but it also has other benefits. Firstly I don&#39;t have to worry about flooding the 3rd party servers when I continuously refresh pages, add items, re-add items etc. Secondly after adding caching speeds up tasks that do batch updates because all API calls could be avoided. This happened quite a few times when database schemas change, or I changed how I transformed some of the dayt. &amp;nbsp;You&#39;ll probably end up implementing caching at some point so implementing the caching for development help is a good choise, especially since Django makes it so easy.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
&lt;b&gt;Session on Caching from last years Djangocon&lt;/b&gt;&lt;/h2&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;334&quot; src=&quot;http://blip.tv/play/AYLUmnkC.html?p=1&quot; width=&quot;596&quot;&gt;&lt;/iframe&gt;&lt;embed src=&quot;http://a.blip.tv/api.swf#AYLUmnkC&quot; style=&quot;display: none;&quot; type=&quot;application/x-shockwave-flash&quot;&gt;&lt;/embed&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;h2&gt;



My requirements for caching (for development setup)&lt;/h2&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;a href=&quot;https://docs.djangoproject.com/en/1.4/topics/cache/&quot;&gt;Django documentation page about caching&lt;/a&gt; has good examples about using different caching techniques. Here we will use the low level caching features to achieve what we want:&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;Persistently store cache entries to database&lt;/li&gt;
&lt;li&gt;Set long expiration time for the data&lt;/li&gt;
&lt;li&gt;Use url as the key for the data&lt;/li&gt;
&lt;li&gt;Store the content of the http request (probably JSON)&lt;/li&gt;
&lt;li&gt;Write a wrapper method to make usage easier&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;





Setup&lt;/h2&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Add cache settings to settings.py:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;pre class=&quot;brush: py;&quot; style=&quot;font-size: 0.8em;&quot;&gt;CACHES = {
    &#39;default&#39;: {
        &#39;BACKEND&#39;: &#39;django.core.cache.backends.db.DatabaseCache&#39;,
        &#39;LOCATION&#39;: &#39;dev_cache&#39;,
        &#39;TIMEOUT&#39;: 60*60*24*7*4,
        &#39;VERSION&#39;: 1,
        &#39;OPTIONS&#39;: {
            &#39;MAX_ENTRIES&#39;: 10000
        }
    }
}
&lt;/pre&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
This tells django to use cache table named &quot;dev_cache&quot; for storing the entries. The entries will expire after 4 weeks. Maximum number of entries is set to 10000.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Create table for the cache with name defined in LOCATION (you can decide):&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;pre class=&quot;brush: py;&quot; style=&quot;font-size: 0.8em;&quot;&gt;python manage.py createcachetable dev_cache
&lt;/pre&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2&gt;





Write the caching code&lt;/h2&gt;
&lt;div&gt;
Here I am using the &lt;a href=&quot;http://docs.python-requests.org/en/latest/index.html&quot;&gt;requests http library&lt;/a&gt;&amp;nbsp;to fetch json data from the API. This function returns de-serialized python object.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;pre class=&quot;brush: py;&quot; style=&quot;font-size: 0.8em;&quot;&gt;from django.core.cache import cache
import requests
import json

def fetchJson(url):
    cached = cache.get(url)
    content = &quot;&quot;
    if not cached:
            r = requests.get(url)
            if(r.ok):
                cache.set(url, r.text)
                content = r.text
            else:
                # Write some proper error handling code here
                print &quot;Error - status code: &quot; + r.status_code  
    else:
        # Return the cached content
        content = cached

    return json.loads(content)&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2&gt;





Adjusting for production deployment&lt;/h2&gt;
&lt;div&gt;
The settings I used are probably not what you want for production setup. You should read the Django docs about caching to understand and adjust the settings to suit your needs.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2&gt;





Flushing the database backed cache&lt;/h2&gt;
&lt;div&gt;
It seems that some cache backends have differing ways to clear them. DatabaseCache has &lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;clear() &lt;/span&gt;method that you can call to remove all cached entries from the database.
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
Follow me in Twitter: &lt;a href=&quot;http://www.twitter.com/JuhaFinn&quot;&gt;&lt;b&gt;@JuhaFinn&lt;/b&gt;&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://equallytrue.blogspot.com/feeds/2786879997358006722/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://equallytrue.blogspot.com/2012/04/how-to-cache-outgoing-api-calls-in.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1885941715345341708/posts/default/2786879997358006722'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1885941715345341708/posts/default/2786879997358006722'/><link rel='alternate' type='text/html' href='http://equallytrue.blogspot.com/2012/04/how-to-cache-outgoing-api-calls-in.html' title='How to cache outgoing API calls in Django'/><author><name>Juha S</name><uri>http://www.blogger.com/profile/16783678110582703635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1885941715345341708.post-9154787154582502670</id><published>2011-11-12T15:55:00.001-08:00</published><updated>2012-05-04T14:11:48.638-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="eclipse"/><category scheme="http://www.blogger.com/atom/ns#" term="github"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><category scheme="http://www.blogger.com/atom/ns#" term="python"/><title type='text'>How to: Import non-Eclipse Github project into Eclipse</title><content type='html'>This howto article will instruct how import a Github repository into your Eclipse workspace, even if it&#39;s not an eclipse project. You can skip step 3 if you just want to inspect the code without making it runnable (let it be General Project in Eclipse). I will show the example snippets with python and Java, but it&#39;s possible to use this process with other Eclipse supported runtimes too.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Requirements:&lt;br /&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;I tested this on Eclipse Helios, but it should work on older and newer releases too&lt;/li&gt;
&lt;li&gt;You should have EGit installed and configured&lt;/li&gt;
&lt;li&gt;If you want to make the code runnable you should have necessary language plugins installed, for example PyDev for Python (Java is usually included by default).&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;span style=&quot;font-size: x-large;&quot;&gt;TL;DR&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Here is short version for the advanced users:&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;&lt;b&gt;Clone or fork the repository&lt;/b&gt;: (Import..&amp;gt;Git project&amp;gt;Clone...)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Create General Project from the repository&lt;/b&gt;: (Import&amp;gt;Git Project, select the repository you just cloned).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Transform the General Project to language specific project&lt;/b&gt;: Add nature and buildCommand elements to .project file).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;(for Java projects)&lt;/b&gt; Add&amp;nbsp;
libraries&amp;nbsp;and&amp;nbsp;source directories from Project&amp;gt;Properties&amp;gt;Java Build Path.&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
&lt;br class=&quot;Apple-interchange-newline&quot; /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjceEVt879T4STeVe7aucUDJzHBXNQmhD0oVrwNxPSGLUxtjeA0EXlYME2Yk4C0Epk318z-dMjsm2yazspyp7LxRd47B-_Fv6yNn22nbiJQ7mZV2-oVgtuSrNsaIrqcrA_p-N94lNdcRv4s/s1600/eclipse_bckgr_logo_fc_med.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;211&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjceEVt879T4STeVe7aucUDJzHBXNQmhD0oVrwNxPSGLUxtjeA0EXlYME2Yk4C0Epk318z-dMjsm2yazspyp7LxRd47B-_Fv6yNn22nbiJQ7mZV2-oVgtuSrNsaIrqcrA_p-N94lNdcRv4s/s320/eclipse_bckgr_logo_fc_med.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: x-large;&quot;&gt;Step 1: Clone or fork the repository&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
This step adds the repository to know GIT repositories list in Eclipse. See the list in File&amp;gt;Import&amp;gt;&quot;Projects from Git&quot;. Skip this step if you already have it there.&lt;br /&gt;
&lt;br /&gt;
If you are not planning to make any changes to the repository it is easiest to clone the read-only repository to your computer. You can find the git link to this read-only repository on the project main page (for example&amp;nbsp;
&lt;a href=&quot;https://github.com/django/django&quot;&gt;https://github.com/django/django&lt;/a&gt;&amp;nbsp;). I will use Django repository as an example on this article. The read only repository link should look like this:&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: small;&quot;&gt;https://github.com/django/django.git&lt;/span&gt;&lt;/blockquote&gt;
If you plan to modify the code you should fork the repository instead. You can do this by clicking &quot;Fork&quot;. This will get you link to your own personal repository. You must be logged to do this.&lt;br /&gt;
&lt;br /&gt;
Now that you have the link you can clone the repository:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;In Eclipse go to File&amp;gt;Import... and select Git&amp;gt;&quot;Projects from Git&quot;. On the &quot;Select a Git repository&quot; page click Clone...&lt;/li&gt;
&lt;li&gt;Now paste your link to URI field.&amp;nbsp;
&lt;/li&gt;
&lt;li&gt;If everything is configured correctly you should get to &quot;Branch Selection&quot; page. Select the branch that you want to use and click next.&lt;/li&gt;
&lt;li&gt;If you want the code to be under your eclipse project (I like it so), you should select folder two levels inside your workspace. The first folder is the project name and second is folder for the code. I use &quot;C:\myworkspace\django\django&quot;. The second folder will not be visible in any way when you use the project in Eclipse. Click Finish.&lt;/li&gt;
&lt;li&gt;Eclipse clones the repository into your harddrive and in the end you should see the new clones repository in the &quot;Select a Git repository page&quot;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: x-large;&quot;&gt;Step 2: Create General Project from the repository&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
This step creates a General Project that includes the code from the repository&lt;br /&gt;
&lt;br /&gt;
Create the project:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Again go to File&amp;gt;Import...&amp;gt;&quot;Projects from Git&quot;.&lt;/li&gt;
&lt;li&gt;Select the repository you created in step 1 and click Next.&lt;/li&gt;
&lt;li&gt;On next page you should select: &quot;Import as general project&quot; and click Next and Finish. If your repository was an eclipse project you could select &quot;Import existing projects&quot;.&lt;/li&gt;
&lt;li&gt;You should now see your project on the &quot;Package Explorer&quot; with all the contents of the repository.&lt;/li&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-large;&quot;&gt;Step 3: Transform project into language specific project&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
This step will transform the General project with no ability to run the code into a language specific project (Python projectfor example) with ability to run the code.&lt;br /&gt;
&lt;br /&gt;
You will need to modify the .project file to change the type of the project. You will need to add two elements into it: buildCommand and nature.&lt;br /&gt;
&lt;br /&gt;
buildCommand element for Python:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: small;&quot;&gt;&amp;nbsp; &amp;lt;buildCommand&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;lt;name&amp;gt;org.python.pydev.PyDevBuilder&amp;lt;/name&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;lt;arguments&amp;gt;
   &amp;lt;/arguments&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: small;&quot;&gt;&amp;nbsp; &amp;lt;/buildCommand&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;buildCommand element for Java:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: small;&quot;&gt;&amp;nbsp; &amp;lt;buildCommand&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;lt;name&amp;gt;org.eclipse.jdt.core.javabuilder&amp;lt;/name&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;lt;arguments&amp;gt;
   &amp;lt;/arguments&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: small;&quot;&gt;&amp;nbsp; &amp;lt;/buildCommand&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
nature element for Python:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &lt;span style=&quot;font-size: small;&quot;&gt;&amp;lt;nature&amp;gt;org.python.pydev.pythonNature&amp;lt;/nature&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
nature element for Java:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &lt;span style=&quot;font-size: small;&quot;&gt;&amp;lt;nature&amp;gt;org.eclipse.jdt.core.javanature&amp;lt;/nature&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
If you are using some other language you can obtain these elements by creating a new empty project of that type and opening the .project file on root of that project. You should see both of these elements there.&lt;br /&gt;
&lt;br /&gt;
Now that you have these two elements you can add them to .project file: buildCommand inside buildSpec and nature inside natures. You can find .project file on Navigator on the root of your project. Doubleclick it to open it. Now insert the elements. Your .project file should look something like this:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: small;&quot;&gt; &amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;lt;projectDescription&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;lt;name&amp;gt;django&amp;lt;/name&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;lt;comment&amp;gt;&amp;lt;/comment&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;lt;projects&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/projects&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;lt;buildSpec&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;buildCommand&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;name&amp;gt;org.python.pydev.PyDevBuilder&amp;lt;/name&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;arguments&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;lt;/arguments&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;lt;/buildCommand&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/buildSpec&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;natures&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;nature&amp;gt;org.python.pydev.pythonNature&amp;lt;/nature&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/natures&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;lt;/projectDescription&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
Now you can Right Click a code file and see the execution options in the &quot;Run as&quot;-menu. For python project this is all you need to run the code properly. For other languages you may need to additionally set the classpath or similar things. For example Java projects need their classpath to be set.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: x-large;&quot;&gt;Adding classpath on Java projects&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Java projects additionally require you to tell Eclipse where the executable java code is inside the project. It normally reads this from the .classpath file on project root folder.&lt;br /&gt;
&lt;br /&gt;
Configure classpath:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;You can manually configure the source folders by selecting the project and clicking Project&amp;gt;Properties&amp;gt;Java Build Path.&lt;/li&gt;
&lt;li&gt;Open Source tab and click add folder and select the root folder for the java code (sometimes it it /src sometimes it can be the root depends on the project structure).&lt;/li&gt;
&lt;li&gt;If project needs libraries add them on Libraries tab&lt;/li&gt;
&lt;li&gt;Click Ok and the .classpath should be generated to tell Eclipse where the code is located.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;span style=&quot;font-size: x-large;&quot;&gt;Problems?&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
If you problems with eclipse projects sometimes it helps to Close and re-open the project. You can do this by selecting the project and click Project&amp;gt;Open/Close Project.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
This process may not work for all kinds of projects but at least I have tried it with multiple Java and Python project&lt;/div&gt;
&lt;br&gt;
Follow me in Twitter: &lt;a href=&quot;http://www.twitter.com/JuhaFinn&quot;&gt;&lt;b&gt;@JuhaFinn&lt;/b&gt;&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;</content><link rel='replies' type='application/atom+xml' href='http://equallytrue.blogspot.com/feeds/9154787154582502670/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://equallytrue.blogspot.com/2011/11/how-to-import-non-eclipse-github.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1885941715345341708/posts/default/9154787154582502670'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1885941715345341708/posts/default/9154787154582502670'/><link rel='alternate' type='text/html' href='http://equallytrue.blogspot.com/2011/11/how-to-import-non-eclipse-github.html' title='How to: Import non-Eclipse Github project into Eclipse'/><author><name>Juha S</name><uri>http://www.blogger.com/profile/16783678110582703635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjceEVt879T4STeVe7aucUDJzHBXNQmhD0oVrwNxPSGLUxtjeA0EXlYME2Yk4C0Epk318z-dMjsm2yazspyp7LxRd47B-_Fv6yNn22nbiJQ7mZV2-oVgtuSrNsaIrqcrA_p-N94lNdcRv4s/s72-c/eclipse_bckgr_logo_fc_med.jpg" height="72" width="72"/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1885941715345341708.post-5544533401577499896</id><published>2011-11-10T04:28:00.000-08:00</published><updated>2012-05-04T14:11:59.579-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><category scheme="http://www.blogger.com/atom/ns#" term="testing"/><title type='text'>Importance of testing with large data sets</title><content type='html'>&lt;b&gt;Edit:&lt;/b&gt;&amp;nbsp;Title modified. I later realized that the word &#39;training&#39; can refer to training machine learning&amp;nbsp;algorithms&amp;nbsp;(especially when&amp;nbsp;speaking&amp;nbsp;of large data sets) so I started to use word &#39;testing&#39;. I was trying to use the word &#39;training&#39; to refer to the training process of your development skills.&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; font-size: x-large;&quot;&gt;My awakening&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
When I was getting started on my first real programming job I got a task to build a component for a larger system. I took the challenge with enthusiasm and started designing. After a while I had good looking component with good unit test coverage and integration was tested too. Then I got the task to performance test it. I hadn&#39;t done performance testing much before so I felt a bit insecure but I thought why would there be a problem, all my unit test showed it was solid code.&lt;br /&gt;
&lt;span style=&quot;background-color: transparent;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent;&quot;&gt;Surprisingly after running the tests with millions of data points something started breaking, and the CPU went up. This was the point I started realizing the true value of those algorithm classes that seemed theoretical at the time. Additionally, I realized its really hard to catch all race conditions in multithreaded applications with unit tests. Later on I did manage to catch the concurrency bugs after some debugging and improve the performance to acceptable level, but it opened my eyes for the importance of testing and training with realistic and large data sets.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent;&quot;&gt;How I see it here are most important advantages for testing with large datasets:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;background-color: transparent;&quot;&gt;Catch concurrency bugs&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: transparent;&quot;&gt;Find performance problems&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: transparent;&quot;&gt;Nice numeric results for the marketing purposes&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: transparent;&quot;&gt;Get confidence on your product&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;img src=&quot;http://resources.kiosked.com/filestorage/7587220.jpg&quot; /&gt;&lt;script language=&quot;javascript&quot; src=&quot;http://widgets.kiosked.com/widget/image/co/483/id/844656.js&quot; type=&quot;text/javascript&quot;&gt;
&lt;/script&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; font-size: x-large;&quot;&gt;Get used to large data sets while learning&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent;&quot;&gt;It&#39;s sometimes hard or impossible to get suitable large data set that represents real data for your product. That&#39;s why it&#39;s important that already when you are learning a new technology you train your skills with large data sets. This way you will learn the performance and concurrency challenges when running your own throwaway training programs where it&#39;s easier to find sample data rather than later building the product for a company.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent;&quot;&gt;When you are in school or home learning new technologies it&#39;s usually easiest to test your skills with simple proof of concept mini-applications. This works for learning the basics but it may also let you use inefficient or error-prone approaches that would not work in high-demanding use cases. Plan your first application in a way that you can run large data sets through it. Even if it&#39;s purpose is for you to just learn the technology. Nowadays there are so many easy to use libraries for accessing xml-files, data-files, databases, etc. that it will not add much effort on your application development to support importing large sets of data. And learning to import data is surely a skill that you&#39;ll need later.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent;&quot;&gt;In addition to being useful it&#39;s also nice feeling when you see your application processing millions of records. It&#39;s not a simple throwaway application anymore, but it has potential to provide some real value. Maybe you can create statistical analyses based on data. Maybe you can transform the data into something more useful. Anyway, it&#39;s closer to being a real application. Now let&#39;s see where to find sample data.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-large;&quot;&gt;Web is full of open data sets for you to use&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent;&quot;&gt;If you have good list of open data sets in your mind, you will come up with more useful ideas for apps that can actually use real world data. Even if it&#39;s just for the purpose of learning a new technology. Here is a list of some open data sets. Feel free to add your in the comments.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Few data sets to get started:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;&lt;a href=&quot;http://blog.stackoverflow.com/category/cc-wiki-dump/&quot;&gt;StackExchange data dumps&lt;/a&gt;:&lt;/b&gt; All stackexchange sites release their data in XML format. You can download them using torrent. Largest is Stackoverflow dump that contains 6+ million posts. Recommended!&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Wikipedia:Database_download&quot;&gt;&lt;b&gt;Wikipedia dumps&lt;/b&gt;&lt;/a&gt;: Wikipedia offers it&#39;s data in various formats&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Large opensource projects&lt;/b&gt; can offer some interesting information for example about lines of code, commits or project timeline. Check &lt;a href=&quot;http://dev.chromium.org/developers/how-tos/get-the-code&quot;&gt;Chromium&lt;/a&gt; for example.&lt;/li&gt;
&lt;li&gt;Many countries have started to release &lt;b&gt;Government data&lt;/b&gt; in various formats. In US there is &lt;a href=&quot;http://data.gov/&quot;&gt;DATA.gov&lt;/a&gt;. Check your local organizations of open data.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;a href=&quot;http://www.programmableweb.com/apis/directory&quot;&gt;ProgrammableWeb&lt;/a&gt; &lt;/b&gt;offers good list of open API&#39;s. Many may not provide large sets of data but at least they are real-world data.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Geographic_information_system&quot;&gt;GIS&lt;/a&gt; data&lt;/b&gt;: There are many websites providing open GIS data sets. For example &lt;a href=&quot;http://ned.usgs.gov/&quot;&gt;National Elevation Dataset&lt;/a&gt;. (thanks to Doug for pointing this out).&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
After getting comfortable with one data source its much easier to use that in the future apps. I would recommend using the Stackexchange data dumps for their varying size size but simple structure.&lt;/div&gt;
&lt;br /&gt;
&lt;br&gt;
Follow me in Twitter: &lt;a href=&quot;http://www.twitter.com/JuhaFinn&quot;&gt;&lt;b&gt;@JuhaFinn&lt;/b&gt;&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;</content><link rel='replies' type='application/atom+xml' href='http://equallytrue.blogspot.com/feeds/5544533401577499896/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://equallytrue.blogspot.com/2011/11/importance-of-training-with-large.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1885941715345341708/posts/default/5544533401577499896'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1885941715345341708/posts/default/5544533401577499896'/><link rel='alternate' type='text/html' href='http://equallytrue.blogspot.com/2011/11/importance-of-training-with-large.html' title='Importance of testing with large data sets'/><author><name>Juha S</name><uri>http://www.blogger.com/profile/16783678110582703635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1885941715345341708.post-150751193828846584</id><published>2011-01-01T13:57:00.000-08:00</published><updated>2011-01-01T16:14:22.341-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="appengine gae java python"/><title type='text'>What is Google App Engine and what you should know about it</title><content type='html'>&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; background-color: transparent; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 15px; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span&gt;&lt;span&gt;&lt;i&gt;This article is to provide background for App Engine for other post that I&#39;m writing about my experiences about GAE and who I think should be using it.&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;br /&gt;So for those that don’t know &lt;a href=&quot;http://code.google.com/intl/fi-FI/appengine/docs/&quot;&gt;Goole App Engine&lt;/a&gt; (or GAE) is a cloud platform that runs Python and Java based applications. Or more specifically it runs all JVM based languages on Java side (GAE/J). &lt;/span&gt;&lt;/span&gt;GAE gives an url for your application (your-app-name.appspot.com) and you can even use it with your own domain which gives you access to the Google Apps. It offers a lot of features and&lt;b&gt; free plan &lt;/b&gt;that offers generous daily quotas (more on that on my next post).&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7XDOxKBTgctttYYYDoQaa9YeG2rSQfAmST4_UWXQLQ_J2CmwrgQvbKim2VyZjXtmxAEqmn9mGzia_Id1e6lb0fZIZ2cRjTkN_umQWR24TCy0MJBHsAzBcnLVDSCPMbplXcURUBU5MqeRd/s1600/gae.png&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7XDOxKBTgctttYYYDoQaa9YeG2rSQfAmST4_UWXQLQ_J2CmwrgQvbKim2VyZjXtmxAEqmn9mGzia_Id1e6lb0fZIZ2cRjTkN_umQWR24TCy0MJBHsAzBcnLVDSCPMbplXcURUBU5MqeRd/s320/gae.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5557354240277647346&quot; style=&quot;cursor: pointer; width: 142px; height: 109px; &quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;b&gt;Memcache:&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;b&gt;&lt;/b&gt;There is built-in support for using memcache in GAE which allows to make your site very efficient and responsive (and it saves your precious daily CPU quota).&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Only Bigtable as database:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;You’ll have to use Google’s Bigtable datastore which can feel a bit limiting if you come from SQL world, but it does enforce you to write efficient data queries. It supports the GQL language which is almost like SQL but with some limitations.&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;br /&gt;&lt;b&gt;GAE is a cloud service:&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;Google handles starting new instances and replicating the data automatically. You can concentrate on the important part, creating the application. This is great risk less opportunity to jump on the cloud movement if you feel your mind is stuck on the one-server one-database mentality.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;No filesystem:&lt;/b&gt;&lt;br /&gt;GAE doesn’t give you access to any kind of filesystem, but you can serve static files if you include them to your package. I don’t actually mind this too much, although it did seem a bit unusual at first.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;b&gt;Versioning:&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;One cool thing that GAE offers is versioning. You can define the version of your app in the conf file and it will not override the previous version. You can have multiple vesions of your app running on different url’s (http://7.latest.your-app.appspot.com where 7 is the version) and you can set which is version is served on your app’s url.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Python:&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;I’m more familiar with the python side and there are some pre-installed frameworks that you can immediately start using. For exaple it has limited version of Django 0.96 (which is a bit old). But it is possible for you to install Django yourself too. It isn’t straightforward since you can’t use Django’s datamodels directly, but there is a project called app-engine-patch (http://code.google.com/p/app-engine-patch/) that will make the process easier (I have only tried it but am not currently using it).&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Java and JVM:&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;I’m not too familiar with the Java side but here are the basics. You can use JDO to interface with the datastore. This does require some xml configuration, but I’m sure most Java programmers are used to it. For rendering GAE/J supports JSP’s that many developers are probably already familiar with.&lt;br /&gt;&lt;br /&gt;Now the interesting part is that you can run other languages as Java on top of the JVM. Check out a list from &lt;a href=&quot;http://groups.google.com/group/google-appengine-java/web/will-it-play-in-app-engine&quot;&gt;here&lt;/a&gt; of the supported languages. &lt;/span&gt;&lt;/span&gt;Some interesting ones: &lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Jython (Python),&lt;/li&gt;&lt;li&gt;Groovy,&lt;/li&gt;&lt;li&gt;JRuby (Ruby)&lt;/li&gt;&lt;li&gt;Rhino (JavaScript)&lt;/li&gt;&lt;li&gt;Scala &lt;/li&gt;&lt;li&gt;Quercus(PHP). Yes, you can even run PHP on GAE :).&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;div style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; background-color: transparent; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;span style=&quot;font-size: 11pt; color: rgb(0, 0, 0); background-color: transparent; font-weight: normal; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; &quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://equallytrue.blogspot.com/feeds/150751193828846584/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://equallytrue.blogspot.com/2011/01/what-is-google-app-engine-what-you.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1885941715345341708/posts/default/150751193828846584'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1885941715345341708/posts/default/150751193828846584'/><link rel='alternate' type='text/html' href='http://equallytrue.blogspot.com/2011/01/what-is-google-app-engine-what-you.html' title='What is Google App Engine and what you should know about it'/><author><name>Juha S</name><uri>http://www.blogger.com/profile/16783678110582703635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7XDOxKBTgctttYYYDoQaa9YeG2rSQfAmST4_UWXQLQ_J2CmwrgQvbKim2VyZjXtmxAEqmn9mGzia_Id1e6lb0fZIZ2cRjTkN_umQWR24TCy0MJBHsAzBcnLVDSCPMbplXcURUBU5MqeRd/s72-c/gae.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1885941715345341708.post-1369197266522174749</id><published>2010-09-17T11:56:00.000-07:00</published><updated>2010-09-28T03:39:26.236-07:00</updated><title type='text'>How to listen to podcasts with increased speed on your iPod</title><content type='html'>&lt;div&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal; font-size: 16px; &quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;h3&gt;Introduction&lt;/h3&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;I have iPod Nano (4th gen) and I noticed that there is setting to listen to audiobooks with increased speed. The setting can be found from Settings&gt;Playback&gt;Audiobooks. I noticed that changing this actually speeded up some of the mp3 podcasts I was listening, but not all. If you haven&#39;t heard of people listening podcasts or audiobooks with increased speed don&#39;t worry, it will not make them sound like bunch of squirrels talking. It just increases the tempo without affecting the pitch. My iPod nano plays them with 125% speed giving 25% increase. You can hear the difference clearly when music is playing, but there is not too big difference when you hear people talking, but it does save you 20% of the time :).&lt;/span&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;I started to investigate how I could get all the mp3 audiobooks and podcasts to play with increased speed. It seems that when you import songs to iTunes or iPod (without iTunes)  they analyze the file and decide if it is of type &quot;audiobook&quot; or not. The speed settings are only available for tracks that iPod considers as audiobooks. Below are two different methods describing how to get your mp3 podcasts and audiobooks (or any other mp3&#39;s) to play with increased speed. &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;Additional benefit:&lt;/span&gt;&lt;/b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt; If your iPod considers the track as audiobook it also means the iPod remembers the position in the track even if you listen to something else in between. This is really handy and saves you time to scan the position where you stopped listening last time.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;h3&gt;Get mp3 podcasts or audiobooks to play with increased speed without using iTunes&lt;/h3&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;I like to use &lt;/span&gt;&lt;a href=&quot;http://www.floola.com/home/download_win/&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;Floola &lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;as an iTunes replacement, since I it&#39;s lighter and I don&#39;t have my music library in iTunes. And it&#39;s free. I have found that this process doesn&#39;t work 100% of the time, but I haven&#39;t yet found the reason. It seems that iPod uses some secret magic to detect if track is audiobook or not. It does work maybe 90% of the time. The iTunes method seems to work more reliably.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;Process:&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;Download the mp3 podcast file. You can use one of my favourite podcasts Techzing for testing: &lt;/span&gt;&lt;a href=&quot;http://techzinglive.com/?p=435&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;http://techzinglive.com/?p=435&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt; . It works perfectly for me.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;Right click it on windows explorer (I&#39;m sure Mac and Linux have similar operation too) and select &quot;Details&quot; page. There you see field called Genre. Change that value to be &quot;AudioBook&quot; (without the &quot;&quot;).&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;Now open Floola (or any other iTunes alternative) and import the file to your iPod. I like to keep my podcasts on separate paylist.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;Eject the iPod.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;Now in iPod mainmenu go Settings&gt;Playback&gt;Audiobook and select &quot;Faster&quot;. This will increase speed by 25%.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;Now start playing the podcast as you would normally. You should hear it with increased speed.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;Verifying success: &lt;/span&gt;&lt;/b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;When you are playing the podcast press the center button for a few seconds. You should see a menu with options &quot;Slower&quot;, &quot;Normal&quot; and &quot;Faster&quot;. If your iPod doesn&#39;t recognize it as audiobook you see &quot;Add to On-The-Go&quot;, &quot;Browse album&quot; and so on&quot;. If this didn&#39;t work for you, I suggest to try the iTunes method (see below).&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large; &quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;h3&gt;Get mp3 podcasts or audiobooks to play with increased speed with iTunes&lt;/h3&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;I found that even if I set the genre as AudioBook iTunes still doens&#39;t recognize my podcasts as audiobook. The good news is that iTunes has the Media Type option which makes to make the iPod to consider a track as an audiobook. &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;Note: I&#39;m using iTunes 8 for this. There might be differences with different versions.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Process:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;Import mp3 to iTunes (I trust you can do this if you use iTunes) and move it to the iPod.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;Right click the file (the one under iPod) and select &quot;Get info&quot;. Select &quot;Options&quot; -tab. Select0 &quot;Media Kind&quot; to be &quot;Audiobook&quot;. Click Ok. You can also to dhis step for multiple files at once.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;Eject the iPod.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;Verifying success: When you are playing the podcast press the center button for a few seconds. You should see a menu with options &quot;Slower&quot;, &quot;Normal&quot; and &quot;Faster&quot;. If your iPod doesn&#39;t recognize it as audiobook you see &quot;Add to On-The-Go&quot;, &quot;Browse album&quot; and so on&quot;. If this didn&#39;t work for you, I suggest to try the iTunes method (see below).&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;h3&gt;&lt;b&gt;Getting even faster playback speeds&lt;/b&gt;&lt;/h3&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;If you want different speeds than what your iPod lets you choose you&#39;ll have to pre-process the media files before importing them to iPod. I have used the Audacity-tool to increase the tempo by 60%. I find that acceptable rate but I do have to put more attention to listening not to miss anything. Here is link to one tutorial that explains this process: &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;a href=&quot;http://www.tunequest.org/speeding-up-podcasts-part-2/20070219/&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;http://www.tunequest.org/speeding-up-podcasts-part-2/20070219/&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;. This takes some time to do. There might be some automated ways to do this, but so far I haven&#39;t stumbled into any good ones. I have only used this method a few times for some longer podcasts.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;Let me know if you know better ways to speed up the audiobooks or podcasts.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://equallytrue.blogspot.com/feeds/1369197266522174749/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://equallytrue.blogspot.com/2010/09/how-to-listen-to-mp3-podcasts-with.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1885941715345341708/posts/default/1369197266522174749'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1885941715345341708/posts/default/1369197266522174749'/><link rel='alternate' type='text/html' href='http://equallytrue.blogspot.com/2010/09/how-to-listen-to-mp3-podcasts-with.html' title='How to listen to podcasts with increased speed on your iPod'/><author><name>Juha S</name><uri>http://www.blogger.com/profile/16783678110582703635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1885941715345341708.post-3810837216488951623</id><published>2010-09-16T06:39:00.000-07:00</published><updated>2012-04-13T03:18:25.465-07:00</updated><title type='text'>Understand your brain</title><content type='html'>&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large; line-height: 19px;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large; line-height: 19px;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 19px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;I have recently been quite interested of how humans think and make decisions. Especially the balance between conscious and unconscious mind is wonderfully complex. I read a book from Malcolm Gladwell called &lt;a href=&quot;http://www.amazon.com/Blink-Power-Thinking-Without/dp/0316010669/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1284642958&amp;amp;sr=8-1&quot;&gt;Blink: The Power Of Thinking Without Thinking&lt;/a&gt;. It was really interesting book and also very entertaining to read. It explains how the unconscious mind works and what are the good and bad features of it. For example unconscious part of brain can analyze big amounts of visual information and detect the important information from it. There is also a negative side there that the marketing people like to use. Choosing a product in a shop involves many unconscious decisions which are hard to control.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 19px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 19px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;Knowing the strengths and weaknesses of our brain is important when we want to make optimal decisions. Biggest thing was that now I have more trust in my unconscious decisions in certain situations. It&#39;s still though to explain to other people how we &quot;just know&quot; the answer, but at least I know my self that my unconscious mind can process the information in a rational way. I have studied poker and there the unconscious decisions are highly valued, it wouldn&#39;t be first time when the best players say in an interview that they &quot;just knew&quot; what the other person had - that&#39;s the unconscious part of brain working and processing all the information.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 19px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 19px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;I attached an interesting talk by David Rock. I haven&#39;t read his book, but he seems to be entertaining talker and he explains some interesting aspects of the unconscious mind in this video. I recomment watching.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 19px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 19px;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;Google Tech Talk: Your Brain at work&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 19px;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;object height=&quot;385&quot; width=&quot;480&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/XeJSXfXep4M?fs=1&amp;amp;hl=fi_FI&quot;&gt;
&lt;/param&gt;
&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;
&lt;/param&gt;
&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot;&gt;
&lt;/param&gt;
&lt;embed src=&quot;http://www.youtube.com/v/XeJSXfXep4M?fs=1&amp;amp;hl=fi_FI&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;480&quot; height=&quot;385&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small; line-height: 19px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://equallytrue.blogspot.com/feeds/3810837216488951623/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://equallytrue.blogspot.com/2010/09/make-better-decisions-through.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1885941715345341708/posts/default/3810837216488951623'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1885941715345341708/posts/default/3810837216488951623'/><link rel='alternate' type='text/html' href='http://equallytrue.blogspot.com/2010/09/make-better-decisions-through.html' title='Understand your brain'/><author><name>Juha S</name><uri>http://www.blogger.com/profile/16783678110582703635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1885941715345341708.post-2443446535913897622</id><published>2010-09-13T12:54:00.000-07:00</published><updated>2010-09-18T04:10:39.164-07:00</updated><title type='text'>Procrastination - how getting conscious about it helped me</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;I only recently googled the definition of procrastination: &lt;/span&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: sans-serif; font-size: 13px; line-height: 19px; &quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;procrastination&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;i&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt; &lt;/span&gt;&lt;/b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;refers to the counterproductive deferment of actions or tas&lt;/span&gt;ks to a later time.&lt;/i&gt;&quot; &lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: sans-serif; line-height: 19px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: x-small;&quot;&gt;(Wikipedia)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: sans-serif; font-size: 13px; line-height: 19px; &quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 13px; line-height: 19px;&quot;&gt;I got interested about this term. Maybe because I&#39;m not native english speaker I had managed avoid truly understanding this word for so long. It seems that there was a lot of theories and science behind this term, and the definition seemed to reflect my feelings surprisingly well. It seems I&#39;m not the only one feeling like that. Good for me! Don&#39;t get me wrong, I still manage my tasks, but if there was no procrastination I would get a nice efficiency-boost on my everyday life, and probably also relieve my stress too.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 13px; line-height: 19px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 19px; &quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large;&quot;&gt;You can&#39;t beat what you don&#39;t know&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 19px; &quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 19px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;I started to read more about this interesting term and I also listened to some related podcasts. I didn&#39;t really expect doing that would &quot;fix&quot; my behavior in anyway, I was just interested. To my big surprise I noticed that I had more strength to fight procrastination, it seemed that just being conscious of it helped me to fight it.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 19px; font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 19px; font-size: small;&quot;&gt;After thinking about it for a while it starts to seem logical. Procrastination comes from our inner needs and feelings. By being more conscious about it we can put more logic into our decisions. Previously it was easy to drift doing other stuff and avoid for example doing the dishes. Now when I &quot;drift&quot; I realize what I am doing, and I can use a moment to think: &quot;Is this what I really want to be doing&quot;. Surely just being conscious about it won&#39;t make it go away, but I feel that it gives me a chance to improve. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 19px; font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 19px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large;&quot;&gt;My tips to learn more about procrastination&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 19px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 19px; &quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;1. Search basic information about procrastination from wikipedia and google. &lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;It&#39;s good to know the basics about procrastination, I&#39;m pretty sure that even the wikipedia page includes new information for everyone. And it&#39;ll at least increase your general knowledge.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 19px; &quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 19px; &quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;2. Listen to procrastination podcasts&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;. I found that the podcasts were interesting to listen to and give you tools to reduce procrastination. They also work as motivation boosters to give you some confidence. Two that I tried: &lt;a href=&quot;http://stopprocrastinatingnow.podomatic.com/&quot;&gt;Stop procrastinating now&lt;/a&gt; (last podcast from 2008) and &lt;a href=&quot;http://iprocrastinate.libsyn.com/&quot;&gt;iProcrastinate&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 19px; &quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 19px; &quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;3. Learn more about how brain works.&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt; If you understand your decision making process better, you can consciously affect more easily. There is a lot of interesting information about this.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 19px; font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 19px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large;&quot;&gt;&lt;b&gt;Good procrastination&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 19px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 19px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;No matter what you do procrastination will still be there. You might be able to do it less, but it&#39;s something that people just need to do every now and then. So why wouldn&#39;t you do something that is actually useful as your procrastination activity. We all have long to-do lists, and I&#39;m sure it&#39;s possible to find something from there that you are willing to do when you feel like procrastinating. If you clear one of those tasks that you&#39;ll have to do anyway you actually reduce future stress. &lt;a href=&quot;http://www.paulgraham.com/&quot;&gt;Paul Graham&lt;/a&gt; has written excellent essay related to this called: &lt;a href=&quot;http://paulgraham.com/procrastination.html&quot;&gt;Good and Bad Procrastination&lt;/a&gt;. I highly recommend reading it.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 19px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 19px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 19px; &quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 19px; &quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large;&quot;&gt;Slightly related: &lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;Penn&amp;amp;Teller on self esteem&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 19px; &quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 19px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;b&gt;*procrastination alert*&lt;/b&gt; I happened to watch today an episode of Penn&amp;amp;Teller Bullshit about self esteem. I interestingly found that it actually issued some of the same topics as what I found when researching about procrastination. For example fearing failure is big factor in procrastination and this is tightly connected to self esteem. Well, just watch it an see make up your own mind. You can try &lt;a href=&quot;http://www.youtube.com/results?search_query=penn+teller+self+esteem&amp;amp;aq=f&quot;&gt;searching youtube&lt;/a&gt; if you want to see it online.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 19px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 19px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 19px; &quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 19px; &quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 19px; &quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://equallytrue.blogspot.com/feeds/2443446535913897622/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://equallytrue.blogspot.com/2010/09/procrastination-my-new-found-enemy.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1885941715345341708/posts/default/2443446535913897622'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1885941715345341708/posts/default/2443446535913897622'/><link rel='alternate' type='text/html' href='http://equallytrue.blogspot.com/2010/09/procrastination-my-new-found-enemy.html' title='Procrastination - how getting conscious about it helped me'/><author><name>Juha S</name><uri>http://www.blogger.com/profile/16783678110582703635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1885941715345341708.post-875727147499806334</id><published>2010-07-25T02:47:00.001-07:00</published><updated>2010-09-18T13:40:28.515-07:00</updated><title type='text'>Resources to keep up with trending topics</title><content type='html'>Here are some of my resources and tools to follow the wonderful world of technology. Feel free to suggest new ones to me.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color:#993300;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large;&quot;&gt;General tech resources:&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal; &quot;&gt;&lt;b&gt;Blog&lt;/b&gt;: &lt;a href=&quot;http://mashable.com/&quot;&gt;Mashable&lt;/a&gt; - Although this is concentrated on social media, they have so many posts every day that everybody can find something interesting here. While writing this I found post of &lt;a href=&quot;http://mashable.com/2010/07/23/google-office-tour/&quot;&gt;10 videos exploring Google&#39;s development center&lt;/a&gt; (I suggest muting the first video).&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal; &quot;&gt;&lt;b&gt;Blog&lt;/b&gt;: &lt;a href=&quot;http://www.engadget.com/&quot;&gt;Engadget&lt;/a&gt; - Mostly concentrated on devices. Lots of well-written posts every day. You are guaranteed to find articles about the trending devices here. Be prepared for Apple-biased opinions.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal; &quot;&gt;&lt;b&gt;Blog&lt;/b&gt;: &lt;a href=&quot;http://gigaom.com/&quot;&gt;GigaOM&lt;/a&gt; - The first tech-blog I started following. Good mix of well written articles about entrepreneurship, mobile industry, financial sector and technology. Good way to keep up with the industry. Nowadays there seems to be more articles about consumer devices and services (like Mashable and Engadget).&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/b&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color:#993300;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large;&quot;&gt;Entrepreneurship resources&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;Note: I&#39;m not en entrepreneur, but I have noticed that entrepreneur related resources really help you to know about the newest things happening. And who knows, I might be involved in a startup at some point.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Blog&lt;/b&gt;: &lt;a href=&quot;http://www.arcticstartup.com/&quot;&gt;Arctic Startup&lt;/a&gt; - Interesting entrepreneurship blog mainly concentrating on startups around scandinavia.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Podcast&lt;/b&gt;: &lt;a href=&quot;http://thisweekin.com/thisweekin-startups/&quot;&gt;TWiST (This Week in Startups)&lt;/a&gt; - Entertaining video-podcast by Jason Calacanis about entrepreneurship. I usually listen to audio only. Well produced and they often have good quests.&lt;/li&gt;&lt;li&gt;&lt;b&gt;User generated news&lt;/b&gt;: &lt;a href=&quot;http://news.ycombinator.com/&quot;&gt;Hackernews&lt;/a&gt; - This is quite technical site, but many entrepreneurs hang out here. And it is run by the respected &lt;a href=&quot;http://ycombinator.com/&quot;&gt;Y-combinator&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(153, 51, 0); &quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large;&quot;&gt;Programming resources&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(153, 51, 0); &quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large; &quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;User generated news&lt;/b&gt;: &lt;a href=&quot;http://news.ycombinator.com/&quot;&gt;Hackernews&lt;/a&gt; - Many entrepreneur-minded developers post interesting articles here. They also have nice community.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Aggregated news&lt;/b&gt;: &lt;a href=&quot;http://coder.io/&quot;&gt;Coder i|o&lt;/a&gt;  - Aggregated and ordered list of links about trending topics. Bit similar as Hackernews or reddit, but I somehow like the simplicity.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Blog&lt;/b&gt;: &lt;a href=&quot;http://www.codinghorror.com/blog/&quot;&gt;CODING HORROR&lt;/a&gt; - One of most popular programming blogs around by Jeff Atwood. He is also one of the Stackoverflow founders and main developer (see next item). Posts are well written and entertaining. This makes the blog less personal and more like a magazine.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Q&amp;amp;A&lt;/b&gt;: &lt;a href=&quot;http://www.stackoverflow.com/&quot;&gt;Stackoverflow&lt;/a&gt; - Questions and answers for developers. You certainly don&#39;t have to have something to ask to enjoy your time on this site. Just browsing questions and answering the ones you can is good and educating. The points system gives an addicting element to this site - can you get more points than your friend ?&lt;/li&gt;&lt;li&gt;&lt;b&gt;Podcast&lt;/b&gt;: &lt;a href=&quot;http://blog.stackoverflow.com/category/podcasts/&quot;&gt;Stackoverflow podcast&lt;/a&gt; - This used to be my favourite podcast, but they stopped producing new episodes. This is made by Joel Spolsky (Author of &lt;a href=&quot;http://www.joelonsoftware.com/&quot;&gt;Joel on software&lt;/a&gt;) and Jeff Atwood (author of &lt;a href=&quot;http://www.codinghorror.com/blog/&quot;&gt;Codinghorror&lt;/a&gt;). Their 87 existing episodes are excellent way to spend your time driving, but be prepared for a lot of talk about now irrelevant development steps of Stackoverflow.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Podcast&lt;/b&gt;: &lt;a href=&quot;http://techzinglive.com/&quot;&gt;TechZING&lt;/a&gt; - Currently my no.1 podcast. Made by &lt;a href=&quot;http://twitter.com/justinvincent&quot;&gt;Justin Vincent&lt;/a&gt; (creator of &lt;a href=&quot;http://pluggio.com/&quot;&gt;Pluggio&lt;/a&gt; and &lt;a href=&quot;http://swarmsg.com/&quot;&gt;Swarm SG&lt;/a&gt;) and Jason Roberts (creator of &lt;a href=&quot;http://appignite.com/&quot;&gt;Appignite&lt;/a&gt;). Good mix of entertaining offtopic talk and deep technical topics from two charismatic personas. Their different opinions and thoughts bring a nice friendly conflict into the podcast.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://equallytrue.blogspot.com/feeds/875727147499806334/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://equallytrue.blogspot.com/2010/07/resources-to-keep-up-with-general-tech.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1885941715345341708/posts/default/875727147499806334'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1885941715345341708/posts/default/875727147499806334'/><link rel='alternate' type='text/html' href='http://equallytrue.blogspot.com/2010/07/resources-to-keep-up-with-general-tech.html' title='Resources to keep up with trending topics'/><author><name>Juha S</name><uri>http://www.blogger.com/profile/16783678110582703635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>