Home

Follow Skinkers.

Recieve all the updates from Skinkers via email:

 

Blog.

4

Phonegap Orientation Plugin

April 24th, 2012 | Android, iOS, iPhone, JavaScript, Phonegap, Uncategorized | Adam Maloney

Recently we did a cross-device project using Phonegap, one of the requirements was to enable rotation specific pages i.e.portrait would show one view landscape another and restricted to portrait only for others.

Unfortunately, phonegap doesn’t support this, and restricting to one orientation defined in xcode/android manifest means didn’t fire the orientationchanged event. To get round this I created a plugin that could change the orientations from inside the phonegap application, so the orientationchanged event could fire, then I could change the view.

Check it out here for iOS (Android version coming soon).

 

0

Xcode 4.3 and Titanium – getting the new Retina iPad Simulator to work with Titanium

April 3rd, 2012 | Apple, iOS, titanium | Matt Bryson

The current Titanium SDK (1.8.2) doesn’t support Xcode 4.3, as Xcode 4.3 has a totally different structure in terms of tools and utilities. Until Ti 2.0 comes out, here is what you can do to get it working:

1) Follow the instructions on the TI web site
http://developer.appcelerator.com/blog/2012/03/titanium-and-xcode-4-3-revisited.html#cheatsheet

2) This might not be needed on CI builds, but was on my release build:
Open TI Studio, go to Preferences >Titanium Studio > Titanium – and hit the REFRESH button on the IOS SDK home (it should update to the Xcode 4.3 path in Applications)

3) I cant ever change the IOS Simulator settings from within TI, it always crashes, so I usually open the IOS SIM myself, change the device, and then launch from TI. So to select the Ipad Retina, launch the NEW IOS Sim from here:


open /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/iOS Simulator.app

And then go to Devices > ipad (retina)

Now you should be all set.

As I often use spotlight to launch the IOS sim outside of Ti, I created a launcher app for the new Sim (A Symbolic link doesn’t work as spotlight thinks its a system file).

Download IOS Sim 5.1 launcher
m

UPDATE
I initially upgraded Xcode and kept my 4.2 install, but this caused all manner of issues after a few hours, and TI couldn’t compile – kept looking in the wrong Xcode dir for some libs.

Installing on a machine with JUST 4.3 works fine though.

0

Getting MAMP to run on OSX Lion / Upgrading phpMyAdmin

March 27th, 2012 | Uncategorized | Matt Bryson

I had been looking for a good alternative to WAMP to run on OSX, and decided to give MAMP / MAMP Pro a go. It looked pretty good, but I had a few teething troubles getting it all up and running, mainly;

  • Apache wouldn’t start
  • Then phpMyAdmin wouldn’t run

This is what I did to get it running (and upgrade phpMyAdmin).
Read the rest of this entry »

0

Generate visual Stats / Graphs from a Git repository (on OSX)

February 13th, 2012 | git | Matt Bryson

I was looking to get some slightly more detailed stats out of a git repo, more than just the command line stats you can generate. There are a couple of tools out there that generate graphs and charts for you, but they rely heavily on external libraries.

The best looking one was GitStats http://gitstats.sourceforge.net/ (example). But after checking off the pre reqs of Python, X11 and downloading and compiling GnuPlot it still wasn’t creating PNG graphs due to missing 3rd party libraries!! It was proving to be a bit of a pain, but I finally managed to get it all working with just 2 downloads (I already had python) – GitStats and a pre compiled binary of GnuPlot that contains all the 3rd party dependencies used by GitStat.

Below are some simple steps to get it up and running on OSX:

Read the rest of this entry »

0

IMImobile acquires award-winning digital agency Skinkers

September 26th, 2011 | General News, Releases | Tim Heyes

IMImobile to drive innovation in multi-device applications across web, mobile & social channels.

IMImobile, a leading provider of technology infrastructure for mobile data, voice and video services to mobile operators, enterprises and media companies today announced the acquisition of UK-based digital agency Skinkers.

Skinkers pioneered the use of desktop applications since early 2000 and more recently has developed innovative iPhone/iPad and Android applications for some of the world’s biggest and best-known organisations and brands. Its client list includes the American Airlines, BBC, Haymarket, Microsoft, NDS, Spectator and Virgin Atlantic.

Vishwanath Alluri, Founder and Chairman of IMImobile commented “With the acquisition of Skinkers we will add considerable strength to our existing offering. Skinkers bring on board an excellent digital understanding of application development, user-interface design as well as great expertise how to best use the latest web and social network technologies.”

For more information and the full press release please click here.

0

We’ve moved (again)!

August 16th, 2011 | Uncategorized | Tim Heyes

Well, it doesn’t seem like 2 minutes ago since we moved last, but our time in temporary accommodation has come to an end and we have finally planted our roots firmly in Soho.

Skinkers is now located at:

33 Glasshouse Street
London
W1B 5DG
 
There’s no markets round here as far as we know, but it’s right posh.
 
Click here for more details
1

We’ve moved!

July 5th, 2011 | Company | Tim Heyes

After many happy (and sometimes noisy) years, Skinkers have relocated from Kirby Street in Clerkenwell over to Beech Street in Barbican.

All phone and fax numbers are the same but our address has changed to:

Skinkers
Central Point
45 Beech Street
London
EC2Y 8AD

Who would have though that Leather Lane market could be beaten? We’ll miss you, but hello Whitecross Street market!

2

Fixing Internet Explorer’s setTimeout / setInterval scoping issues AND Overcome API’s/Frameworks that don’t allow arguments to be passed to callback methods..

May 31st, 2011 | JavaScript | Matt Bryson

When using setTimeout or setInterval in IE, there is no way to pass any data to the method you want to execute.
You can obviously create lots of global variables, but this is a very messy solution, and not object oriented.

Similarly, if you are using an API that makes an A-Synchronous call and you can set a callback handler, you may well want to pass extra data to the handler, and the API may not let you.

To get round this you can use a delegate function. You basically tell another function what to execute, what to pass it and the scope to execute it in.

NOTE : This method uses jQuery for browser detection. However you can add whichever browser detection you like and replace the $.browser.mozilla check in the method.

/**
* @param scope Object :  The scope in which to execute the delegated function.
* @param func Function : The function to execute
* @param data Object or Array : The data to pass to the function. If the function is also passed arguments, the data is appended to the arguments list. If the data is an Array, each item is appended as a new argument.
* @param isTimeout Boolean : Indicates if the delegate is being executed as part of timeout/interval method or not. This is required for Mozilla/Gecko based browsers when you are passing in extra arguments. This is not needed if you are not passing extra data in.
*/
function delegate(scope, func, data, isTimeout)
{
	return function()
	{
		var args = Array.prototype.slice.apply(arguments).concat(data);
		//Mozilla/Gecko passes a extra arg to indicate the "lateness" of the interval
		//this needs to be removed otherwise your handler receives more arguments than you expected.
                //NOTE : This uses jQuery for browser detection, you can add whatever browser detection you like and replace the below.
		if (isTimeout && $.browser.mozilla)
			args.shift();	

		func.apply(scope, args);
	}
}

Read the rest of this entry »

2

Provisioning Snom phones automatically in a Lync 2010 environment with Snomtastic

May 17th, 2011 | Lync, SIP | Max Sanna

A bit of background info

Hi everybody, I wanted to give you a little update on how our experience with Lync has been so far and how are we doing device-wise.

By now we completely replaced our legacy 3CX environment and sold most of the old Linksys SPA941 phones we used with it. All these phones had to be replaced with new, Lync compatible ones though. We did a pilot experiment to see if people were ready to just ditch their deskphone and use headsets all the time. As you can guess the answer is a big fat NO. A handset is just too convenient to have, you can’t expect sales people and developers to be wearing a headset at all times as if they were in a call centre, so the result is that many calls were going missing, etc.

That’s when I started exploring which alternatives were available. The key requirements for most people were:

  • Being able to use the phone regardless of their computer being turned on and Lync logged in
  • Most users were happy with having basic functionality on their phone (making phone calls, receiving them, joining a conference) and would use Lync client for more high-level functionality

With these two requirements in mind, we ruled out all the USB handsets (Polycom CX200, etc.), it had to be Ethernet, and possibly not break the bank.

So we started talking with Snom, who have been developing an OCS compatible firmware for the past years, which runs on most phones they produce. They have been extremely kind and agreed to send us a sample of three models they distribute which support the OCS firmware:

  • Snom 300 – a no frills phone perfect for people who don’t live constantly on the phone, or for communal areas
  • Snom 821 – a nice colour display phone which provides enhanced presence, and advanced telephony features
  • Snom 870 – their top-of-the-range touchscreen phone, suitable for power users and management

Now, if you used an Aries-based Lync Phone before (e.g. Aastra 6725ip, or Polycom CX600) you will be accustomed to the ease of deployment these phones enjoy, just plug it into the Ethernet, and via USB to the computer, and Lync client will deliver all the necessary settings to the phone, ask you to enter your password and presto, you’re all set.

The problem with Snom phones so far, instead, was that the user was either required to type in his SIP uri, domain, username and password using the clunky phone keyboard, or find out the IP of his phone, open the web interface and do so via web. Not the easiest experience for an end user, especially if not technically minded.

But this now has changed thanks to a great piece of software developed by the Sydney Harbour Foreshore Authority, which automates the provisioning of Snom phones into your environment.

Snomtastic!!

Snomtastic Homepage

This is what the Hardware inventory looks like in Snomtastic

Snomtastic does many things, and covers all the functionalities one would expect from a mass deployment provisioning tool:

  • Hardware inventory
  • Remote reboot
  • Multiple configurations
  • Firmware updates
  • Easy login for the users

The easy login part is covered with a tiny client utility you can easily deploy by group policies, which asks the users to enter their Active Directory credentials, and automates the login on the phone, mimicking the experience you’d get by using a normal Aries/Tanjay phone.

Unfortunately, because the software is not in production stage yet, the installation process is very manual and prone to issues with the webserver (e.g. if you run a 64bit version of Windows and IIS you will have to do a few undocumented tweaks to the IIS settings), but our friend Drago Totev wrote a super-detailed how-to in four parts on how to get up and running with Snomtastic. He will also provide you a copy of the database back up with a few tweaks to support newer phones.

To be honest I don’t feel like I need to add anything to the excellent job he did at writing that tutorial, it literally covers everything, also the firmware updates. With a bit of patience everybody can get Snomtastic up and running by following it.

One thing we hope to see in future Snomtastic releases is the ability to add more managed settings to the ones available via web interface, while now it requires changing the database schema by hand. I can see this becoming a key feature as Snom releases newer versions of the OCS firmware which add support for additional settings (i.e. the server-controlled remote keyboard lock option which appeared in v8.6.6.4).

The only caveat I found so far, is that if you try to reset a provisioned phone to factory settings, it will still hold some parameters in the memory, and you’ll end up locked out from its web interface. None of the factory passwords worked for me to gain access to it again. The only solution is these cases, is to follow this procedure and flash the phone with the recovery firmware, then re-flash it with the latest OCS firmware (make sure to be on a network where it won’t pick up the DHCP option 66 again, or you’ll be back to square one).

So, there you go: by getting Snom phones and Snomtastic you’ll have an easy-to-manage environment, with high quality Ethernet desk phones, without having to compromise on price and get USB handsets of limited functionality.

1

Android Density Pixel (DP) / Pixel (PX) Calculator

April 8th, 2011 | Android | Matt Bryson

After getting confused for the millionth time regarding converting Density Independent Pixels to Pixels (or vice versa), We decided to create a simple calculator to do it for us!

This should help to determine what size to make all your assets so you can support multiple screen densities on Android.

Android DP / PX Calculator

Android API : Supporting Multiple Screens

m.