Monday, March 5, 2012

Mobile Apps is a Fad


With the explosion of smartphone market, there are tons and tons of mobile application studios and indie developers sprung up from nowhere. Just like previous fads this is a bubble waiting to burst. The side that benefits the most from this trend is the application store and SDK creators.

Apple
  • 70/30 split with the developers. The payout to Apple scales according to how much developers make. 
  • App review is hard as it is done manually by people (!)
  • The application can only be compiled on Macs if you're using native Objective C.


Android Market
  • 70/30 split with developers on application price. 
  • Limits the apk file (your applicatio file) to a max of 50MB. Good for puzzle games and indie developers. Bad for anything significant like RPGs.
  • The SDK is really low level. e.g. if you're trying to make a small FPS game with one map like fy_iceworld in Counter Strike, good luck wrestling with openGL in Java.

It is recommend to try this SDK for anyone that wants to take a ride on this fad. You can develop apps in a blazingly fast speed.

Be warned though, this fad will burst. So ride on while you can.








Tuesday, June 22, 2010

Get Me Promoted Methodology

- Software development methods in the real world

  • Get Me Promoted Methodology (GMPM) - Project designs are done to impress the higher-ups. The presentation is usually the last thing that the management will see produced from the project. Aside from the GUI, everything else from database to documentation is considered not important and sometimes does not need to be done (!) at all.
  • Cover My Ass Engineering (CMAE) - Design decisions are all logged in a private database by each developer. Furthermore the managers designed the tasks in such a way that the more isolated each task is the better. When the project blows up, blame other developers (I didn't touch it!) or the technical support (They say not my bug).
  • Mushroom Development (MD) - Software devs are kept in the dark like mushroom, while being fed craps and rotten food so that they will not starve. One day when they are considered a nuisance, pluck them from their cubicle and fire away.
  • Google Oriented Design (GOD) - we have a legion of GOD followers where we need to worship it for blessings of good code to use in cut n paste programs. Managers may as well as hire Google bots to do the programming.
  • Hero Driven Coding (HDC) - Each development team is just waiting for the project to drop off a cliff like a damsel in distress. Once it is at the critical moment, a rock star coder swoops in for the rescue by giving out solutions with source code and full 10 pages of documentation - which was prepared a month ago. All hail the code hero!
Regards,
Popo

Tuesday, June 8, 2010

Internet: Connected But Driven Far Apart?

- People are all linked together in this Web, but we still felt lonely amidst all the Twit'ing


Facebook will have 500 million users by the end of this month. Here's an article excerpt that fits perfectly well what I feel about the social sites boom:



The internet might look at times like a new-fangled way to go shopping or look at porn. But just as Gutenberg shifted power over information from the Church to anyone with a printing press, the internet has shifted power over information to anyone with an internet connection. Today, you can publish anything you like, to anyone on earth, for almost nothing. You can whip up a group of people with the same interest as you in a few hours. You can talk to anyone else on Earth, via Skype, for as long as you like, for nothing.

Social networking sites has transformed the way we interact with our friends, too. When I sent that first email I was at university, and my main way of communicating with my friends if their phone was off was to leave a written note – on a piece of paper! – on their door. When I told this to my 10-year-old nephew, he gasped, as if I was describing how we had to hunt and kill our own food and then cook it on an open fire built from damp twigs.

But is it more? Recently, an old friend I hadn't seen for 10 years committed suicide. I instinctively went to her Facebook page, and so, it seemed, had everyone else who knew her, leaving messages of regret and love and loss. I found myself reading over her old status updates. She was clearly trying to communicate pain and isolation – but we all missed it, leaving inane comments and thumbs up and tossed sheep below every plea for help. Could we have known, if we had read it less casually? Or am I projecting backwards?

The contrast between the transitory nature of a Facebook status update and the permanence of death made me wonder if all this social networking is actually a way of keeping people at a distance – a way of having a "friend" but not having any of the commitments and duties of friendship. When the sci-fi novelist William Gibson first put forward the notion of "cyberspace", he described it as a "consensual hallucination", where we pretend we are together, when in reality we are alone. It seemed true that night.

Perhaps the most overwhelming aspect of the web is the sheer tsunami of information it contains. Today, every laptop with an internet connection contains more information than the Great Library of Alexandria. At its peak, that library contained 700,000 books, until the Christian Emperor Theodosius I ordered it burned down in 39(12A)D; today, Google Books has over seven million – and that's before you count everything else online. In 1941, Jorge Luis Borges wrote a short story imagining a "total library" containing all written information. Seventy years later, it exists. It's hard to conceive of how privileged we are as the first generation of human beings who, for almost no cost, can pore through everything previous generations of humans have written down. People travelled for thousands of miles and fought and died to get access to information we have, just a mouse-click away.

But there's a catch. We expect this information to be free – no matter what it costs to produce. This means the beating hearts have been ripped out of the news-paper and record industries. Their products are scattered across the world for free. This is obviously good news for the consumer in the short term – but only while enough other people pick up the tab by buying the dead trees and CDs. As they fall away, there will be a hole left. We will never know all the news stories that won't get written, or the songs that will never be recorded – and there will be many. But what can be done? Attempts to erect pay walls now – as Rupert Murdoch is committed to starting – look like King Canute trying to hold back the flood of cyberspace. Once it can be digitised, it will be copied. On the web, information wants to be free – even if it means less of it will be produced.

As I was trying to think through all the ambiguities of the internet, I found myself haunted by a thought. What if you logged on tomorrow and the internet had vanished? In 2007, the Russian government punished Estonia for removing a Soviet war memorial by launching a "cyberwar" – a bombardment of hacking and viruses that brought their computers down for weeks. The country was in chaos. Their banking, government and business all existed online. Without their machines, they were paralysed. What if somebody could do the same everywhere and bring the internet down worldwide?

Would we be relieved to be suddenly freed from the endless pings of pointless emails? Would we find our concentration spans mysteriously widening again? Would we start to look at the people around us with a clear gaze, rather than at a torrent of status updates? Would we see the newspaper and record industries rise again, as people had to pay for their goods once more? Maybe. But I suspect we would we feel oddly alone if the great global conversation with 3.2 billion other people – the conversation that has defined the Noughties – went dead.



Regards,
Popo

Monday, May 31, 2010

Oracle Analytics function

- the other side of SQL summary functions

Aggregate functions are the norm in SQL worlds, where SUM, AVG, COUNT are all the rage. We are here to see another part of summary functions where it is less frequently used because of its obscure syntax that is a wee bit hard to use. Nevertheless, these function will do well in your bag of tricks. Analytics function can shorten the time you took to write long queries with these keywords rather than old-style multiple sub-queries.



TABLENAME: TRANSACT

The above data shows a transaction data for 2 products. Now lets say we need to get the second last scrap activity rows for every LOCATION and every PRODUCT (not the SCRAP rows with MAX(TIME)-1). We can do this by:

select *,
count(*) over (partition by productid, location) as count,
dense_rank() over (partition by productid, location order by time, rownum) as rank
from transact
where activity='SCRAP'

you would get:


from here it is simply filtering out the rows where COUNT= RANK +1 and you would be getting the result you wanted. It will be more difficult to pull this off using aggregate functions and sub-queries. As a comparison, here's the old style query:

select *
from (
select max(rownum) as row_num
from transact
where activity='SCRAP' and rownum not in (select max(rownum) as row_num from transact where activity='SCRAP' group by productid, location)
group by productid, location
) max_rows
inner join
(
select *, rownum
from transact
where activity='SCRAP'
) main on max_rows.row_num=main.rownum

and it will have a restriction: the rows must be inserted with the column TIME = insertion time to ensure the correctness of ROWNUM. This will not always happen in production environment where data editing always happens.

I have yet to find any Microsoft, MySQL equivalent of analytic functions, if there are any gurus out there which have seen it all, please comment!


Regards,
Popo

Monday, May 24, 2010

a Little Jam Can Make a Difference

- Why 10 mins traffic jam everyday makes you want to smash kittys

Please think of the kittys

You know the drill - we would need to get up, put on your smiley mask, kiss your wife goodbye...and went into a comatose state in traffic jams.

We are used to the concept of taking on all hardships as a training of some sort (Karate Kid comes to mind). Billy would say 'Puhlease, traffic jams in commuting are like push-ups in kungfu, it is pointless, they all hate it, but we must do it to become Bruce Lee!'

Long term investment are the real man's way, and we belittle those weaklings that overindulge on short term rewards.

Little do we understand that 'investments' can be beneficial or harmful to us, there is always a flip-side. With our misconception that everything bad can be a good thing in the end, we are in for a long haul where we drag ourselves around like self-mutilating donkeys who enjoyed the torture for years.

This one is an exception

10 mins of daily workout and I mean real workout where you're not looking for bouncing boobs on jogging lanes are really good for your health if you do it for years. Daily traffic jams are not.

Life is a living hell for some people. Do not try to justify the fire from the depths of despair. It is neither good for your skin, nor will it make you the Human Torch if you burn in it long enough.

Next time when you're stuck in them, just let out a scream or turn on your rock n roll radio. You would feel better and your personal pyscho-therapist will thank you too.

Regards,
Popo

Monday, May 17, 2010

Popo at Work

Ah, the joy of getting up early in the morning so that we can plug-in to our computer at work. The Matrix age is here and now!

There is nothing like a fresh dose of Facebook crack when the sun rises; lest we will go into withdrawal state and whine like a kid who cannot have his toys.

Aside from being yelled at by customers, we will also need to attend to every shit coming down from the assholes upstairs:


You are one of the 4 full-of-shit birds

This is just a humble blog with a simple beginning, welcome aboard, stranger.


Regards,
Popo