life

The All Truth About Marriage From Oscar Wilde

I’ve returned again to one of my favorite authors, Oscar Wilde.
Late last night I’ve notice this piece and wanted to share a small part of it.
“…You seem to forget that I am married, and the one charm of marriage is that it makes a life of deception absolutely necessary for both parties. I never know where my wife is, and my wife never knows what I am doing. When we meet—we do meet occasionally, when we dine out together, or go down to the Duke’s—we tell each other the most absurd stories with the most serious faces. My wife is very good at it—much better, in fact, than I am. She never gets confused over her dates, and I always do. But when she does find me out, she makes no row at all. I sometimes wish she would…” – The Picture of Dorian Gray (for the 3rd time in 20 years).

and if we are talking about this subject you can’t go home without Kramer’s (Seinfeld) take:

 

Standard
Business, webdev

How To Build Your Next Mobile App? (Cleverly)

Why the current app stores are broken? Well, Apple was the first to recognize that the real our of their wonderful hardware (=iPhone) and great software (=iOS and all its components) is outside the company. It’s in the developers (how is counting them now?) that build amazing eco system on top of their app store. It’s not only ‘Angrey Bird’ but huge amount of apps (Netflix, Evernote, Pandora, Twitter, Facebook etc’) that give you a device that can do so much more then ‘just’ mobile phone.

Quite late, lots of other big forces join the party:

  • Chrome OSMozilla App Store with their HTML5 concept. You can see more and more HTML5 apps that give you the look & feel of a native app. The ability to have: local storage, drag&drop, audio, video etc’ in your hands is great.
    280 North was the first company that put it as a mission to bring the web app to a level of desktop (=native) apps. Their cappuccino framework is showing the power of javascript with modern browsers and real strong web developers behind it.
    Well, their projects show that the gap is closing fast. Moreover, you can see today, web apps like Gmail that give you more and more. Even on the mobile web-kit.
  • Android (Yes – the ‘java’ the Oracle is now taking them to court on) – it’s very similar to Objective C of Apple.
    The concept is that you get great tools to build apps.
    The main problem is that you need to be locked (just like in the iPhone world) to Android with your code.
  • Palm (Now HP) with phoneGap and the ability to ‘write once’ deploy anywhere. PhoneGap is an open source development framework for building cross-platform mobile apps. Build apps in HTML and JavaScript and still take advantage of core features in iPhone/iPod touch, iPad, Google Android, Palm, Symbian and Blackberry SDKs. Their goal is to give web developers (that know JS, CSS and HTML) the tools to ‘transform’ their apps to be native on different platforms. I haven’t play with it (yet) – but I’ll do it soon.

Here is a good explanation from Mozilla lab (=Pascal Finette) on why the current app stores are broken:

Enjoy and keep building mobile apps. One main point to keep in mind is the size that today seems to be all belong to Apple. I guess that in the near future, when will see Google iPads with Chrome OS, things will be different. Any way, it should be a world where like: Pandora apps, your apps are working every where: laptop, iPad, iPhone, Mobile, TV etc’

Standard
life, Sport

How To Run A Marathon?

Running on the beach with Amir

I’ve been doing a few marathons a year in the past three years, and I wish I had such a list before my first race. 

I could use it and avoid some of the common mistakes I made.

Tips for your next marathon:

Remember that the hard part was the training period. The primary hard part is all the long runs during the weekends alone or with a friend. Now (race day), you should enjoy as much as possible. So, relax. Yes, try to relax and apply what you know from your training. Eat what you regularly eat (I hope you know what bar makes you happy… do NOT try a new energy bar gel during the race day), drink what you like to drink during the runs, and wear the best gear you used. In a nutshell, try something other than new stuff during the race.

Please keep it simple and go with what you practiced.

Choose your ‘race partner‘ – this is one of the most important aspects (for me) of a good/successful race. After the first 4-5 miles, when you get into your pace, search for the one you think will go with you to the end (of the race). If you are lucky, you can find a partner, which improves the whole race.

Think about the next mile, which is only part of the race. It’s so much better to take (every project in life) step by step. You can break the race into 2,4,6,10 segments and think only about the next segment. It is a good feeling to ‘see’ your progress during the race.

Check out #2 and #1 – start slowly. No matter what, a girl/boy passes you without a visible effort.

It’s a common mistake. You should do what you practiced and know you will run faster during the race. Moreover, after 4-5 miles, you should be at your average ‘race pace’ and ‘race heart rate,’ so make sure to pace yourself. Don’t let your ego win – it will hunt you down around the 20-22 mile.

Adjust yourself and listen to your body. You can never know what the race will bring you. Sometimes, it’s 120F temperature (Tel Aviv Marathon), and sometimes, the climbs are crazy (each San Francisco marathon after 23 miles). Show up with a flexible game plan and adjust as needed because, in the end, it’s all about enjoying (or, for the experts – performing) your best on that day.

Have fun and be strong!

Standard
Business, life

Why the Future of Business is Sharing?

New tool set for web developersI’ve read “The Mesh: Why the Future of Business is Sharing” and it’s good reading (specailly, if you have 3h flight).

It outlines how the internet is driving radical new business models for companies with products. In essence, the latest location-based and smart phone apps allow us to access (expensive) products without having to own them. Think about the fact that, on average, you only drive your car one hour per day. What about those expensive tools you have sitting in your garage or handbags sitting in the closet. Written by serial entrepreneur Lisa Gansky, she co-founded Ofoto (sold to Kodak) and GNN (sold to AOL), Gansky is the first to name this important new trend in business. She points out that Huizenga used the same principle of purchasing a product and then renting it multiple times.

Want some more examples? here are just few:

  • Netflix – let you rent a library of DVDs that will cost you few millions to own.
  • Hilton/Hyyat and other hotels. They all let you do ‘time share’ and in their most basic business – they kind of ‘renting’ their properties piece by piece.
  • ZipCar – let you share cars and use them only when you DO need it. Very cool start up that I am hoping to see in more and more places.
  • Crushpad – wine-making services. I guess there are lots of avid wine fans that want to create their owe ‘grape juice’.
  • North Portland Tool Library – Why pay for a great tool and use it only twice (on a good case)? rent them…

I’m sure there are other examples for these type of business that can run today, significantly better, due to the usage of the internet and mobile apps.

The fact that people are aware to quality and wants it make these business even more interesting because they give the crowds an option to use and enjoy something that is not in their reach in any other way. We will see in the future lots of models like this… Specially, in places like India, Brazil and China.

Standard
Business, life

Agile – Getting Things Done and How TODO Stuff

Taking the right turns in your project

Taking the right turns in your project

Some good points from the last 3 years:

  • Describe the project in:
    A. The shortest way you can.
    B. The clearer way you are able.
  • Assign accountabilities – this is critical for the success so put time and effort behind this task. Ask yourself if the people you are putting accountable could deliver what you wish them in the quality/time you want it to be.
  • Document your fears – this list is something you want to check from time to time during the sprints (or short mile stones you put yourself).
  • Find shortcuts/edges – the only way to move like a ‘speed boat’ is to find these little ‘shortcuts’ that give you good tail wind.
  • Describe where you want to be in an ideal world when the project ends.  Then you should:
    A. Quantify `good enough’ – and make it clear when to ship it in that stage (you can/should always improve it in the next versions).
    B. Make it less – in lots of cases less is more and you want to remove stuff! It’s hard – but it will make your project better.
  • Thrash early – IF it seems you are moving (fast) in the wrong direction. This one is easy to say and very hard to do… so be AWARE.
  • Put ‘fire’ in all the people that contributing to the project. This wind tail will make the difference in the end of hard coding night.
  • Try to have fun along the way. It’s very important to enjoy the ride (if you can).
Standard
webdev

Bootstrap File Example For Zend Framework

Here is some good starting file I’ve been using.
Please let me know if you think it’s good/bad/ugly/great:

<?php
/**
* Bootstrap file for zend framework
* @category zend framework tutorials
* @author Ido Green
* @see http://framework.zend.com
*/
error_reporting(E_ALL|E_STRICT);
ini_set(“display_errors”, “on”);

set_include_path(get_include_path(). PATH_SEPARATOR . ‘../library/’. PATH_SEPARATOR . ‘../application/models/’);
require_once “Zend/Loader.php”;

/**
* Required classes – if you use autoLoader you don’t need it… but it’s good to see what you might want to use.
*/
Zend_Loader::loadClass(‘Zend_Controller_Front’);
Zend_Loader::loadClass(‘Zend_Config_Ini’);
Zend_Loader::loadClass(‘Zend_View’);
Zend_Loader::loadClass(‘Zend_Session’);
Zend_Loader::loadClass(‘Zend_Log’);
Zend_Loader::loadClass(‘Zend_Controller_Request_Http’);
Zend_Loader::loadClass(‘Zend_Debug’);
Zend_Loader::loadClass(‘Zend_Auth’);
Zend_Loader::loadClass(‘Zend_Db’);
Zend_Loader::loadClass(‘Zend_Db_Table’);
Zend_Loader::loadClass(‘Zend_Registry’);

Zend_Session::start();

require_once “Zend/Session/Namespace.php”;
$consumer = new Zend_Session_Namespace(“consumer”);
Zend_Registry::set(‘consumer’, $consumer);

$config = new Zend_Config_Ini(“../application/config.ini”, “dev”); // have dev,qa,staging and prod for your own… life.

// setup database
$db = Zend_Db::factory($config->db->adapter, $config->db->config->toArray());
Zend_Registry::set(‘config’, $config);

Zend_Db_Table::setDefaultAdapter($db);
Zend_Registry::set(‘db’, $db);

require_once “Zend/Log/Writer/Stream.php”;
$writer = new Zend_Log_Writer_Stream(‘/tmp/our-project.log’);
$logger = new Zend_Log($writer);
Zend_Registry::set(‘logger’, $logger);

$front = Zend_Controller_Front::getInstance();
$front->setControllerDirectory(‘../application/controllers’);
$front->setParam(‘noViewRenderer’, true);

if($config->staging) {
$front->throwExceptions(true);
}
else {
$front->throwExceptions(false);
}

$front->dispatch();
?>

Standard
Business, JavaScript, webdev

Chrome Extentions – IMHO, Very Cool Technology

Last week we had our 2nd FedEx day here at High Gear Media HQ (yes – we like to think big like Google, Yahoo and Atlassian). So we gave our developers lots of good pitza (tradition is tradition!) and some choose to hack on a new iPad application that we are going to ship soon. Some others, choose to check out the new Chrome App Store (or in its current status – chrome extension).

It was an excellent 24h and I hope we will have the video soon on youTube.

Here is the first chrome extension that took me less then one hour! It’s very cool that Google choose to take all the skills that any web developer will have (HTML, CSS, JS) and build their concept around it. When you take the new goodies that HTML5 is giving you (check this html5rocks for all the amazing capabilities) and you think that this new app store will be the way to users to install applications on their chrome OS ‘iPads’ – you start to see the huge potential.

Here is the 2nd extension that let you set your own car and get news/recall alerts on it. Cool, no?

We have some more ideas and with local storage, Geo location and other great HTML5 features we will ship some more extensions to the table. Our new APIs let us build these applications very quickly. I hope that we will be able to open most of them to the public so others could build on top of them. For now, if you feel like hacking on the best automitive API that is out there… try:

Something like: http://feeds.highgearmedia.com/?tags=sport – to get all the ‘sport’ information that we produce. Or http://feeds.highgearmedia.com/?tags=prius if you own one.
Of course you can change the ‘prius’ with any make-model that you own and still get all the content for that. If you are into ‘Green’ and want to check what is the new progress with specific model you can use: http://feeds.highgearmedia.com/?tags=camry,green

All these will bring you feeds (ATOM) that you can consume easily. Enjoy.

What is FedEx day?

This is our version of Google 20% time to work on ‘cool/new’ stuff.

The Goal
We are coming to the office early on FedEx day and ship something over one day of work, hence Fedex Day – “We deliver”.

The Rules

  • From 8.30 to 9 we brainstorm everyone’s ideas of what could be done, and developers sign up for tasks.
    This can be around a ‘theme’ or a bigger idea/project we want to push.
  • Developers can either work alone or in pairs.
  • The development task must be something “out of the ordinary”. This is hard to define – but basically the spirit is that you can’t do something you would normally do. It’s a chance to attack all those “I wonder if XYZ would work… “, “It would be nice if we could… ” small development tasks that always get pushed off in the heat of battle.
  • The development task must be deliverable in one day. This doesn’t mean it has to be finished, polished and shipped (although it’s awesome if we can get there), but it can’t be an “open engine”. It must do something and work to some extent. It must show enough promise that we should continue working on it, or can it.
  • Pizzas/Drinks are ordered in, support is handled in advance and all other assigned tasks are obviated for the day so that developers have nothing to do but code.
  • At about 5.30, we’ll meet up for a “show off” meeting where developers get to show off what they’ve done, combined with chocolate cake and beer.
Standard
life, Sport

Weekend Ride To Mount Hamilton

Yep – we climb this mountain from both sides…

It was hot day, so the second climb was much harder.
You can see more details and even see the ride in 3D (if you have Google earth).

Mt. Hamilton from both sides

Mt. Hamilton from both sides

Mt. Hamilton from both sides
Standard