So… I was starting to dabble with farcebook…

However if this news is accurate then I’m going to be closing down that as well

http://arstechnica.com/business/2013/05/facebook-news-feed-too-quiet-auto-play-video-ads-are-coming

I know and understand that if there is no fee, then I’m the product.  Facebook, Google, Feedly etc etc all make their money by using information about me to sell advertising which is focused around me, my interests and the nature of what I’m looking at.

However intrusive ads which ram themselves into my world in this manner really are my break point for any service.  It’s where the balance between me looking at the content and the content being shoved in my face and more importantly into my world.

Facebook is bad enough with the ads in the timeline, the re-shares of “share this if you’re against $foo” crap, game spam etc etc.

So, where next.  It’s starting to feel like I should just completely junk social media (Twitter got canned completely because to be frank I’m sick to death of the whole thing and the way some people seem to enjoy jumping on my head), LJ is a ghost town, FB has always been suspect with the whole privacy side of things.

Yet another arrogant bastard in power

http://www.bbc.co.uk/news/uk-england-london-22397672

There’s something about politicians (and the rich / powerful) that they believe the rules do not apply to them, doubly so if they actually create the rules.  So, Barnet Councillor Brian Coleman you are officially ‘tosser of the day’, violence against another person is not acceptable except in self defence.

You decided that attacking another person because they were capturing your image from public land doing something illegal.  Though I rather suspect that you strongly believe in the right of the council to deploy CCTV and the police to film everyone attending any form of gathering for later checking.

I wonder if you’ve ever said “If you’ve nothing to hide, you’ve nothing to fear.”

Please do the honourable thing (if you don’t understand the word please buy a dictionary) and resign.

 

 

All your photos belong to everyone

So, the previous bunch of bastards (Labour) tried to get through clause 43 of the Digital Economy Act 2010 which would open up orphan works to the world removing the need for those wishing to profit off them to do anything other than pay lip service to finding the copyright owner.

My MP at the time (David HeathcoatAmory) couldn’t be bothered to vote on the third reading.  His party worker during the election failed completely to even know the voting record of his candidate or explain why he was voting in the way he did.

Tessa Munt, note that your voting record is under the spotlight for me as well, particularly your habit of being “absent” for anything contentious.

The tories at the time decided that Clause 43 was a bad thing, and agreed with the other lot to support the bill in return for the clause being dropped.

Which makes today’s news surprising, or possibly not, in that they’ve now pushed through the Enterprise and Regulatory Reform Act which contains clauses which do exactly the same thing, yet more proof if we needed it anymore that the big three will pass the same laws regardless of promises made  during elections.

Oh and guys, don’t any of you dare claim you had or didn’t have a mandate for something, we’ve seen with the NHS and Gay Marriage stuff that you’ll claim both depending on which way you want the argument to go.

[1] https://en.wikipedia.org/wiki/Digital_Economy_Act_2010
[2] http://www.theregister.co.uk/2013/04/29/err_act_landgrab/

UK Local Elections: UKIP Nuttery

Now, I’m not going to claim this this guy is representative of the whole of UKIP, and there is going to be some bias coming from those who oppose them as a party in that they’re digging as hard as possible to find the extreme nutjobs.

However, this guy is a piece of work, exercise to be less gay, yeah right.

http://www.gaystarnews.com/article/physical-excercise-prevents-you-becoming-gay-claims-uk-councillor-candidate270413

So, today’s Warcrack outage….

Reposting here something I slapped up onto the forum, but given that that had reached ~900 pages last time I looked I suspect it’ll be read by about three people.

–[ – ]–
So what’s likely to be happening behind the scenes.

At the coal face: Techies cursing, trying to find out who changed what, how they changed it, why and understand why the hell such a simple change caused such a major impact.  If they have good line managers (LM) they’ll be shielded from the upper layers allowing them to firefight this.  I would suspect that any engineers with specific experience with the type of problem will have been phoned up and pulled in from days off by now as well.

Next level up: The LM for the techies will be politely telling the management to f__k off and not to contact the techs directly, pointy haired bosses poking their noses in never helps.  They’ll be collecting information from everyone they can and probably having the joy which is hourly (at least) reports up the chain to the next level.

Next level: Sitting around in a conf call demanding timescales and answers and demanding that everyone is pulled in but not actually promising to pay overtime or TOIL for broken holiday.

Top level: Cursing everyone below them and making threats.

Web / forum engineers: Cursing the customers for trying to perform a denial of service by whining and posting ASCII art to the forum.

Customers: Getting that glint in their eyes seeing “compensation” and “sue Blizz” in their future dreaming of a month of free game time, gold and server transfers.  None of which will happen.

Back to the poor sods at the first two levels, seriously.  They and the other side (Telia I suspect) will be sat on a joint conf call trying to debug what has happened how to first mitigate the issue and then return normal service.  Shift changes will be happening, some people will be working near non-stop for 24h (and no.. that’s not their job no one really gets paid to work 24h without a break)

I have faith in the techies working it, I have little faith in Blizzard’s customer service to calm the fires partly because they can’t and partly because their history on handling such things is not brilliant.

Do I think someone f__ked up, hell yes, will demanding stupid things resolve anything.  No.

Have I been there.  Yes, you think this is horrible, trust me, it isn’t.
–[ – ]–

Debugging

Some debugging later, and some tweaking of the timers we get this, the timers were off by more, but there’s something weird happening at cycle 6 where the 1ms cycle ramps up well beyond what it should be.  Further digging tomorrow night.

IR Trigger test #1

So, first admission, this doesn’t work yet.  In theory everything is perfect, checking the circuit shows the IR LED is firing, the test green LED goes “blip” and the red indicates when the code is off having a kip.  However the camera is sat there like a dumb lump ignoring the IR codes through either port (there’s one front and back on the K10D).

Back to pondering on what’s happening, or not happening, whether the IR can fire fast enough or if the IR LED is up to the job or indeed should I find the black chicken to wave over the circuit to finish it off.

Diagram of Pentax IR sequence

The circuit

The Code

/*
  Pentax firing code (file : blink_test2)

  Code used with modified setup with parallel LEDs to simulate standard LED
  and IR LED for triggering K10D camera

  References:
    PIR based firing code
    http://luckylarry.co.uk/arduino-projects/arduino-motion-triggered-camera/

    Pentax IR sequence
    http://www.picbasic.co.uk/forum/showthread.php?t=14182
 */

int pinLED   = 11;
int pinIRLED = 10;

// Normally the clock cycle is 38kHz
// halfCycle == (26.32×10-6s) / 2
int halfCycle = 13;

// the setup routine runs once when you press reset:
void setup() {                
  // initialize the digital pin as an output.
  pinMode(pinIRLED, OUTPUT);     
  pinMode(pinLED, OUTPUT);     
}

// sets the pulse of the IR signal.
void pulseON(int pulseTime) {
  unsigned long endPulse = micros() + pulseTime;        // create the microseconds to pulse for
  while( micros() < endPulse) {
    digitalWrite(pinIRLED, HIGH);                       // turn IR on
    delayMicroseconds( halfCycle );                              // half the clock cycle for 38Khz (26.32×10-6s) - e.g. the 'on' part of our wave
    digitalWrite(pinIRLED, LOW);                        // turn IR off
    delayMicroseconds( halfCycle );                              // delay for the other half of the cycle to generate wave/ oscillation
  }
}

void pulseOFF(unsigned long startDelay) {
  // startDelay = startDelay * 1000;
  unsigned long endDelay = micros() + startDelay;       // create the microseconds to delay for
  while(micros() < endDelay);
}

void takePicture() {
  // Pentax K10D firing sequence
  // 13ms pulsing
  // 3ms silence
  // 1ms pulse + 1ms silence, looped seven times

  for (int i=0; i < 2; i++) {
    // Loop to fire the signal twice, just in case
    pulseON( 13000 );    // pulse = 13ms
    pulseOFF( 3000 );   // silence = 1ms
    // 1
    pulseON( 1000 );    // pulse = 1ms
    pulseOFF( 1000 );   // silence = 1ms
    // 2
    pulseON( 1000 );    // pulse = 1ms
    pulseOFF( 1000 );   // silence = 1ms
    // 3
    pulseON( 1000 );    // pulse = 1ms
    pulseOFF( 1000 );   // silence = 1ms
    // 4
    pulseON( 1000 );    // pulse = 1ms
    pulseOFF( 1000 );   // silence = 1ms
    // 5
    pulseON( 1000 );    // pulse = 1ms
    pulseOFF( 1000 );   // silence = 1ms
    // 6
    pulseON( 1000 );    // pulse = 1ms
    pulseOFF( 1000 );   // silence = 1ms
    // 7
    pulseON( 1000 );    // pulse = 1ms  
    pulseOFF( 1000 );   // silence = 1ms

    // slacking
    pulseOFF( 1000 );   // silence = 1ms
    pulseOFF( 1000 );   // silence = 1ms

    // defined slacking
    pulseOFF(400000);
  }
}

void blink( int thisPIN, int delayMe ) {

  digitalWrite( thisPIN, HIGH ); // Sleep LED on
  for (int i=0; i <= delayMe; i++) {
    delay( 950 );                  // 2 seconds twiddling our thumbs
    digitalWrite( thisPIN, LOW  ); // LED off
    delay( 50 );
    digitalWrite( thisPIN, HIGH ); // Sleep LED on
  }
  digitalWrite( thisPIN, LOW  ); // LED off
}

void LEDTest() {
  // Just here to prove the LEDs are up for measurement purposes.
  digitalWrite( pinIRLED, HIGH );
  digitalWrite( pinLED, HIGH );
  delay( 5000 );
  digitalWrite( pinIRLED, LOW );
  digitalWrite( pinLED, LOW );
  delay( 2000 );
}

void loop() {
  // LEDTest();

  // Click (hopefully)  
  takePicture();
  // Make the red LED go blinkitty.
  blink( pinLED, 5 );
  delay( 1000 );
  digitalWrite( pinLED, HIGH );
  delay( 500 );
  digitalWrite( pinLED, LOW );
  delay( 1000 );
}

Dances with electronics

In which your humble narrator manages to get his shiny new Arduino to make the Pentax K10D go “click”.

After some digging around I managed to find out how the remote cable on the K10D is setup, 2.5mm stereo jack.

Tip – Shutter
Ring – Focus
Sleave – Common

All nice and simple, close ring & sleave, watch the camera focus. Close tip and sleave, click. All nicely tested with a bit of wire and a nice fresh jack from Maplin. The important part of the circuit is I don’t want anything from the control side spilling over into the camera side, frying the camera would be a bad thing.

Enter the optocoupler, a nifty little device which allows control on one side to open or close a circuit on the other with no crossover of circuits.

The circuit

U1 – 4N25 optocoupler
R1 – 470 ohm
R2 – 560 ohm

Code

The code is effectively the blink test just slightly tweaked for the LED circuit, nothing exciting or sexy yet.

/*
K10D
Optocoupler based firing mechanism
*/

// Control PIN
int pinLED = 11;
int pinCAM = 10;

// the setup routine runs once when you press reset:
void setup() {
// initialize the digital pin as an output.
pinMode(pinLED, OUTPUT);
pinMode(pinCAM, OUTPUT);
}

void loop() {
delay( 1000 ); // Delay one second
digitalWrite(pinLED, HIGH);
digitalWrite(pinCAM, HIGH);
delay( 1000 ); // Delay one second
digitalWrite(pinLED, LOW);
digitalWrite(pinCAM, LOW);
}

Photos

Next… seeing if I can get the IR LED to fire the camera.

 

 

D3 and /general

A quick comment, apparently the “you’re always joined to /general on logon” is a bug, it should default to on the first time and then remember the setting.

This doesn’t make things any better, what it demonstrates is the quality control / testing is absolutely shocking.

Hospitals and stuff

So, knocking up a quick spreadsheet listing in a very clear manner a complex medication regime for the various medical staff at the hospital is ‘abnormal’.  No… I’m not OCD (it should be CDO anyway…).  Though it would appear this didn’t help them.  They’ve still got utterly confused.  Maybe we should have rambled through the drugs in an unstructured manner

(shoved here because twitter has too small a limit)