Introducing Local Drunk

Sep 9, 2012   //   by Tuomas Artman   //  No Comments

Hacked together an app called “Local Drunk” together with Ulf SchwekendiekScott TranEric Allen,Audrey Fischer and Ian Silber at the 2012 TechCrunch Disript SF Hackath_n.

Local Drunk is an iOS app that connects a thirsty tourist with a local guide that knows all the best spots and will take the time to show you around. Drinks are paid by the tourist. Enterntainment is provided by the guide.

Your perfect companion when you’re visiting, driving through or just arrived in a new town and want to hang out.

Check it out at local-drunk.com.

Leave a comment

Why English is important for any programmer

Apr 11, 2012   //   by Tuomas Artman   //  No Comments

Computer BlueI’ve never thought of the challenges of writing code in a non-native language as most programmers tend to have a good enough understanding of English to be able to write, read and understand an API written in English. Sure, some write code in their own native tongue, and that’s OK if you know for certain that you’re the sole contributor from now ’till the end of time.

But I’ve never given any thought to the impact of a non-latin languages on the productivity of a team. Until now, that is.

I recently looked at some commits from a Chinese colleague of mine. He speaks a bit of English and reads and writes it fairly well, but the code that he submitted really got me thinking.

From my experience, about 80% of Chinese programmers don’t speak English at all (their writing skills are usually better than their oral skills). And I don’t blame them. They’re a population of 1.3 billion speaking (roughly) the same language and that English lessons are not mandatory and are usually only taught in high schools. Most of the population never has to use it in their daily lives. And programmers use sites that offer translated documentation of popular open source projects (and closed source projects, but I’ll safe that for another post).

With this in mind, I wouldn’t have be at all surprised if the majority of companies chose Chinese as their preferred language to code in. The only problem with this is that they can’t.

Most programming language don’t allow you to use anything else than an ASCII subset for method names, properties, etc. Therefore Chinese use the next best thing: Writing clumsy (and often wrongly spelled) English. This leads to many problems as you can imagine. The biggest one is probably the impact on the whole team’s performance. Suddenly you don’t have a clear, self.explanatory API anymore, as any method or property might have been misspelled or generally lost in translation. Code completion doesn’t help you when a method called “launchShip” has become “lunchShip” (yes, that did actually happen). Nor does an boolean property called “unsight” tell you much about it’s functionality as opposed to what “showOnlyOnce” would have told you (another real-world example). Sometimes, when somebody is in a hurry and doesn’t have the time to look up a good translation you get even more weird names, ones that probably only the author can decrypt.

This is how (even good) programmers code in China. To counter the problem, they comment their code thoroughly in Chinese, but that does not help you with the problem of having search through the docs or source to look up the correct name for every single call you make.

A good understanding of English might very well be a programmers most important quality.

Leave a comment

Looking for (many) Unity3D & NodeJS developers

Nov 21, 2011   //   by Tuomas Artman   //  2 Comments

Shanghai U-Baby is looking for a Unity3D developers, Unity3D trainees and NodeJS platform developers to join our ever growing team of talented game developers. Shanghai U-Baby is a, Shanghai based (go figure) gaming company focusing on online games development and publishing for kids and youngsters and is backed by top-tier Chinese and Silicon Valley venture capitalists. Our group of companies employs more than 200 people and our games have reached almost 30 million users in China.

To apply, send an informal application, CV and contact information to tuomas-at-52vali.com, outlining why you would be a good candidate for the position.

Unity3D developer

Required experience and skills

  • Prior experience in Game development with Unity3D in either C# or JavaScript
  • Familiarity with Studio3D Max or Maya and Unity art/development pipeline
  • Good eye for design
  • Experience with extending the Unity editor
  • Basic knowledge of network development
  • Must have shipped at least one project with Unity
  • Interest in games

Optional skills

  • Experience with NodeJS / JavaScript a big plus
  • Experience with other web development languages
  • SCRUM master
  • Flash and ActionScript proficiency
  • Knowledge in SVN / Git
  • Good spoken / written Mandarin

Unity3D developer trainee

Not yet a experienced Unity developer, but always wanted tyo be?

Required experience and skills

  • Prior experience in any of the following languages: ActionScript, JavaScript, C#
  • Prior experience in Game development using any tool or programming language
  • Eagerness to learn Unity3D
  • Good eye for design
  • Interest in games

Optional skills

  • Experience with NodeJS / JavaScript a big plus
  • Experience with other web development languages
  • Flash and ActionScript proficiency
  • Knowledge in SVN / Git
  • Good spoken / written Mandarin

Games Platform developer

U-Baby is working on a unified Games Platform / Framework to power all of our future games using multiple clients and a NodeJS/MongoDB-based back-end.

Required experience and skills

  • Experience in developing with NodeJS OR experience building generic games platforms
  • Experience with either Flash or Unity3D
  • Experience with Database design & ORM
  • Professional knowledge of developing network applications
  • Interest in games

Optional skills

  • Flash and ActionScript proficiency
  • Experience with MongoDB
  • Experience with Git and creating deployment scenarios
  • Good spoken / written Mandarin

2 Comments

  • Very nice Yu Yuan pic. How much did you pay to artist/photographer to use it for corporate reasons? Or did you steal it?

    • Interesting point. I didn’t pay anything, neither did I ask the author, you (in hindsight, maybe I should have). However, It’s hard to argue that this is copyright infringment or stealing as the image still resides on Flickr, is publicly visible and it actually links back to your page.

      From your comment I take that you don’t want me to link back to it, do I removed the image. Sorry for any badwill caused.

      But this indeed raises the interesting question on when and under what circumstances inline linking of images is ok. I don’t think there has been a case of this in the western courts yet, has there?

Leave a comment

I’ve seen the future, and it’s a 4k WebGL browser intro

Nov 17, 2011   //   by Tuomas Artman   //  No Comments

Have a look at this. That’s the source code for one of the first (cool) 4k WebGL browser intros. For those unworthy, 4k stands for under 4 kilobytes. That’s like, well, about as much as a animated gif smiley-face in Skype takes.

Now look at the result (with Chrome).

Oh wow. Good 4k’s used to be the last bastion that of desktop applications that were hard, if not impossible, to create using JavaScript. Check out the post-mortem here.

Leave a comment

Flash was never alive, so it can’t be dead

Nov 13, 2011   //   by Tuomas Artman   //  9 Comments

update: apple didn't kill flash, html5 did.It’s been one and a half years since I posted my take on the debacle between Flash devs vs. HTML5 enthusiasts. Now, for obvious reasons, there’s a lot of this bullshit flying through the wires of the internets once again.

First off, let me congratulate most of the tech journalists for once again showing that they really don’t know what they are writing about. “Adobe kills Flash for mobile”, “Flash is dead”, “Flash for mobile devices killed”, just to quote some of the headlines. I think there’s a great leap from “We’re going to stop development of the Flash Player for the *browser* of mobile devices” to “Flash is dead”, right?

I’ve always, and will always use the best technology to suit each service, game or campaign I built. The “best technology” for a job can be defined in a simple formula: impact multiplied by reach. If you are able to create impact without reach, you have nothing. So I would rather say that Flash for the mobile web (to spell it out: on a mobile device’s web browser) was never even alive. Sure, we had a few funny Android devices that could play back Flash content embedded on web pages, but have you ever thought of telling your client (or boss) to build a solution with a technology that has about 5% penetration? I sure hope not.

Given the weak penetration of the Flash Player for the mobile web, exactly what has changed after Adobe announced FP’s mobile browser development discontinuation? That’s right, absolutely nothing.

So please tell me, disregarding Adobe’s announcement, why exactly  do you think Flash is once again dead?

9 Comments

  • It’s not so much that Adobe have just stopped development of the Mobile player. Its more the case of whats happened slowly since the launch of the IPad.
    It’s been a slow move away from flash in general. Why because the Agency’s which used to commission flash, now don’t because they want things to work on an IPad.

    The logic goes:
    We want something to do this, but it must work on an IPad.
    We can’t do that with Javascript.

    1)
    Well what can you do.
    This.
    Ok then that will have to do.

    Or 2)
    Ok then can we do it as an App.
    Sure.
    Ok then do that.

    If its 2) then great build it using Air.

    • With every leap in technology you have to take a few steps back. in 1996 I used to work for a company that did multimedia CD-Roms. The media was fantastic; you could create very expressive content with lots of graphics, video, audio, etc. The only big problem was reach. You had to physically distribute the CD’s to people to be able to enjoy your content. The internet solved that, but it did come with a price. No more video, audio, animations. It took about 5 years for the internet to evolve (with the help of Flash) into a media that would be as expressive as the CD ROM used to be.

      You could argue that in the past three or four years we’ve hade the same thing with the mobile internet (less bandwidth, slower CPU’s, little screen real-estate). However, the fact that we now can reach a big audience while they are away from their home or workplace outweights all of these shortcomings.

  • To stay in the lead… Flash devs aren’t angry because they have to learn something new. They’re angry because they must adapt to something currently inferior, and messy stacks of JS libraries, mostly hacking & not to mention all the Inconsistencies of HTML/CSS being rendered on different browsers. (who Came up with the name “Standards” to these technologies, do they even know what it means?)

    From my end – If you’re going to force us developers to use HTML5 (cause every browser reads it, differently). The Web Dev community is Still in search for an HTML5 framework to develop “Flex Apps”.

    Yeah, Flex Applications, with the ease of extending & skinning.

    • I’m definitely not saying that Android has only 5% market share. I’m saying that Flash runs on 5% (wild guess) of all mobile browsers. Flash doesn’t run on all Android devices. People have feature phones.

  • Joseph is soooo right!

    It’s really sad how marketing buzz can change the game to the worse. ( http://en.wikipedia.org/wiki/Comparison_of_HTML5_and_Flash#Apple%20and%20Flash )

    Now let’s kick some ass with Stage3D to show the advance and further potential of Flash, especially at gaming! The impact on users could be comparable to the ‘video impact’: Online video didn’t really take off until a de-facto web video standard was established – the Flash player. For online gaming with top-notch graphics this _matured_ platform with a broad dev community, reach and _efficient_ development times (language, tooling, powerful APIs!) could become the leading technology.

  • Just forgot: And thanks for the good article, good and true point!

    • karen 2007-09-21 3:01 上午 exactly what i need~i have spent a whole day to study the ogiirnal doc of Yahoo’s frontpage before i come to visit this site~~really really good~~thanks a lot~

  • Great article! One of the things that trouble me is on the video front, which is one of the biggest uses of Flash. Now video sites, who used to be able to encode to FLV and forget it, now has to supply MPEG 4 and either OGG or WebM formats. From this point forward that isn’t a big problem, but what about video sites that have been around for a few years and have tens of thousands of videos? Now they have to go back and encode everything to the new formats, plus retain FLV for those people who are still using browsers that don’t support HTML5 video (more than 1/2 of IE users as of October 2011).

    Given the browser shares that support WebM over MPEG 4, something I would love to see is a push to have sites support WebM only. If some larger sites did that, then it would only be a matter of time before IE and Safari had to bite the bullet and support it. Take for example the release of Amazon’s Fire. Apple is already concerned about that. Now imagine adding to it “hey you can watch YouTube on it or XXX other video sites that you can’t view on your iPad”. It would only be a matter of time before Apple and Microsoft bites the bullet and makes the switch. It’s business and they would have no option.

Leave a comment

Hello from behind the great Firewall

Aug 9, 2011   //   by Tuomas Artman   //  5 Comments

hk sar, china, 2011

Ok, so I quit Finland and moved together with my family to Shanghai now three weeks ago. I joined a local “startup” creating and operating kid’s games in the Chinese market. But more on that once I’ve signed my agreement (huh, some things take a looong time in China).

Currently, I’m probably at phase two of “the process” that expat’s go through: Culture shock. The first weeks were fantastic, Shanghai’s definitely a great and lively city with good food, nice skyline and nightlife. Now I’m just banging my head against the wall trying to get my Visa stuff worked out. My new colleagues at the office are very helpfull, but they too make mistakes. Apparently I was missing two documents (out of nine) and have to take the 1.5 hour trip to the entry/exit bearuea again tomorrow. All while my earthly belongings are shipping in from Finland tomorrow and will be eaten by customs trolls if I don’t complete registration before that. Well, it’ll be easier once all of this shit is done with.

Looking forward to skipping step three (denial) of “the process” and going straight to step four, acceptance.

5 Comments

  • Come on!!! Hope you and your family have a nice life in Shanghai,China.

    • I’m sure I will. It is the best city in Asia after all!

      • That’s why we come here.I believe you can do it.Nothing can take the place of persistence in this world.

  • Hey
    I see you got my Mayorship at ICBC. does that means you are near by?

    Nice to meet you :)

Leave a comment

Nokia N9 – it’s the future without a future

Jun 25, 2011   //   by Tuomas Artman   //  No Comments

Nokia N9 s MeeGo

Nokia introduced their first MeeGo device last week, the Nokia N9. It certainly looks good and actually contains a few new innovations (about time), like getting rid of that last hardware button (Steve must be furious that Nokia beat him to it).

However, many people have raised the question of why Nokia is discontinuing any development on further MeeGo devices and abandoning the platform entirely given that they just released a device that actually get’s very positive inital feedback from users and the press (the last time they did was about 5 years ago with the N95). Even people within Nokia are giving Steven Elop (and the board) a hard time (woth a read).

Still Steven stays firm and goes on record to say that no matter how huge a hit the N9 turns out to be, Nokia will still abandon MeeGo. As I’m lazy, I’ll just quote a Gizmodo comment, because it’s very much in line with my thinking:

Simply put, Elop has it correct. It really doesn’t matter how successful the N9 is because everyone wants to measure it by unit sales (short term success) and not the development of the ecosystem (long term success). Sales can be taken away from you (see RIM’s recent report on their Blackberry sales) but ecosystems live on for much longer. Everyone knows that Nokia builds excellent hardware but their software is so-so at best. What makes people think that it will create better development tools than Microsoft? What makes people think that it will line up the retail deals in the US so you can buy music, movies and TV shows? What makes the N9 different from webOS on a fundamental level?

Everyone says that webOS is probably one of the best mobile operating systems out there, but it hasn’t become all the rage since it’s release. Why? Sure, the hardware is a major contributing factor, but even if that were fixed, you’d be left with a device that would have ONLY succeeded in a world where the iPhone doesn’t exist.

The reason why people buy iPhones, iPod Touches, and iPads is because of the ecosystem Apple has developed. Any app you’ve bought for your iPhone will work on your iPod Touch or iPad. Any song, movie or TV show you’ve purchased from iTunes will work. Or books from the iBookstore. Or having first-class podcast support. It’s a very, very strong ecosystem which Nokia knows Microsoft is far closer to achieving than their own company ever would be.

People need to stop thinking that only having nice hardware/software will save your butt today. This isn’t 2006. The iPhone showed that you need ALL your ducks in a row to win at this game.

Leave a comment

New Flow Framework examples

Jun 10, 2011   //   by Tuomas Artman   //  13 Comments

Some more Flow Framework examples. This time with 100% more scrollbars and scroll containers.

 

A few points of interest on this one: Try the text input on page two to see how layout is validated. Try and hold down the vertical scrollbar thumb on page 5. Scroll containers validate their context correctly even though the whole container is resizing.

13 Comments

  • This is amazing… WELL DONE!!!!!!!!!!!!

    • very very nice, beautifull style, it is a promising framework. I’ll try to play with it :)

  • Thanks for the kind comments.

  • There is a chance that you will make it as3-signals based? It would be a neat feature :)

    • There’s not a lot of eventing going around to start with, but that might change once I finalize the API. I’ll look into signals and whether they would be a good fit. For the Binding part I still have to rely on Events, as these are compiled in by MXMLC.

      • You can use data binding with as3-signals:

        http://www.ericfeminella.com/blog/2010/03/22/as3-signals-simulated-data-binding/

        Signals are a little bit faster that native events, have lower memory footprint, adds useful helper methods, allows to create interfaces for event oriented components and works well with elements that only support native events like mouse clicks. Main drawback is that it isn’t native so it adds a dependency and few KB into app/framework but… its worth it :)

        I think that there is currently no ui framework that implements as3 signals so it might be a strong point of Flow if this will be incorporated.

        Anyway, I hope that you will not stop working on this project since flash world need a good, skinable, lightweight flex-like alternative. Good luck :)

        • Sure thing that you can use Binding with AS3-Signals, but it’s still requires some labour, as it’s not as easy as just to say [Bindable] on a property and then use curly braces to bind to that property.

          Anyways, I’ll look if and how Flow could benefit from AS3 Signals. Stay tuned.

  • Good !!!

  • Take a look at the Flight Framework which as a package for AS3 data binding without mxml.
    Could radically enhance your framework.

  • Don’t mind repeating this in twitter and here too.
    I fetched “Flow” from github, compilation error with Flow Example, seems “avmplus” is not commited in GIT?

    • Flow only compiles when you target the Flex Framework 4.5. FF 4.5.1 will give you that error. Will fix

  • I have deployed the test you have above on iPhone 4S, using a Flex Mobile project.
    The problem I’ve got, is that all content is smaller than normal to about 30-40%

    All UI shrinks down for some reason when deployed as an app.

    Any ideas ?

    Thanks,

    • Interesting. Care to open a ticket on Github and share your project so that I could debug?

Leave a comment

First examples of Flow

Jun 6, 2011   //   by Tuomas Artman   //  7 Comments

Straight from the workbench, here are a few examples what the Flow Framework will enable developers to do. Nothing spectacular and very much work in progress, but I wanted to share this as early on as possible. Jump right in and check out the source on Github.

Also, check out Sofanatics, the first app that has been built with Flow. To get timely updates on the progress of the framework, follow me on Twitter.

7 Comments

  • Not a single comment? Well, I’ll better stop developing this sh*t then ;)

  • Looks promising. Maybe you’ll team up with guy that creates as-ui-commons* and use some parts of it. Framework dev will be faster :)

    * https://github.com/as3commons/as3commons-ui

    • Sure thing, I’ll look into AS3Commons. Thanks for the tip.

  • This is really nice, I think is pretty useful at the time to develop in iPhone, what do you think?

    • Yeah, Flow will be excellent for iPhone dev due to it’s speed!

  • Is there a mobile example of using Flow ?

    Which are the steps to setup a mobile project with Flow, and publish to .apk ?

    Thanks,

    • Haven’t made an example, but setting one up should be pretty straight forward. Just create a mobile project in Flex and copy the source code from the example over and add the Flow src to your source paths.

Leave a comment

Flow Framework status

May 22, 2011   //   by Tuomas Artman   //  2 Comments

Going with the flow

Flow (the fast and lightweight layout-, effects-, graphics-, data-binding-framework) is now up on GitHub. There’s no documentation, no examples, even no readme file, so it’s probably only interesting if you… hmm… no, there probably is no reason why you would want to dig through the source. Just wanted to let you know, though. Stay tuned.

2 Comments

  • Sounds really interesting. Hope there will be some examples soon..
    What exactly didn’t you like about ReFlex?

    • ReFlex was interesting and all, but going through the code I realized that it heavily relied on interfaces, dynamic types and arrays, so it’s bound to be non-optimal performance-wise. Also, it did have problems with it’s layout (e.g. rendering a frame too late, making constrained objects lag behind).

Leave a comment

Creating a lite Flex framework from scratch

Apr 10, 2011   //   by Tuomas Artman   //  15 Comments

A while ago, we at Sofanatics started to put together our new real-time sports event client for the Flash Player. We knew from the beginning that we didn’t want to go with Flex. While it’s a great framework for building RIA’s, it’s too monolithic and too slow for our needs, as we knew that we would need every CPU cycle to create a visually stunning application with lots of data flying around.

However, I still wanted to use many of the features that make developing with Flex so much faster than building out an app in pure ActionScript. In no particular order, these features are:

  1. MXML. Declarative programming is one big time-saver.
  2. Contraint-based layout. Our interface scales with the browser. Without a good layout-framework, putting the interface together would require a lot of extra effort.
  3. Data-binding. Once you hook up your data via data-binding, you swear never to go back again.
  4. States. Coupled with declarative layout, states provide a fast way of putting together the visual representation layer of the app.
  5. Transitions & Effects. I’m a sucker for smooth transitions in UI’s
  6. Declarative graphics. Declaring shapes, fills and borders in MXML is just cool.

In addition to these Flex-based features we had the following requirements

  1. Be fast. That’s a no-brainer.
  2. Be small. The Flex framework takes around 300kb without any components. I’ll target 30kb.
  3. Mix&match. You should be able to use any assets in your display list, not only instances derived from UIComponent, as is the case with Flex.

Searching the Internets, I did not find that many frameworks that supported these requirements. The best that I found was ReFlex, but I had some issues with it. While it provides most of the features I was looking for, I still found it to be a bit too slow. Most of the core code relies on anonymous objects, arrays and interfaces instead of using strongly typed parameters and vectors. I did not measure performance, but I’m sure its performance is not optimal. And although developing against interfaces makes your code more manageable, I opted for making my core code as fast as possible, even if it meant making it harder to read or modify (though creating components based on the framework should of course be easy and have a clean API).

So I decided to write my own. It currently powers all of the Sofanatics client’s UI, so check it out to see some of it’s features. Otherwise it’s still very much in the making. Once done, I’ll release it under the MIT license and put it up on Github. But even in its infancy, I do like it very much. It gives you a tenfold increase in productivity against building a UI via ActionScript, but gives the speed of a pure AS implementation.

Now all I need a great name for this cool little framework. Got any ideas?

15 Comments

  • Looking forward to see what u have implemented – tried something in the past – but did not get very far – have a GIT URL ?

    • Nothing on GIT yet. Probably gonna take me a while to get the first version out. Stay tuned.

  • FlexLite ? Looking forward to src/swc !

  • Called it µframework or µinterface. We feel it fit quite nicely to your project.

    • James, cool idea. Thanks. Altough that would make the package name a bit hard to write ;)

  • Great point Tuomas. I think its the need of time, Flex empowers rapid development, but at the same time it’s too slow and heavy.

    Also I think the post title itself can be a good name for this framework. “Flexlite”.

    All the Best for further development, looking forward for it’s release :)

  • Tuomas, I guess you’ve already check out the project we did almost 2 years ago – FLit:

    http://code.google.com/p/flit/

    A brief introduction to FLit: http://npacemo.com/wordpress/2009/06/30/flit-a-light-weight-flex-for-flash-apps/

    It does almost everything you target in your framework wish list, except for the declarative graphics. I see the value in having the ability to use graphic primitives in MXML – especially when you want to test a component without having to create its skin in Creative Suite.

    Check it out. You might pick up some cool ideas. The overall size of the framework is 27K from Flex + approx. 40K from us.

    Good luck and keep me updated on your progress,
    Vladimir

    • Hey Vladimir. Yeah, I’ve had a look at FLit years back. When I started developing “Flow” (that’s the official name now), I didn’t recall FLit. If I had, I probably wouldn’t have gone through all the trouble to create my own framework, cause FLit looks pretty good ;)

  • [...] Creating a lite Flex framework from scratch [...]

  • [...] from the workbench, here are a few examples what the Flow Framework will enable developers to do. Nothing spectacular and very much work in progress, but I wanted to [...]

  • Brilliant work in regards to Flow framework. Just curious, how long would it take to develop something like this?

    Thanks again for the effort.

    • Thanks Alex. Hard to count hours as the whole development of the framework has been a on and off project. Maybe a few months of dev so far?

  • It’s great effort by you….

  • moncleritblogspot.info mykana The smart and correct response would be to search elsewhere for that particular handbag and many others until you get it and never give up on your dreams. If your dream is to own Coach handbags, then make your dreams come true by going online and finding that handbag that you want. You are sure to get a Coach Carly for under $90 or that Coach Signature Stripe you’ve dreamt of for around $100.. If you want to make your neck prominent, you should use bead chokers, they are known for accentuating the beautiful, slender curve of a women’s neck. The style of a bead choker brings attention to the neck area. Now if you’re blessed with coach outlet store online an hourglass figure you also face a number of choices.

    louisvuittonsiteofficielfrance.info vqwhwb san francisco life coach

    Brand new automobiles supply a splendid amount of details plus companies: satellite tv on pc radio stations, good vacation cruise manipulate, advoiding plus guiding services, solutions, along with kerbside service, towards headline some. A number of appeal to drivers’ choose essential safety, comfort,Louis Vuitton Shoes Outlet Juicy Couture Bags and even luxury. However , a tough element of contemporary cars and trucks may be the special day Knowledge Recorders (“EDR”), or Ebony Proverbial box.

    We both agreed that his wife may not be the best person for the job but, perhaps, he could use her in a pinch. In the months to follow David hired various short term office support help, who served sometimes as body double, other times as office assistants. Knowing when to hire someone to help with office work or with just paying the bills, is also a useful tool..

    Don’t put readers off with bad English, nike shox nz or spelling. This may sound basic, but there are many articles that do not even fulfill this requirement. This is the area at the bottom where you tell about you and you advertise your site. A down jacket has a draw cord at the bottom and the top rated of the jacket. These cords can be easily tightened to seal in high temperature. A person entire body radiates high temperature, and the down feathers in the jacket will store the warmth.

    Any novice who is keen to understand the art of angling will need some ‘how to’ books or a DVD or two. These not only tell him why he has to use a particular lure, it also demonstrates the throw that is needed to entice the specimen onto the hook. It will also list the types of tools and equipment that he needs as a basic collection to get him started in the game..

    The first thing to understand is the fact that no manufacturer of anti-wrinkle cream is going to let you know the entire real truth. They all use cunning phrases to conceal the truth. Anti-wrinkle cream is not like paint, you can not believe what you study on the tin.

    Located on the internet report that eyewear only part of the current fashion trends, as is also on the street. Oakley appeared to be the initial model tag to acknowledge the potential associated with glasses for a most up-to-date strategy item. These eyeglasses will still be very high fee and distinctive.

Leave a comment

One Infinite Tunnel for iPhone/iPod Touch/iPad

Feb 23, 2011   //   by Tuomas Artman   //  No Comments

One Infinite Tunnel is now available on the AppStore. Get it while it’s hot! And If you like it, please be so kind as to leave a review.

Deep in unexplored space, you’re spaceships controls brake down while exploring a massive underground tunnel complex. With just one engine working to control your tilt, how long can you survive before you smash into the hard rock?

One Infinite Tunnel features gorgeous 3D graphics, “one button” controls and, well, one infinite tunnel. Compete against the world on Game Center and OpenFeint.

One Infinite Tunnel works on all iPhones, iPod Touches and iPads.

Leave a comment

Symbian finally rests in pieces

Feb 13, 2011   //   by Tuomas Artman   //  1 Comment

m_symbian By now you’ve heard the news. Nokia chooses Windows Phone as its primary smart-phone OS and its stock plummets much like a man jumping off that burning platform. Finnish newspapers are concerned whether Elop still has Microsoft stock and some even go as far as to say that Nokia sold itself to Microsoft for 0$. Many say that Elop won’t  remain the CEO for long and that Nokia’s days as an innovator are all but gone.

While I understand why especially many finns are so upset about the change of direction, I couldn’t disagree more. Sure it hurts throwing out a OS that Nokia has received billions of R&D money, but guess what? Symbian still sucks and nothing is going to change the fact that with Windows Phone, Nokia is finally on a path to deliver smart-phones that can actually compete in the market.

It’s simple to choose when you have a choice of selling someone else’s beef or your own shit, even if you’ve poured billions into producing that shit. And this is something that people don’t seem to grasp. Symbian is not and was never going to be a competitive OS. So it really wasn’t a choice to start with. What about MeeGo then? Word has it that its development has run into the same problem that I’ve witnessed too many times with Nokia: An army of middle managers trying to push development in different directions either to gain recognition or claim their bonuses. Nokia is doing fine on the hardware side where you have a relatively small team (and relatively few managers) for each product. But when it comes to the OS, where features need to serve the whole company and all of it’s products, the result is a fragmented, slow moving, over managed bloat of compromises. Just pick up a N8 and you’ll notice that while the hardware is excellent, the OS just makes the product frustrating or even unusable.

So I have to salute Elop and Nokia’s board for making this bold move. While it may weaken short-term sales (who wants a phone with a dying OS?), I’m sure it’ll make sense in the long-term. For the first time in many years I’m actually looking forward to see some cool new Nokia devices. Heck, I’ll probably even start developing for Win Phone myself.

1 Comment

Leave a comment

Learnings from caching with CodeIgniter

Feb 6, 2011   //   by Tuomas Artman   //  3 Comments

Launch of H-IIB F2

We’re using CodeIgniter on Sofanatics as our back-end. One problem we faced was that our installation didn’t perform well enough. Sure, Amazon’s EC2 is to blame for most of this. If you look at any benchmarks out there, you’ll find that Amazon isn’t the best cloud in regards to speed / €. Nonetheless, our RightScale managed Amazon E2C instances gives us the flexibility to deliver a ha-service that automatically scales according to demand, so changing to dedicated hosting is not really an option for us.

Now, all clouds suffer from slow IO operations, and caching database queries (to Memcached in our case) of course gives you a great speed increase. But once we had cached everything we could we still didn’t have the speed we desired. Our most critical part of our API that gets bombarded very frequently during matches, we could manage to respond to 22.000 hits per minute (367 hits / sec) on one E2C Medium instance. While this really sounds sufficient I wanted to take the opportunity to check where this bottleneck actually came from.

CodeIngiter is a rather small framework and many libraries and helpers required by our app are loaded on demand. For the API call that I tested, CodeIngiter didn’t have to do much. It resolves the Controller for the given URL, does some initialization, calls the controller and instantly returns the result as a full page cache is hit 99.9% of all times. There’s no room for optimization there, and having gone through the way CodeIgniter initialized, it does this in a very efficient manner. So what can we do?

Well, I decided to skip CodeIngiter altogether. For that particular API call (and all other API calls that were hit frequently) we actually didn’t need to know anything about the calling user. We were able to include all the required parameters in the URL and everybody who hit a specific URL would get the same exact response, which was valid for at least a few seconds. So we did an override of CodeIgniter’s output-method send the data to Memcache (every front-end machine has it’s own Memcache-server for super fast look-up) if that specific call was cacheable.

Next, I send all requests to a very simple script that connected to memcache and checked if a valid cached result existed for the URL that was requested. Only if the cache was missed, would the script forward the request to CodeIgniter for execution.

The result? We got from 22.000 hits per minute to 250.000 hits per minute (4166 hits / sec). Now _that_ is a good result.

So what exactly should you take away from this?

If you need super speed, have your cache serve data as upfront as possible. Also keep in mind that PHP files are surprisingly slow to load, even if they don’t execute any or much of it’s code. In our case we were using eAccelerator, so our PHP files didn’t even need to be parsed but still, thats were most of that whopping 1100% speed increase came from.

3 Comments

  • [...] This post was mentioned on Twitter by Eric Snowden, karannnnnnnnnnn3. karannnnnnnnnnn3 said: Learnings from caching with CodeIgniter: We’re using CodeIgniter on Sofanatics as our back-end. One problem we f… http://bit.ly/eZsFZe [...]

  • A few question and a comment. When you say you run a memcached instance on every machine does that mean a cache miss populates all the frontend machines in the cluster? How do you manage memory in this case, can you actually fit the working set of cacheable pages onto a single machine?

    The comment is mainly a nitpick. Your hit counts are so high that the numbers might be more easily comparable if you normalized to seconds instead of minutes. Queries per Second seems to be a common unit, probably a leftover from search engines.

    • Good point, I updated the post to show hits/sec.

      All of our memcache servers run independently and have been allocated aroud 200 megs of memory. While this definitely is not your basic memcached setup where you would have one or a cluster of dedicated memcached servers serving all front-end instances this was still the best solution for our case. Our caches expire very quickly (usually in 2 seconds), so the low memory isn’t an issue. And we found that having every front-end instance run it’s own memcache locally gives us a bigger speed increase than what we loose to the fact that every front-end instance has to populate it’s cache independently.

Leave a comment

One Infinite Tunnel almost done

Jan 16, 2011   //   by Tuomas Artman   //  3 Comments

Too long in the making, One Infinite Tunnel, my first iOS game is almost done. The beef of the game are its control’s, or the lack thereof. Press anywhere on the screen to boost your nose up. That’s it. Here’s a little sneak peak of the gameplay:

Big thanks to Aleksi Eeben for the title music, Black Salamander.

3 Comments

  • Looks great!

  • Looks good!

  • As it’s out, I decided to help an old friend and colleague with (literally) a few cents.

    As can be expected from anything Tuomas has had his hand in, everything works beautifully – it’s just not the kind of game I enjoy
    Maybe it’s the fact that I’m somewhat of a control freak and flying a tunnel almost blind with only one nose thruster to use (and enjoying it) goes counter to my nature.

Leave a comment

Things that sucked in 2010

Dec 14, 2010   //   by Tuomas Artman   //  No Comments

2010 is almost over and everybody is recapping the year. Beeing a pessimist is sort of a hobby of mine, so here’s a list of what sucked in 2010:

  • IE9 for Windows Vista & 7 only. This will happily ensure that it’ll take many years before we can forget to build our pages to gracefully degrade to HTML4. Forget about using Canvas, client-side form validation, the video- and audio-tags for a while…
  • Flash on Mac. Well it’s not only 2010 that Flash on Mac has sucked, but it’s on the list as it still is sucking big time. Your average Windows Net-book is running Flash faster than your 10 times more expensive MacBook Pro.
  • Nokia. Yup, they’re still sucking as much as in 2009. They’re only notable new release – the N8 – is crap because of it’s miserable OS. Maybe that Canadian fellow will be able to shuffle things around for 2011.
  • The whole Flash vs. HTML5 discussion. Dudes, get over it. Flash co-exists with HTML5. If you think otherwise, just stick with one tech and shut up.
  • Sarah Palin. I’m totally baffled that someone actually thinks (and wants) that she has some chance in the next presidential elections. Voting for her is like eating dog-shit while shooting yourself in the head.
  • Greece. You’re government has overspent and now you’re asking us to bail you out. If you’re not paying back, we’ll annex a few of your islands.
  • iTunes. Here on the list due to Spotify. If you’re living in one of the countries where you have access to Spotify you’re bound to have the same feelings towards iTunes: It’s a massive, slow-moving, monolithic dinosaur and I hate that I have to use it to activate and sync my iOS devices through it. Uh, and Ping didn’t help either.

Leave a comment

iOS 4.2 and Safari with accelerometer support

Dec 1, 2010   //   by Tuomas Artman   //  No Comments

iOS 4.2′s Safari includes a JavaScript API to access accelerometer data, which is cool. We wanted to quickly use this functionality and put out a version of Sofanatics.com that utilizes this new API in a fun, intuitive way:

Leave a comment

My 3 cents on 3D in Flash

Oct 27, 2010   //   by Tuomas Artman   //  10 Comments

In the light of this years Adobe MAX reveals it’s time to revisit my old post, “My 2 cents on 3D in Flash“.

ZPrinted Paperweight

First and foremost: Finally! It’s been almost a decade since Adobe (or back then, Macromedia) shipped web-based GPU accelerated rendering in it’s other plug-in, Shockwave, with the release of Director 8.5. Ever since it’s been on the wish-list of almost every developer in the community for every single Flash Player version shipped ever since.

As I’ve not seen the API or played with the Molehill pre-alpha (hint, hint) I can’t tell whether I like it or not. Well, that didn’t come out right. I like it already, but I don’t know yet whether I’m going to love it. Looking at the videos published by Adobe and Alternativa it certainly seems that rendering has been enough taken care of with multi-texturing and bump-mapping letting you assume that you could create other pixel-based surface shaders.

What however is not clear is if the API supports realtime-shadows, mesh deforming using bones, rendering to textures for reflection shaders or model-based level of detail. Sure, many of these effects can be seen in the demo-videos, but it’s not clear whether these are natively supported by the API, or whether these have been created using ActionScript. For some games, ActionScript might be sufficient to do e.g. bones-based mesh deforming, but most others, this would be way too slow. Specifically I’m concerned that the Racer demo was said to contain Phsyics that had been created using ActionScript (dudes, you already had Havoc support almost a decade ago in Shockwave, what gives?). From this one might assume that model collisions need to be done in ActionScript which basically will kill the performance for 1st/3rd person shooters or adventure games that have a detailed world where box- or sphere-collision is not sufficient enough. In the end, ActionScript is still very slow.

One other point of interest would be to know whether there’s going to be any specific tooling for 3D. I would certainly hope that Adobe has chosen a binary-based model format instead of going with Collada. This of course would require exporters to all the major 3D modelling applications as was the case with Shockwave 3D. Of course animations would have to be supported, too.

Unity to the rescue

pills

Then it hit me, Unity will provide the tooling. It makes perfect sense.

Unity has long been an integrated IDE for 3D development that has published to multiple platforms. Currently it supports PC, Mac, Web based (through their own plug-in), Wii, xbox360, iPhone and Android publishing, with PS3 support coming soon. It’s in their blood to do publishers for totally different hardware and software environments. And Flash is going to be almost too easy for them. Here’s why:

  1. You can create applications in Unity using EcmaScript 4 (or what it would have been). They actually call it JavaScript, but it’s a strongly typed language which is almost identical to ActionScript. There are a few additions (such as sub-routines, which are really cool) and differences mainly in how vectors are declared, but these are nominal.
  2. Unity already has a compiler to create the SWF. You know, the Flex framework along with it’s MXMLC is open source.
  3. Unity already supports DirectX 9 and OpenGL, shaders and the rendering pipeline is not that different in the Flash Player as in their own plug-in.
  4. The biggest problem that’s holding Unity back is the adoption of it’s plugin. No-one has it. That makes developers think twice before starting to use it. Targeting Flash would solve that problem once and for all.

There you have it. It’s a win-win-win;) Unity wins by beeing able to sell tooling, Adobe will win by becoming the standard delivery platform for 3D games (it’s not all that certain if tooling lacks), and developers win as they get great tooling and can publish the same 3D app to the web, desktop, phones and consoles.

Update: Fantastic! Four months after writing this post Unity announces support for the Flash Player! A great move from Unity, and excellent news for all Flash devs out there.

10 Comments

  • From what I’ve read, it’s a low-end API with various 3D engines built by various 3rd parties. Also at the Sneek Peeks Adobe announced Pixel Bender 3D will be coming with the Molehill API for 3D shaders. Since it’s a low-end API, perhaps Unity could be integrated to create SWFs. However, Adobe has always made their money off of tools releasing the player for free, so it would make sense that Adobe will introduce some sort of 3D tooling of their own.

  • Sorry to say that but I think you’re totally misunderstanding here. Molehill is a framework FOR 3D engines, to allow GPU acceleration. That’s all. Unity is never going to be implied in that, and javascript neither. This is AS3, and Flash, finally hardware accelerated. 3D tooling? 3DSMax / Maya will do a lot better job that Unity.

    • Stephane, I’m aware of what Molehill is and have understood it’s low-level nature. I might have not been clear in my words regarding Unity. They are still going to target the Flash Player. What I’m talking about is that you’ll be able to target a new platform from within Unity: the Flash Player. The output will be a swf, and you’ll program the app in ActionScript.

      Moreover, If you think that there’s not going to be a need for middleware between your 3D modeling app and Flash your simply mistaken. Either Adobe creates one (unlikely given the timeframe), someone creates an editor using ActionScript (quite likely most of the engine developers are thinking about this), or you take an existing platform. I’m betting on Unity at least very hard thinking about this. If it’s feasable, they’re going to do it.

    • http://blogs.unity3d.com/2011/09/01/unity-and-flash-a-sneak-peek/

      LOL how does this taste, buddy?? XD

      Awesome job on predicting this, Tuomas!!

  • Still can’t customized Right-Click event? (not mean right-click menu)

  • I reckon you’re right on the tooling stuff as the whole technology will be more mainstream, so there will be a need (which is still a future need though) for simpler and/or more specific / complementary tools. This is clearly a game changing thing (I mean molehill, especially regarding the delays on WebGL), so the whole ecosystem is still to be written of course…

    • As a technology only, Molehill is not a game changer. A number of solutions have already existed that bring this kind of power to the developer (Unity beeing the first that comes to mind), so to me, the eco-system is already there (although it’s a small eco-system).

      What makes this a game-changer, however is the Flash Player’s penetration and adaption rate, which will very quickly propell it to become the number one client side tech for 3D gaming on the web. And again, I think this makes the case for Unity to support the Flash Player even more relevant as there really is no way for them to compete with FP’s penetration. And developers are always very cautious (for a good reason) to adapt client-side technologies that have low penetration.

  • Well, you can see the future. Few digits from next saturdays lottery? Please.

Leave a comment

Everyone’s Facebook and Twitter accounts hacked and hijacked

Oct 25, 2010   //   by Tuomas Artman   //  3 Comments

Another Bloody Skull

To summarize this post: Don’t use Facebook, Twitter or any other on public WLAN access points. Anyone can now *very* easily, in a few seconds, hijack your account.

HTTP is an insecure protocol and anyone on the network can sniff what data gets send from the internet to any other client on the network. Still people have been living under the wrong impression that capturing ones session is something that only hard-core hackers can achieve. Until now.

Eric Butler just released a Firefox extension that makes hijacking HTTP-sessions very, very easy.

Basically the extension looks for data on the network (e.g. your companies, cafes or conferences WLAN) identifying a users session to one of the services supported by the extension, and you can always write a bit of code to support any service that doesn’t use SSL.

I just tried Eric’s extension and yeah, it was easier than I thought would be possible. In under a minute I had captured the sessions to Facebook and Twitter of *all* of my co-workers and could have easily written posts in their name, or worse, reset their passwords and email addresses for these services and thus effectively captured their accounts.

Scary stuff. Currently the only fix is to force SSL (Firefox extension) on services that support it. Read about it on Techcrunch. Otherwise I suggest you don’t log onto that open WLAN, or if you do, make sure that you don’t use any unsecured services.

Stay tuned for more info: twitter.com/artman.

3 Comments

  • Very, very, very true.

  • If you’re looking for an extension for Google Chrome check KB SSL Enforcer.

    • Lari, yeah, KB SSL Enforcer works on Facebook if you are already logged in. But Firesheep is still able to capture your session if you login to your account…

Leave a comment

N8 fail

Oct 6, 2010   //   by Tuomas Artman   //  3 Comments

Nokia n8 text vert

Bashing Nokia has become nothing short of a national sport over here in Finland. Even big magazines publish front-page stories titled “Mokia” (translates to fuck-ups) and analysts are arguing on national television what Nokia did wrong and how their management structure is messed up.

You see, our relationship with Nokia is one of dependency. Nokia’s impact on the Finnish economy is huge. In 2004, Nokia’s share of Finland’s GDP was 3.5%, and accounted for 25% of all exports. If Nokia is messing things up, it’s not only the shareholders feeling it in their stock, also it’s many suppliers and subcontractors are feeling it, and to some effect, the whole Finnish population too.

This is why, with every new model Nokia churns out, the Finnish press goes into overdrive mode to proclaim the end of iPhone’s and Androids superiority and the inevitable Nokia comeback. This happened with once again with the N8. And once again everybody who made even the slightest remarks that the N8 might be competitive look really, really stupid.

Now, the on-his-way-out VP of whatever, Anssi Vanjoki recently famously said that jumping over to Android would be like pissing in your own pants for a short, warm moment in the winter. Well, he surely has got a good point there, one that we’re going to see in a few years from now as Android device manufacturers won’t be able to differentiate their handsets enough from one another.

But still, pissing in your pants with Android is a lot better than shooting yourself in the head with Symbian^3.

It don’t want to go into details on what’s wrong with Symbian^3 as that would be the same as having to say what’s wrong with having a flag-pole up your arse. In the end what matters is that Symbian renders the N8 completely anti-competitive. There simply is no reason whatsoever to prefer a N8 over a modern Android, iOS, Windows7 or BlackBerry OS phone.

3 Comments

  • Great stuff, Tuomas. From ver very far away the way it is really strange how Finns behave when it comes to Nokia. There is much fiction, very little facts and yes, I don’t want to have flag-pole anywhere near of my rear parts.

  • Nokia almost finsh unless if they invent a new os I know they have Meego but it looks like shit! So ugly. Nokia good only in low end phone so stay with it nokia you want compete with Apple and google/Andriod you have to work so hard cuz those there jobs only in technology field and they knows excttlay what they are doing and they spend money to attract the developer like Apple do 60% for developer and 40% for Apple and 30% from any app bought from app store to Apple. WAKE UP NOKIA WE ARE NOT STILL IN 90s.

  • A social media experiement:

    Are you, too, frustrated with your Nokia phone?

    Follow @AngryN8owner on Twitter, and let’s see what happens.

Leave a comment

Pages:123456789»

Follow me on Twitter!

I'm mostly active on Twitter, so start following me, no?

Other services

By PDGACO payday loans

Lifestream