Podcasts

I was on an Aussie podcast not long ago. Tech Webcast – Australia’s leading technology show. Listen at

Techwebcast video ep142: Carlos Icaza from Ansca Mobile

I was also on reviewme.oz-apps.com, another great Australian technology and apps review site. Listen at

http://reviewme.oz-apps.com/2011/07/meet-developer-well-co-founder-in-this.html

reviewme.oz-apps.com is doing a series of podcasts interviews. I will post them as they get published.

C

On Entrepreneurs and Artists, on Corona and on being Number One.

A long time ago, during my late teens early twenty’s a friend of mine used to be a tennis instructor. He didn’t teach the fine art of how to play tennis, the didn’t coach, he didn’t teach you how to hit the ball and how to serve or how to move around the court, he didn’t teach, he certainly didn’t coach. His job, or as he would described it was that of the guy who you hired to play tennis against while learning how to play tennis. His clients would usually have hired a coach or an instructor or a motivational speaker, he was there to play against the students. He got to that position by being a really good player. He qualified at the state finals and won numerous tournaments throughout the state.

Couple of things to jot down, he came from a middle class hardworking family, he certainly wasn’t rich and his family could never afford to hire a coach, enroll him on private classes or sign him up to posh tennis clubs to learn how to play tennis. He played at the local park court, but played for hours on end. Often until he got kicked out by the park police and had turned off the court lights. He never had “tennis” attire. He never had a “graphite” tennis racket, nor “professional grade” tennis shoes. He just loved to play and by the sheer love became a top tennis player and instructor in the area. He was sought after and often was booked in advance for months. He demanded top dollar and made a good living at it for a while.

Since we have gone to the same high school and were part of the same group of school friends, we remained close friends well until after graduation. As he kept playing tennis and getting better and better he taught me a lesson. He never sat and said, here let me teach you this, this is of those lessons learned by osmosis. 🙂 Like I said earlier, while in high-school, he could not afford the super expensive tennis rackets, the shoes, nor the “attire”. Yet watching him play, he played with passion and determination and would beat the crap out of anyone on the other side of the court with am amazing grace. It was like it was just too easy for him to win. Yet, he would never, at least when I saw him play and then through the reports of friends and others, make you feel as though you lost. For him, it was a match, a game and he came to win and win he did.

The irony here is that he would win, and in his words, using a $15 dollar tennis racket. He could only afford regular tennis shoes, t-shirts and shorts, those that at one point were jeans and you just cut off the legs. That’s how he would win and win top games.

So what’s my point? What am I trying to get to?

Lets look at it from another perspective. A guitar has only six strings. A piano has 52 keys. Yet, how many variations of sounds can you generate from just six strings? and 52 keys? Some of the best music in the world, created by some of the best composers in the world, some of them even deaf, have endure time and time again and have become classics and every other adjective I can find out there.

If I we were to look at my friend, the tennis player, and say Beethoven, and if I could try to find a correlation, what would that be? that of two great artists who had love and passion for their respective skills. Both of them artists, and great artists use any tool to convey their passion. A tool, wether it is a tennis racket or a piano, is a method to convey their artistry, and their passion.

Carlos, where are you going with this? It is great and all but what does this have anything to do with either entrepreneurship or Corona?

Well, just like my friends canvas was that of a tennis court and Beethoven’s canvas was a stage, theater, etc, the new canvas is that of a mobile device. And the canvas size is not any bigger than the size of your palm or two palms if you are talking tablets.

Although, prior to the App Store, there had been app stores, Apple popularized it to what it is today. It enabled the democratization of  not just building apps but also distributing them and creating an entire new industry of mobile apps, and with it, a new breed (insert trite jargon marketing phrase) of entrepreneurship was born.

And here is where both entrepreneurship and obviously Corona comes into this blog. Corona is a tool for your entrepreneurship passion in creating great mobile apps.

I have seen what you guys can do with our tool. I have been blown away by some of your creations. Heck, Walter and I can’t believe what you guys often create and how you can push us in the right direction to take Corona to the next level. Yet, with each new game I see, each one is different, each app I see, each one is different. Your creative mind and passion makes Corona do things I am blown away by. But more importantly, what really excites me the most is seeing not just what you can do with Corona but how Corona has changed peoples lives. It has enabled some of you follow a dream of becoming entrepreneurs and have done so quite well. Often, what was impossible is now possible. Mobile programming has a high learning curve in general, but Corona is one of those tools that lowers the barrier to entry without sacrificing quality and game play.

Which brings me to my closing argument 😉

Corona has allowed you to become the creative entrepreneur you have been wanting to become by producing some outstanding games and selling them at both iOS and Android market places. Some of you never thought it would be possible, but with a tool like Corona, it has become possible and you embraced the challenge and have become successful at it.

But the best part for me is that you have trusted Corona to be part of your entrepreneurial spirit and because of it, are establishing Corona as the new industry standard.

An what gives me that right to say Corona is becoming the new industry standard?

By having the number one game on the Android Market place Arcade and Action done in Corona, beating both Angry Bird and Angry Birds Rio. It is Monkey Blast by the Yobonja guys.

Not just that, six months ago, the number one game on the iTunes App store, Bubble Ball, by 14 year old Robert Nay was also done in Corona.

I am very proud of the fact that two completely different set of people using the he same tool, were able to create two different apps resulting in the two apps hitting the number one spot in two different markets and establishing said tool as solid, de-facto standard in mobile app development.

That common tool being Corona.

Now that’s what I would call Corona and the spirit of entrepreneurship.

Carlos.

Hello HP Touchpad. Welcome to the Game.

A few weeks ago, more like two months ago, Walter and I were invited to the HP/Palm campus for a private developer event where we got to meet and greet other developers and Palm folks. But the fun didn’t stop there. We all got an HP TouchPad to play with for a few hours and pick the HP devs brain for a few hours as well. It was two days of cramming with the HP/Palm folks and the TouchPads.

For two days, a select few of high profile developers and third party tool developers like ourselves were privy to the TouchPad. Our very own TouchPad for two days.

Here is my first hand experience with a still in work progress unit.

The TouchPad will be a “Formidable Foe” to the iPad. The entire experience, from developing to installing apps, to the way the TouchPad launches, shutdowns, to the overall UI experience is fantastic. It really feels like a unit that a lot of thought has been put into it. It is not clunky. At least, I didn’t feel it was clunky nor unwieldily like the Motorola XOOM. The overall user experience is unified and pleasant. It outshines any of the current crop of Android tablets out there and the RIMM PlayBook.

Unlike XOOM, where the XOOM UI feels like it was put together with duct tape, the TouchPad’s UI felt more coherent, robust and much more complete. It was clean and easy to navigate and not prone to figuring out what you did to figure out how yo got there, which I often find with Android devices. Uh what happened. None of that on the TouchPad.

From a developers perspective, the webOS and core SDK are a dream comparing it to the Android SDK/NDK and the RIMM SDK. Installing apps, no brainer, debugging, no brainer, the simulator, IDE, debugger, not brainers. It is one click process to install and no fetching different components, setting up crazy directories paths, etc. It is pretty much just like an XCode like experience. One click install. Again, how much can I emphasized cleanness. Try setting up the Eclipse IDE to work with the Android NDK/JDK. It is a nightmare. It makes the Android NKD/JDK feel like the old development days of NOKIA. Backwards. Yet HP webOS team did a fantastic job in creating a great development environment. Seriously, Google should take note.

Now, the bad. The units we had were still in development, and throughout our sessions we were reminded that a lot of the features going in the SDK had quite a number of limitations. Ranging from keyboard issues, to international keyboard support to other issues that would be too much to enumerate. You just have to download the SDK and find out. As for services, a lot of it still work in progress. And they understand that. And that constant reminder was good enough for me as well as for Walter. We had one to one chats with the people that matter and they were eager to listen. And listen indeed. They took notes, and followed up. Shocking isn’t it? Not quite when they are in it for the win. The kids from ShoreLine/Amphitheater Parkway should take notice. How many times had we been left in the dark or “just switch to 2.3” as if it was that easy.

Needless to say, I am impressed with the TouchPad and given that HP has 80% PC market penetration, and huge amount of shelf space in major retail stores, I think this unit will pose quite a challenge for the Android tablets which are still trying to figure out how to duke it out with each other. The XOOM has been a disaster, the RIMM, lets not even go there. But with HP even mulling bundling their laptops with webOS instead of Windows OS, I can only think of HP paying 1.2 billion for Palm so that they don’t have to pay Microsoft Windows licenses anymore, I think that HP/webOS/TouchPad could be positioned to be the number two tablet in this crazy world of tablet/smartphones we live in now. It will be time before it takes off and of course a lot of quirks will have to be figure out, but it was a pleasant unit and one that I would use on a daily basis. But remember, it is not always about the unit, it is also about the apps. Apps are currently lacking, but am sure a lot of them will be on their way soon.

Welcome TouchPad.

Carlos

How can a simple call change our view of a competitor?

I was in a call today, getting ready to bolt out of the meeting to go catch a flight. During the call, a business as usual call, the conversation turned into the number of visitors of our site on a daily basis. It is our policy not to disclose this information for many reasons which I will not go into, but you would have an idea of what they are if you were in a similar position.

The calling party then had the gull to disclose a competitors number of visitors during a specific period of time. Now, I didn’t ask for this information, it was volunteered. It was at this moment when I realized how keeping mum on certain company information is worth more in silence than the price of an ounce of gold. That could have been our information being disclosed to a competitor of mine.

Here is where it gets interesting, I was pressured to disclose what I consider vital information for the success of our business. I continued to decline an answer to the point where the calling party thought I was nowhere near the amount of traffic this specific competitor had to our site. He was trying hard to make me cave in and disclose this information.

I knew inside of me that our number of visitors was higher. Much higher than the number the caller stated. I just didn’t know an exact figure. After the call, I was left with a bitter taste both from a business call perspective and sour business practices. Goading me at whatever cost, to get, what again I would consider sensitive data, was unprofessional.

Well, without sounding arrogant or like if am gloating, here it is. I did an analysis of our traffic and here is what I will share, it took me four tries to get my data to match anywhere near our competitors traffic. For half the period of time from our competitor, our traffic was in the 7 digits, then cutting down the period of time to half, the traffic was in the six digits, cutting down the time to a months worth of traffic, the data was still in the six digits, then my sarcasm kicked in and decided to cut down the time to a four day period, our traffic was still higher by 27,000 new visitors.

That data blew me away. In four days, we had as much, if not, more traffic than a certain competitor has had over a 12 month period. There is a lesson here somewhere, I just don’t know what it is. Had this caller not provided me with someone else’s data either public or private, I would have not known how we fared against them. At the same time, I wish I would have not learned of their data. I now know where we are in relationship to them, but that doesn’t mean we can sit on our laurels and not compete as aggressively and tenaciously as we always do. In business, one misstep and you can become a statistic and that of the dead pool. There is no way we are headed to the dead pool. Maybe our competitor is judging from their traffic. Certainly not us.

Now that’s the art of Entrepreneurship.

Carlos

ps: to the caller – see this is why I don’t divulge this type of data. It could be used against me.

Maybe Adobe is not killing Flash after all. But Google certainly is.

Google debuts Flash to HTML5 Converter. More from InformationWeek

And from Google, the tool can be found at “swiffy

You can accuse me all you want for being biased about our Corona SDK – but be honest, the reality is that Adobe is being embattled from all sides. First Apple, now Google, a long time ‘friend’. Walter and I said it and keep saying it, Flash is not ready for mobile, never was, never is, never will be. Certainly now more than ever.

Carlos

Is Adobe Killing Flash?

Well, I certainly hope so. In light of the recent analyst call where there was no mention of Flash or any Flash related products contributing to their bottom line as well as showcasing a new Flash Like HTML web animation tool called Adobe Edge, one has to wonder what is going on inside of Adobe and its strategy for building on top of the once al mighty Flash platform.

I have received a number of inquires about Corona SDK from Flash programmers who are frustrated with Adobe’s roadmap and song and dance about Flash and how with its Open Screen Project and its AIR marketplace will eventually dominate the app and distribution channels to help foster the Flash/Air/Flex cause.

It has been over 5 years since Adobe purchased Macromedia and Flash has become a second class citizen inside of Adobe. With all its engineering power and deep pockets, Flash still has mediocre performance on Android and abysmal performance on iOS devices. Only for developers to sit and wait now for more than five years.

Is Adobe Edge a symbol of Adobe throwing in the white towel into the mobile ring and giving up after all these years of trying to unsuccessfully attaining the once dominant runtime engine from the web world into “non-pc devices” or is it another bet in its arsenal of the MBA suites covering their asses in case these other platforms succeed. The argument here could be that Adobe is a big company and as any other company with deep pockets can, and will, fiddle with “emerging technologies” and they could afford to foray into un-charted, unproven “technologies”. Adobe after all, is a industry leader and a company that sets the standards. I would agree, but those days are long gone. Long gone.

Whatever it is, and however you see it or Adobe sees it, I will contend that this is a significant blow and a major black eye for Adobe for having spent $3.1 billion on Macromedia for Flash. Only to have Adobe fail to deliver and failed to capitalize on their strength on making Flash the de-facto mobile framework engine.

At the All Things Digital D9 conference, Shantanu failed to answer Mossberg critique of Flash having poor performance on Android devices, even on such devices as the Motorola Xoom. And how about the fracas on the RIMM Playbook using AIR as a core development tool on top of QNX. It is a joke. Not only that, but Shantanu played the “business model” card vs performance card when questioned about Jobs banning Flash from iOS devices. (See: Wired, April 30th, 2010 article)

Well for all of you Flash developers out there caught in the middle of the cross fire, unkept promises and a cloudy future, there is an answer for you, it is called Corona SDK, and now with SpriteLoq, you can take almost all of your Flash assets and convert them to Corona. Unlike Adobe, we are committed to deliver the overall best framework for mobile, we are focused, small, lean and we can adapt to change faster than the loud growling, chest beating, all noise but no action 800 pound gorilla.

We have had the number one game on the iTunes App store, we have the top games across all three major Android app stores, those of Amazon, Google and Barnes and Noble. We continue to have top apps across the board, and we have had a number of apps break past the one millionth download mark. A few days ago, around June 20th, Yobonja, makers of Blast Monkeys, notified us that their game blew past the 2 million download mark. They are currently tracking as the number four game overall on Android market place and number 2 right after Angry Birds in the Action games category.

Proven technology from the guys who brought you Flash-Lite.

We may not have the Adobe name but we have the un-relentless commitment on making our Corona SDK the number one framework for mobile game and app development across all major platforms, with significan focus and drive to make it happen.

Go ahead and download our Corona SDK. Try it for free. You won’t be disappointed. And don’t forget to vote for the features you most like to see implemented in Corona over at our roadmap page.

Visit our “Flash Developers You Will [Heart] Corona” page to learn about Corona vs Flash and how easy it is to get started and porting your Flash games to Corona.

Lastly, don’t get me wrong. There is the “business” of Adobe and there is the “people” of Adobe. I worked with some of the best people in there, I hold high regards for them, smart, fun, witty, brilliant, extraordinarily brilliant. It has been said that if you want to get smart, hang around smart people. And Adobe has a bunch of them and I learned a lot from them. This is not about them. This is about the “business” of Adobe and their inability to deliver. Some of them are just caught in the quagmire of big business politics where the bottom line and cost saving measures is their modus operandi.

The “oh-so-ever-loose cannon”

Carlos

[now in seclusion. whereabouts unknown] And for those who want to burn me in effigy, I will be more than happy to provide you with the gasoline and matches 😉

Moving an object along a Bezier Curve. Part III

In my previous post, Moving an object along a Bezier Curve. Part II, I discussed how to compute the first derivative of a Bezier curve in order to find its tangent. Today, we will find the 2nd derivative of a beizer curve.

The 2nd derivative is computed by

 \frac{ (d^2)}{(dt^2)} = ((1-t)^3 P_0+3 (1-t)^2 t P_1+3 (1-t)^2 P_2+t^3 P_3) =

 6 (P_0 (-(t-1))+P_1 (3 t-2)+P_3 t+P_2)
.
.
local px2ndDer = 6 * (p1.x * ( -1 * ( 1-t )) + p2.x * ( (3 * t) -2 ) + ( p4.x * t ) + p3.x )
local py2ndDer = 6 * (p1.y * ( -1 * ( 1-t )) + p2.y * ( (3 * t) -2 ) + ( p4.y * t ) + p3.y )
.
.

Why is it important to find the 2nd derivative of a curve in regards to moving an object along a path? It is to calculate the curvature radius of the path at specified parameter t. It measures the rate of change of direction of the curve. It is the tangent’s line turn per unit distance moved along the curve.

To compute the curvature, using the first and second derivative, it is as follows:
  K = \frac { \begin{vmatrix} x'y'' - y'x'' \end{vmatrix} } { (x'^2 + y'^2)^\frac{3}{2} }

To compute the curvature radius, it is easy, its the inverse. And it is denoted as follows:

  R = \frac { (x'^2 + y'^2)^\frac{3}{2} } { \begin{vmatrix} x'y'' - y'x'' \end{vmatrix} }

Carlos

Coding as a skill is becoming a casualty of efficiency

Mashable discusses the efficiency of new tools for non programmers (and even for programmers) and the only name dropped is that of our Corona SDK.

They got it. Corona is for everyone, from 14 year olds like Robert Nay whose app became number 1 on the app store, tumbling “Angry Birds Seasons”, to studios, to ad-agencies, you name it. Corona SDK is becoming a standard in new app development framework. Mashable on Nay’s use of Corona, He’s a pioneering user of the next generation of platform dependencies — innovations upon which further innovations can be built.”

Mashable goes on to state Coding is a means to an end, and if new methods are developed that enable us normal folks to achieve comparable results, then that’s a win in my book.” And I couldn’t agree more.

To read more about what Mashable has to say, read http://mashable.com/2011/05/13/developer-platforms-jobs/

Carlos

Calculating The Length of a Bezier Curve. Part I

One of the fastest way to calculate the length of a bezier curve is by breaking down the curve into straight-line segments, and then, obviously, add the length of each segment to get the final length of the curve.

Looking at the code from my previous post “The Cubic Bezier Form and Code”, you can see where each segment is calculated. All that we would need to do is to add a hold value to hold the previous segment end point and compute the distance to the current start of the new segment.

.
.
.

local length = 0;

if ( j  > 1 ) then

    local xx = x - prevPt.x
    local yy = y - prevPt.y

    length = length + math.sqrt((xx*xx) + (yy*yy))

end

prevPt.x = x;
prevPt.y = y;

.
.
.

This method is what I would consider a brute force method. I will do a follow up on finding the length of Bezier curves by using subdivision, and arc-length computation, To learn more about calculating the length of a bezier curve, see Jens Gravesen: “Adaptive subdivision and the length of Bezier curves” and Gravesen, Jens, “The Length of BĂ©zier Curves”, Graphics Gems V, p. 199-205, code: ch4-7.