Category Archives: General

Open Science Coding

Portsmouth ICG alumnus David Parkinson recently wrote:

One of these days I’m going to show my python code to someone who actually programs in python for a living. They’re going to laugh. Laugh and laugh and laugh… and laugh. And then cry.

David’s not the first scientist I know who’s said this, for example, I heard almost the same thing from Cameron Neylon last year when he was presenting to my final-year Web Research group.  Cameron (who’s an advocate of Open Science) was demonstrating how he’d hacked up a bit of python to show the growth of Open Access publishing, but at the same time apologising that he’s originally a Bio-Chemist so the code does a job, but doesn’t necessarily do it as well or as ‘beautifully’ or efficiently as it perhaps might.

These are both examples of sharing code after its development.  There are big advantages to publishing experimental code such as this during its development:

  1. It encourages peer review of the experimental process earlier in the project which may reduce the potential for errors due code not doing what is intended.
  2. It provides third party developers with the opportunity to be involved in research by actively contributing to the code by improving it, even if they are not specialists in the subject being studied, their specialism in software development adds orthogonal value.
  3. It provides subject specialists with opportunity to see how their code has been improved so they can learn from this and write improved code themselves next time, possibly seeing new solutions and experiment-options as a result.

Historically (however) it’s common that experimental code is published either:

  1. after papers are written and results are published, or
  2. never (even if there are good intentions to do so, time and funding dry up and the code dies alone).  There may also be historic reasons why it’s not possible to publish code: often research organisations have little experience with Free Software so IPR fears can inhibit the potential openness of any project, but, the more open projects there are, the more opportunity there is for understanding to grow, fear to wane, and open science to blossom.

So, in the near term, developing non-critical code openly may be the best way forward.  If researchers can get in the habit of developing tools, utilities and other small projects openly then that may be the first step to encouraging all scientists to think and solve problems as part of a global ad-hoc developer collective.

Fun times with the ever awesome SREs on reddit answering your questions:

Andy Walker originally shared this post:

Fun times with the ever awesome SREs on reddit answering your questions:

http://www.reddit.com/r/IAmA/comments/177267/we_are_the_google_site_reliability_team_we_make/

We are the Google Site Reliability team. We make Google’s websites work. Ask us Anything! : IAmA

Hello, reddit! We are the Google Site Reliability (SRE) team. We’re responsible for the 24×7 operation of Google.com, as well as the technical infras…

Comment on Google+

Technology is gloriously disruptive.

Technology is gloriously disruptive.
Processes change slowly.
In the middle, geeks watch, amused.

For example, today I got an MS Word document (and I don't have word on any of my 3 machines).  The document was emailed to 20 researchers, saying "here is your new website" please send any modifications by return.

I suppose it's progress… they could have sent it hard copy.

Comment on Google+

So, I have an old iPhone 3GS* that is sitting around unused, and a Bose Sound Dock. Is there an app that…

So, I have an old iPhone 3GS* that is sitting around unused, and a Bose Sound Dock. Is there an app that can turn these two items into "an Apple TV speaker" so I can have the Soma FMs Christmas Lounge tracks on in the kitchen without making two connections to their server?

#apple #bose #appletv

* smashed screen / no backlight – everything else works fine

SomaFM: Christmas Lounge: Chilled holiday grooves and classic winter lounge tracks. (Kid and Parent safe!) Commercial-free, Listener-supported Radio

Christmas Lounge. Chilled holiday grooves and classic winter lounge tracks. (Kid and Parent safe!) Listen: MP3: 128k 56k 32k Firewall/Proxy MP3 Windows Media: 128k 32k Popup Player; Listeners: 2310; N…

Comment on Google+

Web browser support for HTML5 Input types, attributes and elements + CSS & JavaScript support:

Robert Nyman originally shared this post:

Web browser support for HTML5 Input types, attributes and elements + CSS & JavaScript support:
http://www.wufoo.com/html5/

Wufoo · The Current State of HTML5 Forms

Many browsers are supporting features of HTML5 including much related to forms. This is research on what browsers are doing what with those new features.

Comment on Google+

On motorways, lowering the speed limit at congested times leads to less congestion because cars don't…

On motorways, lowering the speed limit at congested times leads to less congestion because cars don't have to be so erratic in their braking.  Would the same policy work in an urban environment.  i.e. would average journey times be reduced if the speed limit on main roads were reduced from 30 to something lower at various states of congestion?

/me starts a some background reading and checks out the potential of using our SCIAMA supercomputer.

Comment on Google+

Free stuff usually goes down well, as do competitions, so my students seem to be lapping this one…

Free stuff usually goes down well, as do competitions, so my students seem to be lapping this one up.  3GB extra free space if you sign up and confirm you're at UoP – and if you're already a member, just confirm your membership to get extra free space.

+Dropbox #marketing team: have a gold star and take the rest of the day off.

Dropbox – Great Space Race! – Simplify your life

Dropbox is a free service that lets you bring your photos, docs, and videos anywhere and share them easily. Never email yourself a file again!

Comment on Google+

Reshared post from Jeff Dean

Jeff Dean originally shared this post:

Spanner: Google's Globally-Distributed Database

I and many others have been working for the last few years on building a large-scale storage system that can manage data across all of Google's datacenters.  This system underlies Google's advertising system, among other products.  We'll be presenting a paper describing the system (with 26 co-authors!) at OSDI 2012 next month.  We've now put up a web page with a link to the PDF of the final version of the paper.

Feedback is welcome, of course.

Here's the abstract of the paper:

Spanner is Google's scalable, multi-version, globally-distributed, and synchronously-replicated database. It is the first system to distribute data at global scale and support externally-consistent distributed transactions. This paper describes how Spanner is structured, its feature set, the rationale underlying various design decisions, and a novel time API that exposes clock uncertainty. This API and its implementation are critical to supporting external consistency and a variety of powerful features: non-blocking reads in the past, lock-free read-only transactions, and atomic schema changes, across all of Spanner.

Google Research Publication: Spanner

Spanner: Google's Globally-Distributed Database James C. Corbett, Jeffrey Dean, Michael Epstein, Andrew Fikes, Christopher Frost, JJ Furman, Sanjay Ghemawat, Andrey Gubarev, Christopher Heiser, Peter …

Comment on Google+

Reshared post from Addy Osmani

Detect memory leaks in #javascript .

Addy Osmani originally shared this post:

Leak Finder: Memory Leak Detection For JavaScript

If you regularly work on JavaScript web apps, you'll know that we're unlikely to run into memory leaks in the traditional sense, but it is possible to have objects that are unintentionally kept alive and in turn keep others alive (like big parts of the DOM). 

To help discover these leaks, two of my fellow Googlers (+Marja Hölttä and +Jochen Eisinger) have developed a tool that works with the Chrome Developer Tools (specifically, the remote inspection protocol) and retrieves heap snapshots and detects what objects are causing leaks. 

There's more information (and a whole post on how to use the tool) over at http://google-opensource.blogspot.de/2012/08/leak-finder-new-tool-for-javascript.html and I encourage you to check it out. The project page for the leak finder can be found at http://code.google.com/p/leak-finder-for-javascript/.

Some more info: In case you're wondering why a tool like this isn't already integrated with our Developer Tools, the reason is two fold. It was originally developed to help us catch some specific memory scenarios in the Closure Library and it makes more sense as an external tool (or maybe even an extension if we get a heap profiling extension API in place).

Leak Finder: a new tool for JavaScript – Google Open Source Blog

News about Google"s Open Source projects and programs

Comment on Google+

Google Drive & Permissions I'm trying out Google Plus for some lazy web-publishing and seeing con…

Google Drive & Permissions

I'm trying out Google Plus for some lazy web-publishing and seeing continued file-permission strangeness.  Here's an example in case others are experiencing similar and it's reproducible…

Before I begin, the remote machine looks like this:

rjb@buck-16~/Google Drive/xyz/words $ ls -la
total 48
drwxrwxrwx   7 rjb  staff   238  8 Aug 15:45 .
drwxrwxrwx+ 22 rjb  staff   748  8 Aug 15:45 ..
-rwxrwxrwx   1 rjb  staff   341  7 Jun 10:58 404.html
-rwxr-xr-x   1 rjb  staff   321  8 Aug 15:34 defaults.php
-rwxrwxrwx   1 rjb  staff  6462  8 Aug 15:42 index.html
-rwxrwxrwx   1 rjb  staff  3031  6 Jun 22:25 js.html
-rwxrwxrwx   1 rjb  staff   115  6 Jun 20:21 menu.html

I then locally edit `js.html`.  Note the timestamp and permissions:

rjb-mbp:words rjb$ ls -la
total 48
drwxr-xr-x   7 rjb  staff   238  8 Aug 15:41 .
drwxr-xr-x  22 rjb  staff   748  8 Aug 15:42 ..
-rwxr-xr-x   1 rjb  staff   341  7 Jun 10:58 404.html
-rwxr-xr-x   1 rjb  staff   321  8 Aug 15:34 defaults.php
-rwxr-xr-x   1 rjb  staff  6462  8 Aug 15:42 index.html
-rwxr-xr-x   1 rjb  staff  3119  8 Aug 15:50 js.html
-rwxr-xr-x   1 rjb  staff   115  6 Jun 20:21 menu.html

Shortly afterwards on the remote machine it appears thus – note how the modification time is updated (and indeed the file is updated) but neither the original permission, nor those on the machine where the file was edited, are used):

rjb@buck-16~/Google Drive/xyz/words $ ls -la
total 48
drwxrwxrwx   7 rjb  staff   238  8 Aug 15:54 .
drwxrwxrwx+ 22 rjb  staff   748  8 Aug 15:45 ..
-rwxrwxrwx   1 rjb  staff   341  7 Jun 10:58 404.html
-rwxr-xr-x   1 rjb  staff   321  8 Aug 15:34 defaults.php
-rwxrwxrwx   1 rjb  staff  6462  8 Aug 15:42 index.html
-rw——-   1 rjb  staff  3119  8 Aug 15:50 js.html
-rwxrwxrwx   1 rjb  staff   115  6 Jun 20:21 menu.html

This is syncing between a two OS X Mountain Lion machines.
#googledrive   #apple   #osx

_P.S. I'm using 777 to illustrate the point, that's not normal_ :-)

Comment on Google+

A new non-cloud collaborative code editor. Could work well in #education settings to allow tutori…

A new non-cloud collaborative code editor. Could work well in #education settings to allow tutorial members to reach a solution together.

It stems from a Google project that's not going to see the light of day in its original form.

Projector + a classroom of editors = novel peer #learning  opportunities.

(via (& best wishes for the new role) +Scott Blum )

collide

Collaborative IDE

Comment on Google+