The musing and sometimes not so wise words of Jonathan Dalrymple, Global Traveller, Programmer, Financial Rocket Scientist, Conspiracy Theorist, Part-time comedian, full-time funny man and whatever else i randomly decide to do.
Wednesday, January 19, 2011
Why does Darren Bent cost £18 Million?
It is slightly hard to do this as few things are actually official, but as Rafa says lets work with the facts (that are mostly rumours).
Darren Bent is rumoured to earn £50k a per week, and had 2 years left on his contract at sunderland.
That means that his contract excluding any bonuses or commercial rights is worth about £2.6 million a year or £5.2 million. I believe this should be his 'book value', and the value that would stated on Sunderlands accounts.
Next Darren's move to Sunderland from Tottenham cost £16 million, with a cash component of £10 and the additional £6 million to be paid in various (i assume) performance related bonuses. Now i would guess that a club like sunderland structured the majority of these payments to be done over a period of time, being that Bent only left a year and half ago, they probably haven't paid this total sum yet.
Lastly as reported, a cause in the deal with Tottenham, was that Sunderland had to pay them 10% of his next transfer fee, something they would also need to take into consideration when negotiating with Aston Villa.
So lets do some basic addition with the numbers above
£5.2m (contract)
£10m (purchase price from spurs)
£15.2m
Now lets say that Sunderland have a policy of trying to maintain a profit margin of around 10% margin on player sales, that puts us in a range of £16.72 million.
Now we are missing one thing, Spurs cut. Thats 10% right?
10% of 16.72 million is £1.72 million
Which i assume sunderland passes on to Villa, so we get £18.39 million. If if they can't legally do this £16.72 still isn't far off the headline £18 million figure that we see in the press.
In fact depending on how much sunderland and already paid tottenham in bonus related payments, they might not have even made a profit. Also i dont know if Darren's 50k p/w wage is before or after tax, because if it is after tax, the value of his contract to the club is effectively doubled. due to the 50% tax rate.
Not accurate, not throughly researched, but certainly interesting.
Next, how the hell did they work out 'CR7' was worth north of £70million?
If you got any insight for me please share either on twitter @veritech or in the comments.
Friday, January 14, 2011
Tuesday, January 04, 2011
NSNotificationQueue, Coalescing and SIGABRT
I've come to love many cocoa API's over the last year. One i've been late to embrace is NSNotificationQueue. What can i say that hasn't already been made clear ... it's a queue for notification objects ... well almost it has one particular feature that makes it totally awesome, Coalescing.
Coalescing is useful for when you want to call a method multiple times but only have it execute it's action once every so often. Since i've started coding for iOS i've been a fan of simply calling [UITableView reloadData] to refresh my table views, it's simple concise and i don't have to worry about index paths etc. However if you are drawing complex cells, and you need to call this method while you process some data you really don't want to happen every single time, the user isn't playing COD, they just want to see their data, and not have it flick around. So in my UITableViewDataSource classes i do this ...
With the handler to the reloadNotification calling the actual reload method. This means that in one area of my app, where i am listening for NSManagedObjectContextObjectsDidChangeNotification (gotta love cocoa conciseness )the reload method gets called just once instead of 10+ times.
Awesome right ....
Well there is a problem, you might have noticed that enqueueNotification: takes a postingStyle. This calculates when in the duration of the run loop the queue will attempt to deliver your notification. Because i want my Run loop to be a free spirit and not care about what my crazy background threads were doing i would usually choose NSPostWhenIdle. Well i did till today.
The problem is the UITableView that this data source is assigned to can be dealloc'd at anytime, and while my dataSource is a good cocoa citizen and removes it's self as an observer before it is dealloc'd the notification has already been assigned it's target and is waiting till the run loop is idle ... read waiting till after my object has been dealloc'd. This of course means the the objective-c runtime attempts to call the reload method on dealloc'd object, and we all know what happens when that happens ... Well i thought i did. I code with NSZombieEnabled on, so in such a situation i expect to see a nice friendly message saying i've sent a message to an invalid object ... I got that message ... sometimes. Instead 9/10 times i got a big, fat, bold SIGABRT.
Oh, but you have stack traces ... um no. When crap happens in the objective-c runtime, you close your eyes and pray that they will go away, well thats what i do.
Anyways the solution was to ensure that notification was dispatched as quickly as possible, so NSPostNow was a much better fit. My professional($_$) opinion is that unless you have a long running object (ie the app delegate) or a singleton, never use the NSPostWhenIdle.
Conclusion
NSPostNow > NSPostWhenIdle
(9 out of 10 times)
Friday, December 31, 2010
2010: My Highlights
Float-Right (aka my career)
I've been self employed for entire year! Thats right folks a whole year. In that time Float-Right has really grown. While i'm not quite groupon, and i haven't bought that Aston Martin Rapide yet, i'm happy with what i've been able to achieve in that time. I've had some help mind you, not only in the form of my Mum, who has kept me snug with regular cups of tea, but also my small but loyal twitter following who make up for the lack of work colleagues.
2011 should see Float-Right do more work internationally, not only in terms of client base, but also in terms of where i will physically be located (thats right, i'm going back to Espana!). Also i hope to finally meetup with the rest of the iOS/Mac dev community at WWDC this year. As a result please send me work! Flights to San Francisco, hotel stays, and WWDC tickets are not cheap. Even my budget travel ethos doesn't cover me on this one.
Travel
In 2009 i travelled to China, Hong Kong, Barcelona,Spain & Paris,France. I thought that was fairly amazing. Well i think it's fair to say i've had another good year, visiting Amsterdam( Netherlands), Barcelona(Spain), Sevilla(Spain), Tel Aviv & Jerusalem (Israel).
Despite now being essentially banned from a number of nations thanks to my visit to Israel, my list for 2011 is even bigger. Argentina, Australia, USA, Switzerland, Norway and of course my new home (in the sun), Sevilla.
Moments
Have had a lot of interesting moments and times this year, but here are some of my highlights.
* Encouraging Ezra (@ezrabutler) to take a boat trip in international waters for his birthday ... this was about 1 month before the infamous flotilla incident
* Meeting Joaquin. Not that it was bad, it was just overwhelming.
* Hanging with Jason and his friends in Sevilla, he really helped make that experience amazing.
* My "lovely" trip to sunny barcelona, hint, it wasn't lovely, and it damn sure wasn't sunny.
* Being confused for a homeless person on the streets of Barcelona at 2am.
* Meeting Jonathan/Joe (@improvmonkey), full of interesting facts and views on life, the world, and the babylonians. I've never met a grown man that can party like that. I can't mention Joe without mentioning some other folks i met on that trip; @ahoova @llan_peer and @guy.
* Amsterdam with the lads, while people find this hard to believe i don't smoke, but that was hilarious. Especially the trip to the park on the last day. Shout out to @andrew_francis & @jai_morjaria. We gotta do that again.
* The sheer number of people that i met in Sevilla, too many to name them all (well i might have forgotten some of their names ... ). Strangely two of my favourites were both Aussies, Amy & Jardana.
* While i also met her in Sevilla, she deserves a bullet point all to herself, Serpil, aka El Professora, the woman that helped beat my spanish into shape, while also showing me what being truly multilingual looked like. She was also a really nice person!
* Buying stuff in a spanish shop in chinese. Absolutely hilarious.
* FOWA after party, that's always funny.
=======================================================
Anyone else noticing that all the good stuff happens overseas ... i'm just saying
=======================================================
* Geeky i know, but i finally purchased my first ever Macbook pro :)... which i put a rather large dent in three weeks later :(
* Living in a hostel(s) for two weeks. It was awesome at first but really started to get depressing towards the end.
* Finally having a piece of published software! Only took 22 years.
* Having a flight cancelled for the first time in my life.
* Watching the sunrise on beach in Tel aviv.
* The way people (who aren't from California) get excited when i tell them i make iPhone apps for a living, (putty in my hands i tell you...)
* My cafe con leche experience ... aka hot milk with a tea bag in it. Priceless.
* Completely stopping Web Development, i can't explain how great that is.
* Meeting the Girls as @andrew_francis and i call them, hilarious night. Good people.
* Saying the Stweetfight app would only take a couple of hours (thanks @samwilliamh)
* Doing a standup like performance for a roof terrace full of germans.
Well that made me smile, if no one else. So lets give away some awards.
My most hilarious moment of 2010 ...
Watching Nykia drop off a chair. Being 2010 it's on video of course
My most depressing moment of 2010
Letting go one of my early clients.
My happiest moment of 2010 ...
I can't pinpoint a single moment, but as the above shows all the time i spent outside of the UK were my happiest times. (i'm still game for the passport swap if you are)
My Saddest moment of 2010 ...
My grandmothers funeral, never have i shed that many tears in so little time
Goals for 2011
I have many, being the continuously improving sort of person i am, but here are a few.
* Go back to spain (por todos tiempo)
* Go back to China (on my to the DPRK perhaps ....)
* Build a Mac App
* Discover this work/life balance that people talk about
* Go somewhere i haven't been
* Improve my Spanish & Chinese, especially my ability to read the latter.
* Starting learning Arabic
* Pray a little/lot more, at this rate someone might confuse me for an atheist! I'm actually a christian shock horror!
To everyone, best wishes in 2011. Don't forget it's just like 2010, but your older this time ^_^
Thursday, December 16, 2010
Offscreen drawing on the iPhone using NSOperations, CGImage, CGLayer
The key thing to remember is that the drawing coordinates are inverted. This means that CGPoint(0.0f,0.0f) is actually the bottom left not the top left corner. I'm lead to believe this is a hold over from the Postscript drawing system that originated on the mac, and this is how the big boys do it. So stop whining and code.
Nicely it would appear that the UIImage representation methods automatically invert the image, so you only have to invert your coordinates for CGContext drawing calls.
Exactly How?
NOTE: This code will not work unless you have a image named sample.jpg in your bundle or change the assignment to the backgroundImg variable.
Friday, November 19, 2010
Ultimo Videos de Sevilla
Sunday, November 14, 2010
End of an era
It signals the end of Samuels surname. My grandparents only had girls, 3 of them to be exact. While my surname might be Dalrymple, I identify more with my maternal side of the family, and felt more in touch with that side of my family.
It was also that side of the family that was the first to come to England during the wind rush years, and is partly why I hold a British passport, and thus am able to live in Sevilla.
My grandparents did a lot for me, not only did they raise me but much of my personality and drive developed as a result of their influence. So I owe them a lot.
Sunday, October 31, 2010
Sevilla en el Video
This second video was taken one evening in one of the many plazas in Sevilla. The locals (mainly students), are doing pre drinks before rolling before heading to a club, or knowing so of them, just simply having dinner!
Friday, October 29, 2010
Day 22
Before this china held the record, at 21 days. Now while you could argue that I was in Jamaica for much longer, I was living with my grandparents so it was a very different scenario.
I'm relatively settled now, I know my way around town, my Spanish and more importantly my confidence in my Spanish is improving. I got some friends, most of whom speak English sadly.
How long will I stay for, your guess is as good as mine. But
the sevillianos are wonderful (& beautiful) people, they have awesome food and are really friendly. Why would I want or need to go else where.
Only time will tell, I look forward to the next 22 days.
Monday, October 18, 2010
Are you for real?
¿Puedo visitar de habitacion hoy o esta semana?This is spanish for "Can i visit the room today or this week?" However some of the responses i get back to this simple request are crazy. Take this one for example
Hello.Jonathan
Thanks for the email and am really glad for you interest in my Apartment.I owns the Apartment,My name is [REDACTED] and also want you to know that it was due to my wife's Sickness that made us to leave the Apartment and also want to give it out for rent and looking for a responsible person that can take good care of the Apartment, we are not after the money for the rent but want it to be clean all the time .So for now,I am in Benin Republic Cotonou in our new home and also I am with the keys and documents of the Apartment,we tried to look for an agent that we can give this documents before we left but could not see and we don't want the Apartment to be used any how in our absence that is why we took the keys and documents along with us here and as you know that,I and my family are in the Benin Republic Cotonou on a christian mission of God all because of the sickness,so i hope you will promise us to take very good care of the Apartment but your absolute maintenance of my Apartment is most important thing.So get back to me on how you could take care of our Apartment or perhaps experience you have in renting a home.Note that the rent is going to be ( 260 Euro) No extra fees.I will like you to give me a call on this effect to know how serious you are.Hope you are okay with the price per month with DVD Player, air conditioning,alarm system. The kitchen is fully equipped with all necessary cooking utensils,refrigerator-freezer, four-hob and oven,microwave,dishwasher and washing machine and Dryer and i will want you to get back to me with the Application form below :
APARTMENT ADDRESS:[REDATED]
======== RENT APPLICATION FORM ========
========= PRIVATE & CONFIDENTIAL========
Also,Pls answer these questions below:
1)Your Full Name__________________________ ____________
2)Present Address(where you reside now) & Phone
Number________________________ _______
3)How old are you _____________________________
4)Are you married ______________________________ _____
5)How many people will be living in the Apartment ___________________________
6)Do you have a pet ______________________________ ___________
7)Do you have a car ______________________________ ____________
8)Occupation ______________________________ ___________________
9)What is your religion ______________________________ ______________
10)How long are you willing to stay
______________________________ ___________
11)When do you intend to move in ______________________________ ___________
12)1 month Or 2 month deposit needed ______________________________ ________
13) Pictures of all the Occupant that will stay in my Apartment ______________________________ ________
Looking forward to hear from you with all this details so that i can have it in my file incase of issuing the receipt in your name and contacting you.Await your urgent reply so that we can discuss on how to get the keys and the documents to you,please we are giving you all this based on trust and again i want you to stick to your words,We are putting everything into Gods hand,so please do not let us down in this property of ours and God bless you more as you do this. Pls note that you will be viewing the Apartment from outside and won't be able to inspect the Interior because the keys and the documents to the Apartment are with me here in Benin Republic Cotonou and It is located on a cool, quiet and safe neighborhood.
Thanks and God Bless.
Regards.Um, ok. So do you want to take me out into the woods and shoot me too? I thought for a moment, that this could be true story, even though it may as well have had SCAM in the title. Later that same day i got another email from another landlord.
Hola, La renta mensual es de 450 euros para todo el piso, incluyendo todos los servicios públicos (agua, electricidad,gas,calefacción, Internet, TV,garaje, aire acondicionado, lavavajillas, recogida de basuras). Se puede mover en cualquier momento. El problema es que soy la única persona que tiene las llaves y estoy lejos,en Romania con mi trabajo, pero si sigues interesado podemos tratar algo,utilizando un servicio de efectivo en entrega como TNT, que se encargará tanto de pago y la entrega de las llaves en la manera más segura para usted. Gracias |
The monthly rent is 450 euros for the entire floor, including all utilities (water, electricity, gas, heating, Internet, TV, garage, air conditioning, dishwasher, garbage disposal). You can move at any time. The problem is that I am the only person who has the keys and I'm far away in Romania with my work, but if you interested we can work something out using cash on delivery service such as TNT, which will handle both payment and delivery of keys in the safest way for you.
Wow, so apparently everyone in Sevilla goes away and takes their keys with them. Maybe they need an iPhone app for that ...
Tuesday, October 12, 2010
Los Negros
So like all places what makes Sevilla so different from Hemel Hempstead. Well there are a lot of differences. There are no crazy roundabouts, the women look better, and they speak better English... I think the biggest difference is the attitude of the people. People here place a premium on family and community. The focus on work is significantly less and 'hustling' mentality is almost absent. The people here wish to enjoy and their lives. That's not to say I've moved to a society of lazy folks, but they certainly do know how relax. As one person put it 'they work to live, not live to work'.
The search for a place to live is going slowly, I've decided that I want to live with Spaniards as that's the only way I'll improve my Spanish. While it's difficult, nothing worth doing is ever easy right?
What has made this trip a great deal easier and somewhat less nomadic, is the presence of Jason, in his own words the 'original g'. However I prefer a more apt term for the two of us, Los Negros. He also happens to cook a mean steak.
Friday, October 08, 2010
48 Hours
6 Aussies
8 Americans
1 Canadian
3 American Iraqi War Vets
2 Spanish Teachers
Several Spanish students
2 Beautiful German ladies
A load of Germans
1 Korean women needing her photos backed up.
1 Moroccan
1 Frenchman
And last but not least, 2 Brits.
Sunday, September 19, 2010
More than just a place in the sun
I made this decision In my early teens because I reconized that the world is a big place. My fairly recent acceptance of all things chinese has only strengthened that, not to mention the negative direction I see Europe taking politcally and socially.
While the lure or being a tax exile is not only atractive, but downright sexy, it's the adventure of the unknown that I think atracts me. I often think of my grandfather, in his late 20's boarding a boat to sail to Southampton in the early 50's. Alone and leaving his young family behind to carve out a new life. While I know I'm nowhere near as brave as he was I like to think that what I'm attempting to do is on a parallel with his feat.
As it stands my plan is to shun English, and the lands that promote it as a first language. My first stop is Seville, in southern Spain. I plan to stay there for a few months and relearn most of the Spanish that my old 7 grade teacher taught me. Then sometime before the end of the year make my way to South America and adapt my new found linguistic skills for the new culture. After that who knows.
Unless I take up residency in any one country, I can usually only stay for three months. So the plan is two move around every 2 1/2 months so that I don't end up having Interpol chasing me down.
Having said all of this my plan may fail, and my warm freshly baked semi Latino ass might find its self back on these shores, looking for work. But hey, you can't win if you don't play.
The flight is booked for October 5th, let's see what happens.
Jonathan
Sunday, September 05, 2010
DONT BUY CHEAP SSL CERTIFICATES FROM GODADDY!! [Updated]
Well looks like i was wrong. The actual problem was that the intermediate certificate had not been installed on the remote server. Sorry, Go Daddy. I would like to thank vincent who suggested this, and the GoDaddy representative on twitter @godaddy.
In my defense (Read: covering my ass) i didn't setup up the server, so i assumed that it had been done correctly.
On the upside it's working now :)
Synopsis
Don't buy cheap SSL certificates from GoDaddy if you plan to use them with the iPhone (read DON'T BUY THEM EVA). GoDaddy doesn't use a Root Certificate Authority that is validated by iOS.
How i found this out
For my latest iOS app i was working with in collaboration with some other developers that were building the server backend for the app. Like all good programmers we agreed that communications between the devices and the remote servers should be performed over SSL.
After shipping a beta to my clients, the backend team reported that they didn't have any traces of my app in their server logs. This was strange as i was using my favourite ASIHTTPRequest library. I've used it countless times, so i was fairly sure that i wasn't making a mistake, but logs don't lie.
When stuff like this happens, my first instinct is to grab wireshark, and see whats happening on the wire. Now any 12 year old hacker will tell that you can't sniff SSL traffic, so i made my requests over plain old HTTP. I confirmed that the requests reached the server, were processed and a 200 response was returned. I reported my findings to the backend team, and shipped them a new beta with logging enabled so they could see that i wasn't a complete retard...
And this is where if got strange, they responded that they saw my application report the requests and their failure, but stranger still their log messages where blank. Usually an Apache log entry contains the URL requested, along with a user agent, not this time, there was only a timestamp. After enabling Debug mode on the server, it reported that the connection had been aborted partway through the SSL handshake (1st Clue)
With that obvious clue, i completely ignored that, and used NSURLConnection to make my request instead of ASIHTTPRequest. However my requests over SSL where still failing, returning a nil NSURLResponse object.
The answer (as always) lay embedded in the [NSError localizedDescription]
The certificate for this server is invalid. You might be connecting to a server that is pretending to be “REDACTED.com” which could put your confidential information at risk., NSUnderlyingError=0x2f8c30
So i checked the certificate ... It was of course valid for another year. Ok that was weird. So i googled the error number "NSURLError 1202". It led me to a page on the Facebook developer forums
This error code is know in the iOS world as
NSURLErrorServerCertificateUntrusted
On the page, they mention the phase "trusted root certificate authority", something that i've learnt about from Steve Gibson & Leo Laporte on Security Now.
So i decided to find out the name of the servers root authority, it was a company called valicert.com.
The great folks (you guys better approve this app!!) at Apple have published a list of trusted root certificates and guess what ladies and gents (Drum roll) valicert.com is not there.
Sure enough visiting the URL in the browser presented me a dialog asking me if i wanted to proceed with a untrusted certificate. Now while i can press yes, any user using my application would have to do the same thing, Not a good user experience anyway you swing it. Hence the headline. The solution is to splash the cash, and use a more widely recognised authority.
On the flip side this is a massive win for Apple, as it means you gotta use most of the money (that you don't share with me) you've been stealing from peoples accounts using that botnet to purchase your certificate, and fake business address. But seriously hats off to Apple, this should help keep the amount of spoofing on the iPhone to a minimum, well if they fix all the buffer overflows first ...
Hopefully i've saved someones nightmare.
Jonathan
Thursday, August 12, 2010
So i got bored and made a web app part one
I also looked at lighthouse app and some of the others and thought to myself, these are relatively expensive for what i need, plus i can see this scaling to a large number of users in short order.
And lets not forget most importantly i wanted to stroke my own ego ...
My goals are to make a simple tracking app, with support for multiple projects and maybe even some github support :) Also i want to play around with CakePHP's ARO support for Happy Not Happy, so it's a double edge sword.
Saturday, August 07, 2010
Wednesday, July 28, 2010
Monday, July 26, 2010
Application wide Fonts
So as an example you could create a category on UILabel, and create a class method called labelWithAppSettings. This method would do the following
- Allocate and instantiate a UILabel
- Set it's font using one of the methods from UIFont+Additions
- Return a Autoreleased object
Saturday, July 24, 2010
BBC News app, It's alrite
Thursday, July 22, 2010
Upgrade your iPhone Simulator to v4
So i had a little peak in to the iPhone Simulator.app bundle... and then i opened photoshop ... and i ended up with this
Initially the main take away, is that you can upgrade the appearance of your simulator to reflect the device of your choice, however realistically you could replace the image with anything you like.
Incase you want to do this for yourself, follow these steps
1. go to where you have installed xcode, usually /Developer
2. From there goto /Platforms/iPhoneSimulator.platform/Developer/Applications/
3. Control/Right click on the iPhone Simulator.app and select show package contents
4. Open and edit the frame.png image to your hearts content.
For the image above, i used the iOS4 UI mockup PSD from Geoff Teehan



