Get the Powers to Act from Fresh Ideas



December 31, 2012

Secret Power Magic

I'm referring to Rhonda Byrne's three books.

The Secret


Focus on what you want ...

Everything we think and feel is creating our future.

Act as if you are receiving it.









The Power


It's all about the power of love.

The Magic


Be grateful. That will attract all the nice stuffs towards you like a magnet.

She misquotes Buddha on all occasions! But I'm really grateful to her for the book.

In particular, I like the idea of Jesus saying "Thank you" every time before he performed a miracle. Cool, it makes a lot of sense.

Switch | How to Change Things When Change Is Hard


on July 26, 2010

I'm refering to Switch by the Heath brothers, who don't need any introduction. It's a fabulous book that I heartily recommend to anyone.

The authors believe that change involves three aspects: your conscious rational mind(the rider in their terminology), your non-rational emotional makeup(the elephant in their terms), and the environment(what they call the Path). I am going to summarize only the first 2 sections below.

Direct the Rider


Reason: Without such direction, the rider will lose focus, over-analyze, spin the wheel and deplete its small reserves soon. Thus, we need to

  1. Give the Rider a destination postcard.
  2. Remind it of what is already working, of those signs that herald the miracle you are expecting.
  3. Pre-load it with Critical Success Factors in a situation and the processess

Arouse the Elephant


Reason: Without such motivation, the elephant will remain inert and lazy or it gets spooked and demoralized soon. Thus, we need to

  1.  Show the elephant a graphic stuff/scenario to incite fear (for short-term specific actoion) or joy (for longer- term not so clearly defined actions)
  2. Shrink the task to reassure the elephant
  3. Grow the identity of the persons involved.

December 30, 2012

What Does a CEO Do? - Part 2

An effective person is fully role-aware. She is fully conscious of the responsibilities that come with her role. As a front line manager, she had played her part. As a mid-level manager, then as a VP and so on, she had played in many roles effectively. Now she aspires to being at the helm, being a CEO. How can she retain her effectiveness despite the role change?

According to Tales from the top, a CEO should concentrate on - strategy/vision, customers, finance, and inspiration/corporate culture. CEO has four key result areas in all. To this, Konosuke Matsushita may add supplier/partner relations.

According to Parkinson Law, the No. 1 is to do whatever others cannot and will not do, including switching off lights before leaving office etc.

According to Titan, John D Rockefeller shirked everything. He also advised others to shirk and to concentrate on thinking how to make more money for his Standard Oil.

According to Andrew Carnegie, a CEO like him can run a company like US Steel with about 2 hours every morning. But then, you may later have to hear "Meet You in Hell" from your second-in-command.

Please check out What Only the CEO Can Do in HBR too.

Compiling their wisdom with what I have read from the list in one of my previous posts, I would say that a CEO should concentrate on
  • Goals, Strategy, Vision

  • Customers

  • Finance

  • Suppliers and partners

  • Gurus

  • Corporate Culture, Leadership, Inspiration, Inspection

Frankly, what the CEOs do is boring. We all know their KPI (key performance indicators.)

How they carry out those tasks, how they execute is the key.

What Does a CEO Do?

A truly effective person plays his part, fulfills the obligations of his role, but not oversteps it. How can a CEO be effective? How clear can he be about his role, obligations and expectations of his constituents?

An effective CEO covers these major bases: goals and strategies, capital and cash flow, values and culture, constant monitoring of the external and internal situations.

What have the legendary effective CEO's said about this?

Louis V. Gerstner.. Who Says Elephants Can't Dance?....... IBM

Jack Welch ....... Winning ............................... GE

James M. Kilts.... Doing What matters ................... Gillette

Larry Bossidy..... Execution + Confronting Reality ....... Honeywell

AG Lafley....... Game Changer ........................... P&G

Ram Charan....... What the CEO wants you to know

Konosuke Matsushita ... Matsushita Leadership ....... Panasonic



















Please check out the next post too.

I have also been writing a series of posts for executive effectiveness in this blog.

December 29, 2012

Effectiveness | Dell | Obvious Open Secrets

Effectiveness is an open secret. Everyone knows what it is and how to achieve it. But the will and the courage distinguish the real deals from the posers. For instance, Michael Dell didn't even consider their formula for corporate success a secret worth keeping. He openly shared it with everyone including rivals. I hope we can learn from him how to achieve our personal or corporate effectiveness.

I'm referring to How Dell Does It
  1. Play where you can win : where there is profit and growth, where your business model has an edge, where you have vendors providing standard-based components.

  2. Execute.

  3. Use metrics everywhere.

  4. Adapt your organizational structures, your people(e.g. segment/modularize their responsibilities), the info flow in response to the markets and the technologies.

In other words,
1. play where you can win and
2. do play there.
3. monitor how you play and
4. adjust.

If this is very obvious, that's Dell's genius.
If it's not that obvious in the book , but obvious only in my summary, maybe that's my genius.

December 28, 2012

Why Is it So Hard to Blog?


on May 21, 2011

No matter how we classify/categorize blogs, it is difficult to keep on blogging.
  1. Team vs individual. If you go team, then you have to hire and pay.
  2. Current/commentary vs analysis/insight. If you choose current, you've got to keep up.
  3. Humor vs serious. How many new jokes can you think up every morning?
  4. Unfocused vs focused

Focused, Serious Insights by Individual


This is the most hopeless approach, incidentally, mine.
Why?

  1. We cannot go beyond a million lines to discuss a problem.Charles Simonyi talks about that here. He's talking about software application, but it applies to blogging too. Even encyclopedias have about 1000 pages. Do we have more than that to say about a topic? 
  2. David Ogilvy noted that about 800 words were enough for advertising concepts and theories, in The Art of Writing Advertising
  3. Michael Masterson remarks in Ready Fire Aim that you need to read about 3 books to become experts in any field.
  4. Suntzu has about 13 small chapters for military, so does Sun Bin approximately. 
  5. Finally, Buddha has summarized all the way to Nirvana in a small number of pages.

Unless You Choose the Perennial Popular


Some examples that come up to mind :
World Oldest Dog died in Chile
Eating chocolate helps reduce weight
Avoiding chocolate helps reduce weight
How to raise a well-behaved cat
Cats are more intelligent than dogs
What happens to your brains when you sleep with music on ...

Paris Hilton with her Burmese/Vietnamese/African/Chinese Lover
Genes can tell how rich you can become
Genes cannot tell how rich you can become
President Obama was a muslim

...
...

And I CHOOSE not to write such perennially ever-greenly popular topics.

Clear Writing, Clear Thinking, Clear Loving

"Clear Writing comes from Clear Thinking."
A cliche, so boring.

Is thinking clearly alone enough for clear writing?
Are language, words, grammar, syntax, tone, voice, diction, intonation accent, stress, enunciation, phonics alone enough for clear communication?

Just three examples.

  1. When a Physic/Maths/Chemistry teacher finds many students confused who do you think s/he usually blame?

    Contrast this with Richard Feynman's remark: "If we cannot make a subject understandable to freshmen, we really don't understand it."
  2. What happens when investment schemes, financial products become so confusing?

    Contrast them with Warren Buffet's business models.
  3. When a politician finds many voters confused who do you think s/he usually blame?

    Contrast this with Lincoln's remark on his own style of clear communication. He always kept in mind the annoyance he felt in childhood with confusing passages.

Conclusion(as usual, coming fast)

If a policy is hard to explain, don't try to explain it harder, Not even try to explain it better.

Why not rebuild, re-conceive your policy, (if justified) in radical ways?
(I'm here talking about Insurance policies! Not political policies ;-) )

"Clear Writing comes from Clear Thinking comes from Clear Loving."

I love you. Is that quiet but still clear?

December 27, 2012

Communication | New Style

Input
1. Pre-iPad, Steve Jobs said this of Amazon's Kindle : "The whole conception is flawed at the top because people don’t read anymore." You may read more here .

2. On the Web, people read 25% slower. The exact number may vary but we do read slower with web pages.

3. Search Engines require your content to be 250 t0 400 words, or more than 350 words etc. I can't be bothered with them too much.

4. PowerPoint-style bullet-points constrain thoughts and discussions. You can read more about this here and here .
Customer Focus
1. I suspect the readers of this blog hate PowerPoint/bullet points too. They want depths and comprehensiveness.

2. They are too smart to be bluffed by a higher style. I can use Thesauruses to dig up arcane, esoteric, exotic vocab. Who am I fooling?

I can serve up lengthy, verbose, long-winded, rumbling sentences in misguided imitation of Joyce or Proust, whether they are suitable to the topic of discussion or not, just to make a false facade of erudition which anyone can see through at a glance, which will result in nothing but pity or ridicule and so on.

3. They value their time.
Self Care
1. I'm a bit impatient and I value my time.
2. I can't type well/efficiently.
3. It is a lot of effort for me to raise my language. And even if I managed to raise it, it adds little value.
Conclusion
I'm going to write in free-from bullet points, at the speed of thought, at the speed of note-taking in uni's.

on April 7, 2010

December 26, 2012

Practice and Theory of Gambling --- Part 1 of 20

If you hate and/or despise gambling a tad too much, we need to ensure that you are not suffering from a shadow, which I'd like to define as those aspects of your own self/personality that you've estranged or disowned to please your primary caregivers and/or peers in your childhood and/or youth. Your shadow is there all the time but you just don't notice it except in your night dreams and/or daydreams and/or projections.

Do you still hate and/or despise gambling too much?
  1. You can avoid gambling with E coli uncertainty by staying away from all vegs till the rage dies down or a new vaccine is discovered.
  2. You can avoid gambling by preparing "perfectly" for your exams, whatever that is or in whichever way you define "perfectly."
  3. You can avoid gambling by drawing up a perfect business plan, whatever that is or in whichever way you define "perfect."
  4. You can avoid gambling by drawing up and executing your centralized, decentralized, free-market, laissez faire, market-oriented, market-driven, capitalist, liberal, Marxist, Leninist, socialist economic policies. I truly don't know what such an economy will look like, though.

But what about death? How are you going do postpone it, prevent it, mitigate it, defend against it?

What will happen if you disown you left hand and let it atrophy?

What will happen if you disown you gambling hand and let it atrophy? Will it serve you well when you truly need to use it?

After reading Mike Caro, David Sklansky, Alan Schoonmaker, Mason Malmuth, Dan Harrington and co., many of whom even refer to death in their discussion of bridge and/or poker, I notice that true and good gamblers (not those world champions, those tournaments winners who usually end up broke) won't really mind whatever hands are dealt to them at death.

"Variance," "randomness," arbitrary "distribution" of luck, "luck," "fluctuations," "streaks," unpredictability ...

Yes, sure, you will be given a number of cards upon your death.

Just make sure you will be feeling fine, (or at least, feeling lucky) then.


Enough clues for you, dear readers. More to come later upon this.

on June 11, 2011

Business and Technology Lessons for Web Startups

on December 27, 2009

I am describing these lessons from my own personal perspectives. However, these lessons apply to most web startups, esp. those with severe restriction on resources.

First, you need to ensure the smooth distribution. Translation : Choose your platform well. Ask, "Can we really deploy your applications? Can we really pay for the costs of deployment? What about scaling up or down?" You must consider these issues even before you write a single line of code.

Second, you must keep the development and research costs down. A small web application that takes 2 years to research is not worth doing. You had better find better things to do instead.

personal effectiveness ethicminds tonton1

Third, dogs must really like your dog food. Like Guy Kawasaki says, if you are not sure about this point, you should just develop the product for yourself. Be honest, do you really like your own app? Is it useful to you in a real way?

Finally, --- now you have got a cost-effective, deliverable, really useful product --- but that is not the end of the game. Like Trout says , your app/product/concept must "explode" in the potential customers' minds. Or else, you will have to burn wads of dollars to promote your stuff and still the success is not certain. Your site or app will be drowned out in the multitudes of similar offerings. How are you getting your buzz in an over-crowded market space?

In short, distribution, cost, usefulness and buzz, not necessarily in order of importance.

December 25, 2012

New Software Product Development --- My Proofs - Part 1 of 100

A Hot Web Application

I happened to read a recent Life Hacker book and browsing its pages, found the following app.

Don't Break the Chain

The site describes the app as follows:


This is based upon a motivation technique purportedly used by Jerry Seinfeld. Read about it here. The Short Version:
  1. Pick a goal.
  2. Mark off the days on which you work toward that goal.
  3. Use your chain of marked off days as a motivator.


You can read more about its inspiration at Jerry Seinfeld’s Productivity Secret and at Don’t Break the Chain - Jerry Seinfeld's Method for Creative Success

There are apps for different platforms too:  IPhone App ,  IPhone and iPad apps .


My Intent

The fact is I've watched all the 9 seasons of Jerry Seinfeld for a couple of times. So has my son.

  1. I can get about 10 more apps from Seinfeld character.
  2. I can get about 10 more apps from George Costanza character.
  3. I can get about 10 more apps from Kramer character.
  4. I can get about 5 more apps from Elaine Benes character.
  5. I can get about 5 more apps from Newman character
  6. and so on.
Maybe my son has some more apps different from mine.

  1. And what about Charlie Chaplin?
  2. And what about Buster Keaton ?
  3. And what about Fatty Arbuckle?
  4. And what about Jim Carrey?
And for that matter:
  1. What about Clint Eastwood?
  2. And what about Kung Fu series?
  3. And what about Bond movies?
  4. And what about Jackie Chan?
  5. And what about ... ?
  6. And what about ... ?
  7. And what about ... ?
Such apps are small and therefore won't take too long to code.

If you have some time to spare, we want you to work with us.

Of course, we won't spend the rest of our life doing such small apps.

But before we do the next Google, the next Facebook, the next salesforce.com ... Insert any big and famous name here ... we want you to work with us.

Marathon Tyre Kicking and Insecurity

on January 8, 2012

From Dec 20 last year to Jan 7 this year I did a marathon of checking out various web frameworks. I burned both ends of the candle as well as the middle so long that the seasonal flu caught up with me. Still I kept on testing till my PC too went down.
It took me a couple of days to find and fit replacements for the PC. Then I went on with my testing. In a couple of hours with the revamped PC, I finished all testing.

I tested the following frameworks, across different languages, generations, paradigms, communal styles, and even across different philosophies:

  1. Code Igniter 2.1.0

  2. Yii 1.1.8

  3. Rails 3.2.0

  4. Sinatra + DataMapper

  5. Django 1.3.1

  6. Rails + DataMapper

These 2 to 3 weeks saved me a lot in terms of time, effort, and money.

Most important of all, it cures me of my insecurities-driven hunger for aa2d tools.

I am insecure, well, at least, most of the times or some of the times. It's hard for me to ignore or accept risks.

A Past Example


XSLT, XPath, bah, blah ........ and I got scared.
SOAP, Web Servies, WS-* bah, blah ........ and I got scared.
At that time, I studied half a dozen of such books and decided that I had no choice but to accept this risk of staying ignorant of such technologies. None of them become decisive competitive advantages. The RISKs I sadly accepted turned out to be no risks at all. Paper tigers? Smoke screens?

A Future Saving


I wanted to do DSL(domain-specific languages) very much. I still want to.

It will take at least a few years to do a DSL for any domain, say, public transport, health care, trading, education. It will take a genius like me ;-) to take on such a challenge.

Certain languages are provably better than others for doing DSL, say, C++ vs Python. So, with my insecurities, my chain of thoughts will go like this: "I cannot allow my competitors using Python doing DSL while I stick with C++ or VB. I must also use Python etc."

Relax in Peace


Now these 2 or 3 weeks' tests rid me of many such insecurities. I don't need to deny access or area to anyone.

The universe is too abundant for our own good! There have been and there will ever be a lot of self-defeating technologies, and a lot of useless inventions!

Yes, it is also full of life-saving technologies, customer-smiles-winning inventions too. It's 100% up to us. I want to save lives, to make customers smile, to keep them smiling, to comfort them, to help them sleep better, to change lives for the better, to reduce poverty, to make life more meaningful ... then I will keep finding tools for those ends.

Those who want to lock in customers, ransom them, torture them, out-wit them, play fast and loose with them .. too will find all the tools they need in this abundant universe.

Choose wisely and live happily, with or without any insecurity!

HAPPY NEW YEAR!

Fu Mingtain: Expand Your Focus to Strengths

Everyone is talking about Fu Mingtain these days in Singapore. What can she teach your kids?


Here are a few good things various people have talked about her.

1. She's tough.
2. Never say die.
3. She's a fighter, warrior.
4.“She has excellent fighting spirit and mental strength. She really deserves the gold medal,” said Singapore’s chef-de-mission, Dr Tan Eng Liang.

So, you can ask your kid to be tough, to never say die, to keep fighting against heavy odds, to be strong etc.
If your kid agrees, then you can stop reading this post right now.
If, the other hand, your kid hesitates, then please read on.

I am writing in my own words what I've read in the Straits Times.
She noticed that the home crowd cheered the other player and booed her.
Instead of taking this as intimidation, she interpreted this as more pressure piling upon her opponent.

Reframing! A more helpful point of view! A better perspective! (CBT! REBT! NLP! Don't worry about this alphabetic soup: concepts matter, terms don't.)
And therefore, more optimism, more courage.

The footballers who choke, collapse under pressure/expectations ...
Kids who get stomach upsets, emotional upsets near critical exams ...

They may not be able to toughen up in days, but they may be able to conjure up a nicer point of view in hours and get more courage in time.

Even the famous general US ("unconditional surrender") Grant overcame his fear with a spin on his perspective. More about this later.

I can't turn a chicken kid into an eagle in months. But I can help a chicken kid fly above eagles in hours. It's easy, isn't it? If I let it fly in a plane. (How about Cao Cao, Song Jiang, Mao, any under dog in history?)

A perspective is worth 80 IQ points, right?

November 23, 2011

December 24, 2012

Data Prophet : Nate Silver


I'm summarizing an article Data Prophet in Wired October 2012. It's an interview with Nate Silver, a statistician, a data scientist.

He pointed out a number of problems with our typical predictive models.

Out of Sample Problems


Here we get no data for the phenomenon because we did not collect such data in the first place. e.g. If your model excludes real estate as an industry, whatever rise, fall, crisis happens in real estate, you will have no data for them. And your economic prediction will also miss problmes and effects arising from real estate

Over Fitting Problem


Here, you're mistaking mere coincidences or co-occurrences for patterns. e.g. You observed that whenever ice cream sales go up, murder cases go up too. Then, you assumed that there was a pattern.
 If you curb ice cream sales, will you prevent some murder cases then?

Nate advises that instead of looking for ideas, we should accept and see what is really there in the data.

Problem of Over-reacting to New Data


Maybe your model is too flexible or sensitive to new data or new types of data.

Here, I can give a personal experience. Recently I read in Newsweek about life-after-death experience of a neurosurgeon. He said that he got to a strange place and met strange beings, that there our senses were fused such that he could see a sound and hear a color at the same time etc. I believed every word of his. That is, a person like him who has lived like he has lived his life, can get to a place like that.

Nat Silver wisely warns that more is worse if we don't have a good framework, that we'd better stick to basic models if we are prone to over-reaction to new data. Wise poker players, stock investors, soldiers all now this.

I asked myself what if I got there myself. I would hear-see a sound-smell-sight. Then, I would see-hear it dissolve and another sense arise .... dissolve and arise .... dissolve and arise .... dissolve and arise ....I hope my basic, simplistic model will work there too.


The Need to Test in the Right Environment


An example of the problem situation may go like this: You created your model with data from New Mexico. You then tested the model in New Mexico again.

According  to Nate Silver, the right environment is" an environment where you don’t know what’s going to happen."

User Experience and Product Development : Dreamer, Wisher Method --- Part 1

In a previous post, I have demonstrated how I am good at dreaming and my Walter Mitty- Dijkstra hybrid mode.

I think I am alright dreaming how a user would go through an imaginary application.

A few weeks back, I asked an online Singaporean programmers group to implement some features for an e-learning app. They responded saying my  feature cannot be "new." Then, I showed how "new" they could be, by asking this:


"OK. Find me something that looks like this.
  1. It's free and online. 
  2. I type main question, then choices, including if necessary, images too. And the answer.
  3. I can add as many question I like. 
  4. I can print it out, and it comes out nicely. 
  5. I can let my students practice there. 
  6. There can be tip/hints for students. 
  7. Answers are graded. 
  8. I can edit them. 
  9. I can download my question sets. They work offline too! 
  10. I can go on, but this should be enough.
This is 1 of 1000 things we can do for education/training etc. So I have no need to protect this. ... Please don't mention SCORM, IMS, Moodle, Atutor, Coursera, hot potatoes, whatever. If a nice thing is there, why would I code or ask others to code."

Yes, I have dreamed up dozens of apps. Each app can be divided up into dozen smaller apps.

Therefore, there is no need for me to protect, hide, hoard each micro/nano app.



I am willing share these dreams to willing hands and kindred spirits.

December 23, 2012

PayPal IPN, Google App Engine, Python Integration, an Example

References


1. PayPal IPN Python Code from Django Aware blog.
2. A Google Group discussion

3. Pro PayPal E-Commerce. I recommend this book.
4. Professional Web APIs with PHP. This book is good for non-PayPal stuffs too. A good book.

My Tutorial


(1) Make a sandbox/testing account with PayPal.
(2) Log in to that account. Get to IPN Simulator at the bottom of the page.
(3) In the form that shows up, make sure
1. notify url = http://your_app.appspot.com/path-to-your_ipn_handler
2. "receiver_email" = "ACCOUNT_EMAIL" that you use in your IPN handler code.
3. You should vary "payment_status" from "Completed" to "Failed" to "Pending" etc.
Send the form a few times.
(4) Paypal says it can't send.
Change " notify url" to www.google.com etc. You get the same failure result.
It is as expected: you haven't written the code to handle this POST request.

The code you need to write is:


import os import sys import logging import wsgiref.handlers from google.appengine.ext import webapp from google.appengine.ext.webapp import template from util.sessions import Session from google.appengine.ext import db sys.path.append(os.path.join(os.pardir,os.getcwd())) from helper_rendering import doRender import urllib, urllib2 from google.appengine.api import mail from google.appengine.api import urlfetch from google.appengine.ext.webapp.util import run_wsgi_app PP_URL = "https://www.sandbox.paypal.com/cgi-bin/webscr" ACCOUNT_EMAIL= "my_email_for_sandbox@nice.com" #PP_URL = "https://www.paypal.com/cgi-bin/webscr" #ACCOUNT_EMAIL = "my_email_for_real-paypal_acct@good.com" class IPNHandler1(webapp.RequestHandler): def post(self): parameters = None # Check payment is completed, not Pending or Failed. if self.request.get('payment_status') == 'Completed': if self.request.POST: parameters = self.request.POST.copy() if self.request.GET: parameters = self.request.GET.copy() logging.debug('IPN 1, or your own message for yourself to read in log.') else: self.response.out.write('Error, sorry. The parameter payment_status was not Completed.') # Check the IPN POST request came from real PayPal, # not from a fraudster. if parameters: parameters['cmd']='_notify-validate' params = urllib.urlencode(parameters) status = urlfetch.fetch( url = PP_URL, method = urlfetch.POST, payload = params, ).content if not status == "VERIFIED": self.response.out.write('Error. The request could not be verified, check for fraud.') parameters['homemadeParameterValidity']=False # parameters = None # You may log this data in your database, # for later investigation. # Check the money is really to go to your account, # not to a fraudster's account. if parameters['receiver_email'] == ACCOUNT_EMAIL: transaction_id = parameters['txn_id'] # Check if this is a new, unique txn, # not a fraudster re-using an old, verified txn. invoice_id = parameters['invoice'] currency = parameters['mc_currency'] amount = parameters['mc_gross'] fee = parameters['mc_fee'] # Check if they are the right product/item, right price, # right currency, right amount, etc. email = parameters['payer_email'] identifier = parameters['payer_id'] # Email/notify/inform the user for whatever reason. parameters['your_parm']= "It is ok on 19 September, 2010." logging.debug('IPN 100. All OK.') logging.debug(parameters['txn_id']) logging.debug(parameters['invoice']) logging.debug(parameters['payer_email']) # With this IPN testing, you can't see results on the browser. # See results on the log file maintained by Google AppEngine. #template_values = { 'params': parameters, } #doRender(self,'ipn_ok.htm', template_values ) if __name__ == '__main__': print "IPNHandler1 is being run as main()."

(1) Now send the IPN Simulator form again as explained in the beginning of this post.
Now Paypal says it has sent it successfully.
(2) Log in to your Google AppEngine developer account.
Get to the log. Set logging level to "debug"
Check the log entries. you will see something like:


1. 09-29 01:54AM 28.745 /ipn_handle1 200 2141ms 408cpu_ms 4kb gzip(gfe) See details 216.113.191.33 - - [29/Sep/2010:01:54:30 -0700] "POST /ipn_handle1 HTTP/1.1" 200 4842 - "gzip(gfe)" "yourstruly.appspot.com" ms=1234 cpu_ms=123 api_cpu_ms=0 cpm_usd=0.123456 loading_request=1 2. D 09-29 01:54AM 29.395 IPN 1 3. D 09-29 01:54AM 30.682 IPN 100. All OK. 4. D 09-29 01:54AM 30.682 31929814 5. D 09-29 01:54AM 30.682 abc1234 6. D 09-29 01:54AM 30.682 buyer@alan.htet.com 7. I 09-29 01:54AM 30.705 Creating session session-575150356408086346 8. I 09-29 01:54AM 30.884 This request caused a new process to be started for your application, and thus caused your application code to be loaded for the first time. This request ...

If you have any question, just ask by way of commenting below.

December 22, 2012

Jobs in Software Startups

For the time being, what kinds of jobs are hot in Silicon Valley? I made a random check.

javaworld

Engineering and product development have the highest ratio of jobs to applicants, followed by IT (in general), quality assurance and testing, and sales. On the other side of the curve, administration, HR, manufacturing, and operations have the highest ratio of applicants to jobs.

businessinsider

Idea generation, shape features, repositioning, market fit, competitive landscape, research. dynamite Sales & Biz Dev

productmanagementtips
  1. What problem does it solve?
  2. How many customers have the said problem?
  3. Are the customers willing to pay to solve the problem?
  4. Who is going to buy the darn thing and will they pay enough for us to be profitable?
  5. Does this solve the problem the way the customers expect it to work or do they have to change their ways?
As a product manager, it is your role to think like a customer and then inform engineering what problems need to be solved and how. You can advise engineering in terms of customer expectations in terms of scalability and performance.

But it should be engineering’s sole responsibility to figure out how to architect/design the product to solve the problems a product manager has identified.



paraschopra

 ... in my opinion, following roles define an essential startup team: ◦Content expert ◦Analytics and marketing expert ◦Designer ◦Engineer

 Update/note/disclaimer: As pointed out in comments, at extremely early stages, product/market fit is what you should be aiming at and for that matter “product manager” (which is founder in most cases) is the person who will test and refine the startup until that fit is achieved. The team I describe is relevant once you know you have discovered the right market and have a pretty good sense of what product is going to look like.

blog.dweek.ly

Quora

SVPG Silicon Valley Product Group

Product Discovery / Pursuing Minimum Viable Product
Learns About Customer Behavior: With User Testing and A/B Testing
Communicates With Stakeholders: With Prototypes
Secret Weapon: User Experience
Strives To Create: Value (because it's the best path to sustained profits)

steveblank.

michaelochurch

Amusing.

Very amusing. Certain type of people should avoid all kinds of start-ups like a plague.

Toilet Training - Freudians and Buddha

on June 23, 2011

Toilet Learning is a very nice book. I'm sort of summarizing and paraphrasing the Chapter "The Freud Complex."

  1. Kids that Freud would describe as "anal erotics" are not holding back; they are just too young and not neurophysiologically ready to move their vowels at will.
  2. "It is not the anus ... -- it is the parent."(the author's words, not my paraphrase.)

Please forgive Freud and chuckle, the way we chuckle at Aristotle's claim that man has more teeth than woman.














A well-known author even opines that Aristotle must have never looked into his own wife's mouth. Please forgive the pioneers, and move on.

Jataka Stories


I am referring to the 6-volumeJataka Stories by E. B. Cowell. Buddha has told thousands of stories and even these volumes contain 547 stories.

And the story I select is not directly about toilet training. Maybe neurosis, nervousness, anti-social behavior, compulsive neatness, over-cleanliness, pleasure avoidance, self-punishing etc are too trivial for Buddha.

All I remember about that story right now is:

A king was looking out of his palace window into his court. A girl relieved herself in the crowded courtyard. The kind drew some conclusions and married her. His conclusions proved right because their son became a Universal King, who according to Buddhist beliefs, commanded the whole world.

I was shocked and amused at the same time to read Buddha mentioning such an act.

Read it and you will see.

Branding the Easy Way, the Lazy Way

The Usual Ways about Making Brands


Positioning?
Re-positioning?
USP (unique selling proposition)?
Competitive advantages?
Core competencies?

Simpler


Why would customers buy from me?

Even More Simpler


Joe Girard: Would I buy from me?
Guy Kawasaki: Develop for the customer of one, i.e. yourself.

Why Would I Buy from Me?


Not when I promote weakly.
You can read this guy like an open book. Weak promotion reveals as clearly as daylight that he doesn't see his own product as very useful or as a very good value.
Yes, when I promote persistently. My Reasons will be:
  1. He's lazy. His products will be very convenient for me.

  2. He's very kind. His kindness overcomes his laziness. Thus laziness results not in sloppy, shoddy, shady products but short, sweet, sharp products. In other words, maybe "half-products, but not half-assed products".(Echoing a director from Google as quoted in Business 2.0)

  3. He's very kind. His kindness overcomes his stinginess. He will give me more than I pay for.

  4. He's very kind. He already understands my needs very well or he will very quickly.

  5. He's very kind. He won't teach me a thing he himself doesn't know really well.

In conclusion: I will buy from me because my products will be
  1. reliable

  2. convenient in terms of price, use, place, brain-effort, stress, image etc.


Google Query Language, General Patton and an Apprentice

on August 21, 2010

Topics: Google Query Language, General Patton and an apprentice at our software startup.

Google as you know allows its employees to take 20% of their time to do their own pet projects: 80% for the company and 20% for their own.

Our company? Yes, our ratio is almost the reverse, especially for the interns and the apprentices. They take 80% of their time to do their own pet projects and their own learning: 20% for the company and 80% for their own. So, they put in about 2 hours per day, out of 10 hours working time (10 hours include 2 hour lunch time and other breaks!)

Even then, I wonder, "Is this apprentice wasting our time?"

And General Patton? The famous American WW II tank commander? What does he have to do with software?

The answer: a lot.

If impatient, just go leap to the conclusion.

Example 1


from google.appengine.ext import db
from models.tutor import Residence
import inspect

query = db.GqlQuery("SELECT * FROM Residence WHERE "
"dimensions IN :mydimensions "
"AND locations IN :mylocs "
"AND rent < :myrent "
"AND gender = :mygender"
,
mydimensions =["30x60", ],
mylocs = ['W', "W"],
myrent = 41,
mygender= "M"
)
print inspect.getmembers(query)

which gives the following result:

[('__class__', ),
('__delattr__', ),
('__dict__', {'_namespace': None, '_proto_query': , '_kwds': {'mylocs': ['W', 'W'], 'mydimensions': ['30x60'],
'myrent': 41, 'mygender': 'M'}, '_args': [], '_model_class': ,
'_keys_only': False, '_cursor': None, '_end_cursor': None, '_compile': True}),
('__doc__', 'A Query class that uses GQL query syntax instead of .filter() etc.'),
('__getattribute__', ),
('__getitem__', bound method GqlQuery.__getitem__ of >), ('__hash__', ),
('__init__', bound method GqlQuery.__init__ of ('__iter__', bound method GqlQuery.__iter__ of google.appengine.ext.db.GqlQuery object at 0xaa7dd6c>>), ('__module__', 'google.appengine.ext.db'),
('__new__', built-in method __new__ of type object at 0x8146a20),
('__reduce__', built-in method __reduce__ of GqlQuery object at 0xaa7dd6c),
('__reduce_ex__', built-in method __reduce_ex__ of GqlQuery object at 0xaa7dd6c),
('__repr__', method-wrapper '__repr__' of GqlQuery object at 0xaa7dd6c),
('__setattr__', method-wrapper '__setattr__' of GqlQuery object at 0xaa7dd6c),
('__str__', method-wrapper '__str__' of GqlQuery object at 0xaa7dd6c), ('__weakref__', None), ('_args', []), ('_compile', True), ('_cursor', None), ('_end_cursor', None),
('_get_query', bound method GqlQuery._get_query of google.appengine.ext.db.GqlQuery object at 0xaa7dd6c),
('_keys_only', False), ('_kwds', {'mylocs': ['W', 'W'],
'mydimensions': ['30x60'], 'myrent': 41, 'mygender': 'M'}), ('_model_class', class 'models.tutor.Residence'),
('_namespace', None),
('_proto_query', google.appengine.ext.gql.GQL object at 0xaa7d6ac),
('bind', bound method GqlQuery.bind of google.appengine.ext.db.GqlQuery object at 0xaa7dd6c),
('count', bound method GqlQuery.count of google.appengine.ext.db.GqlQuery object at 0xaa7dd6c),
('cursor', bound method GqlQuery.cursor of google.appengine.ext.db.GqlQuery object at 0xaa7dd6c),
('fetch', bound method GqlQuery.fetch of google.appengine.ext.db.GqlQuery object at 0xaa7dd6c),
('get', bound method GqlQuery.get of google.appengine.ext.db.GqlQuery object at 0xaa7dd6c),


('is_keys_only', bound method GqlQuery.is_keys_only of google.appengine.ext.db.GqlQuery object at 0xaa7dd6c), ('run', bound method GqlQuery.run of google.appengine.ext.db.GqlQuery object at 0xaa7dd6c), ('with_cursor', bound method GqlQuery.with_cursor of google.appengine.ext.db.GqlQuery object at 0xaa7dd6c)]

Example 2


from google.appengine.ext import db
from models.tutor import Residence
import inspect

query = db.GqlQuery("SELECT * FROM Residence WHERE "
"dimensions IN :mydimensions "
"AND locations IN :mylocs "
"AND rent < :myrent "
"AND gender = :mygender"
,
mydimensions =["30x60", ],
mylocs = ['W', "W"],
myrent = 41,
mygender= "M"
)

print query.__dict__


which gives the following result:

{'_namespace': None, '_proto_query': , '_kwds':
{'mylocs': ['W', 'W'], 'mydimensions': ['30x60'], 'myrent': 41, 'mygender': 'M'}, '_args': [],
'_model_class': class 'models.tutor.Residence', '_keys_only': False, '_cursor': None,
'_end_cursor': None, '_compile': True}

Example 3


from google.appengine.ext import db
from models.tutor import Residence
import inspect

query = db.GqlQuery("SELECT * FROM Residence WHERE "
"dimensions IN :mydimensions "
"AND locations IN :mylocs "
"AND rent < :myrent "
"AND gender = :mygender"
,
mydimensions =["30x60", ],
mylocs = ['W', "W"],
myrent = 41,
mygender= "M"
)

obj1= query.__dict__['_proto_query']
print obj1


which gives the following result:

google.appengine.ext.gql.GQL object at 0xaa7814c

Example 4


from google.appengine.ext import db
from models.tutor import Residence
import inspect


query = db.GqlQuery("SELECT * FROM Residence WHERE "
"dimensions IN :mydimensions "
"AND locations IN :mylocs "
"AND rent < :myrent "
"AND gender = :mygender"
,
mydimensions =["30x60", ],
mylocs = ['W', "W"],
myrent = 41,
mygender= "M"
)

obj1= query.__dict__['_proto_query']
print obj1.__dict__['_GQL__symbols']


which gives the following result:

['SELECT', '*', 'FROM', 'Residence',
'WHERE', 'dimensions', 'IN', ':mydimensions',
'AND', 'locations', 'IN', ':mylocs',
'AND', 'rent', '<', ':myrent',
'AND', 'gender', '=', ':mygender']


which gradually leads to

['SELECT', '*', 'FROM', 'Residence',
'WHERE', 'name', '=', ':myname',
'AND', 'email', '=', ':myemail',
'AND', 'phone', '=', ':myphone',
'AND', 'rent', '=', ':myrent',
'AND', 'neighborhood', '=', ':myneighborhood',
'AND', 'transportation', '=', ':mytransportation',
'AND', 'gender', '=', ':mygender',
'AND', 'race', '=', ':myrace',
'AND', 'dimensions', 'IN', ':mydimensions',
'AND', 'locations', 'IN', ':mylocations',
'ORDER', 'BY', 'email', 'DESC', ',', 'rent', 'ASC']

Conclusion


At one time in WW II, the rumors (which was actually true) went that the German tanks were far stronger than the American tanks. General Patton must have known this before anyone else.

Did he admit the truth? No.

Did he lie and refute the truth? No.

What did he say? He said in effect that he never intended to use his tanks that way. His tanks were to do something else, not ram/bump/jar into or out-punch/out-slug/out-shoot the opponent tanks. Read more about that here.

The younger software developer wants to look into the nuts and bolts of a tank (a deliberately mixed metaphor).
The older General just wants him to look into the logic of his query in pseudo-code or read the doc for GQL(mixed again).

Engineers and soldiers
programmers and suits
engineers and marketers

Anyway, we gave the apprentice a pat on the back. Whether he works his 2 hours as Engineer or Soldier, is fine with us.

December 21, 2012

Nothing Special, Therefore Be Very Kind

  1. Scoring in football ...
  2. Scoring in a maths olympiad ...
  3. Scoring in a violin contest ...
Nothing Special.

A few decades down the road, your kid, like James Watson and Kerry Mullis, will say, "Getting that prize in Oslo in December, is Nothing Special". When that really happens, good for you, good for us, and good for all mankind.

Proof with a Thought Experiment


Your child did something for the first time. She failed. And she stopped doing it again.

If you can rule out the following reasons :
  1. She's not interested in it anymore.
  2. She's distracted by other things that are more interesting to her.
  3. She was severely affected by the test physically. e.g. bodily pain
  4. She was severely affected in terms of physical resources. e.g. She now has fewer toys than minimum necessary.
  5. She was severely affected in terms of social resources. e.g. She now has fewer playmates than minimum necessary.
Then, we are left to assume that she may have suffered emotionally.

Then again, if you can rule out the following reasons :
  1. No one scold/discourage/shamed her.
  2. No one praise/encourage/recognized her.
What other reasons can you imagine?

Say, if other kids of similar strengths recovered sooner, we can only speculate that your child may have been hit with something harder/meaner/bigger, something special.

To you, the tasks are similar or even identical e.g. That Number 4 question on Page 123 of that Primary 6 Maths book, and in the same class, and on the same day.

To your child, the task is tougher on her than on other kids.

Who gives that task that extra strength against her?

A ball is a ball, a goal post is a goal post and yet England strikers find it hard to score esp. in important, international matches. Sports psychologists do help them, but not much.

Who makes that task special? Who adds that extra significance/strength to it? Make sure it is not you, either as a parent or a teacher.

If it's herself who generates stress and pressure, please gently show her that it is Nothing Special.

Let's not pass on our shame, insecurities, anxieties, sorrows to our kids, our students, and all the younger generation in general. This is the least we could do.

Having Fun

on May 11, 2012

E Myth Revisited is a very old and good book.

It opened many doors, many scenes, many panoramic views and vistas and many new worlds to me.

Just imagine how an entrepreneur sees
  1. the world as a treasure hunt.
  2. the customer as an opportunity
  3. the workers as a fleet of dragging feet.
  4. a business as a product, just one of many on a shelf.













Can't you also wonder like the entrepreneur in the book? : What that 'ideal' business would be for me?

Life can be exciting seen this way.

More to come.

Admiration : Instagram

Importance of Networking

“Who’s, like, the smartest person I know who I can call up?” Mr. Systrom remembered thinking. ...a former chief technology officer at Facebook ... Mr. D’Angelo became Instagram’s lifeline.       

Mr. D’Angelo, a 2006 graduate of the California Institute of Technology, helped him find engineers, set up databases and flesh out features.

...

Instagram took off like a rocket, in part because Mr. Systrom had whipped up demand. ... Mr. Systrom let some influential technology bloggers and contacts, like Mr. Dorsey of Twitter, try a test version of the app before its official release.

One Billion in Two Years

How Instagram founder Kevin Systrom became insta-rich

Insta-Techno Stack

  1. Keep it very simple
  2. Don’t re-invent the wheel
  3. Go with proven and solid technologies when you can

Choosing Technologies for Your Web Startup




All very cool readings.

Two Free Tuition Classes for Raffles Institution Students

Most of Raffles Institution Students cannot be cool. Goh Zuo Min said in Oct 23, 2012, today paper:


"Students usually keep their notes to themselves, and even tell schoolmates the wrong things to study..."


Thus, my Free tuition classes for all JC students:
  1. Kindness for Non_rivals
  2. Kindness for Rivals
The first class is easier and higher than the second. If you pass the first, the second is not necessary for you. (This course design betrays my 3000-plus years of age.)

Kindness for Non_rivals


We need to define rivals very specifically. That is, very narrowly. How narrow? How about Sein Baydar, a pre-war famous Myanmar musician?


"Today's Sein Baydar is competiting with yesterday's Sein Baydar..."


All 3000-plus-years old people know that Kaizen/continuous improvement was  not invented either in Myanmar or Japan.

So, who are your rivals, Raffles Institution Students?

Kindness for Rivals


If you still have rivals other than yourself, you need to take this second class. Here I teach self-cannibalization.Again, all 3000-plus-years old people know that it was not invented by Tom Peters, or any other American management gurus.

When I was in high school or Uni, I passed around notes to anyone interested. Those notes were my current best. But they were getting obsolete in a few days' time because I kept working on them.

Can't you let others score good marks while you can score excellent marks?

Even with the same notes, cannot you rely on your intuition, your native wit to give you brainwaves during the exam? When will you train your intuition if not when in schools?

Even with the same notes, cannot you rely on your luck?  All 3000-plus-years old people know that all good people are lucky.
Uncle is sad. Uncle can share a lot with you about good competition. Good luck!

Competitiveness | Jose Mourinho

The two teams involved were Barcelona and Inter Milan. But the coach of Inter Milan was so famous that he overshadowed all the players and even the teams themselves. Thus, many newspapers and online commentators described the match as "Jose Mourinho vs Barcelona."

It was a battle royale between a special manager and a special team and the special manager won out 3 to 1. My curiosity was piqued to see how an individual can have that much impact on so many players. This is my analysis of what exactly happened.

Mourinho understood football/soccer as a position-and-numbers game. Barcelona and other teams take it to be a possession game. Thus, they are playing different games in fact. Most other teams want to feel like over-capitalized startups: the more money, the better. The longer you keep the ball, the better. However, the truth is borrowing more than you need does never good, and similarly, just keeping the ball for the sake of keeping it does no good. Mourinho proudly said after the match: "We gave the ball away". His players let Barcelona keep the ball as much as they like.
Threats Neutralized
1. Barcelona is feared for its passing game
------ 1. Cut off their supply line to their front men.
------ 2. Stay in your positions. Let them play their passing game in harmless areas.
---------- Software designers/architects will be reminded by Barcelona of systems where objects call each other a lot but do noting else. e.g Ken Thomson in Coders at Work
---------- Business people will be reminded by Barcelona of paper-pushing company cultures.

2. Lionel Messi
------ 1. Just hold your ground. Avoid premature commitment and tackles. Let him make his moves first.
------ 2. Don't give him any chance for free kicks.
Your Own Attacks
1. Destroy their positions by pressing high. Win back the ball, the possession at the front with the intent to attack. Not merely for possession.
2. Exploit any positional mistakes.
------ 1. Barcelona's defensive weaknesses on the flanks.
------ 2. Direct balls over Barcelona's high defensive lines, to your own fast strikers.
3. Creating numerical supremacy during your own attacks.

I do recommend All The Way Jose for a nice read. You will be inspired to see how a mere translator for coaches transformed himself into an assistant coach and eventually into a world-famous manager of the world-famous football clubs.

on May 5, 2010

Meta-programming in Ruby : Part 16 : instance_eval

There are altogether 16 posts on this topic of meta-programming in Ruby language. Our approach encourages hands-on experimentation. The exercises here are specially designed to facilitate self-study and other independent modes of learning.

Provided we can find time amidst our busy schedule(well, who is not busy these days?), we will also discuss meta-programming in other languages such as Lisp and python.

Code 1

instance_eval and self.


# instance_eval evaluates a block of code
# with self set to the object that's receiving the instance_eval call.

add_two = Proc.new { self + 2 }

puts 1.instance_eval(&add_two) #=> 3
puts 2.instance_eval(&add_two) #=> 4

"stellar coding staff".instance_eval{p self}
[1970, 1980, 1990, 2000].instance_eval{p self}
{'a'=> 1970, 'water'=> 1990, 'gold'=>2010}.instance_eval{p self}
puts "\n\n"


# Here's a second example using an implicit method receiver.
call_reverse = Proc.new { self.reverse }

p "alan akhoe kid".instance_eval(&call_reverse)
p ["x", "y", "z"].instance_eval(&call_reverse) #=> ["z", "y", "x"]
p [1, 34, 117, 997].instance_eval(&call_reverse)
# OK BAD # p 12121.instance_eval(&call_reverse)


Result 1



[root@localhost ruby_tutor]# ruby ie_self.rb
3
4
"stellar coding staff"
[1970, 1980, 1990, 2000]
{"a"=>1970, "water"=>1990, "gold"=>2010}


"dik eohka nala"
["z", "y", "x"]
[997, 117, 34, 1]


Code 2

We can display private attributes using instance_eval.


class C
def initialize
@a = 0
end
def next
@a += 1
end
end
w = C.new
p w.next
p w.next; puts;puts

p w.instance_eval "@a" #=> 2
p w.instance_eval { @a } #=> 2
p C.new.instance_eval { @a } #=> 0


Result 2



[root@localhost ruby_tutor]# ruby ie_and_private_vars.rb
1
2


2
2
0


December 20, 2012

Settling Old Scores for New Years, for New Lives

I have settled all these scores unconsciously many decades back.

If I Had Done Well in Medical College


Then I became a doctor. Then, I would gradually admire those who sell blood-purification herbal powders, balms, cough syrups, itching powders etc -- yes, there are solid reasons for this admiration -- and become a sort of chemist. Given our backwardness and isolation in my days, I may work like Ms Tu Youyou and unearth some "Emergency Prescriptions Kept Up One's Sleeves."

Cracking medical recipes, understanding chemical compounds, testing ... THAT IS ALMOST IDENTICAL to what's I'm doing right now. Irony!

If I Had Taken Maths in the Regional College


Then I became an RIT engineer. That route would lead to my current destination even faster than the medical route.

If I Had Been Allowed to Study Chemistry in the Second Year


Then I became an IC(Industrial Chemistry) grad and then an RIT engineer. The same effect as Route 2.

If I Had Been Awarded Scholarship to Do a PhD in Theoretical Linguistics


Gazder? Terry Winograd?Fodor? The same effect as Route 2.

Delightful Irony


Medical Route. Maths Route.
Industrial Chemistry Route. Theoretical Linguistics Route
And the actually-happened Route.

They, like all roads, have actually led to Rome. Irony, but delightful irony,

Like Wreck and Jerry Yang's character in Hot Shot TV series.


All has been settled.

Good Luck to you all, and

HAPPY NEW YEAR!

User Experience: How to Improve Singapore Press Holdings's Advertising Calculator

We're solving that problem today from the viewpoint of user experience. Since this is a tatical detail, we won't discuss product strategy at all in this post.

Task 1 : I want to calculate the cost of this ad in text-only format.















Task 2 : I want to calculate the cost of this ad in "customized text plus some pictures" format. It means that I 'll use some different fonts and typographical variations and that I'll add some images somewhere inside.















How The Calculator Works Now


Step 1 : Select the Advertisement Category

  








Step 2 : Select the Publication










Step 3 : Click on Calendar to select Publication Date(s)











Step 4 :Select the Advertisement Type







Step 5 : Select the Advertisement Size

 










Step 6 : See Results















Solution for Task 1


Here we should use a text box. User copies and pastes her text/copy into the box, and our software counts characters, words, lines, width and height of the whole text/paragraph. Then, we gives estimate costs to user.

Solution for Task 2


Here, we should allow user to upload her ad copy as an image as in Facebook, Flickr etc. Then, our software will calculate its width, height and the estimate costs.

Basic image sizing, re-sizing are familiar to most programmers --- Imagick, Rmagick, PIL(Python Image Library), many PHP libraries and frameworks.

Humility


We know it takes many persons to change a light bulb at a company at Microsoft's level. You have many users so you must take extra special care not to break anything by your fix/enhancement.

I point this out just as an exercise and a reminder for future developments.

And I do notice that SPH has many other mechanisms and procedures to handle these problems very satisfactorily e.g. staffs at ads section can do this calculation for you. Maybe more cool alternatives that I may still be unaware of.

Product Development Exercise: Singapore Press Holdings Ad-cost Calculator

Underlying Principle


Tom Peters has suggested that we hone our design skills and design sensibilities by going shopping for under $10 and by learning do's and dont's from the things we've bought. Later, we'll refer to this as $10-design-learning activity.

Today Lesson


Today, we are going to learn from Singapore Press Holdings Ad-cost Calculator. Your task is to calculate cost for the following ad:

                          World Class

 As a software company,
    Do you want
    --- new product ideas?
    --- delightful user experience?
    --- outside developers grateful for your platform/APIs well-designed?
    --- a new leash of life for your current products?

                   More details at EthicMinds blog.

 Kyaw Kyaw Naing/ George
 B.A.(Hons, First Class), M.A., M.Comp.(Computing)
 time.proven.works@gmail.com


 

Tasks Hidden in Sub-Layers


I repeat: "Your task is to calculate cost for the following ad." This is not a straightforward task; nothing seldom is in web apps world.

To calculate the cost, you need to be clear about

  1.   What category of ad you are placing (Well done, the site handles this excellently.)
  2. In which paper (Well done, the site handles this excellently.)
  3. What Publication Date(s) (Well done, the site handles this excellently.)
  4. What Advertisement Type (Well done, the site handles this excellently.) That is, Run-On, Semi-Display, or Display.
  5. What size you want (Well, is this done?)

Solutions from My Weaknesses


Once a friend asked me in the 80s: "Do you know some martial arts?"
Me: "I 've studied 7 martial arts in 7 days each."
My friend, being a very smart person, stopped asking about martial arts.

Now, I know programming the way I know Wing Chun, Brazilian Jujitsu, Krav Marga, Kung Fu, Karate, Judo, Muay Thai, Bando, Kendo, Kempo, Cilat, Akido etc.

This calls for a WYSIWYG/visual editor,such as CKEDIT/TinyMce, or some other in-house versions, like the ones Facebook and Google are using.

Personally, I've seen it implemented in a Javascript book I read in Jurong East library, a red cover, published 3 or 4 years ago.

Personally, I've tested TinyMce with Ruby on Rails, PHP(codeIgniter) and Python(Django). I believe it will be fine with Perl, ASP.NET or Strut/Spring/plain JSP too.

Solutions from My Non-Weaknesses


I'm closing my eyes to see and inducing myself into what I call Walter Mitty- Dijkstra hybrid mode.

Dreaming wildly but not so in the clouds as an astronaut architect. ("The hallmark of an architecture astronaut is that they don't solve an actual problem... they solve something that appears to be the template of a lot of problems. Or at least, they try.") Dijkstra, on the other hand, always remembers that humans(he included) have small heads.

What do I see in my dream?

What do you see in your dream? What use cases, what user stories, what scenarios, what happy paths, what unhappy paths, what fault trees ?

What do I see in my dream? 
(Note: The following is written in dream-speak.)


There is a box where I can type in, what they call "text editor" in HTML.

There, I copy my ad's copy and paste it there. I can place a few images among the text as well. It can be drag and drop. Or I upload some images. Or I can choose images from a given list somewhere alongside the box. ....

When I finish arrangement, I click a button named something like "Preview." And I see my ad amongst some other typical-looking ads.

There I see how my ad will look like: Is it noticeable? Does it look cluttered? Too small? Too narrow or broad? Or is it too expensive? I close the Preview page and change my ad again: more words or fewer words, more pictures or fewer. bigger fonts or smaller.

  Do I need a border, a thick one or thin, a plain one or colored?2x3cm pic or 3x2 cm?

Edit -> Preview-> Re-edit ... till Save cycle goes on



After a few minutes, anyone can formalize this dream into a spec. (If you still need more help, email me for FREE help.)


Added : We solved this UX problem in a later post.

Product Strategy and UX: Admiration: the Bump iPhone App

In a recent FastCompany's Article, we read this:


Consider Bump, an app that lets users swap data between phones simply by bumping them together. Its cofounder, Dave Lieb, notes that in the first dotcom rush, online enterprises had to build their infrastructures from scratch, so engineers were paramount. In our app economy, everything has changed. Bump had 1 million users before it spent $1,000. It didn’t need infrastructure, thanks to Amazon’s server-hosting service; it didn’t need advertising because of social media; and the App Store solved any distribution problem. Development was a breeze, too, because of Apple’s software developer kit. "These are all things that used to cost millions," Lieb says.


That is profound. It should open our eyes as well as our minds.

Yes, there are caveats:
  1. We are not headquartered in America.
  2. We have missed that wave.
Then, there are counter arguments:
  1. There are customers outside America, too.
  2. Missing one wave is no big deal. There are new waves almost every month or year.



Can we build an app like that outside America too? In places near where I'm living?
And I also read that mix/matching API's can be easy too:


For our geo-search API, we used PostgreSQL for many months, but once our Media entries were sharded, moved over to using Apache Solr. It has a simple JSON interface, so as far as our application is concerned, it’s just another API to consume.




HopeHero's Offer


If you want some "bump ideas", we can help.
If you have ideas already, but you want help with UX/UI/content/copy writing,  then we can help too.

Whatever role, level, pecking order --- we are willing to play, to help.

All we ask is: don't pay us in cash or salary.

Am I asking too much?

Calculus Advantage

Even if you got 100% for Maths in the nation-wide high-school-leaving examination, you may not be allowed to study any Maths at the Burmese universities in my days. Strange, awkward, but true and sad.

So when I read in Singapore in the early 2000's that if you knew Calculus

  1. You can calculate how much paint you would need to paint an awkwardly-shaped floor.
  2. You can calculate how far you can raise your price until some customers start leaving.
  3. You can calculate many other real-life meaningful stuffs.
  4. etc, etc,
I became excited.

So I started asking around among my colleagues: "Hey, are you okay with Calculus?"

Everyone answered "Yes, we are fine with Calculus," as I expected since I knew all of them are Engineering or Computer Science grads.

As I half-expected, none of them was using Calculus in their daily lives.

I also started asking young kids when I visited my Myanmar friends' families living in Singapore.  They also told me, "Uncle, Calculus is very easy. We never have any problem with that."

As I half-expected, none of them was using Calculus in their daily lives.

I studied Shakespeare, anthropology and many other such weird stuffs. I admit those stuffs are weird. I don't think anyone can sincerely say that Calculus is weird.

Why did ONLY Steve Jobs use Shakespearean scholars in designing Apple products?

Why did ONLY Xerox, IDEO etc use anthropologists in designing and trouble-shooting their products?

Why did Sprint's CEO say that Softbank brings to them expertise in "how to utilize (some) technologies"?












I cannot teach Calculus. But I know how to use it in certain places. I can teach Shakespeare and I do know how to use it in certain places. I can teach Poetry and I do know how to use it in certain places.

Why not teach that to your kids?

Oh, by the way, I can teach them excitement, too!