Fabian Schonholz’s Blog

March 30, 2008

Photo Galleries - The Start Of A New Chapter

Filed under: General, Photo Galleries — fschonholz @ 3:14 pm

Message from Fabian Schonholz:

Hello all. I hope you have enjoyed the pictures and photo galleries I have posted on this blog. A few weeks ago I decided to separate my blog into two sites:

  1. This site (http://www.fabianschonholz.com) where I will keep on hosting my blog posts focusing on phylosophy and business writtings.
  2. A photo blog site (http://www.schonphotos.com) where I will not only host my photo galleries, but provide links to those interested in buying copies of my photos.

Part of my decision has come as I am trying to develop my photography business and not wanting to use this site for that. I rather keep things separate as I will be developing an online marketing strategy around the photo site that hopefully will bring the level of revenues I would like.

Part of my decision has come as a means to provide more focus to both sites. On one hand it was easy to have all in one place. On the other, however, if you like my writings why should you deal with my photos? And if you like my photos, why should you deal with my writings? If you like both, well … I am so sorry, but you will have to go to two separate sites.

In the end, I think that the separation is more for me and the way I like to do things.

Again, I hope you enjoyed and continue to enjoy my photos in the new site; and I hope you all keep on reading my posts and comment, specially if you bring a challenge.

Fabian Schonholz.

Share/Save/Bookmark

March 16, 2008

Hermosa Beach - Photo Gallery

Filed under: Photo Galleries — fschonholz @ 9:56 pm

Click on the image to go to the gallery

Share/Save/Bookmark

God

Filed under: Religion, Thoughts — fschonholz @ 8:18 pm

So … here comes Bob and tells me that he had a discussion with a Rabbi and the Rabbi suggested that God might have created the Universe several billion years old and earth with all the fossil evidence of an older system. However, the Universe and the planet is indeed only 6000 years old or just about. Well … it is a possibility. In our limited definition of God (or a God), an entity with the assigned “powers” could have done things in such a way. I fail to understand the logic of such creation - except as a joke - but then again, there are many things that have nothing to do with logic as we understand it and are beyond our limited understanding.

When I started to study Torah with Josale - he is a good guy, not only smart but VERY intelligent - he tried to explain Torah to me in terms I would understand … business terms. So, God creates and does a marketing study and runs a pilot. If he does not like it, he starts from scratch. And from the ashes and sparks of his “failures” he starts again. I guess God does not believe in reusability and building up from solid foundations. But that is OK; since we are made in his image, many of us do not believe in reusability either - but I do.

My questions is: Why doesn’t God reveal himself more clearly to us? What’s the mystery? Why such cryptic signs? Religious people would argue … indeed they would … that God reveals himself VERY clearly. There is no mystery. That mystery is created by people in order to deny God. What does denying really mean?

Let me state my position clearly:

1 - I have a hard time believing in God. At the same time, I have a hard time not believing in God.

2 - I do not have to believe or agree or even share other people’s view points, ideas and believes. But I do have to accept them for what they are, view points, ideas and believes. Moreover, I have to accept the peoples whose believes, ideas and view points I do not subscribe to.

Believing in God - or not - has many levels. Let’s assume, for the sake of this part of the post, that not only I believe there is a God, but I believe that the Torah, Gospels, Koran and other holy books represent the word of God as His own word. So, somebody transcribed for God. Moses, Mohammed, Buddha and many others were God’s prophets and they put down God’s words. Good for God, it had secretaries!! But … do I believe in those words as the truth? How about the ultimate truth? These books, to some extent or another, are full of laws and regulations that were pertinent 5000 years ago. Some of them are still VERY valid today, but many are not. Obviously some religious people will argue with me that those laws and regulations are valid today as they were valid 5000 years ago. It may be so, however, I just do not see it that way. God’s words would have a level of permanency and validity beyond time. And some of the laws and regulations are obsolete. On the other hand because they are obsolete, as long as they can be applied, I see no problem on people keeping with them.

The Torah describes in extreme details the different offerings for the different times of the years, situations, festivities, etc. Most of them are not kept anymore because they have become impractical. But those offerings are not written as optional. They are written as laws and regulations. Rules that people MUST follow no matter what or else, the wrath of God would descend upon the people. Those laws and rules have been adapted to coexist in today’s world. But if you really want to take the WORD of God seriously, then the adaptation is outside of the words themselves.

The word of God maybe is not really the word of God. Maybe it is the word of a few people that had the foresight to see the problems with society at the time and decided to help. Did they have contact with God? Maybe their foresight came from God. Maybe they were en-tuned with humanity because many of these rules’ validity lasted for a long time.

So … I am not so sure about the words!! And if they are the words of God, I am not sure I believe in those words. It leads then to question God’s existence itself. If God is omnipresent and omnipowerful, then the words should carry more weight. Clearly in my case they do not.

Does this mean that I do not believe in God? No, it does not. What it does mean, at least on a first approach, is two things:

A - I do not necessarily believe in God in the same way I may not believe in what somebody tells me. It has to do with authority. Just like I assign very little authority to a police officer I assign, potentially, very little authority to God since its authority comes, initially, from those written words.

B - In the assignment of some authority to God implies that God may exist after all. You can not assign authority to a non-existant entity.

As I wrote above, I have a hard time believing or not believing. But I do accept the possibilities, wether intellectually I agree with them or not. This leads to Acceptance and Tolerance ..

From the New Oxford American Dictionary (I finally figured out what dictionary I had in my computer):

acceptance |akˈseptəns|
noun
1 the action of consenting to receive or undertake something offered : charges involving the acceptance of bribes | [as adj. ] an acceptance speech | he had an acceptance from the magazine.
• agreement to meet a draft or bill of exchange, effected by signing it.
• a draft or bill so accepted.
2 the action or process of being received as adequate or suitable, typically to be admitted into a group : you must wait for acceptance into the club.
3 agreement with or belief in an idea, opinion, or explanation : acceptance of the teaching of the church.
• approval or favorable regard : the options proposed by the report gained acceptance.
willingness to tolerate a difficult or unpleasant situation : a mood of resigned acceptance.

ORIGIN mid 16th cent.: from Old French, from accepter (see accept ).

tolerance |ˈtäl(ə)rəns|
noun
1 the ability or willingness to tolerate something, in particular the existence of opinions or behavior that one does not necessarily agree with : the tolerance of corruption | an advocate of religious tolerance.
• the capacity to endure continued subjection to something, esp. a drug, transplant, antigen, or environmental conditions, without adverse reaction : the desert camel shows the greatest tolerance to dehydration | species were grouped according to pollution tolerance | various species of diatoms display different tolerances to acid.
• diminution in the body’s response to a drug after continued use.
2 an allowable amount of variation of a specified quantity, esp. in the dimensions of a machine or part : 250 parts in his cars were made to tolerances of one thousandth of an inch.
ORIGIN late Middle English (denoting the action of bearing hardship, or the ability to bear pain and hardship): via Old French from Latin tolerantia, from tolerare (see tolerate ).

These definitions not withstanding, I see Acceptance and Tolerance as natural antonyms. Acceptance is about openness and understanding. It is about transparency and education. While Tolerance is about closedness and separation; about being opaque and selfish.

Let’s expound on Tolerance first. Tolerance is about degrees. It is about the breaking point of not being tolerant. For example you can tolerate a baby crying for so long. If the crying persists, and your “tolerance” is low, then you will get annoyed and request to be remove from the annoyance. In the extreme, you will take matters into your own hands and make sure the baby stops crying. Tolerance is used often enough within the context of Religious Tolerance. The message is loud and clear, tolerate the baby while you can, and when you can not, take matters into your own hands. The Museum of Tolerance is adeptly named. It is all about the breaking point of tolerance and what happens when certain people take matters into their own hands.

Acceptance is not about degrees. It is about black and white. It is about realizing that we do not like something but learning to live with it. It is about coexisting in a community (neighborhood, city, country, world) where differences exist. It is about understanding (or not) those differences and making room for the differences to mature into a common language of understanding. I do not have to agree with the baby crying, but the baby will cry nonetheless. I have two viable choices: either I learn to live with the crying baby or I have to move on. Taking matters into my own hands is never a choice.

Back to God …

When I was much younger I engaged in the quest of answering whether there is a God or not. At some point I decided that the question did not make any sense and that nothing changed one way or the other however the question was answered. A few years ago, through my children and friends, I was brought back to the quest. This time around I benefit from experience and knowledge. I have lived not only longer, but in many places and have interacted with many more people. Those interactions have provided different perspectives on the subject and many inputs into my thinking.

One of the elements that I have been able to factor out is the difference between Tolerance and Acceptance and how it pertains to God. I have no idea still if there is a God or not. I am not a man of faith (read The Faithful And The Intelectual) and will never be. Faith is not my game so to speak. The only way I would get to God, for better or worse, is through the intellectual process. And in this pursuit I have learn that Acceptance is key and Tolerance is destructive. Acceptance has opened my mind to possibilities while tolerance does not. The world is full of possibilities. Whether coincidence or design, whether Nature or God, the truth is clear but our vision is clouded.

Share/Save/Bookmark

March 11, 2008

A Hybrid Solution

Filed under: Business, Technology, Thoughts — fschonholz @ 10:14 pm

In an early blog posts, Building Scalable Web Systems, I discussed very high level some of the needed premises and basis to architecting scalable systems. What the post did not deal with is insurance and Downtime. What is the point of scalability if you have downtime and what is the business continuity plan that maximizes available resources. Also, the post does not deal with success. What happens and what tolerance does the business and market have in the case of massive and rapid adoption. How do you deal with it?

Enter cloud computing and Amazon’s EC2. For those not familiar, EC2 is a cloud environment that provides virtualized hosting services. They provide the hardware infrastructure, the pipes, storage and other services. You provide the application. The promise is that you can scale the hardware need horizontally without having to deal with the hardware itself and its management and upkeep.

The first question is whether I believe it is 100% ready for prime time. You can argue that loads of companies are using it successfully, thus, it is ready. I have talked to some of them to mixed reviews. You can argue that some of the unconfirmed rumors are to be believed because there are indications of truths, thus it is not ready.  Also, I have talked to some people that were not all that happy with EC2. So on and so forth.

The second question is whether it matters or not if it is 100% ready for prime time. And  on the hills of this question, can it be used as a business continuity tool. I will answer both below.

The obvious third is regarding cost. Through all my calculations (and other people’s), EC2 can be more expensive than running your own systems - of course at some external data center. But some of the advantages come around quick adaptability, separation of concerns, system automation and self healing procedures. I will go into more details on this later as well.

Let’s start with the first question: In my opinion EC2 is not 100% ready for prime time. It is a subjective opinion based on my findings and my level of comfort. Part of the decision is based on cost, but mostly on technical merit:

  • Full virtualization is not where it needs to be; although there are ways to set up virtualization in the right configuration to make it not only more stable but also better performing. Not knowing EXACTLY how EC2’s virtualization layer works (and I am assuming virtualization) creates a big question mark on how things will truly stand up to friction. For example, it is hard to optimize a virtual machine to run DB servers  that deals with millions of queries a day. Hardware optimization is important with relational DBs.
  • Virtual NICs have sort-comings. They collapse under high traffic. The way to overcome this “limitation” is by attaching each virtual NIC with a physical NIC. However, this defeats the purpose of virtualization and limits, the theoretical unlimited number of VMs you can have running on a single server (only as many as you have physical NICs minus 1; you need one NIC for the host Operating System.)
  • Let’s not forget performance.  Even though you can create a limitless amount of VMs, the performance of each VM degrades with the provisioning of each new VM on a single server. What I do not know, however, is if there is an optimal number of VMs. In other words, is there a hard limit where before reaching that limit each VM would not change its  performance characteristics regardless of number of active VMs? Not too long ago I ran a virtualized farm. Unfortunately the application I inherited was so horrible that it superseded all problems we had with the environment. So, I can not even begin to answer the last question. Needless to say that the application and environment were replaced.
  • But it is not just the DBs that need “specially” optimized hardware. Application servers as well. Maybe not as specialized but a slow processor creates drag. And adding many VMs to spread the load creates more management and more moving parts adding to the risk management factor and what can go wrong.

Continuing answering questions … YES!!! It does 100% matter that they are not ready for prime time. But really, what we need to ask is the degree of how much it matters. How far is EC2 from being 100% ready? I do not know, but they look darn close. By adding granularity to the question we come up with multiple degrees of “how much it matters”. 100%?, 90%?, etc. In the case of EC2, I think it matters less than 20%. They seem that close to being ready - by my definition.

We can define cloud computing in many ways, however, let define it by a behavior: it needs to work like the electric company. Using Bob’s analogy, we do not really know how many generators the electric company has. We just know that we want/need more juice, we plug to the wall and we get more juice. The more juice we use, the more we pay. In the case of EC2, it seems to work that if you need more capacity, you provision a new “machine” and off you go - well, sort of ;) This creates the idea that if you need more juice, plug to the wall and pay at the end what you consume. Not considering cost, it looks like an attractive proposition. But more importantly, think in terms of what it can do for you. Almost instant scalability when you need it and how you needed it.

A little digression …

I do not worry anymore about scalable systems. I know how to build them; I have come up with a methodology and an architecture philosophy and I have repeated the  implementation of the methodology and architecture philosophy with great success. However, while my architectures scale horizontally without much of a inconvenience, the problem of scalability has become an issue of “need” predictability and time for procurement. Now in English: How much traffic will I get and how long does it take to get the hardware and deploy it - I consider real estate and power procurement as part of deploying the hardware.

Over the course of my experience I found that I need 3 running months to predict needs 3 months ahead. I have reduce the problem of CAPEX planning to getting right the initial installation. This initial installation needs to have “enough” capacity to support 3 months of capacity needs. But … what will be the capacity needs on the first three months? On a web based system, it is somewhat unpredictable. Sure, we could plan marketing campaigns designed to “limit” traffic. However, why would you limit and control traffic - there are a great deal of arguments in this area - if you have the potential of being ultra successful.

There is also the argument of cash flow and spending the right amounts of cash on your infrastructure. Funding is a resource and needs to be maximized. Any hardware that is bought today that is not used and needed - Software as well, but to a lesser extent - depreciates and for less cash you can buy something better in the future when the resource is truly needed. Therefore, the initial deployment of hardware becomes not only critical from a capacity point of view but also from a “capital resource” point of view. This is not to suggest, however, that you should not deploy for capacity needs earlier. In other words, stay ahead of the curve. Deploy 3 to 2 months earlier than  needed. What I am suggesting is that you do not need to deploy hardware beyond 3 months or more.

Back to EC2 …

EC2 not being 100% ready creates a problem compounded by the fact that it seems to work and it seems a short ways away from being the real deal. I resolved the problem by thinking, with Bob’s help, of EC2 as an insurance policy and a business continuity plan: I will build my staging environment on EC2, even multiple staging environments.

Let’s define a staging environment as a facsimile of the production environment but scaled down. The facsimile, if at all possible, must contain ALL components.

How to set up an insurance policy and business continuity plan using “the cloud”.

First, let’s look at process and environments. I advocate and implement total separation of environments as part of my Software Development Methodologies. Developers work on their workstation and QA Engineering occurs in isolated environments that in some way represent as accurate as possible production. Staging is the environment where UAT (User Acceptance Testing) occurs and where the build is certified and readied to release. Once it is certified, it is released to production. Staging must be not as accurate as possible, but precisely a facsimile of production. By hosting the staging environment on EC2 - or any such cloud environment for that matter - you can have that precise facsimile at a small cost.

Let’s consider the case of wild success and the fact that it is hard to predict and the capacity needed to “potentiate” success. In this argument I will equate “success” to a “disaster” and how we not only recover from it but also ensure continuity:

If traffic spikes past available capacity, not only does the user experience degrades but  it disappears altogether. In this case, virtually a “disaster” happened since the service becomes unavailable. In this particular disaster, having the right amount of hardware would have prevented it; as we discussed above, however, this is not always easy to determine. Just like in any disaster, the speed of recovery is vital to the continuation and success of the company.  If staging is indeed 100% a scaled down facsimile of production, then on an environment like EC2 scaling up in order to provide “capacity” should be a matter of minutes to just hours and not days. Basically, enough tolerance for the business not to experience a catastrophic downtime. Temporarily moving the production environment from self managed to EC2 provides the company with the necessary time to build out, and potentially better plan, capacity on its facility. Once the “disaster” passes, production can then be moved back from EC2.

In order for this temporary migration to happen seamlessly and effectively a high degree of automation needs to be incorporated into the overall infrastructure from day one. While the last updated staging environment (there can be multiple) will have the latest code and basic configuration, its data will be not current or accurate. Data migration needs to happen on a regular basis, and all staging environments should have, based on the installed release, the latest data set. Not only the data updates must happen automatically, but the discipline of automation, from a “disaster” detection to recovery must be as automated as possible. Once an issue is detected, a single script needs to be run to get the new production environment ready for operations, including needed changes on DNS, load balancing and firewalls. Furthermore, provisioning and  de-provisioning new VMs should also happen as automaticly as possible based on capacity needs.

The last part of this EC2 consideration is cost. It is more expensive than it looks. Once you start racking up the VMs on a per hour basis, racking up traffic at a premium cost and racking up storage, the $0.10 to $0.40 price ranges start to add up. This is cost that you incur every month and that you can not “lease”. So, does it add up to more than what it would cost you to build it and manage it yourself? No, but the costs are comparable, at least in my calculations. Therefore, running on EC2 for 1 to 3 months, even though duplicates the expense for that timeframe, it does not, in theory, break the bank and provides insurance, albeit, at a premium cost.

I have some strong opinions on how technology should be implemented. I do not care to know the secret sauce, but I do want to know in more detail than just general terms how things work. Especially if I am going to bet my company on a platform. The unknowns, the uncertainties based on lack of SLAs and the assumption around virtualization make me a tensed CTO. The result: Not 100% ready and trustworthy to build an company on it. I admit, however, that it is very impressive what they have accomplished, it makes sense, and of the other commercially viable cloud environments (I am not including Google, Yahoo! and MS), EC2 is the only one that, again in my opinion, is worth considering and ultimately using; whether it is for production, or as in my case, as an insurance policy to support unpredicted growth and create a conscientious business continuity plan. With time and maturity, EC2 is a strong solution.

Share/Save/Bookmark

March 9, 2008

Big Bear - Photo Gallery

Filed under: Photo Galleries — fschonholz @ 9:45 pm

This last weekend I took the family to Big Bear for a skiing weekend. It all started a few years back when we promised the kids to take them to the snow for some tobogganing; and for some reason or another we never did it. This year we were determined to do it. When the opportunity came up we decided to make it a mini vacation out of it. The kids and Elizabeth took snow-boarding lessons while I went for a hike in the back country. I hiked in the snow for about 8 to 10 miles (round trip). I had not done something like that since winder 1997 when I soloed Mnt. Dana. I was drunk with happiness! Not only I had spent time doing something I longed for, but my family was waiting for me at the bottom of the mountain to continue the fun.

Enjoy the photographs.

Click on the image to go to the gallery.

Share/Save/Bookmark

March 2, 2008

LA Zoo 3rd Visit - Photo Gallery

Filed under: Photo Galleries — fschonholz @ 7:39 am

Click on the image to go to the gallery

dsc_2218.jpg

Share/Save/Bookmark

Fabian E. Schonholz - Copyright 2007, 2008