119 views
1 Star2 Stars3 Stars4 Stars5 Stars (5 votes, average: 2.00 out of 5)
Loading ... Loading ...

27.08.10

Underground blogger

Posted in Random Thoughts at 8:32 pm by Liv About Liviu Tudor

Ok so I’m on the tube just finished my previous blog post and sent it (ok had to wait till I had some signal bit that’s a minor detail) and as I look around I see these 3 chicks (call them “girls” for no better term :p) looking at me. In fact they’ve been kind of staring at me for a while – and while initially I thought it could only be my irresistible good looks :D unfortunately I came to realise its not that : they give me dirty looks I’m pretty sure because of my frantic typing on my BlackBerry! Look girls I’m not showing off ok, if you look closer you would see that I’m using a BlackBerry Storm – that’s no longer a trendy phone as its over a year old! And I’m not an idiot to just pretend I’m sending texts when there is no coverage since we’re underground. I’m not flirting with some “hot babe” nor am I showing off my (antique) phone – I’m simply an underground blogger :) And I’m just putting together my next blog post.
There are still people who use these smart phones for more than just taking pictures and sending them to mates or listening to music out loud on the tube or bus-and it happens I’m one of them. I am typing as you obviously noticed, not just playing Space Invaders hitting the same key to shoot the alien fuckers :) and I don’t care if I hot not signal, mobiles nowadays can save stuff in memory for later sending.
So please, next time you see someone typing frantically on the underground remember that he might be an underground blogger-like me!

Disclaimer

57 views
1 Star2 Stars3 Stars4 Stars5 Stars (5 votes, average: 4.20 out of 5)
Loading ... Loading ...

Developing for mobile platforms

Posted in Tech at 8:18 pm by Liv About Liviu Tudor

It’s been a while since I last looked at developing apps for mobile platforms. Some of you who looked through the technical section of my website are probably familiar by now with the convertor app (which even to my surprise proved very popular!), and probably noticed that haven’t done anything about it in ages. Well recently I decided up have a look again at what’s going on in the mobile apps arena.

My only experience so far has been with the J2ME libraries (mainly due to my Java background but also the fact that when I first started it was the only widely available technology for mobiles – the others relied on proprietary tools and libraries and quite often required falling back on C/C++) so it seemed natural to look again the this but also wanted to explore the likes of iPhone, android, BlackBerry etc.

I am disappointed to find out that despite all the new cool phones and features that came out recently there is still no unified platform for delivering apps across all mobile handsets and pretty much every vendor seeks methods to lock in the developers – and therefore the user. Trying to port an iPhone app to Android proves as possible as porting the Tomcat Java source code onto a Sinclair spectrum which only understands a dialect of Basic. I can imagine that trying to port from Android to Symbian is just as bad. For sure, each platform offers its own unique services and facilities – as developers we are used to that from the early days of Unix, when Solaris needed conditional compiling for sections of code, and so did Ultrix, HP-UX, IBM AIX and so on. (In fact if you look at source code for various Linux platforms you will find that even various distros require different coding occasionally, all guarded by the famous #ifdef.) however, as developers we have experienced various evolutions in terms of IT and computer science – there are lots of languages and platforms that promote platform independence, there are standards in place (in light of the UNIX experience quoted above, I’m sure we all at some point programmed for POSIX, ANSI and so on – saved us lots of time and ensured cross platform compatibility) – and in brief nowadays we don’t have to worry that much about “decorating” our code with the dreadful #ifdef and end up writing code for every single platform we support in fact. What is the point in writing code in Java if you are going to target it to a specific device – and as such use a particular API? I’m not discarding some of the niceties Java offers don’t get me wrong but it seems to me we are back in the old AWT era, which was basic and looked pretty awful from the start so companies who considered writing GUI layers from the start had to consider 3rd party code of writing their own. It wasn’t even the case of re-inventing the wheel, it was a case of in order to find out how does the chicken cross the road the poor chicken has to build the bloody road first! Of course Swing came out later on but by that time most companies were already locked into other toolkits and migrating was a matter of re-enginereing most of the code so a no go.

Getting back to the original subject it seems to me the same principle apply: the J2ME APIs offer very little really so developers have to rely on vendor specific libraries so if you’re gonna go with Motorola then you’ll find the Sony libraries to be different etc. Sure if you’re a Maven fan or whatever else you will have different build profiles per device and link your code with different libraries and ultimately generate different deployment jar for each platform. Maybe I’m being awkward but that does actually mean pushing out there multiple products at each release – cause arguably the Sony app is in fact a different product to the Nokia one! (Look at how much work we put in nowadays for ensuring cross browser compatibility – basically creating quite often different implementations of a function for each browser – which means the product gets tested on each browser, bugs get reported on each browser and in fact the IE version of the app gets treated as a different app from the Firefox version!)This also means from a development perspective ensuring more specific knowledge required by your developers which we know it ultimately means more money spent in recruiting (specific knowledge costs more, in case you didn’t know!). And all of this because Sun (ahem Oracle I mean) has created once more an API that is supposed to make it easy to write code for the mobile platform – and they did it by actually eliminating the mobile platform entirely! As for the vendors, the fuckers will never agree on anything among themselves as making your products close enough to someone elses means only that they will be able to “hijack” your apps, your developers and ultimately your chunk of the market.

Its ridiculous that when you think about it, if you have some web based service that you want to make available to the mobile market you have to think at least a client for iphone, android, blackberry, windows mobile and J2ME! Sure, industry wise this looks good as it allowed for a lot of small mobile development companies to appear – if you want to spread your application onto mobiles you hardly would consider developing the mobile clients in-house but instead would rely on these guys. It saves you the pain, resources and time needed for this, and it enables for the development of a specialised industry. For a certain cost any of your apps can become mobile without you having to acquire any knowledge for it! Isn’t this however a fake industry? I’m not arguing the need for mobile-specialised developers, don’t get me wrong, I think there is a clear need in the market for that – but is it really necessary to have this tie-ins? Isn’t it like saying “I’m specialised in Debian Linux only – I don’t do redhat or CentOS or god forbid solaris!” ? If any Unix / Linux sysadmin said that to me I’d laugh my arse off show him the door and ask him to not call us, we’ll call him :D In fact any Unix sysadmin would be very comfortable with Linux distro’s and viceversa – because of the standards these all adhere to. However it seems acceptable to have J2ME developers, whose knowledge won’t cover necessarily the Symbian platform, or RIM. I’m not even gonna mention Apple here (Objective C? What the fuck??). Or google. Or windows mobile. In fact it looks like we are heading to operating system per vendor and this can only mean waste of development time and talent – ultimately developers would spend more time learning how to do the same thing on different platforms rather than doing more of the actual core functionality of your app. Imagine how much more can be created with this wasted time if bloody vendors would see some sense – idiots!

Disclaimer

73 views
1 Star2 Stars3 Stars4 Stars5 Stars (5 votes, average: 1.80 out of 5)
Loading ... Loading ...

Missed a good night out…

Posted in Blogroll, Fun Time, Photos, Random Thoughts at 5:29 pm by Liv About Liviu Tudor

…damn! :)

Cognitive Match night out

Disclaimer

52 views
1 Star2 Stars3 Stars4 Stars5 Stars (5 votes, average: 5.00 out of 5)
Loading ... Loading ...

How good is your hosting?

Posted in Tech at 9:25 am by Liv About Liviu Tudor

I’ve seen so many adverts lately online for various hosting packages and co-locaton offers, data centre and so on, each one of them claiming to be the best there is thus raising the question: which one is the best really? While beauty is always in the eye of the beholder, the answer is always relative to the requirements and even more it is influenced by a multitude of factors. Therefore I’m not even gonna attempt to answer this question, but instead signal a certain aspect that gets left out a lot of times: connection rate.

You have become accustomed I’m sure with the various hosting packages ranging from “bronze” to “platinum” or from “small business package” to “enterprise” – the high end of the offers always boasting a lot of disk space and huge bandwidth. As you probably gathered from some of my previous blog entries, this is something that I am interested in and as such I’m only going to concentrate on the bandwidth aspect.

An average “top end” hosting package would probably offer you 100 Mbps or even in some cases up to 1Gbps. For your average website, assuming a page size around 10kb with 3 images averaging 40kb and a stylesheet worth about 10kb (so a total size of around 140-150 kb) this means around 100 * 1,024 / (150 * 8)= approx 85 page views per second. This is probably acceptable for most sites, even more so as figures are approximate and based on 100 Mbps lines. So for your average site their bandwidth requirements are covered and the servers are ticking along nicely.

What if your servers are not serving “simple” web pages though, what if you are a service provider? (eg ads, visitor tracking etc) You will most likely have lots of requests per second but probably hardly serve that much “content” for each request. For instance if your business is tracking user behaviour online you would base a lot of that on tagging various sites with the standard 1X1 transparent pixel and base a lot of your tracking on cookies. As such your standard reply to each request is probably around 1kb (probably even less than that but I’m being generous ;) ). On a 100Mbps link this means you could serve in theory 100*1024/8 = 12,500 requests per second! I’m gonna approximate that to 10,000 requests per second just in case my 1kb per request was not that accurate. Now first of all if you’re thinking of taking that much traffic I’m guessing you got the servers to support it – you cannot take this traffic on one single server; to process 10,000 requests per second it means that you are taking 0.1 msec per request and your server has enough cores to sustain around 100-200 true concurrent threads… Possible, but unlikely for most of us running our software on clustered commodity hardware. Anyway to get to the point : whether you’ve got some giant machine or a cluster than can process 10,000 requests a second, how does your firewall cope?

Don’t be surprised to have everything ready in terms of application architecture and implementation, server hardware and security only to find out that the firewall provided by your ISP only copes with “normal” traffic (eg 100 to 200 users connected simultaneously downloading content that can reach the 100Mbps bandwidth). There are lots of low end routers now that can cope even with 1Gbps bandwidths but fall on their knees when the number of concurrent connections go past 2-3,000 per second. To cope with that amount of connections you will find you need the high end routers – pretty much ISP level routers – and you will find in most cases your “standard” hosting package probably don’t include it. In fact it won’t even be mentioned – I am yet to find a hosting company that will offer a hosting package with X Gb dusk space, Y Mbps bandwidth and Z concurrent connections! Your average company doesn’t worry about that and as such nor do ISP’s. For the rare cases like the one described above you might find that your ISP says “sorry no can do” or they will tell you that this is not part of their standard package and offer you a similar “specialised” package which offers same bandwidth and everything else and also can cope with that volume of connections per second. And quite likely costs you another 5-10k a year :D That added cost in most cases is to recover the cost of the high end router mentioned.
You might wonder why do companies not offer this option up front? Well don’t forget that these router have processors and memory and an OS themselves and they do a lot of processing with these; however whereas the standard processing you are used to in computers involve crunching numbers and database transactions, a router processes a lot of IP packets: it has to decide whether this is part of an existing session, where does it need to be sent, what are the best routes to get there, does it match the security policies and ACL’s set and so on. More traffic means more CPU activity so to cope with lots of packets you need a reasonable processor, however more concurent sessions mean the router has to maintain larger in memory structure which will enable it to match packets to existing sessions. Since these structure are going larger that means more lookup operations and that means faster cpu again! A hosting company will provide a regular router which copes with standard traffic for the same reason they offer basic hosting packages: what is the point in offering lots of disk space and cpu and bandwidth when a lot of clients don’t use that much? It’s nothing short of obscene having a quad core server running just an instance of Apache serving simply static pages (even though it is such a common occurrence nowadays!). To provide more power, disk etc means to increase the costs, which is not justified for those clients that don’t need the extras. Similarly, to offer a high end router from the start means a hefty price increase – for something that most clients won’t use (apart from you!), and as such it doesn’t make sense commercially.

So before signing up for a new hosting package with a company and start budgeting around the figure they give you, might be worth reviewing your app connections per second and bandwidth requirements, also review the worse case scenario spikes of traffic and communicate those to your hosting provider – quite likely the price will change, but at least you can address that budget change very early in the project and deliver your solution on time and with no nasty surprises.

Disclaimer

91 views
1 Star2 Stars3 Stars4 Stars5 Stars (5 votes, average: 5.00 out of 5)
Loading ... Loading ...

19.08.10

How come developers dont want to work for banks anymore?

Posted in Random Thoughts, Tech at 6:54 pm by Liv About Liviu Tudor

I had a couple of recent discussions on the phone recently with 2 head hunters who were trying to get me a “dream job” in some banks in the city. I say “dream job” because that’s exactly how they presented it to me – the fact that it was in a bank it meant for me straight away otherwise! Anyway, I turned them down (no surprise there, if you read some of my previous blog entries you would know that I turned down bigger names in the past). One of them though said to me with annoyance and disappointment in his voice when I politely declined: “I’ve got no idea what’s going on: I’ve got a list of top notch developers who I’m calling and every single one of them turns me down!I’ve got a big pile of cash (we are talking 6 figure by the way!) and a position dealing not with dead code but with some new innovative products and technologies and nobody wants it!”
I kind of felt for him (actually no, I didn’t :) but let me break it down to you my dear banks:
When the whole credit crunch started, which was not in any way something caused by your IT guys or infrastructure, you pointed the finger at thousands of developers and then at the door. However you decided to keep most of your traders and what-not, so we came to realise that really whatever we might do in a bank is actually not important at all to your business. You told us that a trader is more important than 100 developers. We now know that whatever genious optimized algorithms and solutions we might put into place, no matter how low we get our latency and how much we maximize our throughput (obviously while keeping the same bandwidth!) that won’t make your institution any money and as such its bloody useless as far as you care. However, that dude from 1st floor just made you 2 millions today so thank fuck there’s people like him in your organization, to pay for the useless ones in IT right?
We basically learned by now that banks haven’t changed at all since their early days: you got money, lend it to people and ask for more back! (Thinking about it pretty much the same can be said about investment banks too – even though it technically involves buying shares and then selling them later on.) Why would you change something that’s been working for hundreds of years now? Sure all these international committees and organisations went up in the arms a while back about modernisation, infrastructure and blah blah (evil people for sure, why would a bank need to modernise?) and as a result of that you had to hire all these “muppets” and set up an IT division. Before you know it you need a CTO and a CIO and the whole shebang. These guys started talking about securing information, standardizing platforms, platform migrations and development and before you know it they spend your money as if they were running the bloody show!I mean what do these IT guys do anyway? Oh set up my laptop – woo-fucking-hoo! – your secretary Polly can probably do that with her eyes closed! And for a friggen laptop and some wires running through the office you pay an arm and a leg?
I bet when the credit crunch started the banks went “phew, now is a good time to get rid of this lot: they started hundreds of projects, none of which are finished, even though they hired thousands, cost me a fortune and really don’t do anything”.
No one has ever seen past the manager’s mistake in evaluating the deadlines and budgets in the first place, in fact the manager stayed and got a bonus, but the clever developer who got your response time from 10ms to 0.1ms got a handshake and a finger showing him the door. No one has seen past the fact that finishing the project would save 5% of the running costs of the organisation or it would see an increase in the profit by 2%. Nope none of that!
Developers were simply dead weight and as such had to be thrown overboard. With not much consideration to their skills.
And now dear banks when you are struggling with your bloody years-long projects, where no one has a clue what they’re doing or when are they supposed to finish and you might think that throwing more man-days at the problem should solve it, now, when I know that you have no consideration and respect for my development skills, now you ring me: “I’ve got lots of cash – huge amounts! – and I think you are such a perfect fit for what we’re looking for” (bollocks!) all I can say is take that big pile of £50 notes and shove it up the arse of that guy from first floor who makes you millions and see if he can shit you a couple of “very talented and dedicated” developers on the spot – after all he’s been the solution to your problems throughout the hard times of the credit crunch! I, the developer though, am going to a company that actually knows the role of the developer in their team!
Oh and in case I blinded you so far with complicated terms like “budget”, “planning” and other things you get confronted with in IT and as such didn’t get my message, let me put it in simple terms to you, my dear banks: PISS OFF INNIT!

Disclaimer

« Previous entries Next Page » Next Page »