Andrew Cooke | Contents | RSS | Twitter | Previous

Info on Anon P2P etc

From: andrew cooke <andrew@...>

Date: Wed, 8 Feb 2012 20:05:08 -0300

Useful thread and a link to a related thesis.

http://news.ycombinator.com/item?id=3566305

Andrew

Permalink | Comment on this post

Previous Entries

For comments, see relevant pages (permalinks).

Hardware Transactional Memory coming to Intel

From: andrew cooke <andrew@...>

Date: Wed, 8 Feb 2012 01:18:59 -0300

http://software.intel.com/en-us/blogs/2012/02/07/transactional-synchronization-in-haswell/

Andrew

Permalink

Rome - 3 Dreams of Black

From: andrew cooke <andrew@...>

Date: Sun, 5 Feb 2012 17:34:36 -0300

I'm poking aroud webgl at the moment; this by far the best demo I've come
across (the only demo that's shown real artistic sensibility) -
http://www.ro.me/

Andrew

Permalink

New Technologies

From: andrew cooke <andrew@...>

Date: Sun, 5 Feb 2012 11:23:10 -0300

These are a bunch of random notes I wrote for work when someone asked what was
"new".  I realise some of this is quite old - that's partly me not knowing
stuff, and partly because I wasn't sure what was required.  Anyway, feedback
is welcomed.

The original was a wiki page; I've had to reformat it here.


Cloud Computing

 Various ideas / acronyms related to "the cloud" are worth understanding:

  IAAS - Infrastructure As A Service - This is where we are heading with our
  VPS.  The idea is that infrastricture is something that you buy as a service
  (obviously). VPS is still tied to the idea of individual machines; IAAS is
  pushing that more towards have a network of machines that grows on demand.
  AWS http://aws.amazon.com/ are dominant, but there are also a bunch of other
  players like RackSpace http://www.rackspace.com/, etc.

  PAAS - Platform As A Service - GAE http://code.google.com/appengine/ (Google
  App Engine) is the prime example.  They have layered software over IAAS to
  make everything simpler to use.  You develop programs according to the
  platform's API and end up with a system that automatically scales with
  demand.

  SAAS - Software As A Service - Google docs https://docs.google.com
  etc. Software that comes from the cloud and stores data there, using only a
  "thin client".

 Writing a web service for GAE in Python is a very productive way to get a
 site running quickly that will handle loads well (you can use much of Django
 - the only new thing to learn is that way that data storage works - see "big
 data" elsewhere).

Big Data

 Related to the above, and driven by companies like Facebook, Twitter and
 Google, are various ideas related to "big data".  The most visible of these
 are a whole slew of "NoSQL" databases.  These are just starting to die off -
 many didn't do much that SQL can't do anyway, like Object and XML databases
 before - but various niches remain:

  Memcaced http://memcached.org/ and Redis http://redis.io/ are proving useful
  for caching data in-memory;

  HBase http://hbase.apache.org/ and Google's Big Table
  http://research.google.com/archive/bigtable.html work on problems so large
  that SQL really does fail (closely related are Hadoop
  http://hadoop.apache.org/ and Map reduce
  http://code.google.com/edu/parallel/mapreduce-tutorial.html, which allow
  data stored in those databases to be processed and collected) (Update:
  Amazon just released their database, Dynamo
  http://www.allthingsdistributed.com/2012/01/amazon-dynamodb.html);

  Neo4j http://neo4j.org/ is focussed on storing graphs.

 Associated with NoSQL http://en.wikipedia.org/wiki/NoSQL are various spin-off
 technologies - libraries for serialisation of data like Avro
 http://avro.apache.org/ and Thrift http://thrift.apache.org/ - and the rising
 importance of data visualisation.

 ZeroMQ http://www.zeromq.org/ feels like it fits here somehow, if only
 because it follows the trend of reinventing stuff that already worked - it's
 the most fashionable messaging library at the moment (simple and easy to use,
 but without the reliability guarantees of "enterprise" messaging - think of
 it more like TCP on steroids).

Web

 Web programming is changing rapidly. Web applications are becoming more and
 more dynamic. This is supported on the client by increasing use of Javascript
 (the latest library is Backbone.js http://documentcloud.github.com/backbone/
 which helps assemble web pages on the client from fragments of data).  This
 requires the server, increasingly, to "push" data (a typical HTTP page used
 to be "pulled" by the client; now the server sends data even when the client
 doesn't "know" that an update is needed).  Push used to imply Comet
 http://en.wikipedia.org/wiki/Comet_(programming) (a technology hack using
 stalled HTTP requests), but HTML 5 http://www.html5rocks.com/en/ (which is
 the future of HTML - XHTML is a largely unused dead-end) is introducing web
 sockets http://www.html5rocks.com/en/tutorials/websockets/basics/ that allow
 bi-directional transfer (like TCP sockets).

 Kind-of related to server push is the idea that servers should be
 asynchronous and event driven. Instead of having a thread for each
 connection, there's just one thread in the server, which reacts to incoming
 client requests on demand.  For this to work the thread cannot "block" (eg
 while waiting for data to be read from the database) so everything is handled
 via callbacks (eg so a database read is handled by a library function (which
 is a separate thread or process); once the data have been read from the
 database a callback is used to transfer the data to the main thread to
 continue processing).  That is very like the way events are handled in
 Javascript on the client, which is where Node.js http://nodejs.org/ and
 server-side Javascript come in (if you know how traditional GUIs work, with a
 single render thread, this is very similar).  Related: JSON
 http://people.planetpostgresql.org/andrew/index.php?/archives/244-Under-the-wire.html
 as a database type http://en.wikipedia.org/wiki/Document-oriented_database;
 Javscript http://code.google.com/p/plv8js/wiki/PLV8 in the database.

 A common theme here is communication; another aspect of that is SPDY
 http://dev.chromium.org/spdy, which is intended to replace HTTP, offering
 more efficient mutliplexing of sessions.  See this article
 http://www.igvita.com/2012/01/18/building-a-modern-web-stack-for-the-realtime-web/
 for an overview of how this affects the technology stack.

 Back on the client, new technologies include WebGL
 http://www.chromeexperiments.com/webgl (this lets you do graphics on the GPU,
 so you can have 3D effects etc), Canvas
 http://www.html5rocks.com/en/tutorials/canvas/integrating/ and SVG
 http://www.html5rocks.com/en/tutorials/raphael/intro/ (for displaying data),
 liquid layouts
 http://designfestival.com/resizing-fixed-fluid-or-responsive-layouts/ (very
 fluid, handling everything from phones to tables to desktop brownsers in a
 single page) layouts, web storage http://en.wikipedia.org/wiki/Web_Storage
 (on the client), much better support for fonts
 http://designmodo.com/custom-web-fonts-fontface, and CSS3 (or processors like
 Sass http://sass-lang.com/) (Update: possibly relevant book
 http://shop.oreilly.com/product/0636920018421.do).

 A big thread running through much of current web work is the idea of social
 cues and interaction - sharing, feedback, progressing, belonging, etc.

Small Computers

 Many of the web developments are being driven by mobile phones. And phone
 hardware technology is now starting to spread - we're starting to see the
 "internet of things" (where famously, even your fridge and toaster have
 internet connections).  One example of this is the Nest Labs thermostat
 http://www.nest.com/; it is "just" a house heating thermostat, but "done like
 Apple".  Another example is Raspberry PI http://www.raspberrypi.org/ - a
 computer capable of running Linux for just $25. Small computers are going to
 be everywhere, very soon.

 Connected to this, there's the idea of a general "dumbing down" of consumer
 computing.  You can see this in the iPad, for example (one take is that it's
 intended to help people consume, not create).  The general idea is of
 "computing appliances" (with restricted choice of software from "app stores")
 replacing general computing.  Another driver for this is the crackdown on
 "pirating".

Programming Languages

 Java is looking increasingly outdated, but there's still no obvious
 replacement. The next big language is going to have to combine two sets of
 ideas: functional programming and better types.  Functional programming, when
 it works, tends to lead to simpler, more compact code, that is easier to make
 parallel across multiple cores.  Better types means that people want
 programming in Java to be as quick and easy as programming in Python, while
 keeping Java's speed and ability to detect errors at compile time.

 For a long time it looked like Scala http://www.scala-lang.org/ would be the
 future, but increasingly the consensus seems to be that it's just too damn
 complicated.  Clojure http://clojure.org/ is a more recent contender, but it
 probably doesn't have enough ideas from the "better types" to win out. More
 obscure (and less ambitious) possibilities include Kotlin
 http://blog.jetbrains.com/kotlin/, Xtend http://www.eclipse.org/Xtext/xtend/
 and Rust http://www.rust-lang.org/.

 For system level programming Go http://golang.org/ is actually pretty good. I
 don't think it's going to be huge, but it really is a better C (and way, way
 nicer than C++).  It's curiously old-fashioned compared to some of the
 languages above, but perhaps that's an advantage.

 Meantime, in the background, Javascript is becoming more and more important,
 even though people don't really like to use it (the Good Parts
 http://shop.oreilly.com/product/9780596517748.do book is excellent BTW).  It
 is becoming more important on the client (see elsewhere) and is also starting
 to play a role on the server when writing asynchronous servers (again, see
 elsewhere).  This has triggered various attempts to make it more friendly:
 Coffeescript http://coffeescript.org/ is a pre-processor that makes it look
 more like Python; Clojurescript https://github.com/clojure/clojurescript
 allows programs written in Clojure to be "compiled" to Javascript; Closure
 http://code.google.com/closure/ (completely unrelated to Clojure) is a
 compiler from Javascript to Javascript (!).

 Increasingly, languages are supporting distributed and parallel computing.
 Erlang http://www.erlang.org/ was an early success in this space. Clojure, as
 mentioned above, is also pushing new ideas (actors and software transactional
 memory).  It's also possible that we need a completely new paradigm -
 non-deterministic computing
 http://my-inner-voice.blogspot.com/2012/01/many-core-processors-everything-you.html.

3D Printing

 Is as mindblowingly awesome as jet packs, IMHO.


Andrew

Permalink

Shoddy Macs

From: andrew cooke <andrew@...>

Date: Thu, 2 Feb 2012 18:18:25 -0300

How can any self-respecting engineer buy a computer where they *glue* the
cable to the disk?  These aren't machines made for people that take things
apart - they're made for *consumers* that never expect to get their hands
dirty.

Mac owning engineers: you're selling your souls for a shiny trinket.  These
aren't machines made, and made well, to be cared for.  They are intended as
disposable trophies.  Polished turds.

You should be ashamed of yourselves.  Really.

(Pauli's Macbook Pro is dead and I have it in pieces).

Andrew

Permalink

Profiling Go Programs

From: andrew cooke <andrew@...>

Date: Wed, 1 Feb 2012 23:26:55 -0300

This is a really nice article that shows the practical details of profiling
(CPU and memory) Go programs.  In addition, the way that the profiler output
is displayed (via graphvix, with node sizes scaled to reflect the measured
values) is very neat.

http://blog.golang.org/2011/06/profiling-go-programs.html

Andrew

Permalink

Access to Bloomberg Data Feed

From: andrew cooke <andrew@...>

Date: Wed, 1 Feb 2012 12:27:31 -0300

http://www.computerworlduk.com/news/it-business/3334375/bloomberg-market-data-api-made-public/
http://open.bloomberg.com/

Not clear to me what limitations exists (volume limits etc).

Andrew

Permalink

Automated JVM Leak Detection

From: andrew cooke <andrew@...>

Date: Tue, 24 Jan 2012 08:16:36 -0300

The system I am currently working on has a leak on redeploying to Tomcat
(probably similar to what is described here
http://blogs.oracle.com/fkieviet/entry/classloader_leaks_the_dreaded_java)

This looks like it would automate the detection and solution:

 http://www.plumbr.eu/
 http://www.plumbr.eu/blog/screencast-how-to-use-plumbr

Andrew

Permalink

Fashion (Men's)

From: andrew cooke <andrew@...>

Date: Mon, 23 Jan 2012 09:27:37 -0300

http://www.wwd.com/runway/mens-fall-collections-2012/review/thom-browne/slideshow#/slideshow/article/5547182/5547183

Andrew

Permalink

Left Drifts Centre; Right Becomes Vicious

From: andrew cooke <andrew@...>

Date: Mon, 23 Jan 2012 08:58:56 -0300

When you have people like Blair and Obama in power it's easy to think that the
right can't be worse.  So it's worth noting that it can.

http://www.guardian.co.uk/commentisfree/2012/jan/22/housing-benefit-cap-62p-a-day

Andrew

Permalink

Jolly Good Idea Chaps, Wot?

From: andrew cooke <andrew@...>

Date: Sun, 15 Jan 2012 20:30:28 -0300

http://www.guardian.co.uk/uk/2012/jan/15/queen-royal-yacht-diamond-jubilee-gove

Words fail me.  Original comment here was more or less a string of
profanities.  If this happens I will consider changing nationality.

Andrew

Permalink

I Can Vote!

From: andrew cooke <andrew@...>

Date: Sat, 14 Jan 2012 14:48:45 -0300

I just registered to vote here in Santiago, Chile.  That's pretty awesome - I
don't think a Chilean in my position could do the same in the UK.  If anyone
else is interested in doing the same, it's pretty easy - you need to follow
the instructions here
http://www.extranjeria.gov.cl/filesapp/solicitud_certificado_avecindamiento.pdf
which basically means:

  - Go to the international police (who have moved recently - they are now in
    Morande) and request a certificate saying that you have been resident in
    Chile for the last 5 years (excluding holidays - I think you can leave for
    up to 6 months, but don't quote me on that).  This costs some small amount
    (all the rest below is free).

  - Send that certificate, and copies of your residency card and carnet, and
    the form at the link, to the ministry of the interior.

  - Wait 2-3 months (yes, it says 10 days on the form....) and you'll receive
    another certificate.

  - Take that certificate and your carnet to the local vote registration
    office (for Providencia it's in Manuel Montt).

It may also be worth explaining why I registered.  I live in a nice district
of Santiago - it's fairly central and contains many of the older embassies.
The mayor belongs to the ultra-right UDI party (this follows logically from
the social class of the area - that's how Santiago is); during the
dictatorship he was a member of the secret police.

Last November Labbe, the mayor, helped organise, in the Providencia sports
club, a "homage" to the life of Miguel Krassnoff - a brigadier in the secret
police, who was tried and jailed for abuses of human rights.

Krassnoff tortured the parents of a friend of ours.

Fuck that.

Andrew

Permalink

C[omp]ute

Welcome to my blog, which was once a mailing list of the same name and is still generated by mail. Please reply via the "comment" links.

Always interested in offers/projects/new ideas. Eclectic experience in fields like: numerical computing; Python web; Java enterprise; functional languages; GPGPU; SQL databases; etc. Based in Santiago, Chile; telecommute worldwide. CV; email.

© 2006-2011 Andrew Cooke (site) / post authors (content).

Recent Threads

Hardware Transactional Memory coming to Intel

Rome - 3 Dreams of Black

New Technologies

Shoddy Macs

Profiling Go Programs

Access to Bloomberg Data Feed

Automated JVM Leak Detection

Fashion (Men's)

Left Drifts Centre; Right Becomes Vicious

Jolly Good Idea Chaps, Wot?

I Can Vote!

DHT, PEX and Magnet Files

ConTeXt - A Latex Replacement

Reducing Energy Use

Scavenging 2.5" Disks

Running Caldera's Hadoop Demo in VirtualBox

Telecomix (Net Activism)

Face Detection Algorithm

Category Theory for Java Programmers

piUML - A Language for UML

Distributed Hash Tables

Recent Replies

Reinstalling OSX via Linux

Similar Profiler for C

Comparison of TeX Processors

for comparison

NFB 3.1 - Broken and Fixed

Seeing red

evolution of color vision

Accomodation in SF

An Idea a Day

In AGU's Defense (OpenSuse Kernel Bug)

Notes on Installing OpenSuse

And Politics?

Return to Olivie

re: Command Line Sequencer

subjective maps

Deciphering DHL Status Reports

Vote Against Alcala del Rio

Re: too fast already

too fast already

Over 760 RSA Attack Victims

Eurotel, Guardia Vieja