Binary Me

November 23, 2009

Internet Look-a-Likes

Filed under: Random Surf, Sleepless in Garage

Mall Watching
Me and my wife seldom goes to the mall except when the kids acts a little noisy, annoying and you can already read in their forehead the word “bored”. Or when we have to buy quick items for the house, and other times is when we have business appointments usually held in coffee shops.

During this times our (couples) favorite pass time is to watch the people we came across and compete who can identify a look-a-like for celebrities, movie heroes and just a look-a-like of people whom we know.  Don’t get me wrong but it’s not what you think, we are not doing it a negative way, but more on the positive side.  Sometimes we can come up with look-a-like who is a cross of two persons or personalities we  know. It’s funny try it.

We also enjoyed this pass time in the port terminals, in new places we visit and even movies we watched. We believed we are getting good at it that we sometimes fancy of creating a “Double Company” to supply “doubles” for the film industry.

Anyway, while surfing the net last night I came across a very interesting site with a technology that will definitely change the way we see the world and the Internet.

Powerful Search Engines
We are all familiar with the powerful search engines like Yahoo, Bing (from Microsoft) and my favorite Google. By simply typing keywords this engines will list millions of websites arranged with relevance in just a split of a second, making sense all the vast information available from the Internet.

However, keyword search is limited to searching things that are easily described with text. But how can you describe a specific design of shoes or jewelry, or a painting you don’t exactly know?

This is where Superfish comes in.

Visual Search
An image worth a thousand keywords.

Superfish is a visual search technology that allows you to search images based on a “key image”. Example given a delicately designed shoe(s) it will search and list all shoes with strikingly similar attributes. The concept is simple yet very powerful.

Superfish developed what they believe to be the world’s most advanced visual search technology. Their algorithms and proprietary technology can analyze the content of any digital image and find additional images with similar content. This functionality allows you to search by sight, or what they call visual search. Superfish similarity-search can find “similar” or “more like” the item you are clicking on. Superfish is all about “finding and understanding by sight.” It’s a more basic, intuitive and natural way to obtain visual identification and similarity. This technology is far more advanced than other old image-matching, and far more exciting than object recognition.

There no better way see how it actually work but to visit these sites: http://www.jewelryviewer.com and  http://www.shoewindow.com.

There are many potential applications.

Fashion and Arts
One already mentioned above is in the fashion and design industry.  You can search and compare shoes, jewelries, furniture designs.

Architecture and Landscapes
Another would be in architecture given an architectural design you search similar movement from across the globe. You can also  find similar city landscapes, and mountain ranges.

Nature and Animals
You can also use this technology to find similar insects, animals, rock formation, vegetation and flowers.

Crime Investigation
This technology could help solve crimes, authorities will now be able search the Internet based on a suspects pictures.

Superfish Google
The Superfish demo sites as of now only search images within there domains. For this technology to really be of much use, it should be integrated with a search engine that would crawl the Internet and index the vast images already available. But I would love to see this technology merged with the already powerful Google search engine.

Your Look-a-Likes
If you are still wondering whether you do look like Tom Cruise, you can use your best picture to see and search if he is one of your look-a-like. Just don’t blame the engine if some Neanderthal man appears in the result!

Technology Firemen (or Why Pay for Support?)

One common trend of discussion in any software project is why would a customer pay for support to the developer programmer. Here we would like to make things clear.

The Lazy Programmer
One of our programming philosophy is to create really stable and highly user customizable business applications. The reason of course is because we hate to answer customer support calls or visit client sites and even do program modifications. So because we are lazy, we tend to produce better and quality applications to minimize maintenance headaches. In fact, we try to create one source for applications genre that will fit the needs across a wide market audience, with parameter options to enable or disable features not needed by some clients. This makes the design process longer and coding more difficult. This all because we are lazy. So the next time I will interview a programmer applicant my first question would be “Are you lazy?”, if yes then you’re hired!

The Forgetful Me
I have been programming for the past twenty years, I have had created different applications ranging from general accounting, payroll, lending management, memorial park and real estate development.  And I have countless clients most of them I have forgotten (or at least not stored in my recent memory pages) until I would received a call from them. The call would usually sound strange and why not if you haven’t heard from them after say 5 or 10 years. See that’s how stable our programs are. Anyway, the call would proceed with name recalls, and my quite deep sense of pride that they still use my program created a year after college. The call would usually end with my advice to buy a new hard disk or, not to use the USB printer they just bought.

Quality Kills
If quality makes our customers happy, it makes the programmers pocket empty, unless the sales guy can sold a thousand copy of our creation. Remember we are data architects and code experts not marketing geniuses. Bill Gates become one of the richest guy in this planet not because of his object oriented knowledge but because of his business strategies.

Support Phobia
During our product demos or presentations we prepare  sales pitch to convince our prospects our products are stable and needs practically zero support from us. But even before we can open our mouth, the manager first question would always be “Are you not going abroad, just like the plight of the rest of the local programmers?” and the last question will be “Will you still be available to maintain and support the program?”. These are really valid questions you can’t not just ignore. And I would always answer with a smile, “Ninety five percent of my classmates have already luxurious cars and houses with spacious lawns for only 3 months stay in the US, but If you’ll give me this project I would have second thoughts”. Of course you can already interpolate whether I got those projects or not, knowing that I am still in this country today. But the point is most managers realized that they need support in case something happened to the program in not so near future. A few business owners would think that they can do away with programmers completely.

Is Support Expensive
Okay, this is the important part, I will try to explain here how to determine the most appropriate support cost and the possible support options one can arrange with a software developer or a programmer like me.

Support cost may range from zero, by not availing support, to the monthly rate of a good programmer by hiring him. It’s that simple and here are the implications.

If you will not pay for support, then you should realize that the programmer is not obligated to give you support, you will be of less priority compared to those who are willing and the programmer has the freedom to explore other revenue options and this usually going abroad.

If you hire the programmer, then expect to pay him not the beginners salary but that of a experienced programmer after all you commissioned him to do the project because of this. Double a beginner’s salary or one-fourth of the project cost is a fair enough pay. Remember once you hire this guy you can already assign him to develop projects all for you!

But it is not always easy to hire a good programmer, based on your offer he will do quick calculations and earning potential comparison not to mention that programmers easily get bored in the office.

There are other support options in between this range based the level of service you may require.

Level Of Service Agreement
If you decide not to hire the developer, you can get support that would fit your budget, this is by defining the maximum support incidents and the response time you may be willing to wait.

For a given support fee you can agree to set the maximum of free support incidents per month, beyond this you will be billed per incident. If you can wait for another 24 or 48 hours before your problems will be solved then the support could be cheaper compared to a response time of 4 hours.

Again if you want instant response time, hire the guy.

Shared Support
Usually the programmer or developer will offer you a very reasonable maintenance or support fee, this is basically based on the idea that you are not the only customer they are supporting, that means you shared the support cost among clients of similar needs. The programmer is usually fine with this.

Insurance Service
Initially the customers will enter into a support agreement for the first couple of years. But after they will start to question “we haven’t encountered any major problems so far so we don’t need your support anymore, we’d rather terminate the agreement”, this is short of saying “we don’t need you anymore”. And this hurts, this is of course sounds familiar love stories, hello,  goodbye and the breakup. But the only difference is that in our scenario the relationship is not base on love but on risk and assurance.

You realized you have the risk of losing your business data or system downtime due to broken programs, that’s why we entered into a support agreement to assure you that we will fix your system and recover valuable data when you need it.

This is of course similar to the insurance agreement, you pay for a monthly or annual premium and in return you will get benefits or the assured amount in case of disability or death.  Just because you are still alive doesn’t mean that you are wasting your premiums, take note that you are paying for the assurance not for the service.

Technology Firemen
One quick question, “What do firemen do when not responding to a fire alarm?”. Of course they are playing table tennis, cards or chess! Not offense to my friend who is a chief fireman (with engineering and law degree). Anyway they do also have regular trainings and community assistance programs. But the point is, just because there is no fire, the firemen will receive no compensation. Who will gonna feed there family and provide for their education? Somebody has to pay for it otherwise all firemen will resign and look for another job or maybe pursue to become the next Filipino chess grandmaster. Again, we are paying the firemen salary so that they will stay as firemen for our security, so that they will not look for another job or go abroad, to fight fire is just secondary. Would you like to be in a community with no firemen? Can you sleep at night?

Programmers in a way are like firemen, they are our technology firemen, you pay for support for them to stay as programmers and not to look for lucrative jobs abroad. You pay them enough money so that they can say no to temptations from international call centers, or from Microsoft or from SM. Somebody has to pay for it, for individual programmers the customers will have to pay for it. For the employed their employer but of course the employer will pas the cost to the customer, some as a separate support cost others built in the project cost.

Again you have the option to pay for it or not! But don’t blame the programmers if they are migrating away from our country.

But then again would you like to see houses burning with no help in sight, would you like to invest in computer software systems with no Technology Firemen?

November 19, 2009

Zend Framework Our Mind Saver

It has been several months since me and a good friend poured our brains in seriously studying Zend Framework (framework.zend.com) and we are very excited about it now.

This happened after we have develop some applications using pure (luck) PHP and sprinkles of JavaScript. Our previous projects was always a challenge, as the project grows our codes become unwieldy. Although the project was relatively successful and our clients are happy about it, adding new features or modules into the system is not a request we would gladly embrace. The incremental amount our clients are willing to pay is not too enticing considering that digging back the source codes and making modifications might create unwanted side-effects which will lend to problems or instability. We would rather leave the code untouched and keep the client contended of what they have now. I am not saying that PHP (codes) is not clean. The reality is sometimes programmers (including me) gets tired and lazy and given strict deadlines will write lousy codes without regard to quality or coding standards just to finish the task at hand. We usually promise to go back and rewrite the codes a few weeks alter but programmers time flies quickly and our memories is not in gigabytes. Or sometimes we are bombarded with new and more interesting projects. Or … okay we got lazy again or we simply forget.

All these changed when we came across Zend Framework. ZF is simply a PHP development Framework. It follows the MVC (Model, View and Controller)  programming paradigm. In this style of development the application is seen as comprised of three isolated representation of the application; 1. Model – this represents the data objects and how it is structured, 2. View – this is how the information will be displayed or rendered 3. Controller – this controls the logic of the applications this is where the business rules are usually implemented. This is also where the how the data (model) will be manipulated before it will be passed to the viewer. At first the concept seems strange but as you understand the logic behind this implementation you will begin to see the beauty and love it.

It is composed of several will written PHP classes and interfaces (API) to different web services available in the Internet today, including your favorites like YouTube, Facebook, Google Maps and many more. As a development framework, it encourages coding and design standard by imposing upon the programmer to follow a well defined application structure. With the availability of related development environment like Zend Studio, our tasks not become more enjoyable. This is specially true when developing a project as a team. One programmer can now easily check others work and make it feel like strolling in the mall as opposed adventure is the jungle.

So what now? What would this mean to our clients? Well, they still have to pay large sums of money for the web business applications they dream of:). Seriously they can expect enterprise grade, internet connected and web aware applications. One example would be map enabled applications which will give you directions of your nearest warehouse, or a dynamic map showing your territorials sales.

The possibilities are endless, but since my time now is limited I will talked about this later.

Powered by WordPress