Source of /weblog

# CLASS cps-page-title-reversed
Silver's Simple Site @- Weblog
******************************
# CLASS weblog-breakout
# BREAKOUT RIGHT
 "<image:/common/images/feed_16>" <?rss> tooltip:[View this page's RSS feed]
# BREAKOUT END
# CLASS weblog-rule
-
# CLASS hentry
# ITEMSCOPE
# ITEMTYPE http://schema.org/BlogPosting
# BLOCK
 # CLASS entry-title
 # ITEMPROP name
 Open Rails 1.1
 ==============
 # CLASS entry-content
 # ITEMPROP text
 # BLOCK
   
   Open Rails 1.1 has been released!
   
   Download: "http://openrails.org/download/program/" <http://openrails.org/download/program/>
   Manual: "http://openrails.org/learn/manual-and-tutorials/" <http://openrails.org/learn/manual-and-tutorials/>
   
   Summary:
    - Refuelling from water troughs added
    - Activity restricted speed zones added
    - Switching control to another train (AI and static) added
    - Auxiliary tender support added
    - Blended dynamic brakes support added
    - Improved sound cut-off distances
    - Additional sound triggers added
    - Multiple freight animations added
    - Loading/unloading animations for freight animations added
    - Join/split functionality with player and AI trains improved
   
   Details:
    - Code has been re-factored to ease future developments
    - 3D cabs loaded by default when present
    - Quick access to documentation from the menu
    - Activity events can now dynamically change the weather
    - AI trains can now get permission to pass signals at danger
    - Super-elevation updated and harmonic-rocking improved
    - Manual signalling mode can be engaged while moving
    - Compressor information now shown in HUD
    - Additional locomotive's brake status now shown in HUD
    - Engine brakes extended to work with tender
    - Keyboard commands for cutting off power and setting brakes off added
    - EP brake partial release support added
    - Brake pipe pressure propagation improved
    - Bailoff on twin pipe airbrakes improved
    - Engine and independent brakes improved
    - 3D cab digital gauges improved
    - Train lights condition for "service" improved
    - Sound looping improved
    - Stereo/mono cab sounds improved compatibility
    - Gear cab view control added
    - Projected speed cab view control added
    - Friction braking cab view control improved
    - Night-switching of cab view in tunnels improved
    - "Variable1" in gearless diesels improved
    - "Variable2" in electrics improved
    - "Variable3" in diesels and electrics improved
    - Multiplayer can now connect to domain names in addition to IPs
    - Options to limit safe speed through curves, with penalties for breaches
    - Options for improved weather visuals on supported systems
    - Optimizated selection of track sounds
    - Correction of faulty engine parameters added
   
   Also:
    - Activity event popup is larger and more responsive to lots of text
    - Messages for AI trains improved
    - Train Operations window updates at reversal points
    - Signal lights reliability improved
    - Save/Resume after train reversal improved
    - Fuel consumption calculations improved
    - Doors open correctly after reversal
    - "Include" directive for content improved
   
   Important notes:
    - Open Rails develops features and bug fixes in public at "http://launchpad.net/or" <http://launchpad.net/or>
    - Open Rails is distributed under the GNU GPL v3 free software license
 # CLASS weblog-hidden-metadata
 # BLOCK
   "07:30PM on Sunday, 27 March, 2016" inline:[1] class:[published] [2016-03-27T19:30:00Z]
   "07:30PM on Sunday, 27 March, 2016" inline:[1] class:[updated] [2016-03-27T19:30:00Z]
   "2016-03-27T19:30:00Z" inline:[1] itemprop:[dateCreated]
   "2016-03-27T19:30:00Z" inline:[1] itemprop:[dateModified]
   # ITEMSCOPE
   # ITEMTYPE http://data-vocabulary.org/Breadcrumb
   # BLOCK
     "Silver's Simple Site" inline:[1] itemprop:[title]
     "Silver's Simple Site" <http://james-ross.co.uk> itemprop:[url]
   # ITEMSCOPE
   # ITEMTYPE http://data-vocabulary.org/Breadcrumb
   # BLOCK
     "Weblog" inline:[1] itemprop:[title]
     "Weblog" <http://james-ross.co.uk/weblog> itemprop:[url]
   # ITEMSCOPE
   # ITEMTYPE http://data-vocabulary.org/Breadcrumb
   # BLOCK
     "2016" inline:[1] itemprop:[title]
     "2016" <http://james-ross.co.uk/weblog/2016> itemprop:[url]
   # ITEMSCOPE
   # ITEMTYPE http://data-vocabulary.org/Breadcrumb
   # BLOCK
     "03" inline:[1] itemprop:[title]
     "03" <http://james-ross.co.uk/weblog/2016/03> itemprop:[url]
   # ITEMSCOPE
   # ITEMTYPE http://data-vocabulary.org/Breadcrumb
   # BLOCK
     "27" inline:[1] itemprop:[title]
     "27" <http://james-ross.co.uk/weblog/2016/03/27> itemprop:[url]
   # ITEMSCOPE
   # ITEMTYPE http://data-vocabulary.org/Breadcrumb
   # BLOCK
     "Open Rails 1.1" inline:[1] itemprop:[title]
     "Open Rails 1.1" <http://james-ross.co.uk/weblog/2016/03/27/01> itemprop:[url]
   # CLASS vcard
   # BLOCK
     "Silver" inline:[1] class:[fn nickname]
 # CLASS weblog-sig
 "/Permalink/" </weblog/2016/03/27/01> rel:[bookmark] @| /Author:/ "Silver" inline:[1] itemprop:[author] @| /Tags:/ "Open Rails" </weblog/tag/Open Rails> rel:[tag directory] @| /Posted:/ 07:30PM on Sunday, 27 March, 2016 @| /Comments:/ 0
# CLASS weblog-rule
-
# CLASS hentry
# ITEMSCOPE
# ITEMTYPE http://schema.org/BlogPosting
# BLOCK
 # CLASS entry-title
 # ITEMPROP name
 ChatZilla Plugin: Input Keys
 ============================
 # CLASS entry-content
 # ITEMPROP text
 # BLOCK
   
   *Source:* "https://github.com/twpol/cz-plugin-input-keys" <https://github.com/twpol/cz-plugin-input-keys> [twpol/cz-plugin-input-keys: This plugin for ChatZilla lets you type most text formatting commands with keyboard shortcuts.]
   
   This "plugin" <http://chatzilla.hacksrus.com/faq/#scripts> for "ChatZilla" <http://chatzilla.hacksrus.com/> lets you type most text formatting commands with keyboard shortcuts.
   
   Shortcuts
   ---------
   
   * |Control-B| for bold
   * |Control-U| for underline
   * |Control-K| for color
   * |Control-O| for reset (original)
 # CLASS weblog-hidden-metadata
 # BLOCK
   "09:00PM on Sunday, 13 March, 2016" inline:[1] class:[published] [2016-03-13T21:00:00Z]
   "09:00PM on Sunday, 13 March, 2016" inline:[1] class:[updated] [2016-03-13T21:00:00Z]
   "2016-03-13T21:00:00Z" inline:[1] itemprop:[dateCreated]
   "2016-03-13T21:00:00Z" inline:[1] itemprop:[dateModified]
   # ITEMSCOPE
   # ITEMTYPE http://data-vocabulary.org/Breadcrumb
   # BLOCK
     "Silver's Simple Site" inline:[1] itemprop:[title]
     "Silver's Simple Site" <http://james-ross.co.uk> itemprop:[url]
   # ITEMSCOPE
   # ITEMTYPE http://data-vocabulary.org/Breadcrumb
   # BLOCK
     "Weblog" inline:[1] itemprop:[title]
     "Weblog" <http://james-ross.co.uk/weblog> itemprop:[url]
   # ITEMSCOPE
   # ITEMTYPE http://data-vocabulary.org/Breadcrumb
   # BLOCK
     "2016" inline:[1] itemprop:[title]
     "2016" <http://james-ross.co.uk/weblog/2016> itemprop:[url]
   # ITEMSCOPE
   # ITEMTYPE http://data-vocabulary.org/Breadcrumb
   # BLOCK
     "03" inline:[1] itemprop:[title]
     "03" <http://james-ross.co.uk/weblog/2016/03> itemprop:[url]
   # ITEMSCOPE
   # ITEMTYPE http://data-vocabulary.org/Breadcrumb
   # BLOCK
     "13" inline:[1] itemprop:[title]
     "13" <http://james-ross.co.uk/weblog/2016/03/13> itemprop:[url]
   # ITEMSCOPE
   # ITEMTYPE http://data-vocabulary.org/Breadcrumb
   # BLOCK
     "ChatZilla Plugin: Input Keys" inline:[1] itemprop:[title]
     "ChatZilla Plugin: Input Keys" <http://james-ross.co.uk/weblog/2016/03/13/01> itemprop:[url]
   # CLASS vcard
   # BLOCK
     "Silver" inline:[1] class:[fn nickname]
 # CLASS weblog-sig
 "/Permalink/" </weblog/2016/03/13/01> rel:[bookmark] @| /Author:/ "Silver" inline:[1] itemprop:[author] @| /Tags:/ "ChatZilla" </weblog/tag/ChatZilla> rel:[tag directory], "Scripts" </weblog/tag/Scripts> rel:[tag directory] @| /Posted:/ 09:00PM on Sunday, 13 March, 2016 @| /Comments:/ 0
# CLASS weblog-rule
-
# CLASS hentry
# ITEMSCOPE
# ITEMTYPE http://schema.org/BlogPosting
# BLOCK
 # CLASS entry-title
 # ITEMPROP name
 ChatZilla Plugin: Activity in Title
 ===================================
 # CLASS entry-content
 # ITEMPROP text
 # BLOCK
   
   *Source:* "https://github.com/twpol/cz-plugin-activity-in-title" <https://github.com/twpol/cz-plugin-activity-in-title> [twpol/cz-plugin-activity-in-title: This plugin for ChatZilla shows activity in channels and private messages in the title bar.]
   
   This "plugin" <http://chatzilla.hacksrus.com/faq/#scripts> for "ChatZilla" <http://chatzilla.hacksrus.com/> shows activity in channels and private messages in the title bar.
   
   Display - Text
   --------------
   
   The textual display shows up to three groups, each containing a list of views in that state.
   
   * |<...>| indicates items with stalk events (e.g. mentions of your nickname, stalk words, and private messages).
   * |[...]| indicates items with chat events (e.g. all talking in channels).
   * |(...)| indicates items with superfluous events (e.g. joins, parts, topic changes).
   
   Display - Symbol
   ----------------
   
   The symbolic display shows a single symbol for each view, in the same order as the textual display groups.
   
   * |!| indicates an item with stalk events (e.g. mentions of your nickname, stalk words, and private messages).
   * |+| indicates an item with chat events (e.g. all talking in channels).
   * |-| indicates an item with superfluous events (e.g. joins, parts, topic changes).
   
   Preferences
   -----------
   
   * |display.symbol| /boolean/ (default |false|)
   
     When enabled, the display is just status symbols (|!|, |+| and |-|). Otherwise, the display is (possibly truncated) names.
   
   * |display.crop| /integer/ (default |0|)
   
     Specifies how much of the view name to include, in characters. A value of |0| turns off truncation.
   
   * |titlebar.event| /boolean/ (default |false|)
   
     When enabled, the title bar includes superfluous events.
   
   * |titlebar.chat| /boolean/ (default |true|)
   
     When enabled, the title bar includes chat events.
   
   * |titlebar.stalk| /boolean/ (default |true|)
   
     When enabled, the title bar includes stalk events.
   
   Examples
   --------
   
   * |<UserA, UserB> [#channelA] (#channelB) ChatZilla!|
   
     In this example, |UserA| and |UserB| have stalk events, |#channelA| has chat events, and |#channelB| has superfluous events. Superfluous events are hidden by default.
   
   * |!!+-ChatZilla!|
   
     This is the same as the example above, but with |display.symbol| set to |true|.
 # CLASS weblog-hidden-metadata
 # BLOCK
   "09:00PM on Sunday, 28 February, 2016" inline:[1] class:[published] [2016-02-28T21:00:00Z]
   "09:00PM on Sunday, 28 February, 2016" inline:[1] class:[updated] [2016-02-28T21:00:00Z]
   "2016-02-28T21:00:00Z" inline:[1] itemprop:[dateCreated]
   "2016-02-28T21:00:00Z" inline:[1] itemprop:[dateModified]
   # ITEMSCOPE
   # ITEMTYPE http://data-vocabulary.org/Breadcrumb
   # BLOCK
     "Silver's Simple Site" inline:[1] itemprop:[title]
     "Silver's Simple Site" <http://james-ross.co.uk> itemprop:[url]
   # ITEMSCOPE
   # ITEMTYPE http://data-vocabulary.org/Breadcrumb
   # BLOCK
     "Weblog" inline:[1] itemprop:[title]
     "Weblog" <http://james-ross.co.uk/weblog> itemprop:[url]
   # ITEMSCOPE
   # ITEMTYPE http://data-vocabulary.org/Breadcrumb
   # BLOCK
     "2016" inline:[1] itemprop:[title]
     "2016" <http://james-ross.co.uk/weblog/2016> itemprop:[url]
   # ITEMSCOPE
   # ITEMTYPE http://data-vocabulary.org/Breadcrumb
   # BLOCK
     "02" inline:[1] itemprop:[title]
     "02" <http://james-ross.co.uk/weblog/2016/02> itemprop:[url]
   # ITEMSCOPE
   # ITEMTYPE http://data-vocabulary.org/Breadcrumb
   # BLOCK
     "28" inline:[1] itemprop:[title]
     "28" <http://james-ross.co.uk/weblog/2016/02/28> itemprop:[url]
   # ITEMSCOPE
   # ITEMTYPE http://data-vocabulary.org/Breadcrumb
   # BLOCK
     "ChatZilla Plugin: Activity in Title" inline:[1] itemprop:[title]
     "ChatZilla Plugin: Activity in Title" <http://james-ross.co.uk/weblog/2016/02/28/01> itemprop:[url]
   # CLASS vcard
   # BLOCK
     "Silver" inline:[1] class:[fn nickname]
 # CLASS weblog-sig
 "/Permalink/" </weblog/2016/02/28/01> rel:[bookmark] @| /Author:/ "Silver" inline:[1] itemprop:[author] @| /Tags:/ "ChatZilla" </weblog/tag/ChatZilla> rel:[tag directory], "Scripts" </weblog/tag/Scripts> rel:[tag directory] @| /Posted:/ 09:00PM on Sunday, 28 February, 2016 @| /Comments:/ 0
# CLASS weblog-rule
-
# CLASS hentry
# ITEMSCOPE
# ITEMTYPE http://schema.org/BlogPosting
# BLOCK
 # CLASS entry-title
 # ITEMPROP name
 ChatZilla Plugin: Topic Diff
 ============================
 # CLASS entry-content
 # ITEMPROP text
 # BLOCK
   
   *Source:* "https://github.com/twpol/cz-plugin-topic-diff" <https://github.com/twpol/cz-plugin-topic-diff> [twpol/cz-plugin-topic-diff: This plugin for ChatZilla which shows you the changes made to a topic.]
   
   This "plugin" <http://chatzilla.hacksrus.com/faq/#scripts> for "ChatZilla" <http://chatzilla.hacksrus.com/> shows you the changes made to a channel's topic.
   
   Example
   -------
   
   |=-= Nickname has changed the topic to “ChatZilla topic diff test”
   |=-= Nickname has changed the topic to “ChatZilla diff test”
   |=-= Nickname deleted "topic ".
   |=-= Nickname has changed the topic to “ChatZilla diff testing!”
   |=-= Nickname added "ing!".
   |=-= Nickname has changed the topic to “ChatZilla topic diffing”
   |=-= Nickname added "topic ", deleted " test", deleted "!".
 # CLASS weblog-hidden-metadata
 # BLOCK
   "08:00PM on Sunday, 21 February, 2016" inline:[1] class:[published] [2016-02-21T20:00:00Z]
   "08:00PM on Sunday, 21 February, 2016" inline:[1] class:[updated] [2016-02-21T20:00:00Z]
   "2016-02-21T20:00:00Z" inline:[1] itemprop:[dateCreated]
   "2016-02-21T20:00:00Z" inline:[1] itemprop:[dateModified]
   # ITEMSCOPE
   # ITEMTYPE http://data-vocabulary.org/Breadcrumb
   # BLOCK
     "Silver's Simple Site" inline:[1] itemprop:[title]
     "Silver's Simple Site" <http://james-ross.co.uk> itemprop:[url]
   # ITEMSCOPE
   # ITEMTYPE http://data-vocabulary.org/Breadcrumb
   # BLOCK
     "Weblog" inline:[1] itemprop:[title]
     "Weblog" <http://james-ross.co.uk/weblog> itemprop:[url]
   # ITEMSCOPE
   # ITEMTYPE http://data-vocabulary.org/Breadcrumb
   # BLOCK
     "2016" inline:[1] itemprop:[title]
     "2016" <http://james-ross.co.uk/weblog/2016> itemprop:[url]
   # ITEMSCOPE
   # ITEMTYPE http://data-vocabulary.org/Breadcrumb
   # BLOCK
     "02" inline:[1] itemprop:[title]
     "02" <http://james-ross.co.uk/weblog/2016/02> itemprop:[url]
   # ITEMSCOPE
   # ITEMTYPE http://data-vocabulary.org/Breadcrumb
   # BLOCK
     "21" inline:[1] itemprop:[title]
     "21" <http://james-ross.co.uk/weblog/2016/02/21> itemprop:[url]
   # ITEMSCOPE
   # ITEMTYPE http://data-vocabulary.org/Breadcrumb
   # BLOCK
     "ChatZilla Plugin: Topic Diff" inline:[1] itemprop:[title]
     "ChatZilla Plugin: Topic Diff" <http://james-ross.co.uk/weblog/2016/02/21/01> itemprop:[url]
   # CLASS vcard
   # BLOCK
     "Silver" inline:[1] class:[fn nickname]
 # CLASS weblog-sig
 "/Permalink/" </weblog/2016/02/21/01> rel:[bookmark] @| /Author:/ "Silver" inline:[1] itemprop:[author] @| /Tags:/ "ChatZilla" </weblog/tag/ChatZilla> rel:[tag directory], "Scripts" </weblog/tag/Scripts> rel:[tag directory] @| /Posted:/ 08:00PM on Sunday, 21 February, 2016 @| /Comments:/ 0
# CLASS weblog-rule
-
# CLASS hentry
# ITEMSCOPE
# ITEMTYPE http://schema.org/BlogPosting
# BLOCK
 # CLASS entry-title
 # ITEMPROP name
 ChatZilla Plugin: Network Trace
 ===============================
 # CLASS entry-content
 # ITEMPROP text
 # BLOCK
   
   *Source:* "https://github.com/twpol/cz-plugin-network-trace" <https://github.com/twpol/cz-plugin-network-trace> [twpol/cz-plugin-network-trace: Displays network input/output inside ChatZilla.]
   
   This "plugin" <http://chatzilla.hacksrus.com/faq/#scripts> for "ChatZilla" <http://chatzilla.hacksrus.com/> allows you to see the incoming and outgoing network messages easily.
   
   Commands
   --------
   
   * |/network-trace [<toggle>]|
     Without any arguments, displays the tracing status for the current network.
     With the |toggle| argument, controls the tracing status for the current network. "true", "on", "yes" and "1" will enable tracing. "false", "off", "no" and "0" will disable tracing.
   
   Output
   ------
   
   |[<<] PING :fripp.mozilla.org
   |[>>] PONG :fripp.mozilla.org
   |[>>] JOIN #channel
   |[<<] :Nickname!chatzilla@hostname JOIN :#channel
   |[<<] :fripp.mozilla.org 353 Nickname = #channel :@Nickname
   |[<<] :fripp.mozilla.org 366 Nickname #channel :End of /NAMES list.
   |[>>] MODE #channel
   |[<<] :fripp.mozilla.org 324 Nickname #channel +nt
   |[<<] :fripp.mozilla.org 329 Nickname #channel 1454711109
   |[>>] PART #channel :
   |[<<] :Nickname!chatzilla@moz-eif.ga4.155.217.IP PART #channel :""
   
   Installation
   ------------
   
   If you have /ChatZilla/ "build" <https://james-ross.co.uk/mozilla/chatzilla/nightly/> [ChatZilla Nightly Builds] 0.9.92 2016-02-08 19:00 or later, you can do:
   |/install-plugin https://github.com/twpol/cz-plugin-network-trace/archive/master.zip
   
   Otherwise, due to a bug, you will need to "download the master archive" <https://github.com/twpol/cz-plugin-network-trace/archive/master.zip> and extract it in to a new subfolder of the "|scripts|" folder. This can be found inside the path shown by the command "|/pref profilePath|".
   
   E.g.
   |[INFO] Preference “profilePath” is “C:\Users\James\AppData\Roaming\Mozilla\Firefox\Profiles\secret.dev-edition-default\chatzilla”.
   means the best place to extract the archive is
   |C:\Users\James\AppData\Roaming\Mozilla\Firefox\Profiles\secret.dev-edition-default\chatzilla\scripts\network-trace
 # CLASS weblog-hidden-metadata
 # BLOCK
   "09:30PM on Sunday, 14 February, 2016" inline:[1] class:[published] [2016-02-14T21:30:00Z]
   "09:30PM on Sunday, 14 February, 2016" inline:[1] class:[updated] [2016-02-14T21:30:00Z]
   "2016-02-14T21:30:00Z" inline:[1] itemprop:[dateCreated]
   "2016-02-14T21:30:00Z" inline:[1] itemprop:[dateModified]
   # ITEMSCOPE
   # ITEMTYPE http://data-vocabulary.org/Breadcrumb
   # BLOCK
     "Silver's Simple Site" inline:[1] itemprop:[title]
     "Silver's Simple Site" <http://james-ross.co.uk> itemprop:[url]
   # ITEMSCOPE
   # ITEMTYPE http://data-vocabulary.org/Breadcrumb
   # BLOCK
     "Weblog" inline:[1] itemprop:[title]
     "Weblog" <http://james-ross.co.uk/weblog> itemprop:[url]
   # ITEMSCOPE
   # ITEMTYPE http://data-vocabulary.org/Breadcrumb
   # BLOCK
     "2016" inline:[1] itemprop:[title]
     "2016" <http://james-ross.co.uk/weblog/2016> itemprop:[url]
   # ITEMSCOPE
   # ITEMTYPE http://data-vocabulary.org/Breadcrumb
   # BLOCK
     "02" inline:[1] itemprop:[title]
     "02" <http://james-ross.co.uk/weblog/2016/02> itemprop:[url]
   # ITEMSCOPE
   # ITEMTYPE http://data-vocabulary.org/Breadcrumb
   # BLOCK
     "14" inline:[1] itemprop:[title]
     "14" <http://james-ross.co.uk/weblog/2016/02/14> itemprop:[url]
   # ITEMSCOPE
   # ITEMTYPE http://data-vocabulary.org/Breadcrumb
   # BLOCK
     "ChatZilla Plugin: Network Trace" inline:[1] itemprop:[title]
     "ChatZilla Plugin: Network Trace" <http://james-ross.co.uk/weblog/2016/02/14/01> itemprop:[url]
   # CLASS vcard
   # BLOCK
     "Silver" inline:[1] class:[fn nickname]
 # CLASS weblog-sig
 "/Permalink/" </weblog/2016/02/14/01> rel:[bookmark] @| /Author:/ "Silver" inline:[1] itemprop:[author] @| /Tags:/ "ChatZilla" </weblog/tag/ChatZilla> rel:[tag directory], "Scripts" </weblog/tag/Scripts> rel:[tag directory] @| /Posted:/ 09:30PM on Sunday, 14 February, 2016 @| /Comments:/ 0
# CLASS weblog-rule
-
# CLASS hentry
# ITEMSCOPE
# ITEMTYPE http://schema.org/BlogPosting
# BLOCK
 # CLASS entry-title
 # ITEMPROP name
 Offline London Underground routing on your phone
 ================================================
 # CLASS entry-content
 # ITEMPROP text
 # BLOCK
   
   There are probably a number of apps available for this as well, but none that I've found for "Windows Phone" <https://www.microsoft.com/en-gb/windows/phones> [Windows Phones – Microsoft] are any good. Even desktop routing via "Google Maps" <https://www.google.co.uk/maps> or "Bing Maps" <https://www.bing.co.uk/maps> has not been very good at estimating journey times for me.
   
   So I made a website which does it, just how I like it, with the following features:
   * Uses "Application Cache" <https://html.spec.whatwg.org/multipage/browsers.html#appcache> to remain available even with no data connection
   * Browse lines, stations and routes
   * Show all possible routes with duration and stops
   * Entirely front-end code, using "Angular JS" <https://angularjs.org/>
   
   *Offline Tube*: "https://offlinetube.co.uk" <https://offlinetube.co.uk> [Offline Tube]
 # CLASS weblog-hidden-metadata
 # BLOCK
   "08:00PM on Sunday, 07 February, 2016" inline:[1] class:[published] [2016-02-07T20:00:00Z]
   "08:00PM on Sunday, 07 February, 2016" inline:[1] class:[updated] [2016-02-07T20:00:00Z]
   "2016-02-07T20:00:00Z" inline:[1] itemprop:[dateCreated]
   "2016-02-07T20:00:00Z" inline:[1] itemprop:[dateModified]
   # ITEMSCOPE
   # ITEMTYPE http://data-vocabulary.org/Breadcrumb
   # BLOCK
     "Silver's Simple Site" inline:[1] itemprop:[title]
     "Silver's Simple Site" <http://james-ross.co.uk> itemprop:[url]
   # ITEMSCOPE
   # ITEMTYPE http://data-vocabulary.org/Breadcrumb
   # BLOCK
     "Weblog" inline:[1] itemprop:[title]
     "Weblog" <http://james-ross.co.uk/weblog> itemprop:[url]
   # ITEMSCOPE
   # ITEMTYPE http://data-vocabulary.org/Breadcrumb
   # BLOCK
     "2016" inline:[1] itemprop:[title]
     "2016" <http://james-ross.co.uk/weblog/2016> itemprop:[url]
   # ITEMSCOPE
   # ITEMTYPE http://data-vocabulary.org/Breadcrumb
   # BLOCK
     "02" inline:[1] itemprop:[title]
     "02" <http://james-ross.co.uk/weblog/2016/02> itemprop:[url]
   # ITEMSCOPE
   # ITEMTYPE http://data-vocabulary.org/Breadcrumb
   # BLOCK
     "07" inline:[1] itemprop:[title]
     "07" <http://james-ross.co.uk/weblog/2016/02/07> itemprop:[url]
   # ITEMSCOPE
   # ITEMTYPE http://data-vocabulary.org/Breadcrumb
   # BLOCK
     "Offline London Underground routing on your phone" inline:[1] itemprop:[title]
     "Offline London Underground routing on your phone" <http://james-ross.co.uk/weblog/2016/02/07/01> itemprop:[url]
   # CLASS vcard
   # BLOCK
     "Silver" inline:[1] class:[fn nickname]
 # CLASS weblog-sig
 "/Permalink/" </weblog/2016/02/07/01> rel:[bookmark] @| /Author:/ "Silver" inline:[1] itemprop:[author] @| /Tags:/ "Offline" </weblog/tag/Offline> rel:[tag directory], "Tube" </weblog/tag/Tube> rel:[tag directory] @| /Posted:/ 08:00PM on Sunday, 07 February, 2016 @| /Comments:/ 0
# CLASS weblog-rule
-
# CLASS hentry
# ITEMSCOPE
# ITEMTYPE http://schema.org/BlogPosting
# BLOCK
 # CLASS entry-title
 # ITEMPROP name
 Cloning a git-svn repository without re-downloading everything
 ==============================================================
 # CLASS entry-content
 # ITEMPROP text
 # BLOCK
   
   This is a problem I've been having for a few weeks now, since I started using "git" <http://www.git-scm.com/> [Git] and the "git-svn" <http://www.git-scm.com/docs/git-svn> [Git - git-svn Documentation] plug-in to operate on a "Subversion" <http://subversion.apache.org/> [Apache Subversion] repository. Today I figured out the solution.
   
   When you |git clone| a repository which has been used with /Subversion/ and /git-svn/, none of the extra metadata is cloned with it. That's expected, so you have to do |git svn init| again to configure /git-svn/ in this new repository. However, this does not save you from /git-svn/ then downloading everything from /Subversion/! This can easily take hours, if not days, on a large repository.
   
   The trick is simple enough: |git update-ref refs/remotes/git-svn master|. Note that you might need to use a different branch name in place of "master", depending on your /git/ repository's set up. All this does is tell /git-svn/ that the latest /Subversion/ commit is the latest /git/ commit on branch "master".
   
   Now when you do |git svn fetch|, the worst it'll do is "Rebuilding ...rev_map..." which should only take a minute or two and is entirely local.
   
   |$ git clone https://git.example.com/
   |/normal clone stuff/
   |
   |$ git svn init https://svn.example.com/trunk
   |
   |$ git update-ref refs/remotes/git-svn master
   |
   |$ git svn fetch
   |Rebuilding .git/svn/refs/remotes/git-svn/.rev-map.guid ...
   |r1 = sha1
   |...
   |Done rebuilding .git/svn/refs/remotes/git-svn/.rev-map.guid
   
   Success!
 # CLASS weblog-hidden-metadata
 # BLOCK
   "08:45PM on Tuesday, 22 December, 2015" inline:[1] class:[published] [2015-12-22T20:45:00Z]
   "08:45PM on Tuesday, 22 December, 2015" inline:[1] class:[updated] [2015-12-22T20:45:00Z]
   "2015-12-22T20:45:00Z" inline:[1] itemprop:[dateCreated]
   "2015-12-22T20:45:00Z" inline:[1] itemprop:[dateModified]
   # ITEMSCOPE
   # ITEMTYPE http://data-vocabulary.org/Breadcrumb
   # BLOCK
     "Silver's Simple Site" inline:[1] itemprop:[title]
     "Silver's Simple Site" <http://james-ross.co.uk> itemprop:[url]
   # ITEMSCOPE
   # ITEMTYPE http://data-vocabulary.org/Breadcrumb
   # BLOCK
     "Weblog" inline:[1] itemprop:[title]
     "Weblog" <http://james-ross.co.uk/weblog> itemprop:[url]
   # ITEMSCOPE
   # ITEMTYPE http://data-vocabulary.org/Breadcrumb
   # BLOCK
     "2015" inline:[1] itemprop:[title]
     "2015" <http://james-ross.co.uk/weblog/2015> itemprop:[url]
   # ITEMSCOPE
   # ITEMTYPE http://data-vocabulary.org/Breadcrumb
   # BLOCK
     "12" inline:[1] itemprop:[title]
     "12" <http://james-ross.co.uk/weblog/2015/12> itemprop:[url]
   # ITEMSCOPE
   # ITEMTYPE http://data-vocabulary.org/Breadcrumb
   # BLOCK
     "22" inline:[1] itemprop:[title]
     "22" <http://james-ross.co.uk/weblog/2015/12/22> itemprop:[url]
   # ITEMSCOPE
   # ITEMTYPE http://data-vocabulary.org/Breadcrumb
   # BLOCK
     "Cloning a git-svn repository without re-downloading everything" inline:[1] itemprop:[title]
     "Cloning a git-svn repository without re-downloading everything" <http://james-ross.co.uk/weblog/2015/12/22/01> itemprop:[url]
   # CLASS vcard
   # BLOCK
     "Silver" inline:[1] class:[fn nickname]
 # CLASS weblog-sig
 "/Permalink/" </weblog/2015/12/22/01> rel:[bookmark] @| /Author:/ "Silver" inline:[1] itemprop:[author] @| /Tags:/ "Git" </weblog/tag/Git> rel:[tag directory], "Subversion" </weblog/tag/Subversion> rel:[tag directory], "Version control" </weblog/tag/Version control> rel:[tag directory] @| /Posted:/ 08:45PM on Tuesday, 22 December, 2015 @| /Comments:/ 0
# CLASS weblog-rule
-
# CLASS hentry
# ITEMSCOPE
# ITEMTYPE http://schema.org/BlogPosting
# BLOCK
 # CLASS entry-title
 # ITEMPROP name
 Mixing jQuery and Underscore.js nicely
 ======================================
 # CLASS entry-content
 # ITEMPROP text
 # BLOCK
   
   Working on a new project, with both "jQuery" <http://jquery.com> and "Underscore.js" <http://underscorejs.org>, I found myself with a problem. Using /Underscore.js/ on /jQuery/ objects felt somewhat dirty/messy:
   
   ||    // With $ and _ both in scope...
   ||    
   ||    // Typical code:
   ||    _($('.someclass'))
   ||        .each(function(element) {
   ||            element = $(element);
   ||            // Run some jQuery on 'element'.
   ||        });
   ||    
   ||    _.chain($('.someclass'))
   ||        .filter(function(element) {
   ||            element = $(element);
   ||            // Test some jQuery on 'element'.
   ||        })
   ||        .each(function(element) {
   ||            element = $(element);
   ||            // Run some jQuery on 'element'.
   ||        });
   
   The two key problems I had were:
   
    1. The initial "|_($('...|" and "|_.chain($('...|" bugged my sense of clean code.
    2. I had to re-wrap every element in /jQuery/ inside each |filter()| or |each()| or any other /Underscore.js/ iterator function.
   
   The solution I found is pretty simple and also in two parts:
   
    1. Add a new mix-in to /Underscore.js/: the /jQuery/ |$()| function.
    2. Use the |map()| method from /Underscore.js/ directly with /jQuery's/ |$()| function. (This also meant an increased use of the |chain()| method.)
   
   ||    // With $ and _ both in scope...
   ||    
   ||    // One-time set-up:
   ||    _.mixin({$: $});
   ||    
   ||    // Typical code:
   ||    _.chain('.someclass')
   ||        .$()     // This uses jQuery to select the elements matching the selector.
   ||        .map($)  // This uses Underscore.js to wrap every matched element in jQuery.
   ||        .filter(function(element) {
   ||            // Test some jQuery on 'element'.
   ||        })
   ||        .each(function(element) {
   ||            // Run some jQuery on 'element'.
   ||        });
   
   Much cleaner!
   
   *Addendum:* It was pointed out to me that you can avoid the |chain()| methods of /Underscore.js/ by replacing that library with "Lo-Dash" <http://lodash.com>, which has much the same API, but with better performance and more intuitive method chaining (i.e. more like /jQuery/). Thanks tom!
 # CLASS weblog-hidden-metadata
 # BLOCK
   "06:00PM on Thursday, 31 October, 2013" inline:[1] class:[published] [2013-10-31T18:00:00Z]
   "06:00PM on Thursday, 31 October, 2013" inline:[1] class:[updated] [2013-10-31T18:00:00Z]
   "2013-10-31T18:00:00Z" inline:[1] itemprop:[dateCreated]
   "2013-10-31T18:00:00Z" inline:[1] itemprop:[dateModified]
   # ITEMSCOPE
   # ITEMTYPE http://data-vocabulary.org/Breadcrumb
   # BLOCK
     "Silver's Simple Site" inline:[1] itemprop:[title]
     "Silver's Simple Site" <http://james-ross.co.uk> itemprop:[url]
   # ITEMSCOPE
   # ITEMTYPE http://data-vocabulary.org/Breadcrumb
   # BLOCK
     "Weblog" inline:[1] itemprop:[title]
     "Weblog" <http://james-ross.co.uk/weblog> itemprop:[url]
   # ITEMSCOPE
   # ITEMTYPE http://data-vocabulary.org/Breadcrumb
   # BLOCK
     "2013" inline:[1] itemprop:[title]
     "2013" <http://james-ross.co.uk/weblog/2013> itemprop:[url]
   # ITEMSCOPE
   # ITEMTYPE http://data-vocabulary.org/Breadcrumb
   # BLOCK
     "10" inline:[1] itemprop:[title]
     "10" <http://james-ross.co.uk/weblog/2013/10> itemprop:[url]
   # ITEMSCOPE
   # ITEMTYPE http://data-vocabulary.org/Breadcrumb
   # BLOCK
     "31" inline:[1] itemprop:[title]
     "31" <http://james-ross.co.uk/weblog/2013/10/31> itemprop:[url]
   # ITEMSCOPE
   # ITEMTYPE http://data-vocabulary.org/Breadcrumb
   # BLOCK
     "Mixing jQuery and Underscore.js nicely" inline:[1] itemprop:[title]
     "Mixing jQuery and Underscore.js nicely" <http://james-ross.co.uk/weblog/2013/10/31/01> itemprop:[url]
   # CLASS vcard
   # BLOCK
     "Silver" inline:[1] class:[fn nickname]
 # CLASS weblog-sig
 "/Permalink/" </weblog/2013/10/31/01> rel:[bookmark] @| /Author:/ "Silver" inline:[1] itemprop:[author] @| /Tags:/ "JavaScript" </weblog/tag/JavaScript> rel:[tag directory], "jQuery" </weblog/tag/jQuery> rel:[tag directory], "Underscore.js" </weblog/tag/Underscore.js> rel:[tag directory] @| /Posted:/ 06:00PM on Thursday, 31 October, 2013 @| /Comments:/ 0
# CLASS weblog-rule
-
# CLASS hentry
# ITEMSCOPE
# ITEMTYPE http://schema.org/BlogPosting
# BLOCK
 # CLASS entry-title
 # ITEMPROP name
 Getting good MiniDumps from processes WER has already grabbed
 =============================================================
 # CLASS entry-content
 # ITEMPROP text
 # BLOCK
   
   If you've got a crashed process that "WER" <http://msdn.microsoft.com/en-us/library/windows/desktop/bb513641> [Windows Error Reporting (Windows)] has handled but you either know the "JIT debugger" <http://msdn.microsoft.com/en-us/library/5hs4b7a6> [Just-In-Time Debugging] is set wrong or you haven't got one set up at all (so no "Debug" button on the crash dialog), you can leave the dialog open and attach any debugger of your choice to the suspended, crashed process.
   
   However, there's a problem. By attaching the debugger to the suspended process, the process' last-exception information has been lost; this is because the way the debugger sucessfully attaches to a /suspended/ (or hung) process is to inject a new, running thread and have /that thread crash/. So your debugger, and any minidumps it generates with "|.dump|" <http://msdn.microsoft.com/en-gb/library/windows/hardware/ff562428> [.dump (Create Dump File) (Windows Debuggers)], will not be able to find the original program's exception information. Oops!
   
   The solution is very similar to "Raymond Chen" <http://blogs.msdn.com/b/oldnewthing/> [The Old New Thing - Site Home - MSDN Blogs]'s post on "Sucking the exception pointers out of a stack trace" <http://blogs.msdn.com/b/oldnewthing/archive/2006/08/21/710754.aspx> [Sucking the exception pointers out of a stack trace - The Old New Thing - Site Home - MSDN Blogs]. The difference is how we find the pointers and what we do with them.
   
   Starting with the stack trace from "|kb|" <http://msdn.microsoft.com/en-us/library/windows/hardware/ff551943> [k, kb, kc, kd, kp, kP, kv (Display Stack Backtrace) (Windows Debuggers)]:
   
   |RetAddr           : Args to Child                                                           : Call Site
   |000007f9`d88212d2 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : ntdll!NtWaitForMultipleObjects+0xa
   |000007f9`dae8d20e : 00000000`02300000 000007f6`96e75000 00000000`00000000 00000000`000001dc : KERNELBASE!WaitForMultipleObjectsEx+0xe5
   |000007f9`dae8cfd2 : fffff8a0`00000080 00000000`80004005 00000000`000001ec 00000000`00000000 : KERNEL32!WerpReportFaultInternal+0x1fa
   |000007f9`d889fc87 : 00000000`00000000 _/00000000`00195c30/_ 00000000`00000030 _/00000000`00195c30/_ : KERNEL32!WerpReportFault+0x42
   |000007f9`db56a43d : 00000001`00000000 00000000`00196990 00000000`0019f620 00000000`003441d0 : KERNELBASE!UnhandledExceptionFilter+0x1d7
   |000007f9`db4b4ad4 : 000007f9`d8eeabdd 00000000`00196990 00000000`00000000 00000000`00000000 : ntdll!LdrpLogFatalUserCallbackException+0x4d
   |000007f9`db4d464d : 00000000`00000000 00000000`00195de8 00000000`00195da0 000007f9`d8f7f000 : ntdll!KiUserCallbackDispatcherHandler+0x20
   |000007f9`db4d567c : 000007f9`d8ee0000 00000000`0019f5c0 000007f9`0000e4f0 00000000`00000000 : ntdll!RtlpExecuteHandlerForException+0xd
   |000007f9`db4b4bba : 00000000`00000000 00000000`00000000 000007f6`96e7e300 00000000`00000000 : ntdll!RtlDispatchException+0x392
   |000007f9`db4b2acd : 000007f9`d8bbc36c 00000000`00360f00 00000000`00360f00 00000000`00360f00 : ntdll!KiUserExceptionDispatch+0x2e
   |000007f9`d8bbc36c : 00000000`00360f00 00000000`00360f00 00000000`00360f00 00000000`00000000 : ntdll!memcpy+0x21a
   
   The |EXCEPTION_POINTERS| structure address seems[1] to be passed as arguments 2 and 4 of the call to "KERNEL32!WerpReportFault". From this, the exception and context records can be displayed - but we only really need to include the |EXCEPTION_POINTERS| address in the minidump, since adding this one address will allow the "!analyze" <http://msdn.microsoft.com/en-us/library/windows/hardware/ff562112> [!analyze (Windows Debuggers)] command to work.
   
   Create the minidump using the command "|.dump /ma /xp 00195c30 dump.dmp|" and you're done. (Apart from all of the actual debugging - have fun!)
   
   [1] This is on "Windows 8" <http://windows.microsoft.com/en-us/windows-8/meet> [Windows 8 and Windows RT - Microsoft Windows] 64bit running the 64bit "WinDbg" <http://msdn.microsoft.com/en-gb/windows/hardware/gg463009> [Download and Install Debugging Tools for Windows] debugging a 32bit executable. "YMMV" <http://en.wiktionary.org/wiki/your_mileage_may_vary> [your mileage may vary - Wiktionary].
 # CLASS weblog-hidden-metadata
 # BLOCK
   "09:00PM on Monday, 25 February, 2013" inline:[1] class:[published] [2013-02-25T21:00:00Z]
   "09:00PM on Monday, 25 February, 2013" inline:[1] class:[updated] [2013-02-25T21:00:00Z]
   "2013-02-25T21:00:00Z" inline:[1] itemprop:[dateCreated]
   "2013-02-25T21:00:00Z" inline:[1] itemprop:[dateModified]
   # ITEMSCOPE
   # ITEMTYPE http://data-vocabulary.org/Breadcrumb
   # BLOCK
     "Silver's Simple Site" inline:[1] itemprop:[title]
     "Silver's Simple Site" <http://james-ross.co.uk> itemprop:[url]
   # ITEMSCOPE
   # ITEMTYPE http://data-vocabulary.org/Breadcrumb
   # BLOCK
     "Weblog" inline:[1] itemprop:[title]
     "Weblog" <http://james-ross.co.uk/weblog> itemprop:[url]
   # ITEMSCOPE
   # ITEMTYPE http://data-vocabulary.org/Breadcrumb
   # BLOCK
     "2013" inline:[1] itemprop:[title]
     "2013" <http://james-ross.co.uk/weblog/2013> itemprop:[url]
   # ITEMSCOPE
   # ITEMTYPE http://data-vocabulary.org/Breadcrumb
   # BLOCK
     "02" inline:[1] itemprop:[title]
     "02" <http://james-ross.co.uk/weblog/2013/02> itemprop:[url]
   # ITEMSCOPE
   # ITEMTYPE http://data-vocabulary.org/Breadcrumb
   # BLOCK
     "25" inline:[1] itemprop:[title]
     "25" <http://james-ross.co.uk/weblog/2013/02/25> itemprop:[url]
   # ITEMSCOPE
   # ITEMTYPE http://data-vocabulary.org/Breadcrumb
   # BLOCK
     "Getting good MiniDumps from processes WER has already grabbed" inline:[1] itemprop:[title]
     "Getting good MiniDumps from processes WER has already grabbed" <http://james-ross.co.uk/weblog/2013/02/25/01> itemprop:[url]
   # CLASS vcard
   # BLOCK
     "Silver" inline:[1] class:[fn nickname]
 # CLASS weblog-sig
 "/Permalink/" </weblog/2013/02/25/01> rel:[bookmark] @| /Author:/ "Silver" inline:[1] itemprop:[author] @| /Tags:/ "Windows" </weblog/tag/Windows> rel:[tag directory], "WinDbg" </weblog/tag/WinDbg> rel:[tag directory], "Debugging" </weblog/tag/Debugging> rel:[tag directory] @| /Posted:/ 09:00PM on Monday, 25 February, 2013 @| /Comments:/ 0
# CLASS weblog-rule
-
# CLASS hentry
# ITEMSCOPE
# ITEMTYPE http://schema.org/BlogPosting
# BLOCK
 # CLASS entry-title
 # ITEMPROP name
 HTTP Archive Difference tool
 ============================
 # CLASS entry-content
 # ITEMPROP text
 # BLOCK
   
   When measuring website performance, comparing two different page loads is a common and useful operation. However, there isn't much available to do it; some tools, like "Fiddler" <http://getfiddler.com/> [Fiddler Web Debugger - Freeware HTTP(S) debugging tool], let you export the timeline waterfall as an image, allowing a visual inspection of two page loads to be done, but this lacks the ability to easily compare things such as when a particular request was made in each page.
   
   A good intermediate solution is to save "HTTP Archive" <http://www.softwareishard.com/blog/har-12-spec/> [HAR 1.2 Spec | Software is hard] files of each page load; these are "JSON" <http://en.wikipedia.org/wiki/Json> [JSON - Wikipedia, the free encyclopedia] files containing the request and response timing information, headers, cookies and (depending on tool) contents. HTTP Archive (HAR) files can be exported natively from "Chrome" <https://www.google.com/intl/en/chrome/browser/> [Chrome Browser] and /Fiddler/, and via the "NetExport" <http://www.softwareishard.com/blog/netexport/> [NetExport | Software is hard] extension for "Firebug" <http://getfirebug.com/> [Firebug] in "Firefox" <http://www.mozilla.org/en-US/firefox/new/> [Mozilla Firefox Web Browser - Free Download - mozilla.org]. "Internet Explorer" <http://windows.microsoft.com/en-us/internet-explorer/products/ie/home> [Internet Explorer - Web Browser for Microsoft Windows] can export an "XML" <http://en.wikipedia.org/wiki/XML> [XML - Wikipedia, the free encyclopedia] transcription of the official /JSON HAR/ format.
   
   But what about comparing the exported /HAR/ data? There is an online "HAR Viewer" <http://www.softwareishard.com/blog/har-viewer/> [HAR Viewer | Software is hard] but nothing to compare two /HAR/ files. This particular issue came to light for me a few months back, when I was working on page load performance at work, but it really hit home when, at the "WebPerfDays" <http://webperfdays.org/> [WebPerfDays - Home Page] on Friday, "HAR diff" appeared on a list of tools that web performance people wanted.
   
   Putting the two together, I have put my "HAR difference tool" <http://hardiff.co.uk> [HTTP Archive Difference tool] online for all to use. Just paste in two /HAR/ files (or just one to view it alone) and hit "Compare!". The tool summarises the differences, both in which requests were made, their timing information, and how the browser utilised its connections. The precise level of details depends on whether a proxy (like /Fiddler/) or browser tool (like /Firebug/) was used to collect the information, but most of the information is generally available from anything that exports /HAR/ files.
   
   <image:/temp/hd_1.png> <image:/temp/hd_2.png>
 # CLASS weblog-hidden-metadata
 # BLOCK
   "08:30PM on Monday, 08 October, 2012" inline:[1] class:[published] [2012-10-08T20:30:00Z]
   "08:30PM on Monday, 08 October, 2012" inline:[1] class:[updated] [2012-10-08T20:30:00Z]
   "2012-10-08T20:30:00Z" inline:[1] itemprop:[dateCreated]
   "2012-10-08T20:30:00Z" inline:[1] itemprop:[dateModified]
   # ITEMSCOPE
   # ITEMTYPE http://data-vocabulary.org/Breadcrumb
   # BLOCK
     "Silver's Simple Site" inline:[1] itemprop:[title]
     "Silver's Simple Site" <http://james-ross.co.uk> itemprop:[url]
   # ITEMSCOPE
   # ITEMTYPE http://data-vocabulary.org/Breadcrumb
   # BLOCK
     "Weblog" inline:[1] itemprop:[title]
     "Weblog" <http://james-ross.co.uk/weblog> itemprop:[url]
   # ITEMSCOPE
   # ITEMTYPE http://data-vocabulary.org/Breadcrumb
   # BLOCK
     "2012" inline:[1] itemprop:[title]
     "2012" <http://james-ross.co.uk/weblog/2012> itemprop:[url]
   # ITEMSCOPE
   # ITEMTYPE http://data-vocabulary.org/Breadcrumb
   # BLOCK
     "10" inline:[1] itemprop:[title]
     "10" <http://james-ross.co.uk/weblog/2012/10> itemprop:[url]
   # ITEMSCOPE
   # ITEMTYPE http://data-vocabulary.org/Breadcrumb
   # BLOCK
     "08" inline:[1] itemprop:[title]
     "08" <http://james-ross.co.uk/weblog/2012/10/08> itemprop:[url]
   # ITEMSCOPE
   # ITEMTYPE http://data-vocabulary.org/Breadcrumb
   # BLOCK
     "HTTP Archive Difference tool" inline:[1] itemprop:[title]
     "HTTP Archive Difference tool" <http://james-ross.co.uk/weblog/2012/10/08/01> itemprop:[url]
   # CLASS vcard
   # BLOCK
     "Silver" inline:[1] class:[fn nickname]
 # CLASS weblog-sig
 "/Permalink/" </weblog/2012/10/08/01> rel:[bookmark] @| /Author:/ "Silver" inline:[1] itemprop:[author] @| /Tags:/ "HAR" </weblog/tag/HAR> rel:[tag directory], "Tools" </weblog/tag/Tools> rel:[tag directory] @| /Posted:/ 08:30PM on Monday, 08 October, 2012 @| /Comments:/ 0

Powered by the Content Parser System, copyright 2002 - 2017 James G. Ross.