Developer42

2015-05-19

Hunka.Junk Files

Filed under: Microsoft, Movies, Technology — Tags: , , , , , , — Developer42 @ 17:21

A few times, even with capacity planning in place, we’ve hit disk capacity limits.
When this occurs you search for content which can be deleted to free up some space to get you moving again.
Here’s my new quick fix for this: HunkaJunk files.
Create dummy files which take up space, but can be quickly & easily deleted without risk; giving you teh wiggle room you need to get moving again.

There are various ways this could be done, but a useful tool is FSUtil.
This allows you to create blank files which take up a defined number of bytes.
e.g. to create a 1GB file you could run the following code from the Windows command line.

fsutil file createnew c:\PurgeForDiskSpace\Hunka.Junk 1073741824

– c:\PurgeForDiskSpace\Hunka.Junk – is the filename of your junk file (you can call it anything; just make it obvious)
– 1073741824 – is the filesize in bytes. NB: 1GB = 1024MB = 1024 * 1024 KB = 1024 * 1024 * 1024 bytes = 1,073,741,824 bytes.

Advertisements

2013-02-13

Harlem Shake (XKCD Edition)

Filed under: Memes — Tags: , , , , , , , , , — Developer42 @ 23:38

I recently came across two new things. The first, an excellent bit of code by Antonin Hildebrand cmx.io. This code allows people to easily create XKCD style comics through simple markup, and also includes a useful wysiwyg editor to make tweaking the pictures simpler.
The second was a slew of videos in my YouTube feed with the latest meme: The Harlem Shake.
My instant reaction was to create my first meme whilst trying out my new toy: here’s the result (click the image to go to the animated markup version):

XKCD Harlem Shake http://cmx.io/#4949114

Harlem Shake XKCD Edition created with cmx.io

Code included below (also available on GitHub: https://gist.github.com/JohnLBevan/4949114.

Update (2013-02-14 22:12 UTC)
Code updated to include animation of second frame.

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="http://cmx.io/v/0.1/cmx.css"/>
<script src="http://cmx.io/v/0.1/cmx.js"></script>
<script type="text/javascript">
<!--
  var frame2 = true;
  var vis = {};
  vis[true] = "block";
  vis[false] = "none";
  window.onload = function(){document.getElementById("scene2y").style.display = vis[false];};
  setTimeout(function(){setInterval(function(){swapFrames()},200);},3000);
  function swapFrames()
  {
    document.getElementById("scene2x").style.display = vis[frame2];
    frame2 = !frame2;
    document.getElementById("scene2y").style.display = vis[frame2];
  }
-->  
</script>
<style>.cmx-user-scene4 .cmx-text-border .cmx-path {stroke: orange}</style>
</head>
<body>
  <div style="max-width:900px; -webkit-transform:rotate(0deg);">

    <scene id="scene1">
      <label t="translate(0,346)">
        <tspan x="0" y="0em">Harlem Shake (XKCD edition)</tspan>
      </label>
      <drawing t="translate(0,31)">
        <line stroke="green">
          <point x="0" y="0"></point>
          <point x="250" y="20"></point>
        </line>
      </drawing>
      <!-- helmet; place behind head to cheat the circle -->
      <drawing t="translate(55,110)">
        <line stroke="black">
          <point x="0" y="0"></point>
          <point x="10" y="2"></point>
          <point x="-4" y="2"></point>
          <point x="12" y="5"></point>
          <point x="-7" y="4"></point>
          <point x="14" y="8"></point>
        </line>
        <line stroke="red">
          <point x="-10" y="5"></point>
          <point x="15" y="11"></point>
          <point x="-10" y="8"></point>
          <point x="14" y="15"></point>
          <point x="-10" y="11"></point>
          <point x="12" y="16"></point>
          <point x="-10" y="14"></point>
          <point x="12" y="19"></point>
          <point x="-10" y="17"></point>
          <point x="12" y="22"></point>
          <point x="-10" y="20"></point>
          <point x="12" y="25"></point>
          <point x="-10" y="23"></point>
          <!--<point x="" y=""></point>-->
        </line>
      </drawing>
      <actor t="translate(26,20) rotate(-15)" pose="-11,9|4,107|-11,99|-11,89|-18,78|-10,57|0,27|-5,2|17,29|15,15|-8,79|5,57|2,82|9,66">
        <bubble t="translate(9,11)" pose="0,0|-20,10|-81,49|14,94|-26,173|-100,127">
          <tspan x="0" y="-3em">Con los teroristas</tspan>
          <tspan x="0" y="0em">Wub wub wub wub wub wub, wub wub</tspan>
          <tspan x="0" y="1em">wub tas, wub wub, wub, wub wub wub</tspan>
          <tspan x="0" y="2em">Wub wub wub wub wub wub, wub wub wub </tspan>
          <tspan x="0" y="3em">tas wub wub, wub, wub tas wub wub tas</tspan>
          <tspan x="0" y="4em">tas wub tas wub tas</tspan>
          <tspan x="0" y="5em">wub tas wub tas tas</tspan>
        </bubble>
      </actor>
      <actor t="translate(140,22)" pose="29,1|7,103|28,69|28,59|28,71|28,51|17,32|17,2|33,26|38,1|19,45|18,64|38,52|36,30"></actor>
      <!-- table -->
      <drawing t="translate(100,10) rotate(3)">
        <line stroke="brown">
          <point x="0" y="0"></point><!-- bottom left leg bottom -->
          <point x="0" y="30"></point><!-- bottom left leg top -->
          <point x="50" y="50"></point><!-- top left leg top -->
          <point x="50" y="20"></point><!-- top left leg bottom -->
          <point x="50" y="50"></point><!-- top left leg top -->
          <point x="140" y="50"></point><!-- top right leg top -->
          <point x="140" y="20"></point><!-- top right leg bottom -->
          <point x="140" y="50"></point><!-- top right leg top -->
          <point x="90" y="30"></point><!-- bottom right leg top -->
          <point x="90" y="0"></point><!-- bottom right leg bottom -->
          <point x="90" y="30"></point><!-- bottom right leg top -->
          <point x="0" y="30"></point><!-- bottom left leg top -->
          <!-- end of wireframe - begin dodgy colouring in time -->
          <point x="55" y="50"></point>
          <point x="5" y="30"></point>
          <point x="60" y="50"></point>
          <point x="10" y="30"></point>
          <point x="65" y="50"></point>
          <point x="15" y="30"></point>
          <point x="70" y="50"></point>
          <point x="20" y="30"></point>
          <point x="75" y="50"></point>
          <point x="25" y="30"></point>
          <point x="80" y="50"></point>
          <point x="30" y="30"></point>
          <point x="85" y="50"></point>
          <point x="35" y="30"></point>
          <point x="90" y="50"></point>
          <point x="40" y="30"></point>
          <point x="95" y="50"></point>
          <point x="45" y="30"></point>
          <point x="100" y="50"></point>
          <point x="50" y="30"></point>
          <point x="105" y="50"></point>
          <point x="55" y="30"></point>
          <point x="110" y="50"></point>
          <point x="60" y="30"></point>
          <point x="115" y="50"></point>
          <point x="65" y="30"></point>
          <point x="120" y="50"></point>
          <point x="70" y="30"></point>
          <point x="125" y="50"></point>
          <point x="75" y="30"></point>
          <point x="130" y="50"></point>
          <point x="80" y="30"></point>
          <point x="135" y="50"></point>
          <point x="85" y="30"></point>
          <point x="140" y="50"></point>
          <point x="90" y="30"></point>
        </line>
      </drawing>
      <actor t="translate(102,-14) rotate(2)" pose="30,1|36,118|28,72|28,62|28,67|28,47|20,35|20,25|39,32|38,22|17,61|29,58|41,59|49,60"></actor>
      <actor t="translate(187,-4)" pose="31,1|6,128|27,82|27,72|28,71|28,51|10,42|12,23|21,49|23,28|15,63|2,61|37,66|39,53"></actor>
    </scene>
    <div id="scene2x">
    <scene id="scene2">
      <label t="translate(0,346)">
        <tspan x="0" y="0em">"And do the Harlem Shake"</tspan>
      </label>
      <drawing t="translate(0,31)">
        <line stroke="green">
          <point x="0" y="0"></point>
          <point x="250" y="20"></point>
        </line>
      </drawing>
      <!-- helmet; place behind head to cheat the circle -->
      <drawing t="translate(68,129) rotate(76)">
        <line stroke="black">
          <point x="0" y="0"></point>
          <point x="10" y="2"></point>
          <point x="-4" y="2"></point>
          <point x="12" y="5"></point>
          <point x="-7" y="4"></point>
          <point x="14" y="8"></point>
        </line>
        <line stroke="red">
          <point x="-10" y="5"></point>
          <point x="15" y="11"></point>
          <point x="-10" y="8"></point>
          <point x="14" y="15"></point>
          <point x="-10" y="11"></point>
          <point x="12" y="16"></point>
          <point x="-10" y="14"></point>
          <point x="12" y="19"></point>
          <point x="-10" y="17"></point>
          <point x="12" y="22"></point>
          <point x="-10" y="20"></point>
          <point x="12" y="25"></point>
          <point x="-10" y="23"></point>
          <!--<point x="" y=""></point>-->
        </line>
      </drawing>
      <actor t="translate(43,18) rotate(-15)" pose="-11,9|-19,119|-13,101|-13,91|-17,64|-6,58|5,29|0,4|21,30|19,16|-15,79|3,59|-3,74|14,68">
        <bubble t="translate(9,11)" pose="0,0|-20,10|-40,33|-8,51|-29,79|-86,157">
          <tspan x="0" y="0em">Wub wub wub wub wub wub, wub wub</tspan>
          <tspan x="0" y="1em">Shake</tspan>
          <tspan x="0" y="2em">Wub wub wub wub wub wub, wub wub wub </tspan>
          <tspan x="0" y="3em">Shake</tspan>
          <tspan x="0" y="4em">Wub Wub tas wub tas wub tas</tspan>
          <tspan x="0" y="5em">Con los teroristas</tspan>
          <tspan x="0" y="6em">Grrrrrrr</tspan>
        </bubble>
      </actor>
      <actor t="translate(137,14)" pose="29,1|23,147|29,96|29,86|34,92|36,67|25,48|25,18|41,42|46,17|4,88|2,111|46,103|53,136"></actor>
      <!-- table -->
      <drawing t="translate(100,10) rotate(3)">
        <line stroke="brown">
          <point x="0" y="0"></point><!-- bottom left leg bottom -->
          <point x="0" y="30"></point><!-- bottom left leg top -->
          <point x="50" y="50"></point><!-- top left leg top -->
          <point x="50" y="20"></point><!-- top left leg bottom -->
          <point x="50" y="50"></point><!-- top left leg top -->
          <point x="140" y="50"></point><!-- top right leg top -->
          <point x="140" y="20"></point><!-- top right leg bottom -->
          <point x="140" y="50"></point><!-- top right leg top -->
          <point x="90" y="30"></point><!-- bottom right leg top -->
          <point x="90" y="0"></point><!-- bottom right leg bottom -->
          <point x="90" y="30"></point><!-- bottom right leg top -->
          <point x="0" y="30"></point><!-- bottom left leg top -->
          <!-- end of wireframe - begin dodgy colouring in time -->
          <point x="55" y="50"></point>
          <point x="5" y="30"></point>
          <point x="60" y="50"></point>
          <point x="10" y="30"></point>
          <point x="65" y="50"></point>
          <point x="15" y="30"></point>
          <point x="70" y="50"></point>
          <point x="20" y="30"></point>
          <point x="75" y="50"></point>
          <point x="25" y="30"></point>
          <point x="80" y="50"></point>
          <point x="30" y="30"></point>
          <point x="85" y="50"></point>
          <point x="35" y="30"></point>
          <point x="90" y="50"></point>
          <point x="40" y="30"></point>
          <point x="95" y="50"></point>
          <point x="45" y="30"></point>
          <point x="100" y="50"></point>
          <point x="50" y="30"></point>
          <point x="105" y="50"></point>
          <point x="55" y="30"></point>
          <point x="110" y="50"></point>
          <point x="60" y="30"></point>
          <point x="115" y="50"></point>
          <point x="65" y="30"></point>
          <point x="120" y="50"></point>
          <point x="70" y="30"></point>
          <point x="125" y="50"></point>
          <point x="75" y="30"></point>
          <point x="130" y="50"></point>
          <point x="80" y="30"></point>
          <point x="135" y="50"></point>
          <point x="85" y="30"></point>
          <point x="140" y="50"></point>
          <point x="90" y="30"></point>
        </line>
      </drawing>
      <actor t="translate(112,26) rotate(2)" pose="30,1|32,156|16,114|16,104|8,92|8,72|19,62|14,33|29,65|26,39|5,103|22,80|29,101|37,94"></actor>
      <actor t="translate(182,33) rotate(5)" pose="31,1|59,117|23,99|23,89|20,73|27,60|7,46|16,22|17,50|24,30|12,73|3,75|33,86|5,85"></actor>
      <!-- helmet; place behind head to cheat the circle -->
      <drawing t="translate(130,124) rotate(-43)" pose="-2,-29">
        <line stroke="pink">
          <point x="0" y="0"></point>
          <point x="10" y="2"></point>
          <point x="-4" y="2"></point>
          <point x="12" y="5"></point>
          <point x="-7" y="4"></point>
          <point x="14" y="8"></point>
          <point x="-10" y="5"></point>
          <point x="15" y="11"></point>
          <point x="-10" y="8"></point>
        </line>
        <line stroke="green">
          <point x="14" y="15"></point>
          <point x="-10" y="11"></point>
          <point x="12" y="16"></point>
          <point x="-10" y="14"></point>
          <point x="12" y="19"></point>
          <point x="-10" y="17"></point>
          <point x="12" y="22"></point>
          <point x="-10" y="20"></point>
          <point x="12" y="25"></point>
          <point x="-10" y="23"></point>
          <!--<point x="" y=""></point>-->
        </line>
      </drawing>

      <actor t="translate(108,10)" pose="0,0|6,97|0,90|0,80|6,73|6,53|-10,33|-8,8|11,33|10,3|-10,70|-14,53|10,70|17,50"></actor>
      <actor t="translate(171,135) rotate(176)" pose="2,7|2,113|2,97|2,87|-9,94|3,71|-16,63|-9,34|15,55|24,48|-19,98|-23,124|27,98|30,130"></actor>
      <actor t="translate(226,18)" pose="0,0|0,89|0,82|0,72|0,70|0,50|-10,30|-10,5|13,30|11,6|-14,65|-12,50|17,66|19,50"></actor>
      <actor t="translate(225,18)" pose="-149,3|-148,96|-148,80|-148,70|-149,67|-149,47|-159,27|-153,-3|-139,27|-144,1|-166,77|-185,108|-132,62|-132,42"></actor>
      <actor t="translate(212,214)" pose="0,0|6,106|0,90|-13,64|10,71|12,55|20,49|35,25|25,75|33,59|-34,101|-42,81|26,86|35,114"></actor>
    </scene>
    </div>
    <div id="scene2y">
    <scene id="scene2b">
      <label t="translate(0,346)">
        <tspan x="0" y="0em">"And do the Harlem Shake"</tspan>
      </label>
      <drawing t="translate(0,31)">
        <line stroke="green">
          <point x="0" y="0"></point>
          <point x="250" y="20"></point>
        </line>
      </drawing>
      <!-- helmet; place behind head to cheat the circle -->
      <drawing t="translate(55,130) rotate(120)">
        <line stroke="black">
          <point x="0" y="0"></point>
          <point x="10" y="2"></point>
          <point x="-4" y="2"></point>
          <point x="12" y="5"></point>
          <point x="-7" y="4"></point>
          <point x="14" y="8"></point>
        </line>
        <line stroke="red">
          <point x="-10" y="5"></point>
          <point x="15" y="11"></point>
          <point x="-10" y="8"></point>
          <point x="14" y="15"></point>
          <point x="-10" y="11"></point>
          <point x="12" y="16"></point>
          <point x="-10" y="14"></point>
          <point x="12" y="19"></point>
          <point x="-10" y="17"></point>
          <point x="12" y="22"></point>
          <point x="-10" y="20"></point>
          <point x="12" y="25"></point>
          <point x="-10" y="23"></point>
          <!--<point x="" y=""></point>-->
        </line>
      </drawing>
      <actor t="translate(43,18) rotate(-15)" pose="-11,9|-40,108|-13,101|-13,91|10,80|-6,58|3,28|-2,3|21,30|19,16|-15,79|3,59|-3,74|14,68">
        <bubble t="translate(9,11)" pose="0,0|-20,10|-40,33|-8,51|-29,79|-60,174">
          <tspan x="0" y="0em">Wub wub wub wub wub wub, wub wub</tspan>
          <tspan x="0" y="1em">Shake</tspan>
          <tspan x="0" y="2em">Wub wub wub wub wub wub, wub wub wub </tspan>
          <tspan x="0" y="3em">Shake</tspan>
          <tspan x="0" y="4em">Wub Wub tas wub tas wub tas</tspan>
          <tspan x="0" y="5em">Con los teroristas</tspan>
          <tspan x="0" y="6em">Grrrrrrr</tspan>
        </bubble>
      </actor>
      <actor t="translate(137,14)" pose="29,1|14,145|29,96|29,86|34,92|36,67|25,48|25,18|41,42|46,17|4,88|-3,111|46,103|48,138"></actor>
      <!-- table -->
      <drawing t="translate(100,10) rotate(3)">
        <line stroke="brown">
          <point x="0" y="0"></point><!-- bottom left leg bottom -->
          <point x="0" y="30"></point><!-- bottom left leg top -->
          <point x="50" y="50"></point><!-- top left leg top -->
          <point x="50" y="20"></point><!-- top left leg bottom -->
          <point x="50" y="50"></point><!-- top left leg top -->
          <point x="140" y="50"></point><!-- top right leg top -->
          <point x="140" y="20"></point><!-- top right leg bottom -->
          <point x="140" y="50"></point><!-- top right leg top -->
          <point x="90" y="30"></point><!-- bottom right leg top -->
          <point x="90" y="0"></point><!-- bottom right leg bottom -->
          <point x="90" y="30"></point><!-- bottom right leg top -->
          <point x="0" y="30"></point><!-- bottom left leg top -->
          <!-- end of wireframe - begin dodgy colouring in time -->
          <point x="55" y="50"></point>
          <point x="5" y="30"></point>
          <point x="60" y="50"></point>
          <point x="10" y="30"></point>
          <point x="65" y="50"></point>
          <point x="15" y="30"></point>
          <point x="70" y="50"></point>
          <point x="20" y="30"></point>
          <point x="75" y="50"></point>
          <point x="25" y="30"></point>
          <point x="80" y="50"></point>
          <point x="30" y="30"></point>
          <point x="85" y="50"></point>
          <point x="35" y="30"></point>
          <point x="90" y="50"></point>
          <point x="40" y="30"></point>
          <point x="95" y="50"></point>
          <point x="45" y="30"></point>
          <point x="100" y="50"></point>
          <point x="50" y="30"></point>
          <point x="105" y="50"></point>
          <point x="55" y="30"></point>
          <point x="110" y="50"></point>
          <point x="60" y="30"></point>
          <point x="115" y="50"></point>
          <point x="65" y="30"></point>
          <point x="120" y="50"></point>
          <point x="70" y="30"></point>
          <point x="125" y="50"></point>
          <point x="75" y="30"></point>
          <point x="130" y="50"></point>
          <point x="80" y="30"></point>
          <point x="135" y="50"></point>
          <point x="85" y="30"></point>
          <point x="140" y="50"></point>
          <point x="90" y="30"></point>
        </line>
      </drawing>
      <actor t="translate(112,26) rotate(2)" pose="30,1|38,137|14,101|14,91|8,92|8,72|15,53|10,24|25,54|22,28|3,90|20,67|27,88|31,67"></actor>
      <actor t="translate(182,33) rotate(5)" pose="31,1|38,138|23,99|23,89|24,73|31,60|11,46|13,20|21,50|25,26|12,73|3,75|33,86|7,73"></actor>
      <!-- helmet; place behind head to cheat the circle -->
      <drawing t="translate(116,127) rotate(10)" pose="-2,-29">
        <line stroke="pink">
          <point x="0" y="0"></point>
          <point x="10" y="2"></point>
          <point x="-4" y="2"></point>
          <point x="12" y="5"></point>
          <point x="-7" y="4"></point>
          <point x="14" y="8"></point>
          <point x="-10" y="5"></point>
          <point x="15" y="11"></point>
          <point x="-10" y="8"></point>
        </line>
        <line stroke="green">
          <point x="14" y="15"></point>
          <point x="-10" y="11"></point>
          <point x="12" y="16"></point>
          <point x="-10" y="14"></point>
          <point x="12" y="19"></point>
          <point x="-10" y="17"></point>
          <point x="12" y="22"></point>
          <point x="-10" y="20"></point>
          <point x="12" y="25"></point>
          <point x="-10" y="23"></point>
          <!--<point x="" y=""></point>-->
        </line>
      </drawing>

      <actor t="translate(108,10)" pose="0,0|6,97|0,90|0,80|0,70|0,50|-10,30|-5,3|10,30|10,0|-10,70|-10,50|10,70|10,50"></actor>
      <actor t="translate(171,135) rotate(176)" pose="6,7|6,113|6,97|6,87|-8,94|4,71|-15,63|-13,36|14,51|19,41|-15,98|-19,124|31,98|34,130"></actor>
      <actor t="translate(226,18)" pose="0,0|0,89|0,82|0,72|0,70|0,50|-10,30|-4,5|13,30|8,6|-13,63|-7,50|15,63|17,47"></actor>
      <actor t="translate(225,18)" pose="-149,3|-149,109|-149,93|-149,83|-149,73|-149,53|-159,33|-159,3|-139,33|-139,3|-167,90|-176,121|-139,73|-139,53"></actor>
      <actor t="translate(212,214)" pose="0,0|0,106|0,90|-13,64|10,71|12,55|20,49|35,25|25,75|33,59|-34,101|-38,135|26,86|35,114"></actor>
    </scene>
    </div>
    
    <scene id="scene3" height="160">
      <label t="translate(-2,188)" pose="0,-10|7,-30">
        <tspan x="0" y="0em">Non Web Addicts</tspan>
      </label>
      <actor t="translate(111,7) rotate(2)" pose="-41,48|-10,105|0,88|0,78|0,68|0,48|-5,23|-10,-2|5,23|10,-2|-11,70|-4,54|17,86|-4,110">
        <bubble t="translate(88,-55)" pose="-12,5|-111,42|-144,29|-129,57|-159,64|-177,75">
          <tspan x="0" y="0em" fill="red">WTF?!</tspan>
        </bubble>
      </actor>
    </scene>
    <scene id="scene4" width="300" height="150" margin-y="3" frame="no">
      <label t="translate(11,133)" pose="-10,14|-9,5">
        <tspan x="0" y="0em">~ comix markup</tspan>
        <tspan x="0" y="1em">~ can be mixed with HTML</tspan>
        <tspan x="0" y="2em">~ WYSIWYG editor</tspan>
        <tspan x="0" y="3em">~ open-source</tspan>
        <tspan x="0" y="4em">~ backed by </tspan><tspan fill="blue">gist.github.com</tspan>
        <tspan x="0" y="5em">~ xkcd harlem shake by </tspan><tspan fill="green">JohnLBevan</tspan>
      </label>
      <actor t="translate(211,44) rotate(-4)" pose="73,-56|77,58|79,38|87,22|81,12|82,1|63,-18|57,-40|89,-14|93,-38|69,23|51,30|71,15|43,19">
      </actor>
    </scene>
  </div>
</body>
</html>

2009-11-08

Psychic Site

Filed under: Ideas, Psychology, Technology — Tags: , , , , , , , , — Developer42 @ 16:35

One of the many projects I have queued up to code one day is a psychic site. This isn’t going to be any weird paranormal thing, or a way of ripping people off, but a way of showing what’s possible. The idea is to create a site, where a user fills in a few details, then the site does a cold reading. However, rather than just using the information provided, the site’s able to use information the person didn’t know they were giving to make it appear to be doing the impossible. Useful tools to aid with this are linked below:

Gender Genie. This shows how the language a person uses gives some indication as to their gender.
Polite Software’s Web Spy. This is a security flaw I discovered a while back, which it seems many geeks have worked out for themselves, but is still not that well known. Since you can tell a visited link from an active link by taking advantage of the different CSS style, and reading this using javascript, you can tell which popular sites a person’s been to. You can then use this information to build up a profile of the person, based on the sites and their demographics (e.g. someone who visits facebook is likely to be under 30, whilst someone going to the bbc news site is likely to be over 20).
HTML 5 GEO. HTML 5 introduces an amazing feature; your standard web browser is able to tell your location without requiring GPS. This is done by using GPS where available, your wireless network card to detect signals from various mobile phone masts, then using the strength of each of these signals along with signal strength maps to triangulate your location, your IP address to find the location of your ISP and various other methods. More on how this works can be found here W3 Geo Spec. Getting hold of this info is slightly less covert, as browser security will prompt the user to allow their location to be sent, but this small snippet of information can tell you much more. Once you know someone’s location, you can assume it’s their home, business, or school, since these are the most likely places from which someone will be accessing the net. You can then use data about these places to work out who someone works for, or how much their income’s likely to be (based on where they can afford to live), giving an idea of that person’s status in society. For an idea of what info you can get from someone’s address, UK residents may like to try putting their postcode into this site: Home Check.
You can then wrap all this data in with a few cold reading general comments (there’s a great example in Derren Brown’s
Tricks of the Mind, of a few paragraphs which describe almost anyone between 20 and 40, but sound as if they’re aimed directly at the reader) to make the few bits of real data you’ve gathered have more impact.

Other potential sources of info.
PIPL. Search for people.
192. Another person search tool
Facebook. Details on how to read data from people’s facebook accounts (with their permission!).
Google Dashboard. Everything Google knows about you (if you have a google account).
What’s My IP. Details glean-able from your IP address.
. Information on what web browser you use (safari people are artistic, chrome are techie purists, opera like elegance, firefox like functionality, and IE people follow the status quo).
How long is a piece of string?. A book with a few examples of ways in which people have been conned by not understanding statistics. Slightly off topic, but an interesting read (my favourite is the football score predictor that gets the result right every time).

When you find out how much it’s possible to find out about yourself, you may get scared. However, most of this information is harmless for people to find out, and the stuff that isn’t you have protection from (privacy settings in applications such as Facebook, prompts before allowing features such as HTML5’s Geo). These features can be put to good use, for example by having a site which changes it’s style to match the user’s likely tastes, and to bring more relevant content to the front (such as Google searches bringing up local restaurants when you look for somewhere to eat).

2009-10-26

Genius Ideas

Filed under: Comedy, Ideas — Tags: , , , , , — Developer42 @ 23:07

For anyone who hasn’t seen or heard it, Genius is a BBC Radio 4 show, which recently also aired on TV (BBC 2). The premise of the program is to get members of the public to submit their ideas, after which host Dave Gorman and a guest celebrity “genius” will analyse the idea to determine the intelligence of the submitter. However, these ideas aren’t always the most standard of thoughts or inventions. Ideas such as the Democrabus; a bus where all passengers have their own steering wheel and the bus goes the way of the majority, the Torture Box; a box into which inanimate objects which have in some way wronged you are placed in order to punish them, and Cat Bars; clubs where women sit at a table having a few drinks whilst enjoying the delights of having a cat wander over to their table to be stroked for their pleasure, are just a few examples of the sorts of thing which can be expected. To see some of the televised episodes, look here: http://www.youtube.com/results?search_query=bbc+genius+gorman&search_type=&aq=f.

So, introductions over, what’s this post about. Well, I’ve been busy submitting my own ideas for Genius; though so far have heard no word of a new series. So, in absence of further knowledge, I’ve decided to pop up a post of these ideas for all to enjoy. I hope you do.

The Hover Lawnmower
A device with spinning rotors on the bottom; two things spring immediately to mind. So why not combine these to reuse the rotation, and lose the wheels. This would allow an all-terrain lawnmower, able to cut grass on land or water. Adjusting the shape of the blades to a simple propeller design, and putting a skirt around the edge to focus the flow and reduce grass-throw would make this the perfect pitch preserving device.

Left Hand Man
Like a right hand man, but more creative. Your right hand man is someone who helps take care of all of the tasks you need to do and issues you need to resolve. Your left hand man helps you resolve some of the more design oriented problems, such as choosing the right shade of almost-white to paint the walls, choosing which songs to put on your iPod before jogging, and selecting spices to liven up your chicken pie.
Also available in this range are the right and left hand women (useful if you need to work on several things at once), and the foot range, popular with the upper classes.

The Jigsaw Shredder

Worried about identity theft? Then you need the Jigsaw shredder. This cunning device takes your sensitive documents and turns them into 1000 pieces of criminal entertainment. By moving from strips of paper to puzzle pieces, the task of reassembling the document becomes far more enjoyable. This, you think, may be counter-productive; however it’s actually counter-intuitive. By making the task more enjoyable, you’re encouraging the criminal to take up a new interest, helping to replace their bad habits with wholesome hobbies. Now, I know what you’re thinking. . . what about the edge pieces. If they can get the edge of the document together, they can reassemble my document in no time, making it far too easy to reassemble, thus completed too quickly for the seed of a hobby to be planted. Well, that’s the genius bit. Once a jigsaw shredding has been made, the edge pieces are removed and burnt. This burning of pieces produces enough energy to power the machine (whereas burning all the pieces wouldn’t be environmentally friendly).

2009-10-18

Polychos

Filed under: Books, Ideas — Developer42 @ 19:32

Most books about psychos focus on the negatives, but I’m sure there must be a yang to the yin; people with positive mental disorders. This idea came about from my own condition of “polite tourettes”; not a real condition, but a habit of saying words such as “cool” or “awesome” at random or awkward moments (which can be as bad as real tourettes if one of these words pops out just after someone says “my mum just died”)!
I haven’t started writing this book yet, since I haven’t got enough ideas to make it interesting, but I thought I’d pop it on here to see what people thought of the idea.
Other possible symptoms are:

  • People hear voices in their head telling them to make tea for people.
  • People who can get stuck holding a door open for days, never wanting to go in front of anyone else.
  • Not being able to eat whilst listening to someone else talk, as well as when talking yourself.
  • The inability to be negative about another person, regardless of what that person’s done.

The Hitch Hiker’s Guide to the Galaxy: A Trilogy in Five Parts

Filed under: Books, Comedy, Culture, Technology — Tags: , , , , , — Developer42 @ 18:18

Publisher(s): William Heinemann Ltd
Author(s): Douglas Adams
ISBN: 978-0434003488
0434003484
Link: Amazon; Google Books


The Hitch Hiker’s Guide to the Galaxy is a modern classic. Many of you will have predicted that I’m a fan of Douglas Adam’s work from my blog title (42 is the meaning of life, the universe, and everything, according to a supercomputer built with the specific task of answering the ultimate question). The story follows a man called Arthur Dent, a normal, suburbanite man who unknowingly befriends an alien on earth to write a report for a guide for hitch hikers. Adams creates a number of comedic situations stemming from ideas in science, philosophy and religion, as well as observations from real life (e.g. bistromathics; a branch of mathematics based on the missing amount after a restaurant bill has been equally split and everyone has paid). There are five books in this series, all building on the previous ideas, but without much planning as to how it’s all going to end. As a result, the books get darker and weirder in an effort to bring all of the plot lines to a satisfactory close, and here, the end of the series holds a few unexpected surprises. This has been my favourite book for a number of years, and I highly recommend it to anyone with an interest in science, technology and comedy.

Sophie’s World

Filed under: Books, Culture, Philosophy — Developer42 @ 17:20

Publisher(s): Phoenix
Author(s): Jostein Gaarder
ISBN: 978-1857992915
1857992911

Link: Amazon; Google Books


Sophie’s World is one of the most unusual books I’ve read. It starts out when a 14 year old school girl discovers a note in her postbox asking two questions “who are you?” and “where does the world come from?”. In searching for the answers to these questions, the author guides you through the history of philosophy, presenting the main historical figures and key concepts which have been raised over time. Much of the book is factual, but with all of these complex philosophical ideas being wrapped in a fictional story to keep it light hearted and readable. There’s also the slightly worrying sub text of the philosopher’s relationship to his student, but I’ll leave you to read into that one yourselves.
Despite being so unusual, and partly because of this, this book is amongst my favourite books. In the same way Wild Swans made me realise how little I knew about the history and politics of other countries, Sophie’s World has taught me about areas of philosophy I’d previously not delved into.

Wild Swans: Three Daughters of China

Filed under: Books, Culture — Tags: , , , , , — Developer42 @ 17:08

Publisher(s): HarperPerennial
Author(s): Jung Chang
ISBN: 978-0007176151
0007176155
Link: Amazon; Google Books


Wild Swans is a fascinating story following the author’s family history from her grandmother to herself, covering on some of the most interesting years in Chinese history. The story begins in the time of the great warlords, and brings us up to the death of Chairman Mao. This story is both moving and informative. The author evokes your emotions with tales of the brutal and idiotic violence of the mob mentality created under Chairman Mao, and with accounts of what was being done to her parents during this time. She also made me discover how little I knew about China; I knew it was a communist country, and had heard of Chairman Mao and Tianneman Square, but never knew the stories of how these events came to happen, or understood how they could be allowed to happen. For anyone interested in history, psychology, politics, or the world around them, this is a must read. It’s also great if you just want a gripping novel.

Patterns of Enterprise Application Architecture

Filed under: Books, Technology — Tags: , , — Developer42 @ 14:02

Publisher(s): Addison Wesley Press
Author(s): Martin Fowler, David Rice, Matthew Foemmel, Edward Hieatt, Robert Mee, Randy Stafford
ISBN: 978-0-321-12742-6
0-321-12742-0
Link: Amazon; Google Books


This is an excellent book for anyone programming in an OO language developing applications of an enterprise nature (e.g. with data, business logic & presentation tiers in multi-user environments). Many of the ideas presented are ones you’ll have discovered for yourself at some point, but having the pattern clearly extracted, and additional points which you may not have considered raised, enables you to see how you can improve your code, and get into better practices. Additionally, by presenting these patterns, you’re given names for these solutions, allowing you to use these terms in your code, making it more readable by others.
The book is easy to read without being patronising, code samples are given in C# and Java, and the author expresses his opinions about each of the patterns presented, guiding you when to use each, and what areas to avoid (with the relevant justifications).

Create a free website or blog at WordPress.com.

%d bloggers like this: