Monday, April 27, 2015

AAPL earnings call Apr 27 2015

Nice growth again! Steam was not lost with the holiday quarter. No Watch numbers in this, hopefully some light on it in the call.

Summary:
58B revenue
13.6B profit

27% growth in revenue
40% growth in EPS (not profit)

Watch margins will be lower than other products. There is indication of lower volumes. Meet demand by July.

Unrelated to earning call, I have the watch (basic sport version). It is good in many ways. Except battery life is one day (16hrs with demos to 12% charge) - charge over night or 2 hours.
It has bugs.
Some nice apps.
Can't use it for more than a few seconds but less anxiety of leaving phone at the desk.
Shows time only to the wearer.
Apple Pay worked great!
Taking calls works great in car if you don't have bluetooth, since the hand is resting on the wheel.
Overall some good use cases some bugs. Should be as good as iPad in terms of sales.

From the earnings call the size of the Watch market seems to be about the size of the iPad. 5-10% bonus on the valuation. Will add 5% to my DCF model. I have updated the DCF sheet from last post. Main update was to change the 15% decline in 2016 to 10% decline in profit. Added 5% for the watch.

The Call:

Tim:
Strongest march quarter. Fantastic iPhone, higher rate of switcher. Emerging markets up 63%. App store 29% YOY. Mac business strong eating PC.

Strategic investments, 27 acquisitions in 6 quarters.

Capital return 200B through March 2017!

Momentum in Apple Pay. Discover from fall. Best Buy will take Apple Pay by end of year. Health care payment network (including Stanford).

Momentum in health solutions. 1000 apps.

Health hit integration MyCS app.

Research Kit (same as key note). Exceeding expectations. 1000 researchers interested.

Europe: $2B data centers in Ireland and Denmark. Developers in Europe.

Pro Environment - check website. 100% renewable in US, 87% in supply chain. Protect forest in NC, USA.

June quarter started well. (Watch)
MacBook (recall key note) - good response.
HBO (recall key note) - no cable! top downloads
Apple Watch - Great reaction and excitement on social network. Lots of interest from developers.

Thanks to Developers and Employees! (nice touch)

Luca:
growth due to iPhone, App store, Mac. despite forex. 71% growth in China. 19.4B cash flow - March record.
80% or more growth in iPhone in many markets.
ASP of $624
1M inventory 5-7 weeks.
Macbook. 4-5 week inventory.
iPad sell through 13.7M 5-7 week target inventory. Japan,China did well others did not.
iPad doing better than other tablets.
doing well on enterprise. focus on work.
IBM, 24+ others. DocuSign,MicroStrategy..
App Store 71% more money than Google Pay.
23% growth in online store visits.
21 stores in 11 cities of China.
193.5B in cash balance.
40B term debt.
Solicit input from shareholders.
By Mar 2017 expanded to 197B
52cents/share of dividend 11% increase. Continue to increase yearly.

Outlook:
46-48B (compare 37B)
..

Questions:
Bill:
Gross margins surprise, how?
FX -ve impact was expected and it happened. It will continue. 40 basis points next quarter.
Looking to increase prices in some markets. We feel good about where we are.
Color on dynamics of customer mix?
Higher rate of switchers.
reasonable percentage of first time buyers.

Katie:
Watch may take longer to ramp (supply). Is is happening.
Compare to iPad.
Supply, Demand
Demand > Supply.
We made progress. Delivered more this weekend than anticipated.
New product for us, so it will take time to ramp. Good position by late June.
New countries by late June.
Overwhelmingly positive response.
Ahead on apps ecosystem. Internal goal was 1000 apps but we are at 3500 apps.
Learning about customer preferences. many configurations. matching production to demand.
R&D growth? broader set of projects?
Our current product is already diverse. We are developing core technologies in house. Spending ahead of products, which is why you seed the R&D spend. 8.2% expense to revenue.

Jeane:
Congratulations! What does switchers mean? more market share?
Luca any margin impact from watch?
iPhone 40% growth. 16% market growth (IDC). we did well.
Bullish on current qtr as well.
switchers + first time buyers.
it is tough to find something in the numbers not to like.
Luca: loss of leverage, FX 40 bpts. Apple watch margins will be lower than average.
20% upgraded to 6/6+

Tony:
Revisit the watch. Relative to other products, (superlatives..) consensus expecting more than iPad sales, can you give some hints?
How do we model? compared to iPad..
Tim: I am thrilled with it. Don't read anything else. When demand >> supply difficult to gauge. Can't forecast more than the quarter. We have enough to think about here. 100% positive response from customers.
Q. Margins are lower? surprising, despite the higher price points.. Is it lower volumes?
Tim: We are not going to guide to gross margin on the product. Our quarter guidance.
first quarter will always have learning.
The cost breakdowns you see are not accurate (ever) dig on the data.

Q:
iPhone, what are people saying?
Record in China. Chinese new year. Mac also did well in China 31% (IDC down 7% market). Everything including iPad was good in China. We added Union Pay as a payment options. We are on many cities. Online store revenue 3x increase. 40 stores by middle of next year. 15 new cities.

call got cut. back to work.

Tuesday, March 10, 2015

Apple Inc Discounted Cash Flow valuation and notes for Mar 10 2015

So far I have been sending this by email to friends but there were more requests for the emails and so I am doing it on a blog this time. However the spirit is still same, it is intended for people I know who have invested in AAPL and are interested in shareholder view points.

If I make predictions or voice opinions they are primarily meant for placing a dollar value on AAPL.

We had two events yesterday and today.
1. Apple Watch/MacBook event.
2. Shareholders annual meeting.

Couple of dates:
Apr 10 - pre orders begin for the Watch. New Macbook available.
Apr 24 - Watch arrives.
We should see some price swings around these days when market sees confirmation.

Before I jump in with the details of the events, here is a DCF calculation I did.

https://www.icloud.com/numbers/AwBWCAESEEmkJadEVFWsA-Aqh7JEhr4aKpyCE399D_DbWtWTkmaTfqK_CKgrHNI20HduO3acWyoxQQ8q6-nZAVNubgMCUCAQEEIGn0zRvTQITggkDYuc3YhiwffRpqXhYyvOPFJ3lv84Ak#Apple_DCF_valuation

First I did a DCF with simple assumptions such as 10% growth this year followed by a lull and then 3% every year after five years and used a discount rate (think of it as bank interest rate) of 5%. I was surprised to see price of $200. That is quite close to the $216 Carl Ichan came out with. Well the market is not stupid so I tried to find out what the market thinks prospects of AAPL are and tweaked untill I got close to the current value. I increased the discount rate to 8% - I will be really happy if I can hit this rate without risk - to get to $120. So even with a pessimistic outlook AAPL is a reasonable stock to hold.

I am going to cash out 25% for immediate needs but I intend to hold unless we find a different stock with better numbers and upside.

To the Events, easy one first:
1. Shareholders meeting.

This time it started at 9:00 and went on till 10:15, so I had time to make it back to 10:30 scrum!

Mr. Cook sounded like he is in control of things. First we voted, there was a group who claimed Apple was reckless in building Solr power stations. 98% voted against it and there were laughs. It shows how much support Apple board and Executives enjoy from shareholders. There was one group who wanted changes to how proposals are introduced - basically small fish like can introduce proposals. CALPERS group said it is moot and it lost with 60% vote against it. Rest all were passed with high majority.

Then Mr. Cook spoke about how Apple is not all about ROI but also about leaving world better than it found. It kind of rattled some people because we are in it for the ROI. But nothing to alarm, They are not throwing cash away. One example is Research Kit (for health research), Apple makes no money on it, and it is open sourced. I do think it does bring some money to Apple but it is easy to believe he means to be genuine. He spoke about products introduced since last meeting and they seemed like old news.

In the QA, there were two interesting topics. Two shareholders asked about buying Tesla. But he gave non-answers and admitted that he is skirting the question and kept repeating Tesla should adopt CarPlay! It was a bit funny. There was lot of talk about diversity.

On to the next event..

2. Apple Watch - Spring forward.

Ncie name and timing.

I have one disappointment - battery life is only 18 hours, I was hoping for a week, can't expect miracles, they are only human and limited by same laws of physics.

One nice thing I found was that using Apple Pay is not so clumsy as I thought on the watch. You double click the small button and then raise just one hand, no awkward movements. Still there are so many questions around the product. I may have to get one of them to really understand it.

The reviews say it does not have a killer feature and it is confusing to use, I can't side with those reviews though. I do think notifications and the freedom to leave the phone where it is, is something we have all been wanting to do - we were tired of it for some time. Will we put up with daily charging (and some money out of bank) for this convenience? We will know in a few quarters.

Watch has potential for many upgrade cycles.

The pricing looks right. 10k price looks steep but as a PC mag article points out some people spend this kind of money on first class flights. For that market it is just one more flight cost. I am subsidizing their iPhone iteration cost, I would like them to pay for the iterations of the watch - as a fellow consumer.

Presentation was better than last time. I liked the model from 'Every mother counts'  very clever marketing. It would be even better marketing if Mr. Cook ran a marathon and gave some of the credit to the watch - likely in my view. Even better if presenters get in shape for next event and give the credit to the watch - long shot.

MacBook was a pleasant surprise. The force touch plus taptic engine under the trackpad can open many possibilities for gaming applications. The Air was a great success and this new product is taking it one notch up. Many questions about why they left the rest of the line as it is. Will take some time to understand their strategy. If I am in the market for a notebook now, I would buy it.

HBO Now, and drop in Apple TV price are good moves.

3. Other notes and thoughts since my previous emails.

Inflation: We have not talked about it before. It has been 8 years since the first iPhone. The value of $650 then is more than $650 now, at 4% inflation it would be $889. Well iPhone is not so novel anymore, a bit commoditized by competition, not fully though - think touchID, better privacy. So the price should be in between. Apple demonstrated it very clearly by increasing the average selling price of the iPhone 6/6 plus by using higher memory gap and larger phone option. For some Apple consumers money is easy to come but not all consumers are like that and have tight budgets. So the inflation angle is important.

International cash: Apple did a good job hedging currency. Microsoft lost revenues but Apple came out unscathed! Mr. Masteri has done a great job. It looks like we are going to get the money home with a simple tax.

Momentum: Money managers are always under pressure to beat the index and AAPL is the winning stock on the index so they need to cover their contrived short positions like Ichan said. Recent movement could be due to this.

India: In previous earnings call Mr. Cook said India is a tough nut to crack saying it has many 'layers'. In the last ER call he said it is possible a China like scenario can playout in India! Looks like he is seeing a path to success there. (I have not added this in my DCF calculations though - very conservative - another upside poetential).

Camera patents: I came across a nice Apple patent, a periscope camera. This allows them to put a much better camera in a small form factor. Lots of scope to improve the camera and bring in some SLR like zoom features.

Apple Car: Poaching of employees from Tesla and A123 and the way Mr. Cook avoided the questions today indicates they are doing something in the space. However I would think it will too lame if they tried to do the same thing Tesla is doing today. They better do the self driving car or find a nice trade off product that can meet it half way paving the way to a mature product in a few cycles.

Health market: I am still hopeful they will add some value in this 3 trillion industry and take a cut in it. I am glad they are not doing Google style data collection.

Saturday, July 26, 2014

Maven dependency for Stanford NLP source - StanfordCoreNLP

To get the sources as well include another dependency with sources in addition to the first two given in Stanford page. As of Jul 26 2014.
<dependencies>
<dependency>
    <groupid>edu.stanford.nlp</groupid>
    <artifactid>stanford-corenlp</artifactid>
    <version>3.4</version>
</dependency>
<dependency>
    <groupid>edu.stanford.nlp</groupid>
    <artifactid>stanford-corenlp</artifactid>
    <version>3.4</version>
    <classifier>models</classifier>
</dependency>
<dependency>
    <groupid>edu.stanford.nlp</groupid>
    <artifactid>stanford-corenlp</artifactid>
    <version>3.4</version>
    <classifier>sources</classifier>
</dependency>
</dependencies>

Wednesday, April 24, 2013

ThreadLocal

ThreadLocal example on Oracle documentation does not work, I tried to report it but the steps involved are so cumbersome, I have chosen to post the solution here.

Here is the code that works as intended (ignore the wrong indentation).


import java.util.concurrent.atomic.AtomicInteger;


public class Threads implements Runnable {
    private static final AtomicInteger numThreads = new AtomicInteger(0);

    private static final ThreadLocal < Integer > threadIdHolder
        new ThreadLocal < Integer > ();

    public int getCurrentThreadId() {
        return threadIdHolder.get();
    }

    public Threads() {
    threadIdHolder.set(numThreads.getAndIncrement());
    }
@Override
public void run() {
System.out.println(getCurrentThreadId());
}

private static Integer getNumberOfThreads() {
return numThreads.get();
}

public static void main(String[] args) {
for (int i=0; i<4 i="" p="">
(new Thread(new Threads())).run();
}
System.out.println("Number of threads is: "+getNumberOfThreads());
}
}

The trouble with the code posted in Oracle documentation (http://docs.oracle.com/javase/6/docs/api/java/lang/ThreadLocal.html) is that it tries to use the initialValue() method to increment the numThreads variable. However it is called only once because it is static. It can be fixed by making it non static. Alternately keep it static and assign the value to threadIdHolder in the constructor like in this code.

Here is the output:
0
1
2
3
Number of threads is: 4

Friday, January 18, 2013

No job jar file set. User classes may not be found. See JobConf(Class) or JobConf#setJar(String)

 No job jar file set.  User classes may not be found. See JobConf(Class) or JobConf#setJar(String)

This happened when the class was set (which was the popular fix suggested).

In my case extracting the external jars into the jar when exporting the jar helped.

Wednesday, September 26, 2012

Data not activated on new iPhone 5

I had to turn off the phone for a minute and bring it back up for AT&T to recognize the phone after going through the on phone setup.

Tuesday, August 14, 2012

iSuit

Apple Vs. Samsung law suit

Live notes from San Jose courtroom by Forbes:

The beginning (not really, there was a pre-trial)
Jul 31 2012 

Who says the trial has to be inside the court only... This one is out of court law

Aug 03 2012 

Aug 06 2012

Aug 07 2012 

Aug 10 2012 

Aug 13 2012  Apple is done with its presentation, Samsung to follow with it's witnesses.

Aug 14 2012

Aug 16 2012

Aug 17 2012

Aug 21 2012 Closing arguments

Aug 24 2012 Verdict

One upped by Forbes :)

Tuesday, April 3, 2012

Read URL into a string in scala

def read(url:String):String = io.Source.fromURL(url).mkString

var response = read("http://search.twitter.com/search.json?q=never%20buy&rpp=5&include_entities=true&result_type=mixed")

Monday, January 30, 2012

httpservlet cannot be resolved to a type

include servlet-api.jar from the tomcat lib directory.

Thursday, October 13, 2011

Is Google blocking the verification email sent by Apple's iCloud system?

I have tried resending the verification email 6 times with clean up of spam mail and then going through the spam to see if the mail went to spam. I found the iCloud terms and conditions mail in the spam!

Is the verification mail being blocked at mail servers?

Anyone else with same experience?

It looks like the problem is on Apple's end.

From this link on apple support: http://support.apple.com/kb/HE40 I clicked on Manage my ID and logged in with my apple id. It showed a link to verify. The link did not work from both IE and Chrome.

Looks like a problem on their end.

Finally solved it. I had two accounts at apple one with my email adders and another with a simple string. They both had the same email address registered. Apple was not sending verification email until I changed the simple string one to use a different email address.

Symptom of the problem: iCloud verification email did not arrive in my inbox.

Monday, September 5, 2011

Zynga model for democracy!

Zynga analyses their games on a daily or intra day basis and makes changes to keep users happy. What if we model a democracy with such analytics where it is applicable. Zynga itself says analytics are not applicable in all scenarios but where they are applicable they work well.

If we could implement an analytics based wing of a democracy, we don't have to vote once in 5 years but our behavior feeds into the government and changes the society we live in.

The Anna Hazzare work in India is analytics feedback to government by show of numbers on the street. Sort of like analytics by passing 5year cycles!

Taxes could be dynamic. Fed rates could be changed on a daily basis. What if ...

For my non-bay-area friends the Zynga model is ..

Zynga is an online social (read Facebook based) game company. Farmville is from Zynga. They make many games very quickly and see what clicks. They monitor the games very closely on a daily or sometimes multiple times a day for user activity. If players are leaving or not paying enough for the game, they make adjustments. This level of monitoring needs extensive data processing for which considerable investment and skill is required. This field is the analytics I was referring to. Analytics is being used increasingly by companies, soon it will be commonly available, just like governments now have websites.

Saturday, August 20, 2011

Software Development Environment on Linux

For beginners..

You need a shell to try these commands as you read. You may need help with this step.

Linux has been traditionally command line oriented. You type commands and then hit enter and something happens.

The program that listens to your commands is called the shell. There are different types of shells a common one is bash.

You should know the following commands to be functional:
man

pwd
ls
more
less
cat
cd
cp
mv
rm
mkdir
env
echo
tar
gunzip
hostname
vi

These commands will take you an hour to learn. Most valuable is the man command that shows you the manual for other commands. Try the command 'man pwd' to check it out. To exit from a manual page hit the letter 'q'

You enter the commands at the command prompt of the shell. Some commands are interactive and you need to end the interactive session by some form of quitting, to be able to enter further commands. vi is the most disconcerting of all the commands because it is not trivial to get out of it (vi is the standard editor for Unix environments). If you are inside a vi session and need to get out use <Esc> key followed by :q! sequence of keys (remember you need to hold the shift to use ':' and '!'. To exit a 'more' or 'less' session just hit 'q', yes the same one you used to exit the man page. man actually uses the less command to show the pages.

Learning these commands without context is boring and without benefit. Some of them have so many options or flags that it is impossible to learn them all. Here are some use cases to put context around these commands.

Know where you are in the file system. pwd - present working directory shows you where you are and ls lists the files and directories at the specified path or current directory if a path is not specified. Try these commands as you read.
[cox@ip-10-160-178-130 ~]$ pwd

/home/cox
[cox@ip-10-160-178-130 ~]$
create your directory and some files.
[cox@ip-10-160-178-130 ~]$ mkdir test

[cox@ip-10-160-178-130 ~]$ cd test
[cox@ip-10-160-178-130 test]$ echo "Simple text" > test_file.txt
echo prints the given text to screen and the '>' redirects the output to a file (test_file.txt). The following cat command prints the contents of our new file.

[cox@ip-10-160-178-130 test]$ cat test_file.txt

Simple text
[cox@ip-10-160-178-130 test]$ cp test_file.txt copy.txt
[cox@ip-10-160-178-130 test]$ cat copy.txt
Simple text
[cox@ip-10-160-178-130 test]$ ls
copy.txt test_file.txt
[cox@ip-10-160-178-130 test]$ mv copy.txt renamed_copy.txt
[cox@ip-10-160-178-130 test]$ ls
renamed_copy.txt test_file.txt
[cox@ip-10-160-178-130 test]$ cat renamed_copy.txt
Simple text
[cox@ip-10-160-178-130 test]$ rm renamed_copy.txt
[cox@ip-10-160-178-130 test]$ ls
test_file.txt
[cox@ip-10-160-178-130 test]$
cat, more, less help you see the contents of a file in different ways.

tar (tape archive) is useful for extracting files sent to you by others. These files typically have .tgz extension. Here we will create an archive and extract it.
[cox@ip-10-160-178-130 test]$ tar -cvzf archive.tgz test_file.txt

test_file.txt
[cox@ip-10-160-178-130 test]$ ls
archive.tgz test_file.txt
[cox@ip-10-160-178-130 test]$ rm test_file.txt
[cox@ip-10-160-178-130 test]$ ls
archive.tgz
[cox@ip-10-160-178-130 test]$ tar -xvzf archive.tgz
test_file.txt
[cox@ip-10-160-178-130 test]$ ls
archive.tgz test_file.txt
[cox@ip-10-160-178-130 test]$
Then let us remove what we just created. Before that in Unix '.' means current directory and '..' means parent directory. To switch to parent directory we use cd .. quite often.
[cox@ip-10-160-178-130 test]$ cd ..

[cox@ip-10-160-178-130 ~]$ pwd
/home/cox
[cox@ip-10-160-178-130 ~]$ ls
test
[cox@ip-10-160-178-130 ~]$ rm -rf test/
[cox@ip-10-160-178-130 ~]$ ls
[cox@ip-10-160-178-130 ~]$
notice the -rf flags to the rm command here. we give options or flags to commands to modify their behavior. You can mix multiple flags into a sequence -rf is same as -r -f (two flags). Here -r means remove recursively, -f means force. This is a common way to remove directories. rmdir works for directories that are empty.

Be careful with the rm command, there is no trash can to recover your data from.

What are the other commands?
[cox@ip-10-160-178-130 ~]$ echo $PATH

/usr/local/bin:/bin:/usr/bin:/opt/aws/bin:/home/cox/bin
[cox@ip-10-160-178-130 ~]$
the shell finds the commands/executable files from these directories list (each directory separated by ':').

You can see some of our commands are in the directory /bin (second directory in the list).
[cox@ip-10-160-178-130 ~]$ ls /bin

arch chmod date domainname false gunzip kill ls more nisdomainname raw rvi sort tcptraceroute traceroute6 usleep
awk chown dd echo fgrep gzip ksh mail mount pgawk readlink rview stty tcsh tracert vi
basename cp df ed find hostname ksh93 mailx mountpoint ping red sed su touch true view
bash cpio dmesg egrep gawk igawk link mkdir mv ping6 rm setserial sync tracepath umount ypdomainname
cat csh dnsdomainname env grep ipcalc ln mknod netstat ps rmdir sh tar tracepath6 uname zcat
chgrp cut doexec ex gtar iptables-xml login mktemp nice pwd rpm sleep taskset traceroute unlink
[cox@ip-10-160-178-130 ~]$
You can learn about these commands using the man command.

vi is a text editor that deserves its own section, but it is so ubiquitous everyone needs to know the first aid to survive in the Linux world.

You start a vi session (interactive session) by running it on command line. If a parameter is given it opens the path specified by the parameter. As with other commands you can use flags to modify behavior.

Once the interactive session starts you are not in the shell anymore, you are in vi. It has its own commands.

First how do I get out if I entered it accidentally?
<esc> key and then :q!
You may not need the <esc> key but sometimes you might have already entered the insert mode, and <esc> will get you to command mode. Yes vi has two modes insert and command. That is the toughest part about vi. It is vi's way of choosing who to be friends with.

Now for the easy part..

Say you did want to use vi to edit a file. Say you opened the session with
vi myNewFile.txt

assuming this file does not exist in the current directory, it will say at the bottom "myNewFile.txt" [New File]

vi tells you what is going on in the editing session by these messages at the bottom.

to add text you first enter the insert mode by the key 'i' (there are other ways but you just need to know there are other ways). Then you enter text, everything shows up as you expect! Great!

Now you are done editing or you just want to save your changes... anything you type shows up how do you do this? Well, you enter the command mode first by using the <esc> key first.

When in command mode, several keys have functionality, so be careful what you touch (you can learn some of these later). You need learn about the ':' commands first. If you hit ':' (shift + ';:' key) it shows up at the bottom. Now it is ready to take commands. Remember q!, that means quit don't ask questions. Normally if there is unsaved work it will refuse to quit unless you write. ! modifies q to force the quit command. We were talking about saving your work. 'w' for write will write your changes to the file. If you are done :wq will write and quit.

You should be able to survive a few vi sessions with these few commands. Too complicated? Well it is complicated, but it has its uses. You should learn at least this much if you are going to develop on Linux. A little more would be better. http://www.unix-manuals.com/tutorials/vi/vi-in-10-1.html and http://www.yolinux.com/TUTORIALS/LinuxTutorialAdvanced_vi.html should help.

Thursday, August 18, 2011

The Future of Apple

I have been watching Apple stock from 2007. It is a relatively easy stock to analyze. The number for the product sales and market share are available. It is simpler to make projections with large errors that could still give meaningful conclusions for long term investing.

After years of following bits and pieces by reading news articles, checking out products and buying some, and sometimes reading the patents, a synthesized opinion dawned upon me.

What is Apple doing? It is changing the way we use computers. While the industry and the society needed the Microsoft/Intel model of a stable design to iterate on and make use of Moors law to make computing accessible at costs we can afford (hence make the industry possible), time for change has come. Apple has a history of changing the way we use computers, its time has come again.

The transformation has merely begun. Personal computing the way it is even with the recent devices still requires us to adapt around the devices. Apple has learned the art of changing the game and profit from it.

In the days of the Moors law, the model was to pack more computing punch and indicate it with a number on a linear scale to make people want to upgrade. Technology was ready for sometime to change gears and say leave the computing power upgrade to the server rooms and focus on innovation in user interface.

New and seemless ways of interacting with the computer is driving the industry in this decade. Apple has taken the lead and the competition is doing its job well by making Apple run for its money. The stage is set for transformation of computing devices.

Some things to expect are better speech integration, hand gestures, usage of devices while interacting with others, doing away with traditional laptops, your computer goes in your pocket.

In the end, if you are going to pull out the smart phone in the elevator and miss out on the small talk it is really a matter of your habits. Even the cave men had these problems of focusing on the rock cutting tool when they had the chance to make a meaningful conversation. Not sure if computers can save us from our habits.

Wednesday, August 17, 2011

Apple model for eCommerce

eCommerce is growing at double digit pace. Web influenced sales are growing as well, particularly with the increasing use of smart phones and shopping apps made for them.

It is the second part that got me thinking, web influenced sales. The influence can be other way as well. Consumers checkout the product in the physical store and buy online.

What if companies like P&G adopted the Apple model and built their retail stores?

Thursday, November 4, 2010

How to convert UTF-8 to uppercase in C++ or C

#include <iostream>
#include <glib.h>
#include <string.h>

int main() {
   char * a="Télécommande";
   a = (char *) g_utf8_strup((const gchar*) a, strlen(a));

   std::cout << a << std::endl;
}

compile with :
g++ `pkg-config --cflags --libs gib-2.0` s.cpp

Output of the above program:
TÉLÉCOMMANDE

If the library is not present install libglib2.0-dev

http://www.gnu.org/software/guile-gnome/docs/glib/html/Unicode-Manipulation.html

Friday, October 15, 2010

I18n::MissingInterpolationArgument in

missing interpolation argument in "%a, %{count} %b %Y %H:%M:%S %z" ({:object=>Mon, 13 Sep 2010 21:09:21 UTC +00:00} given)

This happend with rails 2.3.5 and the gem i18n 0.4.1

gem uninstall -v 0.4.1 i18n

solved the problem.

Also see this link for more info: http://groups.google.com/group/activescaffold/browse_thread/thread/ad73fbf2fc675dd6/efb52a91ba81cb4d

Sunday, August 2, 2009

You can not logon because the logon method you are using is not allowed on this computer

On Server 2008 : Run gpedit.msc then add user/group (RDP is a good choice) to Windows Setting->Security Settings->Local Policies->User Rights Assignments->Allow log on through Terminal Services.

Linux on Hyper-V: Networking not working

Linux on Hyper-V: When creating the Virtual Machine use Legacy Network Adapter.