<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/rss-style.xsl" type="text/xsl"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	    xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	     xmlns:dc="http://purl.org/dc/elements/1.1/"
	   xmlns:atom="http://www.w3.org/2005/Atom"
	     xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	  xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>
<channel>
	<title>demo &#8211; Terence Eden’s Blog</title>
	<atom:link href="https://shkspr.mobi/blog/tag/demo/feed/" rel="self" type="application/rss+xml" />
	<link>https://shkspr.mobi/blog</link>
	<description>Regular nonsense about tech and its effects 🙃</description>
	<lastBuildDate>Mon, 20 Apr 2026 08:27:05 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://shkspr.mobi/blog/wp-content/uploads/2023/07/cropped-avatar-32x32.jpeg</url>
	<title>demo &#8211; Terence Eden’s Blog</title>
	<link>https://shkspr.mobi/blog</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title><![CDATA[Gadget Review: 6-Colour ePaper Name Badge ★★★★⯪]]></title>
		<link>https://shkspr.mobi/blog/2025/04/gadget-review-6-colour-epaper-name-badge/</link>
					<comments>https://shkspr.mobi/blog/2025/04/gadget-review-6-colour-epaper-name-badge/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Sun, 20 Apr 2025 11:34:47 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[demo]]></category>
		<category><![CDATA[eink]]></category>
		<category><![CDATA[gadget]]></category>
		<category><![CDATA[review]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=59522</guid>

					<description><![CDATA[The good folks at SmartDisplayer Technology Co have sent me a six colour eInk badge to play about with.  Here&#039;s a quick video and then a walk-through of its features.      You can also view SmartDisplayer&#039;s official video.  The Badge  It is a single block of plastic. There are no seams, screws, or rough edges. The ePaper appear right on the surface of the badge, there&#039;s no recessing or anything…]]></description>
										<content:encoded><![CDATA[<p>The good folks at <a href="https://smartdisplayer.com.tw">SmartDisplayer Technology Co</a> have sent me a <em>six</em> colour eInk badge to play about with.</p>

<p>Here's a quick video and then a walk-through of its features.</p>

<iframe title="Demo - six-colour eInk screen" width="560" height="315" src="https://tube.tchncs.de/videos/embed/ohEz1V4ByLHL98sspBqMHK" frameborder="0" allowfullscreen="" sandbox="allow-same-origin allow-scripts allow-popups allow-forms"></iframe>

<!-- https://youtu.be/UeipkX7huR8 -->

<p>You can also view <a href="https://www.youtube.com/watch?v=-2FfN006-vQ">SmartDisplayer's official video</a>.</p>

<h2 id="the-badge"><a href="https://shkspr.mobi/blog/2025/04/gadget-review-6-colour-epaper-name-badge/#the-badge">The Badge</a></h2>

<p>It is a single block of plastic. There are no seams, screws, or rough edges. The ePaper appear right on the surface of the badge, there's no recessing or anything to indicate that this is a high-tech gadget. It uses their "cold lamination" technology which creates an impeccable matt finish.</p>

<p>The display area is 56.4mm x 84.6mm - which is pretty close to the size of a standard credit card - for a resolution of 180PPI.</p>

<h2 id="the-eink"><a href="https://shkspr.mobi/blog/2025/04/gadget-review-6-colour-epaper-name-badge/#the-eink">The eInk</a></h2>

<p>This uses E-Ink <a href="https://www.eink.com/brand/detail/Spectra6">Spectra 6</a> technology. With only 6 colours to play about with there's a <em>lot</em> of dithering needed to make a picture look presentable. Those 6 colours are:</p>

<ul>
<li>#000 Black</li>
<li>#F00 Red</li>
<li>#0F0 Green</li>
<li>#00F Blue</li>
<li>#FF0 Yellow</li>
<li>#FFF White</li>
</ul>

<p>I used a standard <a href="https://www.drycreekphoto.com/Learn/monitor_calibration.htm">Monitor Calibration Image</a>, dithered it using the supplied software, and flashed it to the card. I then scanned in the card so you can see exactly how faithful the image reproduction is.</p>

<p>On the left, the eInk. On the right, the original image.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2025/04/24-color-small.jpg" alt="A swatch of colours." width="2048" height="1567" class="aligncenter size-full wp-image-59533">

<p>That's pretty bloody good!</p>

<p>Using <a href="http://www.brucelindbloom.com/index.html?ReferenceImages.html">Bruce Lindbloom's RGB Reference image</a> is also a good way to test a range of colours.</p>

<p><img src="https://shkspr.mobi/blog/wp-content/uploads/2025/04/lindstrom.webp" alt="A multicolour CGI image." width="1920" height="1080" class="aligncenter size-full wp-image-59555">
Not bad for red, green, blue, yellow, white, black, eh?</p>

<p>It's hard to find a good test-card with a variety of skin-tones (there's a creepy Getty one with naked women), so I used <a href="https://www.murideo.com/test-pattern-library.html">the Murideo Portrait Reference Photograph</a>.  The original:</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2025/04/Skintones.webp" alt="Telegenic American Youth with a variety of skin tones." width="1024" height="576" class="aligncenter size-full wp-image-59537">

<p>On eInk:</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2025/04/Skintones-eInk.webp" alt="Skintones rendered on eInk." width="1024" height="768" class="aligncenter size-full wp-image-59536">

<p>And here's another one:</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2025/04/skintones.webp" alt="Various skintones dithered." width="1920" height="1080" class="aligncenter size-full wp-image-59554">

<h2 id="the-card-writer"><a href="https://shkspr.mobi/blog/2025/04/gadget-review-6-colour-epaper-name-badge/#the-card-writer">The Card Writer</a></h2>

<p>For Linux nerds, the USB writer showed up as: <code>1fc9:0102 NXP Semiconductors IT-102MU Reader</code>.</p>

<p>There's almost no information about it other than a <a href="https://marc.info/?l=openbsd-misc&amp;m=174064590315968&amp;w=2">brief discussion on an OpenBSD mailing list</a>, and a mention on the <a href="https://ccid.apdu.fr/ccid/shouldwork.html#0x1FC90x0102">CCID database</a>.  Apparently it will work as on <a href="https://support.google.com/chrome/a/answer/7014689?hl=en#zippy=%2Csupported-smart-card-readers">ChromeOS</a>. It makes a <em>hideous</em> beeping sound when the card is inserted.</p>

<p>Once the card is inserted, two LEDs light up.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2025/04/LEDs.webp" alt="Blue and green LEDs shining through white plastic." width="1024" height="576" class="aligncenter size-full wp-image-59523">

<p>The green one quickly vanishes, but the blue one pulses until the card is removed from the reader.</p>

<details><summary>Detailed <code>lsusb</code> Output</summary><pre>Bus 005 Device 084: ID 1fc9:0102 NXP Semiconductors IT-102MU Reader
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x1fc9 NXP Semiconductors
  idProduct          0x0102 
  bcdDevice            1.12
  iManufacturer           1 InfoThink
  iProduct                2 IT-102MU Reader
  iSerial                 3 1.00
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x005d
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              500mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           3
      bInterfaceClass        11 Chip/SmartCard
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              0 
      ChipCard Interface Descriptor:
        bLength                54
        bDescriptorType        33
        bcdCCID              1.10  (Warning: Only accurate for version 1.0)
        nMaxSlotIndex           0
        bVoltageSupport         7  5.0V 3.0V 1.8V 
        dwProtocols             3  T=0 T=1
        dwDefaultClock       3685
        dwMaxiumumClock     14320
        bNumClockSupported      0
        dwDataRate           9909 bps
        dwMaxDataRate      848000 bps
        bNumDataRatesSupp.      0
        dwMaxIFSD             254
        dwSyncProtocols  00000000 
        dwMechanical     00000000 
        dwFeatures       000404BE
          Auto configuration based on ATR
          Auto activation on insert
          Auto voltage selection
          Auto clock change
          Auto baud rate change
          Auto PPS made by CCID
          Auto IFSD exchange
          Short and extended APDU level exchange
        dwMaxCCIDMsgLen       271
        bClassGetResponse    echo
        bClassEnvelope       echo
        wlcdLayout           none
        bPINSupport             0 
        bMaxCCIDBusySlots       1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               4
</pre></details>

<h2 id="the-software"><a href="https://shkspr.mobi/blog/2025/04/gadget-review-6-colour-epaper-name-badge/#the-software">The Software</a></h2>

<p>It is Windows-only software, and it is bare-bones. You can load an image, select if you want it dithered or not, and then download it to the badge.  That's it.
<img src="https://shkspr.mobi/blog/wp-content/uploads/2025/04/eInk-Software.webp" alt="Screenshot of the software." width="457" height="630" class="aligncenter size-full wp-image-59540">
No image editing; it just resizes everything to 400x600. There's no badge design software or QR generator. And, to be honest, I think that's fine. You're better off designing your badges in dedicated software.</p>

<p>Unsurprisingly, the app wouldn't run under WINE in Linux. I used Oracle's VirtualBox. Note, the included software requires you to install <a href="https://dotnet.microsoft.com/en-us/download/dotnet/6.0">Microsoft's .Net Windows Desktop Runtime 6</a> <em>and</em> the latest <a href="https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170#latest-microsoft-visual-c-redistributable-version">Microsoft Visual C++ Redistributable Version</a>.</p>

<p>VirtualBox initially refused to see the USB peripheral. I had to unplug the reader, create a USB filter using <code>1fc9:0102</code>, start the VM, and only then plug in the USB reader. Then it worked. Bit of a faff!</p>

<h2 id="pricing"><a href="https://shkspr.mobi/blog/2025/04/gadget-review-6-colour-epaper-name-badge/#pricing">Pricing</a></h2>

<p>I've got good news and bad news!</p>

<p>First, the bad. <a href="https://smartdisplayer.com.tw">SmartDisplayer Technology Co</a> are B2B sellers. They'll sell you a single badge for US$70 + shipping. If you're buying more than a thousand, the price drops to $65. The NFC reader is $120.</p>

<p>In terms of badge pricing, I think that's pretty fair. If you want to buy a demokit of just the screen, <a href="https://shopkits.eink.com/en/product/detail/4''Spectra6ePaperDisplay">that'll cost you US$99 direct from eInk</a>.  So $70 full assembled is a bargain.</p>

<p>The good news? They'll shortly be bringing out <a href="https://www.youtube.com/watch?v=VlAQu3dX4UM">a USB-C badge which doesn't require the NFC reader</a>. The badge itself will be slightly smaller (and a little thicker). That should make it easier to update the badge on the fly - but possibly not as convenient if you're programming hundreds of them.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2025/04/type-c.webp" alt="Graphic showing the new badge is slightly thicker, but shorter." width="715" height="387" class="aligncenter size-full wp-image-59553">

<p>If you're buying in bulk, they will also do custom printing on the badge, and can replace the plastic with wood.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2025/04/wooden.webp" alt="Badge with a wooden decal." width="180" height="378" class="aligncenter size-full wp-image-59552">

<p>For more information, or to place an order, <a href="https://www.smartdisplayer.com/contact">contact SmartDisplayer</a>.</p>

<h2 id="verdict"><a href="https://shkspr.mobi/blog/2025/04/gadget-review-6-colour-epaper-name-badge/#verdict">Verdict</a></h2>

<p>If you want a fun lanyard which is easy to change, and can reproduce a decent range of colours, this is excellent. Ideally it would be easy to flash with a phone, but the supplied software is adequate.</p>

<p>The USB writer is a little bit clunky, but it holds the badge in place while data and power are transmitted.</p>

<p>I'm astonished by just how flat this badge is. SmartDisplayer cold-lamination process is incredible. The image is <em>on</em> the badge, not under it.</p>

<p>It looks stunning - a real premium product and the price reflects that.</p>

<p>As a <em>personal</em> gadget, I think it is great. But for other uses, I'm not so sure.  Are you <em>really</em> going to be handing out $65 lanyards to all of your event attendees? Perhaps at a very expensive conference! But even then, you might want to take a deposit.</p>

<p>Anyone with a suitable reader can reflash a badge; there's no way to lock these. So they're not ideal for security.</p>

<p>If you attend lots of conferences, and are perpetually annoyed by ugly conference badges which misspell your name or don't have a personal QR code, these are a great (albeit pricey) gadget.</p>

<p>Thanks to SmartDisplayer for the review unit. Next time you see me at an event - please snap a photo of my badge!</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=59522&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2025/04/gadget-review-6-colour-epaper-name-badge/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[How to password protect a static HTML page with no JS]]></title>
		<link>https://shkspr.mobi/blog/2023/02/how-to-password-protect-a-static-html-page-with-no-js/</link>
					<comments>https://shkspr.mobi/blog/2023/02/how-to-password-protect-a-static-html-page-with-no-js/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Mon, 20 Feb 2023 12:34:34 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[demo]]></category>
		<category><![CDATA[encryption]]></category>
		<category><![CDATA[HTML5]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=44999</guid>

					<description><![CDATA[I recently saw Robin Moisson&#039;s method of password protecting a statically served HTML page. It&#039;s quite neat! But it does rely on JavaScript. That got me wondering if there was a way to encrypt a static page only using CSS?  And... I think I&#039;ve done it!  I&#039;ll warn you now, this is a deeply stupid way to solve the problem.  Here&#039;s a screencast of the demo in action: …]]></description>
										<content:encoded><![CDATA[<p>I recently saw <a href="https://github.com/robinmoisson/staticrypt">Robin Moisson's method of password protecting a statically served HTML page</a>. It's quite neat! But it does rely on JavaScript. That got me wondering if there was a way to encrypt a static page only using CSS?</p>

<p>And... I think I've done it!</p>

<p>I'll warn you now, this is a <em>deeply</em> stupid way to solve the problem.</p>

<p>Here's a screencast of <a href="https://edent.codeberg.page/stupid-css-encryption/">the demo</a> in action:</p>

<p></p><div style="width: 620px;" class="wp-video"><video class="wp-video-shortcode" id="video-44999-2" width="620" height="291" preload="metadata" controls="controls"><source type="video/mp4" src="https://shkspr.mobi/blog/wp-content/uploads/2023/02/fucking-stupid-css-encryption-lol.mp4?_=2"><a href="https://shkspr.mobi/blog/wp-content/uploads/2023/02/fucking-stupid-css-encryption-lol.mp4">https://shkspr.mobi/blog/wp-content/uploads/2023/02/fucking-stupid-css-encryption-lol.mp4</a></video></div><p></p>

<p>Type the password and the page decrypts!!!!!</p>

<p>This abuses some interesting CSS features.</p>

<p>First, you can display the <code>&lt;style&gt;</code> element on the page.</p>

<pre><code class="language-html">&lt;style&gt;
   style {
      display: block;
   }
&lt;/style&gt;
</code></pre>

<p>Secondly, you can make the CSS editable by the user with <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/contenteditable"><code>contenteditable</code></a></p>

<pre><code class="language-html">&lt;style contenteditable="true"&gt;...&lt;/style&gt;
</code></pre>

<p>As soon as a user types into the CSS, it is applied to the page. No need for JS.</p>

<p>So if a user types in a password...?</p>

<p>Let's step back a bit. How can we encrypt text using CSS?  I know... WEBFONTS!</p>

<p>A WOFF2 webfont is a Brotli compressed file. If I've <a href="https://www.rfc-editor.org/rfc/rfc7932#section-11.3">read the spec correctly</a> (LOL!) removing a chunk of a small file should render the file too damaged to read.</p>

<p>It's possible to convert the WOFF2 into Base64 and use it in the CSS:</p>

<pre><code class="language-css">@font-face {
   font-family:'encrypt_sans';
   src:url('data:application/font-woff2;charset=utf-8;base64,d09GMg...') format('woff2');
}
</code></pre>

<p>Cut a chunk out of the middle of that font, and use that missing piece as the password.  Foolproof!</p>

<p>But - I hear you say - how to encrypt text using a font?  Well, that's easy!</p>

<p>That cleverclogs <a href="https://eligrey.com/blog/rot13-dejavu-fonts/">Eli Grey has a font which encrypts text</a>.  It's magical. Well, OK, it's ROT13.  Obviously, <em>any</em> substitution cipher can probably be broken using frequency analysis.</p>

<p>Of course, it is possible to use font ligatures to obfuscate the text even more. See <a href="https://pixelambacht.nl/2015/sans-bullshit-sans/">Bullshit Sans as an example</a></p>

<p>So, there you have it. A way to <em>sort of</em> encrypt a statically served HTML file without using JavaScript.</p>

<h2 id="demo-and-source"><a href="https://shkspr.mobi/blog/2023/02/how-to-password-protect-a-static-html-page-with-no-js/#demo-and-source">Demo and Source</a></h2>

<ul>
<li><a href="https://edent.codeberg.page/stupid-css-encryption/">Demo</a></li>
<li><a href="https://codeberg.org/edent/stupid-css-encryption/">Source</a></li>
</ul>

<h2 id="possible-improvements"><a href="https://shkspr.mobi/blog/2023/02/how-to-password-protect-a-static-html-page-with-no-js/#possible-improvements">Possible Improvements</a></h2>

<p>This was a demo hastily put together while hungover one weekend. There's <em>lots</em> of room for improvement.</p>

<p>The UI abuses CSS to hide some of the boilerplate involved. It could be made to look nicer.</p>

<p>There's no way to generate an "encrypted" font. Ideally someone (not me!) would take a plaintext and generate a scrambled and ligatured font to automagically do this.</p>

<p>It is inaccessible to screen readers. The font doesn't change the underlying text.</p>

<p>Brotli compressed WOFF2 files <em>might</em> be recoverable even after substantial damage.</p>

<p>This is really <em>really</em> stupid.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=44999&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2023/02/how-to-password-protect-a-static-html-page-with-no-js/feed/</wfw:commentRss>
			<slash:comments>9</slash:comments>
		
		<enclosure url="https://shkspr.mobi/blog/wp-content/uploads/2023/02/fucking-stupid-css-encryption-lol.mp4" length="437761" type="video/mp4" />

			</item>
		<item>
		<title><![CDATA[Better Keyboard Buttons in CSS]]></title>
		<link>https://shkspr.mobi/blog/2020/05/better-keyboard-buttons-in-html/</link>
					<comments>https://shkspr.mobi/blog/2020/05/better-keyboard-buttons-in-html/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Sat, 30 May 2020 14:39:05 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[demo]]></category>
		<category><![CDATA[HowTo]]></category>
		<category><![CDATA[HTML5]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=35141</guid>

					<description><![CDATA[Here&#039;s a simple scrap of CSS which you can Ctrl+C and Ctrl+V  kbd {     border: .1em solid #aaa;     border-radius: 15%;     display: inline-block;     padding: .1em .5em;     background: linear-gradient(180deg, #fff, #fff, #fff, #ddd);     user-select: none;     cursor: pointer;     color: #000;     font-weight: bold; } kbd:hover {     background: linear-gradient(0deg, #fff, #fff, #fff, #ddd); } …]]></description>
										<content:encoded><![CDATA[<p>Here's a simple scrap of CSS which you can <kbd>Ctrl</kbd>+<kbd>C</kbd> and <kbd>Ctrl</kbd>+<kbd>V</kbd><br></p>

<pre><code class="language-css">kbd {
    border: .1em solid #aaa;
    border-radius: 15%;
    display: inline-block;
    padding: .1em .5em;
    background: linear-gradient(180deg, #fff, #fff, #fff, #ddd);
    user-select: none;
    cursor: pointer;
    color: #000;
    font-weight: bold;
}
kbd:hover {
    background: linear-gradient(0deg, #fff, #fff, #fff, #ddd);
}
</code></pre>

<h2 id="features"><a href="https://shkspr.mobi/blog/2020/05/better-keyboard-buttons-in-html/#features">Features</a></h2>

<ul>
<li>Semantic use of <a href="https://www.w3.org/TR/html52/textlevel-semantics.html#the-kbd-element">the <code>kbd</code> element</a></li>
<li>Uses <code>em</code> to ensure it is consistent with the font size of your document</li>
<li>Text of buttons is not selectable</li>
<li>Cursor will change to a pointer when hovered</li>
<li>"Push" effect when hovered</li>
</ul>

<h2 id="unicode-buttons"><a href="https://shkspr.mobi/blog/2020/05/better-keyboard-buttons-in-html/#unicode-buttons">Unicode Buttons</a></h2>

<ul>
<li>Apple command <kbd>⌘</kbd></li>
<li>Apple alt <kbd>⌥</kbd></li>
<li>Enter <kbd>⏎</kbd> or <kbd>↵</kbd></li>
<li>Backspace <kbd>⌫</kbd></li>
<li>Shift <kbd>⇪</kbd></li>
<li>Escape <kbd>␛</kbd></li>
<li>Tab <kbd>⭾</kbd></li>
</ul>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=35141&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2020/05/better-keyboard-buttons-in-html/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[How to present at a hack day]]></title>
		<link>https://shkspr.mobi/blog/2019/11/how-to-present-at-a-hack-day/</link>
					<comments>https://shkspr.mobi/blog/2019/11/how-to-present-at-a-hack-day/#respond</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Thu, 07 Nov 2019 12:46:46 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[demo]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[hackathon]]></category>
		<category><![CDATA[NaBloPoMo]]></category>
		<category><![CDATA[presentation]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=32308</guid>

					<description><![CDATA[I go to lots of hack days and hackathons. Some are big corporate affairs, some are boutique community events. They all have one thing in common - Geeks suck at giving demos.  You have 3 minutes to convince the judges - or your peers - that you&#039;ve built something brilliant. How do you do that?  One Hundred and Eighty Seconds. It is not a lot of time. So here are my top 3 tips for succeeding at a…]]></description>
										<content:encoded><![CDATA[<p>I go to lots of hack days and hackathons. Some are big corporate affairs, some are boutique community events. They all have one thing in common - Geeks <em>suck</em> at giving demos.</p>

<p>You have 3 minutes to convince the judges - or your peers - that you've built something brilliant. How do you do that?</p>

<p>One Hundred and Eighty Seconds. It is not a lot of time. So here are my top 3 tips for succeeding at a demo.</p>

<h2 id="show-the-thing"><a href="https://shkspr.mobi/blog/2019/11/how-to-present-at-a-hack-day/#show-the-thing">Show the thing</a></h2>

<p>This is the most important one. You need to show what you built. Demonstrate the thing that it does and what's clever about it.</p>

<p>The audience gets death-by-powerpoint every day at work. A good demo won't bombard them with slides.</p>

<p>Even worse, is a presenter who spends all the time talking about the problem, discusses their build environment in great detail, then runs out of time to do the actual demo.</p>

<p>I've literally seen someone spend two and a half minutes talking about why they hate Heroku and how they swapped to AWS - only to realise they have no time to show anything.</p>

<p>Here's my brief guide to showing the thing:</p>

<ul>
<li>Take 10 seconds at the start to explain the premise behind your app as simply as possible.

<ul>
<li>"I wanted to build an X, using Y, to fix Z."</li>
<li>That's really all you need to say. Your demo should fill in the gaps.</li>
</ul></li>
<li>Show the happy-path through the app. No one cares if your demo does password validation.

<ul>
<li>"When you open the app / website it shows you a thing. When you click on the thing, it does this clever thing."</li>
</ul></li>
<li>At this point, you can talk about the technology.

<ul>
<li>"It uses BlipSoft's AI library to talk to Funkenstien's middleware layer. We built a converter to recalcify the bytes."</li>
</ul></li>
<li>Show one or two other clever bits.

<ul>
<li>If the user uploads a picture of a cat, the interface dynamically changes to be cat themed!"</li>
</ul></li>
<li>Don't tell people what doesn't work.

<ul>
<li>If it can't handle photos of dogs, or if it crashes on a Tuesday, or if it only works on landscape Android phones running a bodged firmware... so what? This is a quick hacky demo. You don't need to martyr yourself.</li>
</ul></li>
<li>Have a definite ending.

<ul>
<li>"Thank you for watching! Any questions?"</li>
</ul></li>
</ul>

<p>And, you <em>do</em> need to demo something. Some PowerPoint slides are not a demo.</p>

<h2 id="keep-to-time"><a href="https://shkspr.mobi/blog/2019/11/how-to-present-at-a-hack-day/#keep-to-time">Keep to time.</a></h2>

<p>This is also the most important tip. If you run over time, you're being rude to the audience and to the other presenters. The judges will not thank you for it.</p>

<p>You have a limited time - and that should be fine. You shouldn't build something in a weekend that takes more than a few minutes to demo.</p>

<p>Actively work to make your product quick to use. In these days of engagement metrics, it's hard to remember that your user probably doesn't want to spend much time using your product.</p>

<p>Here's a bad example I saw recently. The team had built a nifty AI demo which looked at a photo and gave back useful information. They'd built this into a chat-bot.  And that's where things went wrong.</p>

<p>The demo they gave looked like this:</p>

<p><code>Bot: Hi! I'm Botso! Your vision companion! What's your name?</code></p>

<p>The presenter then typed "Hi Botso, I'm Jane. Nice to meet you."</p>

<p><code>Bot: Great to meet you too, JANE. Would you like to upload a photo?</code></p>

<p>The presenter then typed "Yes I would."</p>

<p><code>Bot: Cool, JANE. Your photo must be smaller than 4MB and be JPEG. Is that OK?</code></p>

<p>The presenter then typed "I only have a PNG."</p>

<p><code>Bot: Never mind JANE, I'll convert it. Click here to upload</code></p>

<p>All of that preamble might be good in a production app - but for a demo you can skip straight to the good stuff.</p>

<h2 id="rehearse"><a href="https://shkspr.mobi/blog/2019/11/how-to-present-at-a-hack-day/#rehearse">Rehearse.</a></h2>

<p>So how do you succeed at the first two points?  The same way <a href="https://www.carnegiehall.org/Blog/2016/04/The-Joke">you get to Carnegie Hall</a>.</p>

<p>About two hours before the demo, stop coding. If you add anything new now, I <em>guarantee</em> you're going to break something.</p>

<p>Start a timer on your phone, turn the phone over, then give the demo. You have to actually speak the words aloud - not just in your head. Click through the thing you're demoing. When you reach the end, flip your phone over again and see how long it took.  My guess is your idea of 3 minutes is different to the stopwatch's idea.</p>

<p>Work out what you can trim from your demo? Do you really need to explain your git branching strategy? Can your demo already be logged in rather than waiting for a 2FA SMS? Will the audience care about something you spent ages on?</p>

<p>If anything is seriously broken with your demo, fix it. But remove the temptation to add any new code or to change any of the outputs.</p>

<p>Go to the room where presentations will be taking place. Is there a stage? Is there a microphone? Does the WiFi work there?</p>

<p>In the half hour before the presentation, you and your team should run through your presentation repeatedly.</p>

<p>Stand up while you rehearse. Practice passing the microphone to each other. What will you do if a bit of the demo fails? Are you consistently finishing in under 3 minutes?</p>

<h2 id="isnt-this-a-bit-much"><a href="https://shkspr.mobi/blog/2019/11/how-to-present-at-a-hack-day/#isnt-this-a-bit-much">Isn't this a bit much?</a></h2>

<p>Yes, possibly.  I'm a bit obsessive about good demos.  Brilliant technology is often hidden because of a crap demo.</p>

<p>Communicating ideas is an important skill.  If your app cures cancer, but you spend 3 minutes talking about how hard a specific API is to use, no one will understand its importance.</p>

<p>If you only take one piece of advice from this blog post - just rehearse your demo a few times before going on stage.  I see too many presenters who are genuinely shocked at how quick 180 seconds go by.</p>

<p>Your hacks are amazing - and you deserve to show them off in their best light.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=32308&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2019/11/how-to-present-at-a-hack-day/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Demoing BlipDrop at Mobile Monday London]]></title>
		<link>https://shkspr.mobi/blog/2013/09/demoing-blipdrop-at-mobile-monday-london/</link>
					<comments>https://shkspr.mobi/blog/2013/09/demoing-blipdrop-at-mobile-monday-london/#respond</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Wed, 11 Sep 2013 16:01:15 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[blipdrop]]></category>
		<category><![CDATA[demo]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[mobilemonday]]></category>
		<category><![CDATA[necropost]]></category>
		<category><![CDATA[o2]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=34129</guid>

					<description><![CDATA[This is a necropost - resurrected from the now defunct blog of a previous employer. I really loved the idea of geolocated ephemeral content. And I was a little disappointed that the business never saw the potential for it. Maybe I&#039;ll find a way to relaunch it in the future.   I’ve been attending Mobile Monday London for years. It’s a great (free!) way to meet people in the mobile industry, to lea…]]></description>
										<content:encoded><![CDATA[<p><ins datetime="2020-02-03T16:44:54+00:00">This is a necropost - resurrected from the <a href="https://web.archive.org/web/20131005154941/https://thelab.o2.com/">now defunct blog of a previous employer</a>.
I really loved the idea of geolocated ephemeral content. And I was a little disappointed that the business never saw the potential for it. Maybe I'll find a way to relaunch it in the future.
</ins></p>

<p>I’ve been attending <a href="https://web.archive.org/web/20130923165654/http://www.mobilemonday.org.uk/">Mobile Monday London</a> for years. It’s a great (free!) way to meet people in the mobile industry, to learn about new trends, and to demo products.</p>

<p>Because I know so many people there, it’s always a bit nerve-wracking when I stand up to demonstrate some crazy new idea. Obviously I crave the approval of my peers but, more than that, I don’t want to look like an idiot in front of my friends.</p>

<p>On Monday, I gave BlipDrop its first public demonstration at <a href="https://web.archive.org/web/20130905112231/http://www.mobilemonday.org.uk/2013/09/mobile-miscellany-3-sep-2013-demo-night.html">Mobile Monday Demo Night</a>. We’ve been running for a couple of days with a closed group of 10 beta users so I was eager to see what people thought of it.</p>

<p><a href="https://twitter.com/AlexCraxton/status/377132372359413760"><img src="https://shkspr.mobi/blog/wp-content/uploads/2020/02/Terence-standing-up-demoing-to-a-room-full-of-people.jpg" alt="Terence standing up demoing to a room full of people." width="600" height="450" class="aligncenter size-full wp-image-34130"></a></p>

<blockquote class="social-embed" id="social-embed-377162092379652096" lang="en" itemscope="" itemtype="https://schema.org/SocialMediaPosting"><header class="social-embed-header" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><a href="https://twitter.com/karlodoherty" class="social-embed-user" itemprop="url"><img class="social-embed-avatar social-embed-avatar-circle" src="data:image/webp;base64,UklGRgQCAABXRUJQVlA4IPgBAADwCQCdASowADAAPrVGnkonI6KhrjgMyOAWiWgAtRr594SgG7DLC4AaeOeiMi/qIGVecsUrDtMiYAhEFflkIjAIsNlKeunKDUmpMNSyIBxIEY/zV09QSugAAHwCdnBNxa6qzz3/ZtsWI9aCx26HEBi9FjX6giUXV/9roZ/kQ0vAv/xDni2ps/lev4wn/+Ur/Te5kf8VmSae88pcRTERdbdQY8YteoDccKA+/nUdU88vFlsPc89/mXkZxpdXg48ut6VmzSvPk7IPMucNmuaUX0NTbUqxpPk48oQ75Qk/MXMcFC4nO8rPR4ynDGUVDOcxfY4otdxt8UuPocIvXFvJpLZN5QnTiQTqJmcTSRbfc7J+ez+zM8kQ1keypek1wG0J9uI+ymgZpIKzqqL3gRpzlnVqwPAR3c4W3owHbF1V6sFffJf3YDIIO8s4tmGdhX8yAEAp0GaUkoj4sj3I7pH5zR5TT/2wFO70mYbQ5Zy2KC53Ov/KBW5DUVv85nErtZ0kjbbG0+tWqB8BHX7dNA4yJLSxabJl35+1ubFivIu1enJr5s/6/azoPNqn9daeRaMb7BDmhOxBARF9ONk+GrlfrFFVspApC8L+J4QhF7TMeXKL3rFfEoD3Q9M0424sIYDaGsBPc1vRhvn4hEnvgG7chmsDLK4k2PpwAAA=" alt="" itemprop="image"><div class="social-embed-user-names"><p class="social-embed-user-names-name" itemprop="name">Karl O'Doherty</p>@karlodoherty</div></a><img class="social-embed-logo" alt="Twitter" src="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%0Aaria-label%3D%22Twitter%22%20role%3D%22img%22%0AviewBox%3D%220%200%20512%20512%22%3E%3Cpath%0Ad%3D%22m0%200H512V512H0%22%0Afill%3D%22%23fff%22%2F%3E%3Cpath%20fill%3D%22%231d9bf0%22%20d%3D%22m458%20140q-23%2010-45%2012%2025-15%2034-43-24%2014-50%2019a79%2079%200%2000-135%2072q-101-7-163-83a80%2080%200%200024%20106q-17%200-36-10s-3%2062%2064%2079q-19%205-36%201s15%2053%2074%2055q-50%2040-117%2033a224%20224%200%2000346-200q23-16%2040-41%22%2F%3E%3C%2Fsvg%3E"></header><section class="social-embed-text" itemprop="articleBody"><small class="social-embed-reply"><a href="https://twitter.com/torgo/status/377133683712344064">Replying to @torgo</a></small>It really is a great idea. Ephemeral content and data. Love it. Just signed up to beta version of <a href="https://twitter.com/hashtag/blipdrop">#blipdrop</a> <a href="https://twitter.com/torgo">@torgo</a> <a href="https://twitter.com/edent">@edent</a> <a href="https://twitter.com/thelab_uk">@thelab_uk</a></section><hr class="social-embed-hr"><footer class="social-embed-footer"><a href="https://twitter.com/karlodoherty/status/377162092379652096"><span aria-label="0 likes" class="social-embed-meta">❤️ 0</span><span aria-label="0 replies" class="social-embed-meta">💬 0</span><span aria-label="0 reposts" class="social-embed-meta">🔁 0</span><time datetime="2013-09-09T20:10:24.000Z" itemprop="datePublished">20:10 - Mon 09 September 2013</time></a></footer></blockquote>

<blockquote class="social-embed" id="social-embed-377133477554307072" lang="en" itemscope="" itemtype="https://schema.org/SocialMediaPosting"><header class="social-embed-header" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><a href="https://twitter.com/AlexCraxton" class="social-embed-user" itemprop="url"><img class="social-embed-avatar social-embed-avatar-circle" src="data:image/webp;base64,UklGRogCAABXRUJQVlA4IHwCAAAQDACdASowADAAPq1GnUmmI6MhLizIwBWJYwCsNAr9NmjumIkoxTtJjO1U7e34VEc5P+ciVbkVNOT7p70leD3f2mlAPbARlwXQP82viU70gMy9JKxU1lTeDvIlpINVxLgKHh2u9myaT+AA/v4lOjvI5X2q6+Sj1ATwNfKyHxEcDplTUaI6Pc6NdOxxK1ScHvVl8E6HcCVx8klerFtQjxQvEqKTbB/RyKoDxsmCm1fCdb+S1XAYPtXBi5i69fJgbQz0D0pY9Gcx4TlzwSKhAxdp26IGzq7UtiBw5rBVsWMbJc1S4mSz4XHd7BHGsBK2Q07anmiwskAGnb1aeQMbUEMyn9xj4wnwKBirizUbLnRTk0WIod5+IRukh64SmSt8uvLIq+ol+EJtWAp1stkUOd0/1VpHZVsXpN0W1Wohb/R4eGYN72KZIQgQ18YdCEYVhYzUNYTgXO7bdrylD5v2blRhs0cDSEzI63IsniOloTsTvJVEyNL8wZeBf5PPo5NHnW4IWZMBMzPbYdf/X1zPjvrN8d5sDH2cto265WWWOpxCixKWiNGv14oQ2EUU0BjY0yc7VOQ1RHw29i8lexvQ1q8dU7U09d5p1S4nXV6IHqtNmOnzMpCNNmDO3Dk7P1VKa/eIaQN0bvYfKLvl9soTq8HHNkJkJRpLaVwtUE+XHcF4O8w4pVKHmHM3wIPTzu+xlkIfBm2ZBZiDcDux2s0RlDbxSp+qlKol6QWdd39AAVI2zI72SX2XqVb5FuXy7zksVMWI89J52pDjPTF/NG7ra4pepmqH3Mbq5j+7pTF3hBljX3q+COuXBPrE2DMpYFShgXJldbpPf/5ZBo4QAAA=" alt="" itemprop="image"><div class="social-embed-user-names"><p class="social-embed-user-names-name" itemprop="name">Alex Craxton</p>@AlexCraxton</div></a><img class="social-embed-logo" alt="Twitter" src="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%0Aaria-label%3D%22Twitter%22%20role%3D%22img%22%0AviewBox%3D%220%200%20512%20512%22%3E%3Cpath%0Ad%3D%22m0%200H512V512H0%22%0Afill%3D%22%23fff%22%2F%3E%3Cpath%20fill%3D%22%231d9bf0%22%20d%3D%22m458%20140q-23%2010-45%2012%2025-15%2034-43-24%2014-50%2019a79%2079%200%2000-135%2072q-101-7-163-83a80%2080%200%200024%20106q-17%200-36-10s-3%2062%2064%2079q-19%205-36%201s15%2053%2074%2055q-50%2040-117%2033a224%20224%200%2000346-200q23-16%2040-41%22%2F%3E%3C%2Fsvg%3E"></header><section class="social-embed-text" itemprop="articleBody"><a href="https://twitter.com/hashtag/BlipDrop">#BlipDrop</a> hey I remember throwing around ideas on a shifting context of content based off earth rotation and weather patterns ;-) <a href="https://twitter.com/hashtag/momolo">#momolo</a></section><hr class="social-embed-hr"><footer class="social-embed-footer"><a href="https://twitter.com/AlexCraxton/status/377133477554307072"><span aria-label="0 likes" class="social-embed-meta">❤️ 0</span><span aria-label="0 replies" class="social-embed-meta">💬 0</span><span aria-label="0 reposts" class="social-embed-meta">🔁 0</span><time datetime="2013-09-09T18:16:42.000Z" itemprop="datePublished">18:16 - Mon 09 September 2013</time></a></footer></blockquote>

<blockquote class="social-embed" id="social-embed-377210913406742528" lang="en" itemscope="" itemtype="https://schema.org/SocialMediaPosting"><blockquote class="social-embed" id="social-embed-377139102363426816" lang="en" itemscope="" itemtype="https://schema.org/SocialMediaPosting"><header class="social-embed-header" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><a href="https://twitter.com/edent" class="social-embed-user" itemprop="url"><img class="social-embed-avatar social-embed-avatar-circle" src="data:image/webp;base64,UklGRkgBAABXRUJQVlA4IDwBAACQCACdASowADAAPrVQn0ynJCKiJyto4BaJaQAIIsx4Au9dhDqVA1i1RoRTO7nbdyy03nM5FhvV62goUj37tuxqpfpPeTBZvrJ78w0qAAD+/hVyFHvYXIrMCjny0z7wqsB9/QE08xls/AQdXJFX0adG9lISsm6kV96J5FINBFXzHwfzMCr4N6r3z5/Aa/wfEoVGX3H976she3jyS8RqJv7Jw7bOxoTSPlu4gNbfXYZ9TnbdQ0MNnMObyaRQLIu556jIj03zfJrVgqRM8GPwRoWb1M9AfzFe6Mtg13uEIqrTHmiuBpH+bTVB5EEQ3uby0C//XOAPJOFv4QV8RZDPQd517Khyba8Jlr97j2kIBJD9K3mbOHSHiQDasj6Y3forATbIg4QZHxWnCeqqMkVYfUAivuL0L/68mMnagAAA" alt="" itemprop="image"><div class="social-embed-user-names"><p class="social-embed-user-names-name" itemprop="name">Terence Eden is on Mastodon</p>@edent</div></a><img class="social-embed-logo" alt="Twitter" src="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%0Aaria-label%3D%22Twitter%22%20role%3D%22img%22%0AviewBox%3D%220%200%20512%20512%22%3E%3Cpath%0Ad%3D%22m0%200H512V512H0%22%0Afill%3D%22%23fff%22%2F%3E%3Cpath%20fill%3D%22%231d9bf0%22%20d%3D%22m458%20140q-23%2010-45%2012%2025-15%2034-43-24%2014-50%2019a79%2079%200%2000-135%2072q-101-7-163-83a80%2080%200%200024%20106q-17%200-36-10s-3%2062%2064%2079q-19%205-36%201s15%2053%2074%2055q-50%2040-117%2033a224%20224%200%2000346-200q23-16%2040-41%22%2F%3E%3C%2Fsvg%3E"></header><section class="social-embed-text" itemprop="articleBody">Another silly <a href="https://twitter.com/hashtag/MoMoLo">#MoMoLo</a> YARRLY <a href="http://yarrly.com/y/8hle1aavy97f4d3a0">yarrly.com/y/8hle1aavy97f…</a></section><hr class="social-embed-hr"><footer class="social-embed-footer"><a href="https://twitter.com/edent/status/377139102363426816"><span aria-label="0 likes" class="social-embed-meta">❤️ 0</span><span aria-label="0 replies" class="social-embed-meta">💬 0</span><span aria-label="1 reposts" class="social-embed-meta">🔁 1</span><time datetime="2013-09-09T18:39:03.000Z" itemprop="datePublished">18:39 - Mon 09 September 2013</time></a></footer></blockquote><header class="social-embed-header" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><a href="https://twitter.com/HollyClarke" class="social-embed-user" itemprop="url"><img class="social-embed-avatar social-embed-avatar-circle" src="data:image/webp;base64,UklGRhIDAABXRUJQVlA4IAYDAABwDACdASowADAAPp1ClkmlpCIhONtsALATiWUAzCOoKw7zm+po65wGyCtflgaQKaL5Bn1TcIL0IPzKCUrnX87I2p9VrYA9mm1uDv0+nWTwMBf/072IaYH8XoimxXTMlExffoIqtEl2fb5hNgAA/vTixYF+Xew5s9X8hj4g3B6xQHWBYvnff8H7rnk9sUqj0HqmKWr8QWNIMFtKCXs5TnkOyXYRXv8j5+CcIx5AOby5Rq4zTx+f8vn6uOIukYcOmO6QInmxKh2ajuZvT19/rm3dqVuzXlCCl4yOI98oICFl1xP07kcEoFvH5xNpa12J5hEou3VOw8E21Vem8iUVojNexKHr9dVXrXJrl6AVULNF/3bXno69yVyO+a7/coYrK3IfANsvxEh1xwpjQZbkcM9TH6/GwoZ5LKKqUBMH1C3qjdL+ETiUIIoCLaWj8l9c1AIUH6regBUynXKpr2R+Se3h/N1uquHFY2f9Ugjg9DrIYsfqMFP2Nfj4I9D7vAOWQqQ4NzZUau9TY6XK1HwIu0F39d824v0sptJqqZGUBca+TgtRv3HeElFftQJdPJ92q9ukkZGCgvgLCQ0/oiLGbx0r0sz3AYX6QTBraGwhOIIEIY4wWGf9eLDtHRwYqKgZsjWxlFPDYAqKLAiFNW952wtC885aRL5dH/SPJk/ofuhVpHCZjNq6YBEgwgfXyEfmPcucVVxqwWH3vwdnck/X9KMkG1J/jAW9p0oXUA4VBvKqbADZZpk1L0G4KATLHe/8+1Vh5xwGO+8oPapHAtd+kHp7C90t8uAuCHHhftHGSv5lCG3EWSF+eZs8aPdEmDwLFKB35MWmBe/nARHJuxk74jwnd9c4y+dOa9RmB235kU2B5P0/LDSRH9qVlNGQTWGRs4aG8q5M6Dvi9vTY6aJXgLUd262RcfYYqsE92NJkOg5SIaZwK4HmcsgQQ/OKoJgkdjEZk94UiobC9+t7uOkKbace0V0iYhtem8QOaIEiNJaZDTsNLTb4pP6RXJBg4+gbGrxwmwL/AAA=" alt="" itemprop="image"><div class="social-embed-user-names"><p class="social-embed-user-names-name" itemprop="name">Holly Clarke</p>@HollyClarke</div></a><img class="social-embed-logo" alt="Twitter" src="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%0Aaria-label%3D%22Twitter%22%20role%3D%22img%22%0AviewBox%3D%220%200%20512%20512%22%3E%3Cpath%0Ad%3D%22m0%200H512V512H0%22%0Afill%3D%22%23fff%22%2F%3E%3Cpath%20fill%3D%22%231d9bf0%22%20d%3D%22m458%20140q-23%2010-45%2012%2025-15%2034-43-24%2014-50%2019a79%2079%200%2000-135%2072q-101-7-163-83a80%2080%200%200024%20106q-17%200-36-10s-3%2062%2064%2079q-19%205-36%201s15%2053%2074%2055q-50%2040-117%2033a224%20224%200%2000346-200q23-16%2040-41%22%2F%3E%3C%2Fsvg%3E"></header><section class="social-embed-text" itemprop="articleBody"><small class="social-embed-reply"><a href="https://twitter.com/edent/status/377139102363426816">Replying to @edent</a></small><a href="https://twitter.com/edent">@edent</a> lovely to meet you. BlipDrop looks ace! I had so many questions, sad you couldn't come to dinner for me to grill you in pirate lingo</section><hr class="social-embed-hr"><footer class="social-embed-footer"><a href="https://twitter.com/HollyClarke/status/377210913406742528"><span aria-label="0 likes" class="social-embed-meta">❤️ 0</span><span aria-label="1 replies" class="social-embed-meta">💬 1</span><span aria-label="0 reposts" class="social-embed-meta">🔁 0</span><time datetime="2013-09-09T23:24:24.000Z" itemprop="datePublished">23:24 - Mon 09 September 2013</time></a></footer></blockquote>

<blockquote class="social-embed" id="social-embed-377142218425139200" lang="en" itemscope="" itemtype="https://schema.org/SocialMediaPosting"><blockquote class="social-embed" id="social-embed-377141513475858432" lang="en" itemscope="" itemtype="https://schema.org/SocialMediaPosting"><header class="social-embed-header" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><a href="https://twitter.com/edent" class="social-embed-user" itemprop="url"><img class="social-embed-avatar social-embed-avatar-circle" src="data:image/webp;base64,UklGRkgBAABXRUJQVlA4IDwBAACQCACdASowADAAPrVQn0ynJCKiJyto4BaJaQAIIsx4Au9dhDqVA1i1RoRTO7nbdyy03nM5FhvV62goUj37tuxqpfpPeTBZvrJ78w0qAAD+/hVyFHvYXIrMCjny0z7wqsB9/QE08xls/AQdXJFX0adG9lISsm6kV96J5FINBFXzHwfzMCr4N6r3z5/Aa/wfEoVGX3H976she3jyS8RqJv7Jw7bOxoTSPlu4gNbfXYZ9TnbdQ0MNnMObyaRQLIu556jIj03zfJrVgqRM8GPwRoWb1M9AfzFe6Mtg13uEIqrTHmiuBpH+bTVB5EEQ3uby0C//XOAPJOFv4QV8RZDPQd517Khyba8Jlr97j2kIBJD9K3mbOHSHiQDasj6Y3forATbIg4QZHxWnCeqqMkVYfUAivuL0L/68mMnagAAA" alt="" itemprop="image"><div class="social-embed-user-names"><p class="social-embed-user-names-name" itemprop="name">Terence Eden is on Mastodon</p>@edent</div></a><img class="social-embed-logo" alt="Twitter" src="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%0Aaria-label%3D%22Twitter%22%20role%3D%22img%22%0AviewBox%3D%220%200%20512%20512%22%3E%3Cpath%0Ad%3D%22m0%200H512V512H0%22%0Afill%3D%22%23fff%22%2F%3E%3Cpath%20fill%3D%22%231d9bf0%22%20d%3D%22m458%20140q-23%2010-45%2012%2025-15%2034-43-24%2014-50%2019a79%2079%200%2000-135%2072q-101-7-163-83a80%2080%200%200024%20106q-17%200-36-10s-3%2062%2064%2079q-19%205-36%201s15%2053%2074%2055q-50%2040-117%2033a224%20224%200%2000346-200q23-16%2040-41%22%2F%3E%3C%2Fsvg%3E"></header><section class="social-embed-text" itemprop="articleBody"><small class="social-embed-reply"><a href="https://twitter.com/CSwalmius/status/377134504567390209">Replying to @CSwalmius</a></small><a href="https://twitter.com/CSwalmius">@CSwalmius</a> does "fun" count as a valid use case? :-) <br>TBH, waiting to see what users do with it. <br><a href="https://twitter.com/hashtag/MoMoLo">#MoMoLo</a></section><hr class="social-embed-hr"><footer class="social-embed-footer"><a href="https://twitter.com/edent/status/377141513475858432"><span aria-label="0 likes" class="social-embed-meta">❤️ 0</span><span aria-label="0 replies" class="social-embed-meta">💬 0</span><span aria-label="0 reposts" class="social-embed-meta">🔁 0</span><time datetime="2013-09-09T18:48:38.000Z" itemprop="datePublished">18:48 - Mon 09 September 2013</time></a></footer></blockquote><header class="social-embed-header" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><a href="https://twitter.com/Changify" class="social-embed-user" itemprop="url"><img class="social-embed-avatar social-embed-avatar-circle" src="data:image/webp;base64,UklGRnoCAABXRUJQVlA4IG4CAACwDACdASowADAAPrVGoEmnI6MhLjgMyOAWiWwArDLoQe+x8hhd34DbWeYDzsPR3/wN8W3lmuzvruMg6Umwy09IEzQd/ybfGioHe5JFuNAHyp8DQdHA2vgSPfnuzQe9wK8IxVcwzbtzqRvONyVrAAD+/Nal4G1Ws5HmVLLmHYQ16aY12Ufu3Atzb187fLvb3DCeBJ3fsc4+BTDvIhWUTNmLy7t4+cj/B30aqZWBetu9GNoYXAl60NMtj68bZTE+skqMDnHIv60QZEXkRi4hHorvA8H/eMvJ13N5CncdsNzttUuylxsm45URdOaYG37BqnwtLfvPfQaBwXk2HtyABKHaaxq7NpAG6j3rfFlu2HJmcXz83a0UubBQixW5gt811XMO325ljKlcXf1H5YRb1rKlh/H+BQepOlmT3jGk8XmPDRmGQ0h8zPRH63B81BLOF9d771Vmf8sDtY5Jnt+cjIA58Ggu0v018vHO875YXMFlpoU6scgNAonMppT8Y/n+F20kQmhv4WYbmB9Pb6pUUfFPpyUiokckVU6ZrtqwDZ4jE19JhsDWoSNO+wkG84qEsNEO61u5266rvD9749pfKevQGSdlCgH+hg4DWUyGwJ6LqS4f6conZENwUdWgTUekVIYLhGmAWVDO4hGl6txsF9jeqr8/t6d08igoMAjgQMq4un/s6f60JyrxcojV8RCGvQfp5RO7tlw3NYT/yjSW1YMerzWodfrsZ/JRHgGPNldO0vrti/o5UgF6wM1S1qiRuuGoNzXiYPwAZ/F8AZ5wM72IX0Hw9O5X+QK87TSSe5rh2wvmByJ0mv9HfZcJjAAA" alt="" itemprop="image"><div class="social-embed-user-names"><p class="social-embed-user-names-name" itemprop="name">Changify</p>@Changify</div></a><img class="social-embed-logo" alt="Twitter" src="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%0Aaria-label%3D%22Twitter%22%20role%3D%22img%22%0AviewBox%3D%220%200%20512%20512%22%3E%3Cpath%0Ad%3D%22m0%200H512V512H0%22%0Afill%3D%22%23fff%22%2F%3E%3Cpath%20fill%3D%22%231d9bf0%22%20d%3D%22m458%20140q-23%2010-45%2012%2025-15%2034-43-24%2014-50%2019a79%2079%200%2000-135%2072q-101-7-163-83a80%2080%200%200024%20106q-17%200-36-10s-3%2062%2064%2079q-19%205-36%201s15%2053%2074%2055q-50%2040-117%2033a224%20224%200%2000346-200q23-16%2040-41%22%2F%3E%3C%2Fsvg%3E"></header><section class="social-embed-text" itemprop="articleBody"><small class="social-embed-reply"><a href="https://twitter.com/edent/status/377141513475858432">Replying to @edent</a></small><a href="https://twitter.com/edent">@edent</a> <a href="https://twitter.com/CSwalmius">@CSwalmius</a> fun increases adoption big time guess boredom killer <a href="https://twitter.com/YarrlyApp">@YarrlyApp</a></section><hr class="social-embed-hr"><footer class="social-embed-footer"><a href="https://twitter.com/Changify/status/377142218425139200"><span aria-label="1 likes" class="social-embed-meta">❤️ 1</span><span aria-label="0 replies" class="social-embed-meta">💬 0</span><span aria-label="0 reposts" class="social-embed-meta">🔁 0</span><time datetime="2013-09-09T18:51:26.000Z" itemprop="datePublished">18:51 - Mon 09 September 2013</time></a></footer></blockquote>

<blockquote class="social-embed" id="social-embed-377133245974200320" lang="en" itemscope="" itemtype="https://schema.org/SocialMediaPosting"><header class="social-embed-header" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><a href="https://twitter.com/karlodoherty" class="social-embed-user" itemprop="url"><img class="social-embed-avatar social-embed-avatar-circle" src="data:image/webp;base64,UklGRgQCAABXRUJQVlA4IPgBAADwCQCdASowADAAPrVGnkonI6KhrjgMyOAWiWgAtRr594SgG7DLC4AaeOeiMi/qIGVecsUrDtMiYAhEFflkIjAIsNlKeunKDUmpMNSyIBxIEY/zV09QSugAAHwCdnBNxa6qzz3/ZtsWI9aCx26HEBi9FjX6giUXV/9roZ/kQ0vAv/xDni2ps/lev4wn/+Ur/Te5kf8VmSae88pcRTERdbdQY8YteoDccKA+/nUdU88vFlsPc89/mXkZxpdXg48ut6VmzSvPk7IPMucNmuaUX0NTbUqxpPk48oQ75Qk/MXMcFC4nO8rPR4ynDGUVDOcxfY4otdxt8UuPocIvXFvJpLZN5QnTiQTqJmcTSRbfc7J+ez+zM8kQ1keypek1wG0J9uI+ymgZpIKzqqL3gRpzlnVqwPAR3c4W3owHbF1V6sFffJf3YDIIO8s4tmGdhX8yAEAp0GaUkoj4sj3I7pH5zR5TT/2wFO70mYbQ5Zy2KC53Ov/KBW5DUVv85nErtZ0kjbbG0+tWqB8BHX7dNA4yJLSxabJl35+1ubFivIu1enJr5s/6/azoPNqn9daeRaMb7BDmhOxBARF9ONk+GrlfrFFVspApC8L+J4QhF7TMeXKL3rFfEoD3Q9M0424sIYDaGsBPc1vRhvn4hEnvgG7chmsDLK4k2PpwAAA=" alt="" itemprop="image"><div class="social-embed-user-names"><p class="social-embed-user-names-name" itemprop="name">Karl O'Doherty</p>@karlodoherty</div></a><img class="social-embed-logo" alt="Twitter" src="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%0Aaria-label%3D%22Twitter%22%20role%3D%22img%22%0AviewBox%3D%220%200%20512%20512%22%3E%3Cpath%0Ad%3D%22m0%200H512V512H0%22%0Afill%3D%22%23fff%22%2F%3E%3Cpath%20fill%3D%22%231d9bf0%22%20d%3D%22m458%20140q-23%2010-45%2012%2025-15%2034-43-24%2014-50%2019a79%2079%200%2000-135%2072q-101-7-163-83a80%2080%200%200024%20106q-17%200-36-10s-3%2062%2064%2079q-19%205-36%201s15%2053%2074%2055q-50%2040-117%2033a224%20224%200%2000346-200q23-16%2040-41%22%2F%3E%3C%2Fsvg%3E"></header><section class="social-embed-text" itemprop="articleBody">Can see myself loving blip drop from <a href="https://twitter.com/edent">@edent</a> for time/location dependent vids <a href="https://twitter.com/hashtag/momolo">#momolo</a></section><hr class="social-embed-hr"><footer class="social-embed-footer"><a href="https://twitter.com/karlodoherty/status/377133245974200320"><span aria-label="0 likes" class="social-embed-meta">❤️ 0</span><span aria-label="0 replies" class="social-embed-meta">💬 0</span><span aria-label="0 reposts" class="social-embed-meta">🔁 0</span><time datetime="2013-09-09T18:15:47.000Z" itemprop="datePublished">18:15 - Mon 09 September 2013</time></a></footer></blockquote>

<blockquote class="social-embed" id="social-embed-377133191758245888" lang="en" itemscope="" itemtype="https://schema.org/SocialMediaPosting"><header class="social-embed-header" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><a href="https://twitter.com/Jimbola" class="social-embed-user" itemprop="url"><img class="social-embed-avatar social-embed-avatar-circle" src="data:image/webp;base64,UklGRtgBAABXRUJQVlA4IMwBAAAQCwCdASowADAAPrVOnkqnJCKhrjgLMOAWiWkADpS2fd+LiggScp/FpcEh/uAURwiRSa+uJ0W0MQkb1FFMBvfuqX6rPQ+nIi6NrKjhSH2es9nZDnusI3AinbZIG+lZAmgAAP74JqPbcNvC4q4weHkJjEBN55P1SAOoFAWzar3nJjb93Ughkj3pE3k3/H6zR8nt/k0HzA/R2OTxzUsJ7sw+d+e8ychkaPvZoYYgUP68iniVYyis+KD3OdYFskTkdIqDsSJpWFjpopw2qUt0yll7VYPqrYGVSmhy00PkSyPCf2l6tWVC15GWAOvQo3WgS+L8fPiUznGw5T0+YjtRmzyIVmR/FJFfpDgmw6pi3XHMs6oRGNRgFFaVVgiIq1YcDDPtaOQMW8pBj6PA0vUGym4K+uCZHvs78vTJrWOWb1LKuQkfyGF8uhAwbEBXX53EUuItXLrhARYAnTqimWON2cTAOsC4q0n8LBpF25BLKK/G1nFbihiVBDdhHnUuWM6f3WoBncXPS6tES2w01zVLKTPdUkS6sOfvquGtkpDiYYj0qFH4r/dTRCLi435XkPHSeRaR2eWevoVdQf43qqwsQ5q8vKOwcHUsvH8bgAAA" alt="" itemprop="image"><div class="social-embed-user-names"><p class="social-embed-user-names-name" itemprop="name">James Griffin</p>@Jimbola</div></a><img class="social-embed-logo" alt="Twitter" src="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%0Aaria-label%3D%22Twitter%22%20role%3D%22img%22%0AviewBox%3D%220%200%20512%20512%22%3E%3Cpath%0Ad%3D%22m0%200H512V512H0%22%0Afill%3D%22%23fff%22%2F%3E%3Cpath%20fill%3D%22%231d9bf0%22%20d%3D%22m458%20140q-23%2010-45%2012%2025-15%2034-43-24%2014-50%2019a79%2079%200%2000-135%2072q-101-7-163-83a80%2080%200%200024%20106q-17%200-36-10s-3%2062%2064%2079q-19%205-36%201s15%2053%2074%2055q-50%2040-117%2033a224%20224%200%2000346-200q23-16%2040-41%22%2F%3E%3C%2Fsvg%3E"></header><section class="social-embed-text" itemprop="articleBody">Now up <a href="https://twitter.com/edent">@edent</a> demoing BlipDrop - location based experiences for a short time span - Like Snapchat but you have to be there <a href="https://twitter.com/hashtag/momolo">#momolo</a></section><hr class="social-embed-hr"><footer class="social-embed-footer"><a href="https://twitter.com/Jimbola/status/377133191758245888"><span aria-label="0 likes" class="social-embed-meta">❤️ 0</span><span aria-label="1 replies" class="social-embed-meta">💬 1</span><span aria-label="0 reposts" class="social-embed-meta">🔁 0</span><time datetime="2013-09-09T18:15:34.000Z" itemprop="datePublished">18:15 - Mon 09 September 2013</time></a></footer></blockquote>

<blockquote class="social-embed" id="social-embed-377132853165047808" lang="en" itemscope="" itemtype="https://schema.org/SocialMediaPosting"><header class="social-embed-header" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><a href="https://twitter.com/heathcr" class="social-embed-user" itemprop="url"><img class="social-embed-avatar social-embed-avatar-circle" src="data:image/webp;base64,UklGRhQCAABXRUJQVlA4IAgCAADwCgCdASowADAAPrVUpk2nJKOiJzgJIOAWiWMAx+q7XYDMGYAaVloBBH+ZmKhccDEqggCvjsS2qCn2HspPI0m/QmvoxD+wMvwaxH59fzzf4MDuuLUvu1N4jk3w+34tJ1AA/vstzXkIq4EuClUIes2orf1uHSpAGRp7OuJ9QlxxGeXBv4NTDrK8tDmWXS4yIhTc6XzravIiLBJgZ5vdzKaYRC/d0VAt0yZXUrQAWPLOHXTY5iemwAz+eHccUrq1+vgA8nMOb4ti8lgHwwACNobPFmE4+PjZPiv5gqc9vRoSAQA3jOi9yrAGI63iG6MUs2xjYFgkq24Mtt5qJMyM1yFpXwLWXvw6g5SOmm1K+LDRP6hgR4QU5fJb0eqs7MV3Dr7zKoIB55d768wPN/2m2MnCiA6+TKTlHj86F1g7Byy4yz5InaBWA9K8BK6EILKwfkHyUZ7ERHgmzwoH3yQY8I9vnY59420uX9a0eAfulL/O/neAEqDOnIHiLdF9RJQRXB1lLRENuMVPncoI3OChL64lYQw7FD/5oqkYlkp8u/5QEuHL4KP+NyOPMsWdELzBDXSsOUxfSO64ZPTEl1DvY1kCUyuGlFXtq/nyrPuzOX0EHtQyraUoxh5fuP+olwflf0x7e9QnEwRNJgv3BMYE/fe3NQkF9qyYqw2BI3DuZuxy7+XUFtVkQAAA" alt="" itemprop="image"><div class="social-embed-user-names"><p class="social-embed-user-names-name" itemprop="name">Craig Heath</p>@heathcr</div></a><img class="social-embed-logo" alt="Twitter" src="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%0Aaria-label%3D%22Twitter%22%20role%3D%22img%22%0AviewBox%3D%220%200%20512%20512%22%3E%3Cpath%0Ad%3D%22m0%200H512V512H0%22%0Afill%3D%22%23fff%22%2F%3E%3Cpath%20fill%3D%22%231d9bf0%22%20d%3D%22m458%20140q-23%2010-45%2012%2025-15%2034-43-24%2014-50%2019a79%2079%200%2000-135%2072q-101-7-163-83a80%2080%200%200024%20106q-17%200-36-10s-3%2062%2064%2079q-19%205-36%201s15%2053%2074%2055q-50%2040-117%2033a224%20224%200%2000346-200q23-16%2040-41%22%2F%3E%3C%2Fsvg%3E"></header><section class="social-embed-text" itemprop="articleBody"><a href="https://twitter.com/hashtag/MoMoLo">#MoMoLo</a> <a href="https://twitter.com/edent">@edent</a> demoing BlipDrop. Cool idea, I liked the blog post!</section><hr class="social-embed-hr"><footer class="social-embed-footer"><a href="https://twitter.com/heathcr/status/377132853165047808"><span aria-label="0 likes" class="social-embed-meta">❤️ 0</span><span aria-label="0 replies" class="social-embed-meta">💬 0</span><span aria-label="0 reposts" class="social-embed-meta">🔁 0</span><time datetime="2013-09-09T18:14:13.000Z" itemprop="datePublished">18:14 - Mon 09 September 2013</time></a></footer></blockquote>

<p>I can really recommend getting involved in Mobile Monday. They offer some great free talks, and provide excellent opportunities for new and established businesses.</p>

<p>Massive thanks to <a href="https://productdoctor.co.uk/">Julia Shalet</a> for all her organisational skills, and to <a href="https://www.linkedin.com/in/jorabin">Jo Rabin</a> for being such an effective host – indeed, the whole team put on a fantastic event.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=34129&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2013/09/demoing-blipdrop-at-mobile-monday-london/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Optical Theremin - Demo]]></title>
		<link>https://shkspr.mobi/blog/2012/06/optical-theremin-demo/</link>
					<comments>https://shkspr.mobi/blog/2012/06/optical-theremin-demo/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Sun, 10 Jun 2012 15:08:49 +0000</pubDate>
				<category><![CDATA[mobile]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[demo]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[hacks]]></category>
		<category><![CDATA[ota12]]></category>
		<category><![CDATA[over the air]]></category>
		<category><![CDATA[theremin]]></category>
		<guid isPermaLink="false">http://shkspr.mobi/blog/?p=5897</guid>

					<description><![CDATA[At Over The Air I demonstrated what I considered a novel use for one of Android&#039;s sensors.  I wanted to create a Theremin - a type of musical instrument which is played by moving one&#039;s hand over it - changing pitch and tone by moving nearer or further away.    My first attempt used the proximity sensor.  However, on all the Android phones I tried the sensor&#039;s accuracy was binary - it could sense…]]></description>
										<content:encoded><![CDATA[<p>At <a href="https://shkspr.mobi/blog/2012/06/over-the-air-2012/">Over The Air</a> I demonstrated what I considered a novel use for one of Android's sensors.  I wanted to create a Theremin - a type of musical instrument which is played by moving one's hand over it - changing pitch and tone by moving nearer or further away.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2012/06/Edent-theremin-ota12.jpg" alt="" width="500" height="333" class="aligncenter size-full wp-image-15496">

<p>My first attempt used the <a href="http://developer.android.com/reference/android/hardware/Sensor.html#TYPE_PROXIMITY">proximity sensor</a>.  However, on all the Android phones I tried the sensor's accuracy was binary - it could sense if something was close by, but not say <em>how</em> close.</p>

<p>So, what else could I use to detect how near or far a hand was from the screen?  I decided to co-opt the <a href="http://developer.android.com/reference/android/hardware/Sensor.html#TYPE_LIGHT">Light Sensor</a>.  This is normally used to automatically adjust the brightness of the screen - making it easier to see in strong light.</p>

<p>When the light sensor is uncovered, the total lux (that's the measure of light) may be 100. As a hand moves closer to it, that value will dip until it reaches 0 (or, on my phone, 4).</p>

<p>We can then represent that light value as a sound - essentially transforming lx into Hz!</p>

<p>This is what is sounds like</p>

<audio controls="controls">
   <source src="https://shkspr.mobi/blog/wp-content/uploads/2012/06/Terence-Eden-Teremin.ogg">
   <source src="https://shkspr.mobi/blog/wp-content/uploads/2012/06/Terence-Eden-Teremin.mp3">
  Your browser does not support the audio element - <a href="https://shkspr.mobi/blog/wp-content/uploads/2012/06/Terence-Eden-Teremin.mp3">download the track</a>.
</audio>

<p>Beautiful, I'm sure you agree!  You can hear <a href="https://www.bbc.co.uk/programmes/p02swr6h">an interview where I discuss this app with the BBC's Jamillah Knowles on the Outriders Podcast</a> (22m 50s in).
</p><figure class="audio">
	<figcaption>🔊 Outriders 05 Jun 12: Moscow and Bletchley Park<br>🎤 BBC Radio 5 live</figcaption>
	
	<audio controls="" loading="lazy" src="https://shkspr.mobi/blog/wp-content/uploads/2012/06/OutridersPodcast-20120605-MoscowAndBletchleyPark.mp3">
		<p>💾 <a href="https://shkspr.mobi/blog/wp-content/uploads/2012/06/OutridersPodcast-20120605-MoscowAndBletchleyPark.mp3">Download this audio file</a>.</p>
	</audio>
</figure><p></p>

<p>If you want to have a play with it, the <a href="https://web.archive.org/web/20130623224607/https://play.google.com/store/apps/details?id=mobi.shkspr.android.theramin">Optical Theremin Demo is in the Google App Store</a>.  Do note, it was coded in a couple of sleep deprived hours, crashes when you exit, and can produce "music" which scares children and animals. You have been warned!</p>

<h2 id="use-the-source-luke"><a href="https://shkspr.mobi/blog/2012/06/optical-theremin-demo/#use-the-source-luke">Use The Source, Luke!</a></h2>

<p>I've included the full source below, but I'd like to pick out two points which may be of interest.</p>

<h3 id="getting-the-lux-value"><a href="https://shkspr.mobi/blog/2012/06/optical-theremin-demo/#getting-the-lux-value">Getting The Lux Value</a></h3>

<p>Firstly, we need to register a listener for the light sensor.</p>

<pre><code class="language-java">@Override public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
   mLightSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
   mSensorManager.registerListener(this, mLightSensor, SensorManager.SENSOR_DELAY_FASTEST);
}
</code></pre>

<p>Every time the light sensor changes, this method will be called. It takes the light value and performs a simple mathematical transformation on it (adds 10, multiplies by 5).  I found that this gave the most pleasing sound - but you can adjust it to your tastes</p>

<pre><code class="language-java">@Override public void onSensorChanged(SensorEvent event){
   if (event.sensor.getType()==Sensor.TYPE_LIGHT){
       mLux = event.values[0];
       freqOfTone = (mLux +10) * 5;
   }
}
</code></pre>

<h3 id="cum-on-feel-the-noize"><a href="https://shkspr.mobi/blog/2012/06/optical-theremin-demo/#cum-on-feel-the-noize">Cum on Feel the Noize</a></h3>

<p>So, how do we get Android to generate a tone? I faffed around with <a href="http://stackoverflow.com/questions/2413426/playing-an-arbitrary-tone-with-android">this audio generating code from StackOverflow</a> until I could successfully generate a tone.</p>

<p>Essentially, this creates a WAV of a tone and gets it ready to play.</p>

<p>However, this sounded rather boring, so I added some reverb.</p>

<pre><code class="language-java">audioTrack.attachAuxEffect(EnvironmentalReverb.PARAM_DECAY_TIME);
</code></pre>

<p>And that's it!</p>

<p><a href="https://play.google.com/store/apps/details?id=mobi.shkspr.android.theramin">Download the Optical Theremin Demo App</a> - or use the source to create something much more melodious.</p>

<h3 id="full-source"><a href="https://shkspr.mobi/blog/2012/06/optical-theremin-demo/#full-source">Full Source</a></h3>

<pre><code class="language-java">package mobi.shkspr.android.theremin;

import java.util.Random;

import android.app.Activity;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.media.AudioFormat;
import android.media.AudioManager;
import android.media.AudioTrack;
import android.media.audiofx.EnvironmentalReverb;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.widget.TextView;

    public class TheraminActivity
        extends Activity
        implements SensorEventListener{
        // originally from http://marblemice.blogspot.com/2010/04/generate-and-play-tone-in-android.html
        // and modified by Steve Pomeroy steve@staticfree.info

        private final int duration = 5; // seconds
        private final int sampleRate = 8000;
        private final int numSamples = duration * sampleRate;
        private final double sample[] = new double[numSamples];
        private double freqOfTone = 440; // hz

        private final byte generatedSnd[] = new byte[2 * numSamples];

        private SensorManager mSensorManager;
        private Sensor mLightSensor;
        private float mLux = 0.0f;
        private String tLux = "Lux is ";

        public AudioTrack audioTrack;

        Handler handler = new Handler();

        @Override public void onCreate(Bundle savedInstanceState) {

            super.onCreate(savedInstanceState);


            mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
            mLightSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);

            mSensorManager.registerListener(this, mLightSensor, SensorManager.SENSOR_DELAY_FASTEST);

        }

        @Override public void onSensorChanged(SensorEvent event){
            if (event.sensor.getType()==Sensor.TYPE_LIGHT){
                mLux = event.values[0];
                String luxStr = String.valueOf(mLux);
                TextView tv = new TextView(this);
                tv.setText(tLux);
                setContentView(tv);
                Random r = new Random();
                freqOfTone = (mLux +10) * 5;
            }

        }
        @Override protected void onResume() {
            super.onResume();
            final Thread thread = new Thread(new Runnable() {
                public void run() {

                    for (int i = 0; i &lt; 300; i++)   {
                        genTone();

                        audioTrack = new AudioTrack(
                                        AudioManager.STREAM_MUSIC,
                                        sampleRate,
                                        AudioFormat.CHANNEL_OUT_MONO,
                                        AudioFormat.ENCODING_PCM_16BIT,
                                        numSamples,
                                        AudioTrack.MODE_STATIC);


                            try {

                                playSound();
                                Thread.sleep(505);
                            } catch (IllegalStateException e) {

                            } catch (InterruptedException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                            }
                    }
                }
            });

            thread.start();
        }

        void genTone(){ // fill out the array
            tLux = "Frequency is " + freqOfTone;
            //Log.d("LUXTAG", "Lux value: " + tLux);

            for (int i = 0; i &lt; numSamples; ++i) {
                sample[i] = Math.sin(2 * Math.PI * i /(sampleRate/freqOfTone));
            }

        // convert to 16 bit pcm sound array
        // assumes the sample buffer is normalised.
            int idx = 0; for (final double dVal : sample) {
                // scale to maximum amplitude
                final short val = (short) ((dVal * 32767)); // in 16 bit wav PCM, first byte is the low order byte
                generatedSnd[idx++] = (byte) (val &amp; 0x00ff);
                generatedSnd[idx++] = (byte) ((val &amp; 0xff00) &gt;&gt;&gt; 8);

            }
        }

        void playSound(){
            genTone();
            try {                   audioTrack.attachAuxEffect(EnvironmentalReverb.PARAM_DECAY_TIME);
                audioTrack.write(generatedSnd, 0, generatedSnd.length); audioTrack.play();
            } catch (IllegalStateException e) {
                audioTrack.release();
            }
        }

        @Override
        public void onAccuracyChanged(Sensor sensor, int accuracy) {
            // TODO Auto-generated method stub
        }

        @Override
        public void onPause() {
            super.onPause();
            audioTrack.stop();
            audioTrack.flush();
            audioTrack.release();
        }

        @Override
        public void onStop() {
            super.onStop();
            audioTrack.stop();
            audioTrack.flush();
            audioTrack.release();
        }

        @Override
        public void onDestroy() {
            super.onDestroy();
            audioTrack.flush();
            audioTrack.stop();
            audioTrack.flush();
            audioTrack.release();
        }
    }
</code></pre>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=5897&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2012/06/optical-theremin-demo/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		<enclosure url="https://shkspr.mobi/blog/wp-content/uploads/2012/06/Terence-Eden-Teremin.ogg" length="121342" type="audio/ogg" />
<enclosure url="https://shkspr.mobi/blog/wp-content/uploads/2012/06/Terence-Eden-Teremin.mp3" length="198628" type="audio/mpeg" />
<enclosure url="https://shkspr.mobi/blog/wp-content/uploads/2012/06/OutridersPodcast-20120605-MoscowAndBletchleyPark.mp3" length="1227152" type="audio/mpeg" />

			</item>
		<item>
		<title><![CDATA[QRpedia Demo at Mobile Monday]]></title>
		<link>https://shkspr.mobi/blog/2011/04/qrpedia-demo-at-mobile-monday/</link>
					<comments>https://shkspr.mobi/blog/2011/04/qrpedia-demo-at-mobile-monday/#respond</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Wed, 20 Apr 2011 06:02:21 +0000</pubDate>
				<category><![CDATA[qr]]></category>
		<category><![CDATA[qrpedia]]></category>
		<category><![CDATA[demo]]></category>
		<category><![CDATA[momo]]></category>
		<category><![CDATA[momolo]]></category>
		<guid isPermaLink="false">http://shkspr.mobi/blog/?p=4006</guid>

					<description><![CDATA[I love going to Mobile Monday London - it&#039;s a great meeting place for those of us in the mobile industry.  It&#039;s also one of the few spaces which holds the equivalent of an &#34;Open Mic&#34; night.  MoMoLo&#039;s Spring Demo Night was crowded with great entrants.  So much so that each of us had only three minutes to present!  That&#039;s quite tight.  I&#039;m used to 15-30 minutes.  I&#039;m not sure how, but I managed to…]]></description>
										<content:encoded><![CDATA[<p>I love going to <a href="https://web.archive.org/web/20110423232907/https://momolo.org/">Mobile Monday London</a> - it's a great meeting place for those of us in the mobile industry.  It's also one of the few spaces which holds the equivalent of an "Open Mic" night.
<a href="http://momolo.org/"><img src="https://shkspr.mobi/blog/wp-content/uploads/2011/04/momo-logo.jpg" alt="momo logo" title="momo logo" width="172" height="68" class="aligncenter size-full wp-image-4008"></a>
<a href="https://web.archive.org/web/20110423023217/http://lanyrd.com/2011/momolo-april/">MoMoLo's Spring Demo Night</a> was crowded with great entrants.  So much so that each of us had only <strong>three minutes</strong> to present!  That's quite tight.  I'm used to 15-30 minutes.  I'm not sure how, but I managed to distil the <a href="http://qrpedia.org/">QRpedia</a> pitch down.</p>

<p>QRpedia was received warmly by the crowd.  Massive thanks to the ever-patient Liz for recording it.</p>

<iframe title="QRpedia Demo at Mobile Monday London" width="620" height="349" src="https://www.youtube.com/embed/0amc3yxQJTA?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen=""></iframe>

<p>Don't just take my word for it - here's a sample of tweets from the evening.</p>

<blockquote class="social-embed" id="social-embed-60040924486578176" lang="en" itemscope="" itemtype="https://schema.org/SocialMediaPosting"><header class="social-embed-header" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><a href="https://twitter.com/lisadevaney" class="social-embed-user" itemprop="url"><img class="social-embed-avatar social-embed-avatar-circle" src="data:image/webp;base64,UklGRhwCAABXRUJQVlA4IBACAAAwDACdASowADAAPrVOoEunJCMhpyyQ4BaJQBg/3z/0ie+ue+mrG6pnWy6tO9Z+uly0Jft2enH3gpQelGviG0sNMjtqTGcEyE/i6JyrmbjgOsIliNxpvk+SOO4Xf88yrorfPs1l/tQgczQAAPtcmXwA8aXblXLpvNxYmN4C+v+2XcDSyiabMtQokvcFI2msJ4EJ8WTOrmpZM3S7t/Kc+6BQeDWhzHh0oEdfFCXho9Yu2ZnAhhtPyLBTqPRqEWBEqPCADO/Ck9+MPwYGgLf6rosV1PuhKR4iXFk7+J2u3q23a8bXd8VmXkHnU8iKw0YYm60cD/J/g0PZSgHal2eZ/u+xIfCU7cbPcGRwMfrvg38Mw/bVbGbmlhhupX+9sFUn7NNSXfFe1mu/JWD8DbQpX9INshegfIojO9KbcgVmEkwC8FUeEBcv5v1OGCeQWfGjb0a+dO0Pam1xWahbUvACCNitmmsEdjZcmh4PuZ6PB+wpc2EUfTXuWqykBZNB3lR7WKhylj7+1fkRMhtQc4+pmTvD1zd9boFIIpUWWeXqPBJpyCx6XezrubEVXPhwzGYE8+usCa6FlrbgbJJyWCK9aP7RDALGk7gdVfOMhddQWx4OpD4Ur43iX2TpqIVD1yEMWE7DfIrcw50vwxDkpLQTH8EDP7lwab13klBK5mcOavaUDmO47q5KA+93f2rhfWO0AAA=" alt="" itemprop="image"><div class="social-embed-user-names"><p class="social-embed-user-names-name" itemprop="name">Lisa Devaney</p>@lisadevaney</div></a><img class="social-embed-logo" alt="Twitter" src="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%0Aaria-label%3D%22Twitter%22%20role%3D%22img%22%0AviewBox%3D%220%200%20512%20512%22%3E%3Cpath%0Ad%3D%22m0%200H512V512H0%22%0Afill%3D%22%23fff%22%2F%3E%3Cpath%20fill%3D%22%231d9bf0%22%20d%3D%22m458%20140q-23%2010-45%2012%2025-15%2034-43-24%2014-50%2019a79%2079%200%2000-135%2072q-101-7-163-83a80%2080%200%200024%20106q-17%200-36-10s-3%2062%2064%2079q-19%205-36%201s15%2053%2074%2055q-50%2040-117%2033a224%20224%200%2000346-200q23-16%2040-41%22%2F%3E%3C%2Fsvg%3E"></header><section class="social-embed-text" itemprop="articleBody">Fantastic demo at <a href="https://twitter.com/hashtag/momolo">#momolo</a> from <a href="https://twitter.com/edent">@edent</a> for QRpedia.org. He's slapped up a QR code in the British Musem.</section><hr class="social-embed-hr"><footer class="social-embed-footer"><a href="https://twitter.com/lisadevaney/status/60040924486578176"><span aria-label="0 likes" class="social-embed-meta">❤️ 0</span><span aria-label="0 replies" class="social-embed-meta">💬 0</span><span aria-label="0 reposts" class="social-embed-meta">🔁 0</span><time datetime="2011-04-18T18:04:06.000Z" itemprop="datePublished">18:04 - Mon 18 April 2011</time></a></footer></blockquote>

<blockquote class="social-embed" id="social-embed-60040960461119488" lang="en" itemscope="" itemtype="https://schema.org/SocialMediaPosting"><header class="social-embed-header" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><a href="https://twitter.com/teknolog" class="social-embed-user" itemprop="url"><img class="social-embed-avatar social-embed-avatar-circle" src="data:image/webp;base64,UklGRlACAABXRUJQVlA4IEQCAABwCgCdASowADAAPrVInUqnJCKhsdZqAOAWiWgAsR/Hh9EXt59dz0eAHVVjexxpzCsxtHtKTwdgKnkWR5Z/v5lASDqXgpKc7CKVXiQ/ReWhC0SXY6n4rZMgwbTmAAD+zUrFvM4XXnD1f/89M/1t+xi5fi/7jz160JKW9+kfNCBG6uqryFGG4Ncjm6tTFP8C/IM80eQsYfIu5eTHCp+2YIiCCZ37htycXoNUAplqfyW6Izow2M/PJms6fHR94k1WV3MNnrU9eIt2Yh7JisNx2Re727HxgtXi7WWlu9pNWqQOW9QWtvidIqsHUY9TfFHfIuTnLfGmM5+vAfqEqNF9JoYKgP5UHtX4zCHZKLuGfO5yWzmBQ8LpGDKmHpkYvCnXByvzkVLov51U9AmjzeW+A7Tp6b365LBlJhaqxb2rWK/mxsBQxW9et4gQ4eYZlj7ky4sWqI3D+mVcL7u0V3vmv5g/Yh6iZ/Fy8FwMOANs9ZLpzCSrEEGaK/v5hyiiqdujkDrX8+rUKTYuhZQ5zP0usIil2yzoskHPI27B0WciZ0exse1sVjUxPu8T4KYdqZpfMm1LQGBKXfya/XJxTHAzUBA/PAC8uu4qVYYteYoq+4TW/SuSe3TCkHk9KBX+e69vD2G88A5QFcZ9qlDch2jUJAOLOzPcYZ/pQCvhJfeF3/R8BJmPJWAWCkrk7hK9eWrQ5B2GpoRqc/21o4i/JdphclPRdaT/qbVcqlASWMcu1HqYaacJOwDb9EswE6/GyQZS8SwCI0AA" alt="" itemprop="image"><div class="social-embed-user-names"><p class="social-embed-user-names-name" itemprop="name">Sebastian Brannstrom</p>@teknolog</div></a><img class="social-embed-logo" alt="Twitter" src="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%0Aaria-label%3D%22Twitter%22%20role%3D%22img%22%0AviewBox%3D%220%200%20512%20512%22%3E%3Cpath%0Ad%3D%22m0%200H512V512H0%22%0Afill%3D%22%23fff%22%2F%3E%3Cpath%20fill%3D%22%231d9bf0%22%20d%3D%22m458%20140q-23%2010-45%2012%2025-15%2034-43-24%2014-50%2019a79%2079%200%2000-135%2072q-101-7-163-83a80%2080%200%200024%20106q-17%200-36-10s-3%2062%2064%2079q-19%205-36%201s15%2053%2074%2055q-50%2040-117%2033a224%20224%200%2000346-200q23-16%2040-41%22%2F%3E%3C%2Fsvg%3E"></header><section class="social-embed-text" itemprop="articleBody"><a href="https://twitter.com/hashtag/qrpedia">#qrpedia</a> is an awesome idea and implementation! <a href="https://twitter.com/hashtag/momolo">#momolo</a></section><hr class="social-embed-hr"><footer class="social-embed-footer"><a href="https://twitter.com/teknolog/status/60040960461119488"><span aria-label="1 likes" class="social-embed-meta">❤️ 1</span><span aria-label="0 replies" class="social-embed-meta">💬 0</span><span aria-label="0 reposts" class="social-embed-meta">🔁 0</span><time datetime="2011-04-18T18:04:15.000Z" itemprop="datePublished">18:04 - Mon 18 April 2011</time></a></footer></blockquote>

<p><a href="https://web.archive.org/web/20230122155043/https://twitter.com/c1rrus/status/60041453216346112?ref_src=twsrc%5Etfw">https://twitter.com/c1rrus/status/60041453216346112</a></p>

<blockquote class="social-embed" id="social-embed-60041962153181184" lang="en" itemscope="" itemtype="https://schema.org/SocialMediaPosting"><header class="social-embed-header" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><a href="https://twitter.com/mariazverina" class="social-embed-user" itemprop="url"><img class="social-embed-avatar social-embed-avatar-circle" src="data:image/webp;base64,UklGRhQCAABXRUJQVlA4IAgCAABQCwCdASowADAAPrVQnk0nJKKiKrVaqOAWiUAWI+V3pi1K07FMGVtwU7Hz6pHrss6/kW4lESV1URd7upSfoJW3k56GvZLzET9icWNSBjzURm+83b8QolRkPCNu25lKhqzubOAA/vxsvfyz8Ujc5J8r7aRS+t9qaC+vBBW91VsPDlPeh1vPmwIe17iogW9ftrongn+AHr4/zJhhk+m81u8jk3eZzwB8wjFyAjppoB5F3Hs7//xoTI/YvlouRL7AA4Bdgs0z8ddO16FVclSBgrN8UfG7tB+AOsv3ovhpoo8SMnJTtOZfQqWph3aTevbUDefc22Ne6SVnKpb/D5jXKE5Gh4J6uNaS1qnKAEZWKnroJJrOgELETHFtuBQeH8Ip8sHfyjJ2r1f1kopm68r027UarxRdAVHb4aDoB2Ii2JAQewpugSlI2KeaSF4Atk5Cx0pYfM3wog65m/vPGpqkTYqTBWnfzNMiDUR5w9kIgHkYLkfOIIOPgqjs/fEw1Z7cL3FSPhpzZHRtCtBr60xsTsff96UNIELgGsd028NhMGgaMJNJulYsPpo+Blrij/+O2G7pWz8kJHwfH8lknP2zQ35CKS/Mevq918fz4mXPV4dAz/Fx3WjJ5OV/VSAhbQAJBxnUIRB8tctsYY5mghr1BbmIilry8z6WSn9Jm62dK1kyUo6fLhXcuoAA" alt="" itemprop="image"><div class="social-embed-user-names"><p class="social-embed-user-names-name" itemprop="name">Maria Zverina</p>@mariazverina</div></a><img class="social-embed-logo" alt="Twitter" src="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%0Aaria-label%3D%22Twitter%22%20role%3D%22img%22%0AviewBox%3D%220%200%20512%20512%22%3E%3Cpath%0Ad%3D%22m0%200H512V512H0%22%0Afill%3D%22%23fff%22%2F%3E%3Cpath%20fill%3D%22%231d9bf0%22%20d%3D%22m458%20140q-23%2010-45%2012%2025-15%2034-43-24%2014-50%2019a79%2079%200%2000-135%2072q-101-7-163-83a80%2080%200%200024%20106q-17%200-36-10s-3%2062%2064%2079q-19%205-36%201s15%2053%2074%2055q-50%2040-117%2033a224%20224%200%2000346-200q23-16%2040-41%22%2F%3E%3C%2Fsvg%3E"></header><section class="social-embed-text" itemprop="articleBody">I love qrpedia. Simple but very useful hack.  :) <a href="https://twitter.com/hashtag/MoMoLo">#MoMoLo</a></section><hr class="social-embed-hr"><footer class="social-embed-footer"><a href="https://twitter.com/mariazverina/status/60041962153181184"><span aria-label="1 likes" class="social-embed-meta">❤️ 1</span><span aria-label="0 replies" class="social-embed-meta">💬 0</span><span aria-label="0 reposts" class="social-embed-meta">🔁 0</span><time datetime="2011-04-18T18:08:13.000Z" itemprop="datePublished">18:08 - Mon 18 April 2011</time></a></footer></blockquote>

<blockquote class="social-embed" id="social-embed-60043541161852928" lang="en" itemscope="" itemtype="https://schema.org/SocialMediaPosting"><header class="social-embed-header" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><a href="https://twitter.com/michael1952" class="social-embed-user" itemprop="url"><img class="social-embed-avatar social-embed-avatar-circle" src="data:image/webp;base64,UklGRtIBAABXRUJQVlA4IMYBAACQCgCdASowADAAPrVOoEqnJCMhpy2w4BaJQBhHgZhdT6HSzX+tjr0iyYdwXQAd8f/96zMktTQc2BknRMc5dlfLjF8M199gMq4D6Ry+7sniJK6SbEOsS2EYrLTdZZgA/vdGw5v+YRXaDIPkG/YRobzws1VJSpe7R0Q6rAju0npgr0lgo8v9AbT15gwuBwI58uvgrhVyK/1n5QBLiKBsH3QP1A7PIivK1wu5yR8GUXGmEVnIjGvG5rrJevYQ4sMBOpJpzAGhvqbJAoEKn+EAXKbX1zVaPsVxp5VGtXGxJt9ETJ+Es0AsftLuPeZOtmgdj66rXIZ8iaeF+hWkfRNjilfteMUZ5WaiSX2Th6aE0xWnbhuHE9bceOr2T9nDJxXH0kWDkiBsVb/DVhmTp6stFbegkwwxKUlO/7lPpQKUg0CEIy3l9RS3tFI7hps3aGVQAYWt/dNv1tWH4dQROAcj0IGACzSXs+99MMdV9fyZufEponUsr2n2eHOhc/YkRcD0GjVDN6Sucv9dms0PGJBY/X9tvfDeGn595EXvNOpk7wj9WloC8yqMdYTDu+h13FEA4AkF7ZvXgd5hmacrfnr6OJAtImTugAAA" alt="" itemprop="image"><div class="social-embed-user-names"><p class="social-embed-user-names-name" itemprop="name">Michael I. Ohajuru DUniv, FRSA</p>@michael1952</div></a><img class="social-embed-logo" alt="Twitter" src="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%0Aaria-label%3D%22Twitter%22%20role%3D%22img%22%0AviewBox%3D%220%200%20512%20512%22%3E%3Cpath%0Ad%3D%22m0%200H512V512H0%22%0Afill%3D%22%23fff%22%2F%3E%3Cpath%20fill%3D%22%231d9bf0%22%20d%3D%22m458%20140q-23%2010-45%2012%2025-15%2034-43-24%2014-50%2019a79%2079%200%2000-135%2072q-101-7-163-83a80%2080%200%200024%20106q-17%200-36-10s-3%2062%2064%2079q-19%205-36%201s15%2053%2074%2055q-50%2040-117%2033a224%20224%200%2000346-200q23-16%2040-41%22%2F%3E%3C%2Fsvg%3E"></header><section class="social-embed-text" itemprop="articleBody"><a href="https://twitter.com/hashtag/momolo">#momolo</a> loved <a href="https://twitter.com/edent">@edent</a> 's QRPEDIA this has 2 b the way 2 go 4 any right thinking museum who wants to connect with a wider aufjagst - 8/10</section><hr class="social-embed-hr"><footer class="social-embed-footer"><a href="https://twitter.com/michael1952/status/60043541161852928"><span aria-label="0 likes" class="social-embed-meta">❤️ 0</span><span aria-label="0 replies" class="social-embed-meta">💬 0</span><span aria-label="0 reposts" class="social-embed-meta">🔁 0</span><time datetime="2011-04-18T18:14:30.000Z" itemprop="datePublished">18:14 - Mon 18 April 2011</time></a></footer></blockquote>

<blockquote class="social-embed" id="social-embed-60102572211568640" lang="en" itemscope="" itemtype="https://schema.org/SocialMediaPosting"><header class="social-embed-header" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><a href="https://twitter.com/msjen" class="social-embed-user" itemprop="url"><img class="social-embed-avatar social-embed-avatar-circle" src="data:image/webp;base64,UklGRgwCAABXRUJQVlA4IAACAADwCgCdASowADAAPqlCmEmmI6IhNVqqqMAVCUAW7C9rDF7LYVCA2nVhmVXMZFu3/fCIr1BbEDod4Xzx+ZXNerhHJ7nRfTlBW7SeYCRMEjEp5QWnsPgzU3sfhPh2r2oFcAAA/vzWuK/9m9lwbfI1wYCy+JoE1NMNuGfd9yEP3R1aPFUsH37eUjG6YUtCdewY4MJZBmqc3b0QByBlNlC4DuJWJyUixfLIrydbqPKG/Md13B5oPOMYstqGF+Ar5LLR9iEnl/QQb8nQhdtrDOIzu4zWTi3WQkkYSkpcSdA/biBIExC9Cy6MF/7mEruhiyVZk0wczTgL985jGSwtnylndPVPOq+Dp3stsETB4hcOdOojCrDukMgHwDylOXUjqgoB1CdwvMF9+apg2Pf3h9fk732J6JX1RO9K1RWL8pFlNhOVXsxz0OEkJKqMoDSNkVdj2gvHoMsUZRfHoB77C8KrMaNGZRSZcA6va4y2GYGQ3FGUBAOZr35oO5JvMrkNuDtWQMvPqiz4Jfbx6gH8eBCrGklzOhFR3txX3FxKGgZ6ewww//j3T81RC8102k1tH3Mzl3vK9xCTqNwHeAt9iILDflbZnVl0mVGFggu7Vr5X5HC7Ot6GvMeyn9nB2uBmq/pCRyC0rw4ii6/YT6ra86U57j7lnqfiWB10VWysS+Z1JbvAAA==" alt="" itemprop="image"><div class="social-embed-user-names"><p class="social-embed-user-names-name" itemprop="name">Ms. Jen</p>@msjen</div></a><img class="social-embed-logo" alt="Twitter" src="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%0Aaria-label%3D%22Twitter%22%20role%3D%22img%22%0AviewBox%3D%220%200%20512%20512%22%3E%3Cpath%0Ad%3D%22m0%200H512V512H0%22%0Afill%3D%22%23fff%22%2F%3E%3Cpath%20fill%3D%22%231d9bf0%22%20d%3D%22m458%20140q-23%2010-45%2012%2025-15%2034-43-24%2014-50%2019a79%2079%200%2000-135%2072q-101-7-163-83a80%2080%200%200024%20106q-17%200-36-10s-3%2062%2064%2079q-19%205-36%201s15%2053%2074%2055q-50%2040-117%2033a224%20224%200%2000346-200q23-16%2040-41%22%2F%3E%3C%2Fsvg%3E"></header><section class="social-embed-text" itemprop="articleBody">I enjoyed the mobile app demo night at <a href="https://twitter.com/hashtag/MomoLo">#MomoLo</a> tonight. Best of show: Threedomphone, Smart Wifi (already on my G2), QRPedia, &amp; Mindings.</section><hr class="social-embed-hr"><footer class="social-embed-footer"><a href="https://twitter.com/msjen/status/60102572211568640"><span aria-label="1 likes" class="social-embed-meta">❤️ 1</span><span aria-label="0 replies" class="social-embed-meta">💬 0</span><span aria-label="0 reposts" class="social-embed-meta">🔁 0</span><time datetime="2011-04-18T22:09:04.000Z" itemprop="datePublished">22:09 - Mon 18 April 2011</time></a></footer></blockquote>

<blockquote class="social-embed" id="social-embed-60283010351767552" lang="en" itemscope="" itemtype="https://schema.org/SocialMediaPosting"><header class="social-embed-header" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><a href="https://twitter.com/thegreatgonzo" class="social-embed-user" itemprop="url"><img class="social-embed-avatar social-embed-avatar-circle" src="data:image/webp;base64,UklGRrABAABXRUJQVlA4IKQBAACQCACdASowADAAPrVKoUwnI6MiKrVcAOAWiWgAwxlBKnk3peCkNVbpsqL9AbpVDy+Lz4qBXQQInFJ6o91wC/st+UAfdUe1FDaWMNMvgAD++uBTSLvVOUCRXSlKe+PTMMd8CZkvKHcNWTUfwYvQ9p5sM7kUGJT5Ck/MsSXOpawCQO54HNPMEJIe0ScASyw39Saee2AxjB5jyW59OgIk0Qr1D9LdCo6iIjsKoFyABsZ7wrsjIg/le8AV6yR3E8BYA7hLca/kYSlUHQWttsdGW7a03O0Lb7oj37fi+hpP11Geq9Eo1acCbgKiHGjGjwadIVJU+P8y2DeecTAWnYb/xywOVkxKW2/n2DmeAMi8tLoNK+2JlYjpyuZuHFweJM3rZwS9AXMvnb+r/Sj4NbXvd3O632dKx8eLafFg5Po3VX8WkyNNGp17+jH4PWqSVdZw8tlQHFEla9iJVnU95oPWUNfFbjMYa/sxGgRe+XXSNZnZt9FooFOumHSwNx85G36I3QqHXYjkh9noEBOAdRQRszh40CXN7i36DU970/im56qv1ixgAAA=" alt="" itemprop="image"><div class="social-embed-user-names"><p class="social-embed-user-names-name" itemprop="name">@thegreatgonzo@mastodon.me.uk</p>@thegreatgonzo</div></a><img class="social-embed-logo" alt="Twitter" src="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%0Aaria-label%3D%22Twitter%22%20role%3D%22img%22%0AviewBox%3D%220%200%20512%20512%22%3E%3Cpath%0Ad%3D%22m0%200H512V512H0%22%0Afill%3D%22%23fff%22%2F%3E%3Cpath%20fill%3D%22%231d9bf0%22%20d%3D%22m458%20140q-23%2010-45%2012%2025-15%2034-43-24%2014-50%2019a79%2079%200%2000-135%2072q-101-7-163-83a80%2080%200%200024%20106q-17%200-36-10s-3%2062%2064%2079q-19%205-36%201s15%2053%2074%2055q-50%2040-117%2033a224%20224%200%2000346-200q23-16%2040-41%22%2F%3E%3C%2Fsvg%3E"></header><section class="social-embed-text" itemprop="articleBody">Love the simplicity of <a href="https://twitter.com/QRpedia">@QRpedia</a> QRcode &gt; language detection &gt; article on appropriate language wikipedia. Instant localised info.</section><hr class="social-embed-hr"><footer class="social-embed-footer"><a href="https://twitter.com/thegreatgonzo/status/60283010351767552"><span aria-label="0 likes" class="social-embed-meta">❤️ 0</span><span aria-label="0 replies" class="social-embed-meta">💬 0</span><span aria-label="0 reposts" class="social-embed-meta">🔁 0</span><time datetime="2011-04-19T10:06:04.000Z" itemprop="datePublished">10:06 - Tue 19 April 2011</time></a></footer></blockquote>

<p>We also had <a href="https://web.archive.org/web/20201025072218/http://renaissancechambara.jp/2011/04/19/momolo-mobile-monday-demo-night-notes-%E6%89%8B%E6%9C%BA%E5%BA%94%E7%94%A8%E7%A4%BA%E8%8C%83%E7%AC%94%E8%AE%B0/">a lovely write up from Ged Carrol</a></p>

<blockquote><p>QRpedia was less of a business and more of a duh why hadn’t anyone else thought of putting QRcodes more effectively with Wikipedia.</p></blockquote>

<p>So, onwards and upwards.  I'll be getting in contact with the journalists who approached me to see if we can get some favourable press.  I'm also talking to people who might be able to sponsor free WiFi in museums to reduce the cost for international tourists.</p>

<p>Any questions - drop them in the comments box.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=4006&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2011/04/qrpedia-demo-at-mobile-monday/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
