<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title type="html">Feed for tag web</title>
  <link href="http://www.psyphi.net/cgi-bin/blog/tag/web"/>
  <link rel="self" href="http://www.psyphi.net/cgi-bin/blog/tag/web.atom"/>
  <updated></updated>
  <author>
    <name>PsyPhi Group</name>
  </author>
  <id>urn:uuid:</id>
<entry>
 <title type="html">Ready, Set, FoWA!</title>
 <summary type="html">Really can&#x27;t wait to get to the &#x3C;a href=&#x22;http://www.futureofwebapps.com/&#x22;&#x3E;Future_of_Web_Apps&#x3C;/a&#x3E; tomorrow (nice and early of course, though I&#x27;ll be crossing Londinium on the tube during rush hour - joy).&#x3C;br /&#x3E;&#x3C;br /&#x3E;I&#x27;ve just been circling sessions on the schedule and find myself mostly in the developer track on day 1 but with an even split between developer and business tracks on day 2. I&#x27;m almost wishing Carson hadn&#x27;t packed so much goodness in so tightly.&#x3C;br /&#x3E;&#x3C;br /&#x3E;I have to say I&#x27;m a little torn between developer sessions which are appropriate for work and business sessions which are slightly more useful for the special things I do out of hours but almost justifiable under the &#x27;strategy&#x27; heading...&#x3C;br /&#x3E;&#x3C;br /&#x3E;Anyway, email screwups aside it&#x27;s shaping up to be a great show. More to come...</summary>
 <link href="http://www.psyphi.net/cgi-bin/blog/entry/16"/>
 <updated>2007-10-02T22:05:13Z</updated>
 <id>urn:uuid:1574bddb75c78a6fd2251d61e2993b5146201319</id>
</entry>
<entry>
 <title type="html">Steve Souders - Yahoo Performance - High Performance websites</title>
 <summary type="html">The gist of this presentation was to perform accurate, scientific benchmarking of front- vs. back-end overheads up-front as a developer. This should be common-sense but I don&#x27;t know *anyone* amongst my colleagues who does this proactively. It&#x27;s almost always reactive as a result of performance problems post-release.&#x3C;br /&#x3E;&#x3C;br /&#x3E;Steve presented a series of guidelines on streamlining content with the aim of improving performance. Some of these conflict a little in terms of common design practices (e.g. use of javascript/css frameworks). These guidelines are more-or-less what the YSlow Firebug plugin incorporates and in a nutshell look something like this:&#x3C;br /&#x3E;&#x3C;br /&#x3E;fewer http requests&#x3C;br /&#x3E;&#x3C;br /&#x3E;use a cdn&#x3C;br /&#x3E;&#x3C;br /&#x3E;add an expires header&#x3C;br /&#x3E;&#x3C;br /&#x3E;gzip components&#x3C;br /&#x3E;&#x3C;br /&#x3E;put stylesheets at the top&#x3C;br /&#x3E;&#x3C;br /&#x3E;move scripts to the bottom&#x3C;br /&#x3E;&#x3C;br /&#x3E;avoid css expressions&#x3C;br /&#x3E;&#x3C;br /&#x3E;make js and css external&#x3C;br /&#x3E;&#x3C;br /&#x3E;reduce dns lookups&#x3C;br /&#x3E;&#x3C;br /&#x3E;minify js&#x3C;br /&#x3E;&#x3C;br /&#x3E;avoid redirects&#x3C;br /&#x3E;&#x3C;br /&#x3E;remove duplicate scripts&#x3C;br /&#x3E;&#x3C;br /&#x3E;configure etags&#x3C;br /&#x3E;&#x3C;br /&#x3E;make ajax cacheable&#x3C;br /&#x3E;&#x3C;br /&#x3E;split static content across multiple domains&#x3C;br /&#x3E;&#x3C;br /&#x3E;reduce the size of cookies&#x3C;br /&#x3E;&#x3C;br /&#x3E;host static content on a different domain&#x3C;br /&#x3E;&#x3C;br /&#x3E;minify css&#x3C;br /&#x3E;&#x3C;br /&#x3E;avoid iframes&#x3C;br /&#x3E;&#x3C;br /&#x3E;Ref: YSlow firebug plugin!
Book: High Performance Websites
Blog: YUIBlog, YDNBlog
</summary>
 <link href="http://www.psyphi.net/cgi-bin/blog/entry/18"/>
 <updated>2007-10-03T12:13:23Z</updated>
 <id>urn:uuid:9e6a55b6b4563e652a23be9d623ca5055c356940</id>
</entry>
<entry>
 <title type="html">Matt Mullenweg (WordPress) - The Architecture Behind WordPress.com</title>
 <summary type="html">Scaling platform:&#x3C;br /&#x3E;&#x3C;br /&#x3E;88m global uniques
1.5m blogs
215m pageviews/day&#x3C;br /&#x3E;&#x3C;br /&#x3E; - 7 boxes, $1500/mo.&#x3C;br /&#x3E;&#x3C;br /&#x3E; - 2 balancers, 2Gb memory, any disk, pound+wackamole+spread.&#x3C;br /&#x3E;&#x3C;br /&#x3E; - 2 databases, 4Gb+ memory, fast disk (RAID), master+slave mysql, split read/write.&#x3C;br /&#x3E;&#x3C;br /&#x3E; - 3 webs, fast cpu, 2Gb memory, litespeed or well-configured apache.&#x3C;br /&#x3E;&#x3C;br /&#x3E; - Everything in subversion.&#x3C;br /&#x3E;&#x3C;br /&#x3E; - Be stateless (shared nothing)&#x3C;br /&#x3E;&#x3C;br /&#x3E; - Memcached&#x3C;br /&#x3E;&#x3C;br /&#x3E;geo-targetting of dns, might as well use a CDN&#x3C;br /&#x3E;&#x3C;br /&#x3E;single box 300 req/sec 29.5m/day&#x3C;br /&#x3E;&#x3C;br /&#x3E;Scaling community:&#x3C;br /&#x3E;&#x3C;br /&#x3E;Ref: sxsw presentation&#x3C;br /&#x3E;&#x3C;br /&#x3E;Scaling business:&#x3C;br /&#x3E;&#x3C;br /&#x3E;Tie revenue streams to cost scaling, e.g. pageviews rather than bloggers.
Ads scale revenues with pageviews, effective CPM, low outlay.
VIP class of users with advanced features, customisation etc.&#x3C;br /&#x3E;&#x3C;br /&#x3E;Scaling people:&#x3C;br /&#x3E;&#x3C;br /&#x3E;Hire people as good as, or better than you.
Great people = Rich environment + worthwhile problems.
5 things to look for:&#x3C;br /&#x3E;&#x3C;br /&#x3E; - Personality fit (when the shit hits the fan)&#x3C;br /&#x3E;&#x3C;br /&#x3E; - Ability to learn (curiosity)&#x3C;br /&#x3E;&#x3C;br /&#x3E; - Taste (can&#x27;t be taught)&#x3C;br /&#x3E;&#x3C;br /&#x3E; - Passion for the space&#x3C;br /&#x3E;&#x3C;br /&#x3E; - Familiarity with current technologies&#x3C;br /&#x3E;&#x3C;br /&#x3E; Don&#x27;t put out too easily - don&#x27;t hire if doubts exists&#x3C;br /&#x3E;&#x3C;br /&#x3E;It&#x27;s fun to know that the folks at wordpress manage deployment with ssh scripts running svn up.&#x3C;br /&#x3E;&#x3C;br /&#x3E;I disagree with Matt&#x27;s QA response suggesting that you should never do your own hosting. In principle that&#x27;s ok for the large faceless mass of current web sites &#x26; traffic but under special circumstances it&#x27;s the only way. I build web apps on top of bioinformatics pipelines supporting (today) 320Tb data and there&#x27;s no way on Earth this would be possible to outsource.
</summary>
 <link href="http://www.psyphi.net/cgi-bin/blog/entry/22"/>
 <updated>2007-10-03T15:18:05Z</updated>
 <id>urn:uuid:12c6fc06c99a462375eeb3f43dfd832b08ca9e17</id>
</entry>
<entry>
 <title type="html">What Can Bioinformaticians Learn from YouTube?</title>
 <summary type="html">Caught Matt&#x27;s talk this morning at the weekly informatics group meetings - &#x3C;div style=&#x22;width:425px;text-align:left&#x22; id=&#x22;__ss_156920&#x22;&#x3E;&#x3C;object style=&#x22;margin:0px&#x22; height=&#x22;355&#x22; width=&#x22;425&#x22;&#x3E;&#x3C;param name=&#x22;movie&#x22; value=&#x22;http://static.slideshare.net/swf/ssplayer2.swf?doc=what-can-bioinformaticians-learn-from-youtube-1194351542661140-4&#x22;/&#x3E;&#x3C;param name=&#x22;allowFullScreen&#x22; value=&#x22;true&#x22;/&#x3E;&#x3C;param name=&#x22;allowScriptAccess&#x22; value=&#x22;always&#x22;/&#x3E;&#x3C;embed src=&#x22;http://static.slideshare.net/swf/ssplayer2.swf?doc=what-can-bioinformaticians-learn-from-youtube-1194351542661140-4&#x22; type=&#x22;application/x-shockwave-flash&#x22; allowscriptaccess=&#x22;always&#x22; allowfullscreen=&#x22;true&#x22; width=&#x22;425&#x22; height=&#x22;355&#x22;&#x3E;&#x3C;/embed&#x3E;&#x3C;/object&#x3E;&#x3C;div style=&#x22;font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;&#x22;&#x3E;&#x3C;a href=&#x22;http://www.slideshare.net/?src=embed&#x22;&#x3E;&#x3C;img src=&#x22;http://static.slideshare.net/swf/logo_embd.png&#x22; style=&#x22;border:0px none;margin-bottom:-5px&#x22; alt=&#x22;SlideShare&#x22;/&#x3E;&#x3C;/a&#x3E; | &#x3C;a href=&#x22;http://slideshare.net/mza/what-can-bioinformaticians-learn-from-youtube&#x22; title=&#x22;View this slideshow on SlideShare&#x22;&#x3E;View&#x3C;/a&#x3E; | &#x3C;a href=&#x22;http://www.slideshare.net/upload&#x22;&#x3E;Upload your own&#x3C;/a&#x3E;&#x3C;/div&#x3E;&#x3C;/div&#x3E;&#x3C;br /&#x3E;&#x3C;br /&#x3E;There were general murmurings of agreement amongst the audience but nobody asking the probing questions I&#x27;d hope for as a measure of interestedness.&#x3C;br /&#x3E;&#x3C;br /&#x3E;Matt touched upon microformats in all but name - I was really expecting a sell of &#x3C;a href=&#x22;http://bioformats.org/&#x22;&#x3E;http://bioformats.org/&#x3C;/a&#x3E; , websites as APIs and RESTful web services in particular. &#x3C;br /&#x3E;&#x3C;br /&#x3E;Whilst I&#x27;m inclined to agree that standardised, discoverable, reusable web services are largely the way forward (especially as it keeps me in work) I&#x27;m not wholly convinced they remove the problems associated with, for example, database connections, database-engine specific SQL, hostnames, ports, accounts etc. &#x3C;br /&#x3E;&#x3C;br /&#x3E;My feeling is that all the problems associated with keeping track of your database credentials are replaced by a different set of problems, albeit more standardised in terms of network protocols in HTTP and REST/CRUD. We now run the risk that what&#x27;s fixed in terms of network protocols is pushed higher up the stack and manifests as myriad web services, all different. All these new websites and services use different XML structures and different URL schemes. The XML structures are analogous to database table schema and the URL schemes akin to table or object names.&#x3C;br /&#x3E;&#x3C;br /&#x3E;At least these entities are now discoverable by the end user/developer simply by using the web application - and there&#x27;s the big win - transparency and discoverability. There&#x27;s also the whole microformat affair - once these really start to take off there&#x27;ll be all sorts of arguments about what goes into them, especially in domains like Bio and Chem, not covered by core formats like hCard. But that&#x27;s something for another day.&#x3C;br /&#x3E;&#x3C;br /&#x3E;More over at &#x3C;a href=&#x22;http://www.greenisgood.co.uk/&#x22;&#x3E;Green_Is_Good&#x3C;/a&#x3E;
</summary>
 <link href="http://www.psyphi.net/cgi-bin/blog/entry/41"/>
 <updated>2007-11-06T22:46:13Z</updated>
 <id>urn:uuid:761f22b2c1593d0bb87e0b606f990ba4974706de</id>
</entry>
<entry>
 <title type="html">Web frameworking</title>
 <summary type="html">It seems to be the wrong time to be reading such things, but over on &#x3C;a href=&#x22;http://www.infoq.com/&#x22;&#x3E;InfoQ&#x3C;/a&#x3E; there&#x27;s a &#x3C;a href=&#x22;http://www.infoq.com/articles/vinoski-erlang-rest&#x22;&#x3E;nice_article&#x3C;/a&#x3E; introducing web development of &#x3C;a href=&#x22;http://en.wikipedia.org/wiki/Representational_State_Transfer&#x22;&#x3E;RESTful_services&#x3C;/a&#x3E; using &#x3C;a href=&#x22;http://erlang.org/&#x22;&#x3E;Erlang&#x3C;/a&#x3E; and the &#x3C;a href=&#x22;http://yaws.hyber.org/&#x22;&#x3E;Yaws&#x3C;/a&#x3E; high performance web server.&#x3C;br /&#x3E;&#x3C;br /&#x3E;I say &#x22;the wrong time&#x22; as this week has kicked off the &#x22;Advancing with Rails&#x22; course by &#x3C;a href=&#x22;http://dablog.rubypal.com/&#x22;&#x3E;David_A._Black&#x3C;/a&#x3E; of &#x3C;a href=&#x22;http://rubypal.com/&#x22;&#x3E;Ruby_Power_and_Light&#x3C;/a&#x3E; fame. The course is fairly advanced in terms of required rails knowledge so it&#x27;s a bit of a baptism by fire for me and a few others having never written any &#x3C;a href=&#x22;http://www.ruby-lang.org/en/&#x22;&#x3E;Ruby&#x3C;/a&#x3E; before.&#x3C;br /&#x3E;&#x3C;br /&#x3E;Rails is proving moderately easy to pick up but as I&#x27;ve remarked to a couple of people, it doesn&#x27;t seem any easier coding with Rails than with Perl. Perhaps it&#x27;s because I&#x27;ve never done it before but I reckon it&#x27;s a lot harder spending my time figuring out what the heck DHH meant something to do than it is doing it myself.&#x3C;br /&#x3E;&#x3C;br /&#x3E;Even though it&#x27;s nowhere near as mature, I do reckon my &#x3C;a href=&#x22;http://search.cpan.org/dist/ClearPress/&#x22;&#x3E;ClearPress&#x3C;/a&#x3E; framework has a lot going for it - it&#x27;s pretty feature-complete in terms of ORM, views and templating ( &#x3C;a href=&#x22;http://www.template-toolkit.org/&#x22;&#x3E;TT2&#x3C;/a&#x3E; ). It has similar convention over configuration features meaning it&#x27;s not designed for plugging in other alternative layers but it is absolutely possible to do (and I suspect without as much effort as is required in Rails). I still need to iron out some wrinkles in the autogenerated code from the application builder and provide some default authorisation and authentication mechanisms, some of which may come in the next release. But in the meantime it&#x27;s easy to add these features, which is exactly what we&#x27;ve done for the new sequencing run tracking app, &#x3C;a href=&#x22;http://www.sanger.ac.uk/Software/production/npg/&#x22;&#x3E;NPG&#x3C;/a&#x3E; to tie it to the WTSI website single sign on (MySQL and LDAP under the hood).&#x3C;br /&#x3E;&#x3C;br /&#x3E;
</summary>
 <link href="http://www.psyphi.net/cgi-bin/blog/entry/49"/>
 <updated>2008-03-31T23:47:19Z</updated>
 <id>urn:uuid:2e01e17467891f7c933dbaa00e1459d23db3fe4f</id>
</entry>
<entry>
 <title type="html">ClearPress-146</title>
 <summary type="html">Latest release of &#x3C;a href=&#x22;http://search.cpan.org/dist/ClearPress/&#x22;&#x3E;ClearPress&#x3C;/a&#x3E; (v146) out to the CPAN yesterday. The ClearPress data model now implements belongs_to_through, belongs_to, has_many and has_many_through entity relationships for all you ActiveRecord lovers.&#x3C;br /&#x3E;&#x3C;br /&#x3E;Two ClearPress-derived projects are using a half-decent test fixture system. It&#x27;s really making a big difference to the development of both &#x3C;a href=&#x22;http://decipher.sanger.ac.uk&#x22;&#x3E;DECIPHER&#x3C;/a&#x3E; and &#x3C;a href=&#x22;http://www.sanger.ac.uk/Software/production/npg/&#x22;&#x3E;NPG&#x3C;/a&#x3E; so I&#x27;m planning to bundle what can be bundled with an upcoming release.
</summary>
 <link href="http://www.psyphi.net/cgi-bin/blog/entry/52"/>
 <updated>2008-04-29T23:15:41Z</updated>
 <id>urn:uuid:a9334987ece78b6fe8bf130ef00b74847c1d3da6</id>
</entry>

</feed>
