Food fanatic, IT professional, Cloud Computing Expert, Software Developer and Travel fan.


Sunday, 15 September 2013 00:00

New Orleans - Day 1

I'd been selected to speak at THE major Linux convention (Linuxcon) in New Orleans in September. I've traveled a lot as most of my readers know but for whatever reason I've never been to New Orleans. I've always wanted to go but whenever I board an airplane it's usually going overseas but now I had an excuse. To prepare I started to research a city that was part of the French empire for 45 years then part of the Spanish empire for 35 years while being briefly handed back to France before being sold to the very new United States. In addition to that it had a large immigration of German and Irish people that at one point made up 15% of the population. There there were the Acadians that came from Nova Scotia after France lost Canada to the British. Those folks later became the Cajuns. The largest influence came from Africa - initially from Senegambia and then later Congo by way of Cuba and Saint Domingue (Haiti). When Haiti became the second country in the new world to gain it's independence (after the U.S.) the large French population fled to New Orleans resulting in a surge in the French culture. This time though it was a very Caribbean influenced French culture.

Take all of this plus 200 years of American culture, put it in a large pot to simmer and call it Gumbo. As you also know I'm a big foodie so I'll be discussing at length the culinary options in New Orleans as it's quite famous for it's cuisine.

I wanted to take Kris to New Orleans with me and I also wanted us to have airplane seats together. As there were no longer any adjacent seats on any reasonably priced flight we figured we'd take a chance on Southwest because at least we could make a mad dash for a couple of seats. Southwest as you may know doesn't have any seat reservation system and they're really not a budget option any longer and after going through the boarding process I wonder why they're even in business. You can weight the seat selection process by paying extra money but depending on the order paid you may end up in exactly the same category you were in previously. So there we were standing in our respective sections of our respective lines hoping that by the time we got on the plane there'd be two seats together... there wasn't. I grabbed a seat beside a 6'4" Texan who apparently thought he was carrying a couple of 14 lb bowling balls between his legs because he had to have them splayed so wide I put both of my knees in the aisle side saddle style. Later I realized he really didn't like touching another man either so every time my leg got close to his he'd move his over a bit so we weren't touching. Lather, rinse, repeat. Eventually I got the space I'd paid for and he was riding side saddle on his wife's seat. Kris sat behind me in the middle seat. I felt sorry for her the minute I saw where she was going to be sitting. These two very nice people occupying the window and aisle seats loved each other very much but they couldn't sit next to each other due to a small physics problem. The problem was they were physically too big. The seat between them was the buffer zone which amounted to a small strip of stagnant air and not much more. Kris nestled in like a thong between two very abundant butt cheeks and off we went.

Before we landed in New Orleans the pilot made an announcement that we had arrived in "New Orleans" to which some lady in the back replied "You'd think that as many times as he's flown here he'd know how to pronounce Nawlins". Perhaps he pronounces it that way because he's literate. Perhaps.

We exited the airport and walked into what felt like a very damp wool blanket that just came from the dryer. There you are humidity.... Our taxi driver was from <insert some country east of the east of the prime meridian and south of the Mediterranean> and careened around every car on the freeway. He got up to 80 mph at one point (in a 60mph zone) but we still managed to survive and arrived at Prytania Park Hotel in the Garden District near 10 pm. we planned on staying in the Garden District to get a feel for it then move to Frenchmen Street later in the week to be closer to some music and street life. We did NOT stay in the French Quarter due to the guidebooks saying it's crazy (and often repulsive, looking at you Bourbon street) and the price of hotels tripling during the weekend.

We got a suite at the Prytania Park Hotel which amounted to a loft with a very tight spiral staircase leading to our bed. Below we had a microwave and refrigerator, couch, desk and bathroom. For the price it was very nice. Most importantly it had air conditioning that ran 24/7. Coming from a green city it seemed a bit foreign to see someone run their air conditioning all day even when they weren't home but everyone did it. That and they didn't recycle which at this point I'd assumed everyone had started doing.

Being famished we asked the front desk lady where to eat. She said there's a good Japanese place a block over on St Charles street. Japanese? I came to New Orleans to have great southern food! We walked to St Charles street and asked a security guard and he again recommended the Japanese place and reiterated that it was good food. Still on a mission we went down the street to the St Charles Pub to eat some real local food. Kris got the Muffaletta (a very large round sandwich with sliced meat on it) because the people on the plane raved about them and they had been locals. I ordered the roast beef Poboy because EVERYONE that I'd met previous to flying told me to have one. The Muffaletta was comprised of mostly bread with a small amount of sliced meat. In a word, it was boring. The Poboy was a bit better but tasted strangely like a Subway sandwich with roast beef on it in a dark gravy. The gravy was pretty good but overall I was not impressed. There were know "OMG!" moments or even any "This is a damn fine sandwich" moments. It was just OK. I decided to reserve judgment until I'd tried the best Poboy places in town.

We were thankful to have air conditioning in the pub even though the local men were decked out in zoot suits with hats and everything. They didn't seem to mind the heat or the humidity. We slept great in our loft in our cute little hotel.

Note: This is not totally automated yet. I need to fix several things.

Install Type

  • Non-interactive
  • Network boot
  • Commandline
  • Paravirtualized


  • XCP/Xenserver
  • Access to Internet
  • Working DHCP server
  • Working DNS name resolution


In this tutorial I create a disk, download a kernel, preseed file and install Debian Wheezy using the preseed file. This has proven very popular since you can't install a paravirtualized domain using an install disk. This has been a very nice installation howto because you don't have to download any install CD/DVDs and you could create VMs using nothing more than a commandline login. It's also very nice because it can be mirrored locally if you're doing a bunch of them just by rsyncing a Ubuntu mirror locally then downloading my files and editing them.


 Note: This tutorial is designed so you can copy and paste the text inside the boxes. I don't actually type any of this in and neither should you.


1. Getting the network info

This line gets the Network UUID for xenbr0. If you're using a different bridge you will want to insert it here. Get a list of XCP networks with xe network-list. This network is connected to the outside interface. This tutorial requires there to be a DHCP server on this network answering requests and providing network access to the Internet.

NETUUID=$(xe network-list bridge=xenbr0 --minimal)

2. Creating the VM and setting parameters

Here we create a new template from the Debian Squeeze template. Then we create the VM from the new Debian template, create a network interface and add it to our network from step one. Additional settings are for configuring the install repository and specifying thepreseed file from my site. The last setting turns off VNC so we can watch the install via a text console (very important in my environment).  Even if you can't see all the text below just highlight and paste. The text is there even if it's not visible.


TMPLUUID=$(xe template-list | grep -B1 'name-label.*Debian.*Squeeze.*64-bit' | awk -F: '/uuid/{print $2}'| tr -d " ")
VMUUID=$(xe vm-install new-name-label="Debian Wheezy" template=${TMPLUUID}) 
xe vif-create vm-uuid=${VMUUID} network-uuid=${NETUUID} mac=random device=0
xe vm-param-set uuid=${VMUUID} other-config-install-repository=
xe vm-param-set uuid=${VMUUID} other-config:debian-release=wheezy
xe vm-param-set uuid=${VMUUID} other-config:install-methods=http,cdrom,ftp,nfs
xe vm-param-set uuid=${VMUUID} PV-args="netcfg/get_hostname=Wheezy debian-installer/locale=en_US console-keymaps-at/keymap=us console-setup/layoutcode=us console-setup/ask_detect=false interface=eth0 netcfg/disable_dhcp=false preseed/url= console=hvc0"
xe vm-param-set uuid=${VMUUID} other-config:disable_pv_vnc=1

3. Starting the VM and watching the install

The VM installs without any interaction from the user at this point. It is however, nice to watch it using xenconsole. Once it's done installing it will shutdown.

If you're using XCP 1.0/1.1

xe vm-start uuid=$VMUUID
DOMID=$(xe vm-list uuid=${VMUUID} params=dom-id --minimal)
/usr/lib/xen/bin/xenconsole ${DOMID}

If you're using XCP 1.5b/1.6

xe vm-start uuid=$VMUUID ; xe console uuid=$VMUUID

4. Starting the VM and configuring settings

We need to boot the VM up again and using xenconsole log in to reset the finish configuration.

If you're using XCP 1.0/1.1

xe vm-start uuid=$VMUUID
DOMID=$(xe vm-list uuid=${VMUUID} params=dom-id --minimal)
/usr/lib/xen/bin/xenconsole ${DOMID}

If you're using XCP 1.5b/1.6

xe vm-start uuid=$VMUUID
xe console uuid=$VMUUID

Now that your Debian Wheezy VM is running you can login. The password was automatically set by the preseed file.

  • Username: debian
  • Password: password

Reset the ubuntu users password.  If you want to keep the IP assignment dynamic note the ip address.

5. Shutting down the VM and re-enabling VNC

If you're going to use XVP or some other method of connecting to the VMs direct VNC connection you'll need to enable it.

xe vm-shutdown uuid=$VMUUID
xe vm-param-remove uuid=${VMUUID} other-config:disable_pv_vnc
xe vm-start uuid=$VMUUID

7. Export our VM for safe keeping

Before you start modifying the base Debian Wheezy image you should back it up.

xe vm-export uuid=$VMUUID filename=DebianWheezy-base.xva

Be aware that you may not have enough space on the Control Domain's disk to export it. A good solution (and shorter than explaining how to add disks to the control domain) is to mount an nfs volume and export it there.

mount nfsserver:/share /media/share
xe vm-export uuid=$VMUUID filename=/media/share/DebianWheezy-base.xva

This would mount the NFS share on nfsserver to /media/share. The exported disk would be saved on the NFS share.


Saturday, 18 May 2013 00:56

Fesenjan - a Persian favorite

Recipe originally posted on

I love rich food and I've come to love the mix of a rich sauce with meat over rice. You get this a lot with Thai curries, Indian Curries, Persian Korescht, and Afghan Quormas. This seems to be a very good format and economical too. Spices cost a lot but you don't need many and rice is cheap. Add meat of some sort and you have a great meal for a decent price. Living in the Pacific Northwest means that we have very limited selection of Persian restaurants and even when you do find one it's probably overpriced and low on quality. When I'm in Orange County I always eat at the Caspian Restaurant in Irvine not only for the environment but for the Fesanjoon. 


Fesenjoon (slang for Khoresht-e Fesenjan) is a "stew" made up of a sauce from walnuts and pomegranate syrup/juice. It's wonderfully tart and deep. You add chicken and serve over Basmati rice. Not everyone likes it but it's one of my favorite things to eat.


 I've eaten Fesenjoon at many restaurants and tried making it on many occasions. I've been somewhat successful but my Fesenjoon doesn't taste like the Caspians which is wonderfully smooth without being too sweet. Last week I ran across, a site run by man determined to bring Persian culture to the masses. What brought me to his site was a three part series on Fesenjoon. His cooking style is a bit loose so you have to pay close attention to what he's doing to get similar results. He also doesn't argue about what SHOULD be, it's your food make it how you like it. He seems to be intent on letting a few ingredients talk as apposed to having many ingredients fighting for attention - I agree with this philosophy. 


  1. 2.5 c of walnuts
  2. 1 c of water
  3. 2 c of pomegranate syrup or 1/4 c pomegranate molasses and 1/4 cup sugar*
  4. saffron 
  5. turmeric
  6. one onion diced
  7. 2 lbs of chicken thighs
  8. 2 cups of basmati rice
  9. salt 
  10. oil 



  1. For the sauce place a portion of the walnuts in the blender with a little water and blend. If they're too dry to blend add more water. Keep adding water and nuts until they're coursely ground. You don't want a smooth paste here or you won't taste walnuts.

  2. Once their ground place them in a pot on the stove and cook them on medium-high while stirring to keep from burning

  3. Add pomegranate syrup and sugar - see my note below and turn to medium-low and simmer for 1.5 hours minimum. The sauce will get darker the longer you simmer it

  4. Heat oil in saute pan until hot, add onion and saute until browned. Dark sauces want browned onions, not just golden

  5. Add perhaps a teaspoon of turmeric, then add chicken thighs, brown on both sides and set aside

  6. When the sauce has been simmering for 1.5 - 2 hrs add it to the chicken and simmer again for another 60 minutes. Turn the chicken over on occasion to baste in the sauce

  7. The oils from the walnuts will rise to the top (and be green colored like olive oil) and the chicken will get a bit of a crust from the sauce on it

  8. Let cool and put in the refrigerator - this is a second day dish

  9. The next day put the saute pan back on the heat and warm gently on medium-low for about an hour

  10. Serve over basmati rice


* Note on syrup vs molasses. I bought a large jar of pomegranate syrup made in Slovenia. This looks like a jar of cranberry juice but you can tell the liquid is definitely thicker. It was already sweetened with sugar and two cups seemed about right. Adding sugar made the sauce overly sweet. If you have pomegranate molasses (common) you'll want to put in 1/4 cup and add 1/4 cup of granulated sugar as well. Adjust flavors accordingly.

A lot of times Fesenjan cooked at home and sometimes in restaurants is pasty and/or so tart you can't eat it. The pastiness seems to be from people undercooking it. Don't get impatient and eat it too soon, you'll be sorry. This dish can be eaten same day but it's much nicer the next day.


A couple of things that seem to make a difference 

  1. Put the pomegranate syrup in with the walnuts from the beginning
  2. Don't grind the walnuts too fine so the sauce still has a walnut taste 
  3. Cook the sauce for a long time. It will get darker and richer as time goes on
  4. Add Pomegranate syrup/sugar according to your taste
  5. Don't get crazy with ingredients - you don't need cardemon, coriander or any of that other stuff.



Thursday, 18 April 2013 08:05

Why the GOP should support High Speed Rail

This article is a  response to and article written by David Salaverry,  the founder of the California Conservative Action Group. The article - California High Speed Rail: Part One, Arguments For posted on Fox and Hounds was an interesting slant on California's High Speed Rail project. We take it for granted that liberals will vote for HSR and conservatives won't. David takes a different tone and introduces a few reasons why the GOP should take a lead on building this infrastructure and I've taken it upon myself to add a few thoughts to his words.

Thank you for writing with this perspective David Salaverry.  I'm afraid that if the GOP doesn't start thinking about getting something done they may not be in office anymore. At some point people will see the GOP as the "No you can't have education, No you can't have infrastructure, No you can't have transportation, No you can't live here and work". If you say no to everyone no matter how good your intentions there won't be enough people to vote for you because you're completely ineffective at doing anything but shutting stuff down. The Democrats on the other hand may end up being the "Yes they spent a lot of money but at least some of their stuff worked". It's sad that "some of their stuff worked" would be considered a success but in comparison "none of their stuff worked because they didn't do anything" is a failure to do anything.

At one time in history the GOP was the anti-slavery, pro-American enterprise, pro-infrastructure party. Now they're the "you can't have money unless you're a defense contractor" party. This is a sad state for the GOP party and I think only when they start losing seats in congress will they think about addressing the real issues. You could make the argument that the Democrats aren't doing anything right too but that would be a different topic. Currently we're discussing the GOP and High Speed Rail.

The crazy thing about HSR is that it does work in most nations they build it in. Operating costs are cheaper per passenger mile (7-9 cents) than airlines (12-14 cents) and in those countries the HSR breaks even or even makes money (TGV makes $1.6B a year helping to offset local trains deficit).  I haven't quite figured out why the GOP is so against passenger rail because we're not exactly inventing something new and risky. I've come up some possible reasons. Most are arguments I've heard in forums.

  1. It costs money and spending ANY money is bad. This doesn't make sense because just upgrading the freeways and airports for the increased population for the next 30 years costs the same as the HSR as the cost analyses for California showed.
  2. Trains are old technology, planes are the way to go. This 1950's era thinking is old technology. HSR has proven to be the most efficient for trips from 100 - 500 miles. Just because these folks have never traveled beyond their local Walmart doesn't make it not so.
  3. Environmentalists push trains since they emit less Co2. Is there a negative to lowering Co2 that I don't know about? Even if global warming is a hoax making less pollution is generally considered a good thing.
  4. Putting everyone on public transportation is socialism and we don't want to be Russia. Airplanes are public transportation... we all ride together. With trains you ride in comfort.
  5. We don't like the idea that the government would own the infrastructure instead of private enterprise. Two words - Freeways and Airports. Both are owned by the state and both work wonderfully for their intended purpose.
  6. Liberals like trains and we can't support them. This is how you get nothing done in Congress. At some point people will have had enough and stop electing you. Try to agree on something once in a while. Your career may depend on it.
  7. Only rich people could afford to ride it. Like airplanes and cars. Driving your car one mile costs 55 cents. Only a fool thinks their car costs the price of gas. Everyone has to do maintenance, pay for insurance, tires, depreciation etc... The more you drive it the less your car is worth and the closer you get to having to buy a new one. Driving 500 miles (HSR's maximum) will cost you $250 whereas the train would cost you half that. Even planes are cheaper than driving at that distance. Save your car for driving short distances where it's the best mode of transportation.
  8. It won't go where I want. Trains go between cities and I'm a conservative so I live in the country. This is actually a VALID reason which is why you should be in the planning process. Trains have the ability to stop in smaller towns whereas planes don't. HSR could have an advantage if you live in the country.
  9. I don't want my tax money going toward something I'll never use. Currently about 30% of freeways are paid for directly by people who use them by way of gas tax. The rest comes from taxes collected from people who will never use that freeway. Currently Amtrak's dilapidated network of 70s era trains have an average farebox recovery (ticket sales) of 55% or nearly double that of freeways. Amtrak relies less per passenger on subsidies than freeways. HSR if done right will break even as it does in most countries thus having a lower burden on taxpayers not using it.
  10. I'm all for private companies like airlines providing my transportation, not government inefficienciesIf you think those private enterprises are surviving because they're more efficient you may surprised to learn they're heavily reliant on subsidies.  Airports are run by the government as is the FAA, and the TSA. Most every flight is subsidized to keep the airlines solvent. The subsidy varies depending on which airports the flights use and how popular it is. The average flight out of LAX is only subsidized $9. However, a direct flight from Spokane WA to Irvine CA is subsidized roughly $200. 

I'm sure there are other arguments but I haven't thought of them yet. Comments?

Monday, 08 April 2013 09:33

Install XenWebManager on XCP host

 This tutorial is for installing XenWebManager on an XCP host but should work just as well for installing XenWebManager on any Redhat based hosts (CentOS/Fedora).

It's best to install XenWebManager on another machine or even a VM for security reasons but I could see installing it on a host for simplicity's sake.

You will need to be root in order to follow the instructions below.


1. Download and install the packages


cd ~
tar -xzvpf xenwebmanager_beta_full.tar.gz 
cd xenwebmanager/tools


2. Run XenWebManager

Run xenwebmanager service. The install script above already configures it to auto-start on XCP host bootup. To turn auto-start off - chkconfig xenwebmanager off...

service xenwebmanager start


3. Allow port 8080 through the firewall

iptables -A RH-Firewall-1-INPUT -p tcp --dport 8080 -j ACCEPT
service iptables save
service iptables restart


4. Connect to the XCP Host

Open a web browser and connect to your XCP Host's IP address on port 8080. My host's IP is so I would type into my web browser Address bar. 





















5. Configure xenwebmanager to manage your XCP pool

Once you've connected to XenWebManager  you need to add your server. Click on the "Add Server" button in the top left hand corner and enter your XCP poolmaster's Hostname, Username and Password.


Monday, 08 April 2013 00:51

Install XenWebManager Appliance

Possibly the easiest way to get a graphical management interface running on XCP is to use the Xen Web Manager Appliance. The appliance is a complete Virtual Machine with XenWebManager installed and ready to run. 

These commands should be typed into your XCP cloud host.


1. Download and import the appliance 

This is a very long URL from Sourceforge but it does work if you copy and paste it.

cd ~
wget gunzip xenwebmanager.xva.gz xe vm-import filename=xenwebmanager.xva



2. Verify the appliance and start it 

[root@testcloud1 ~]# xe vm-list name-label=xenwebmanager
uuid ( RO)           : 70f63ce4-b775-22c6-a556-a03a7bea6220
     name-label ( RW): xenwebmanager
    power-state ( RO): halted

[root@testcloud1 ~]# xe vm-start name-label=xenwebmanager


3. Get the IP address of the appliance

Opening a console on the VM is done differently on XCP 1.0/1.1 then it is on XCP 1.5/1.6. Copy and paste these instructions.

On XCP 1.0/1.1 

DOMID=$(xe vm-list name-label=xenwebmanager params=dom-id)
/usr/lib/xen/bin/xenconsole $DOMID


On XCP 1.5/1.6

xe console vm=xenwebmanager


Log with the following credentials

Username: root
Password: xenwebmanager


Get appliance IP address

Once we've logged into our Appliance get the IP address using the ifconfig command.

[root@xenwebmanager ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr B2:5C:69:8C:22:1E  
          inet addr:  Bcast:  Mask:
          inet6 addr: fe80::b05c:69ff:fe8c:221e/64 Scope:Link
          RX packets:2377 errors:0 dropped:0 overruns:0 frame:0
          TX packets:42 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:273930 (267.5 KiB)  TX bytes:7146 (6.9 KiB)

My appliance IP address is  Exit the console by pressing the Control Key and the right square bracket - control ]


4. Connect to the appliance

Open a web browser and connect to your appliance IP address on port 8080. My appliance IP is so I would type into my web browser Address bar. 





















5. Configure xenwebmanager to manage your XCP pool

Once you've connected to your xenwebmanager appliance you need to add your server. Click on the "Add Server" button in the top left hand corner and enter your XCP poolmaster's Hostname, Username and Password.


Monday, 01 April 2013 15:54

Make VMs autoboot

Getting VMs to boot up automatically when an XCP host powers up is fairly easy but not entirely logical. With the old Xen we'd just copy the config file into /etc/xen/auto but XCP/Xenserver has no such directory. Using XCP/Xenserver you have to tell the pool to turn on auto_poweron and you also have to set it for the VM you want to autoboot as well. 


1. Get the Pool UUID number

Use xe pool-list to get the UUID of the pool.  We see the pool UUID is d47b4251-60bc-aa36-c572-c425fdc1b897.

[root@testcloud1 ~]# xe pool-list
uuid ( RO)                : d47b4251-60bc-aa36-c572-c425fdc1b897
          name-label ( RW): 
    name-description ( RW): 
              master ( RO): c76a1ba7-8cdd-45a7-8399-38f242355a43
          default-SR ( RW): 735f9d8e-64eb-71b7-9fd4-47c342c7c9e4


2. Set auto_poweron for the pool 

To set the value of a pool parameter we'll use the xe pool-param-set. Use the pool UUID from the previous step here. We'll be setting the auto_poweron item of the other-config map parameter to true.

xe pool-param-set uuid=d47b4251-60bc-aa36-c572-c425fdc1b897 other-config:auto_poweron=true


3. Get the VM UUID number

Use xe vm-list to get the UUID of the VM you'd like to autoboot. We see the VM UUID is  d2e81fdd-e2cd-b0db-8b0e-e280611eb446. 

[root@testcloud1 ~]# xe vm-list
uuid ( RO)           : d2e81fdd-e2cd-b0db-8b0e-e280611eb446
     name-label ( RW): CentOS6
    power-state ( RO): halted


4. Set auto_poweron for the VM 

To set the value of a VM parameter we'll use xe vm-param-set. Use the VM UUID from the previous step here. We'll be setting the auto_poweron item of the other-config map parameter to true.

xe vm-param-set uuid=d2e81fdd-e2cd-b0db-8b0e-e280611eb446 other-config:auto_poweron=true


5. Test

Test your work by rebooting the host.



Tuesday, 26 March 2013 10:19

Apply hotfixes to XCP 1.6

Xenserver hotfixes are released as patches that need to be applied with patch-pool-apply. Although technically this could work with XCP as long as you got the correct Xenserver patch it's better to apply patches the "new" way using Yum and the default xcp repository.

Any minor software updates to Xen Cloud Platform will be released into the XCP Yum repository at  XCP 1.6 comes with a ready made Yum repository file at /etc/yum.repos.d/xcp.repo although by default the repository is disabled.

To apply updates use the yum update command you have to enable the repo and tell rpm not  to gpg check the packages. Hopefully the latter behavior will change in the future.

yum --enablerepo xcp --nogpgcheck update

If you'd like to enable the repo and turn gpg checking off by default so future updates are easier then change the enabled=0 line to enabled=1. Also add a line to the /etc/yum.repos.d/xcp.repo file to turn gpgchecking off for this ONE repository.


name=XCP 1.6 Updates

I don't know if I recommend enabling by default as I like to do my updates manually. I really have issues with turning gpg checking off but currently the packages are distributed without a gpg signature so if you have it turned on the update will fail. Our only choice is to turn it off.

I've been harping on how I predicted that traditional desktop (Windows dominance) would shrink while mobile marketshare (Linux dominance) would go up and that this is important for us to know so we can focus our education better. 

So far this has been me watching the industry and doing a little hocus pocus foretelling of the future based on a lot of data in a lot of areas. Now other analysts are putting the real numbers down. Businessinsider wrote an article about Apple being impacted by Android but there's an interesting graphic in the middle. As you see over the years the Windows/Intel monopoly has had the mass majority marketshare for quite some time but look what it's done in the last couple of years - halved. Also look at the amount Android has made in the exact same time. 

At this rate Android may be the majority OS in a couple of years. I don't know if I like that or not since I'm not really an Android fan but it shows that Linux is making massive progress in marketshare because the MARKET is changing. This year will be an interesting one as more mobile Operating Systems enter the fray. With Samsung (who makes 25% of all smartphones) is investing heavily in Tizen, Firefox releases Firefox Mobile, Ubuntu releases Ubuntu Mobile and Jolla brings out SailfishOS (outgrowth of Nokia's Meego) it will be an interesting year. All of these operating systems are Linux. If Android loses marketshare it will be to other versions of Linux.

Sunday, 17 February 2013 08:43

Doro Wat - Ethiopian at it's best

Ethiopian food is a treat for us locally. Although Seattle based Ethiopian restaurants can't hold a candle to those in the other Washington (D.C.) they're still pretty decent and it's hard to argue against Ethiopian food in general. However, none of the local restaurants are very near me meaning I need to get in the car and face traffic to have Doro Wat. Now that I can get Injera from Amy's Mercato ( I don't have to do the hard part - make Injera (or source Teff).  To save time/energy I also picked up about half pound of Berbere spices from a local African market. These two time saving measures make Doro Wat possible at home. 

Naturally making both at home would cut the cost of this dish substantially but even buying my Injera/Berbere from local stores this ended up costing about $1 per person per meal.  Following is the preview recipe for Doro Wat. It's not hard but don't get impatient as it takes quite a while. Later I'll formalize it into a real recipe for the recipebook section of Recessionchef.

  • 1.75 cups of ghee (clarified butter)
  • 10 cups of finely chopped red onions
  • 3 tbs chopped garlic
  • 2 tbs chopped ginger
  • 1 cup berbere spices
  • 1 cup water (as needed)
  • 1/2 cup red wine
  • 3 lbs of chicken thighs/legs
  • 4 hard boiled eggs
  1. Place red onions in a dry dutch oven over medium heat and cook while stirring until brown  everywhere (not burnt) Scrape the brown bits off the bottom of the pan periodically. This may take between an hour or as long as two.
  2. Once onions are brown and very soft add the chopped garlic and ginger and cook for an additional 15-20 minutes
  3. Add the ghee and berbere spices and stir occasionally. Cook for another 15 minutes.
  4. Add red wine and cook for another 15 minutes, if the sauce is too thick add 1/4 water
  5. Add Chicken pieces and eggs and cover 
  6. Simmer Wat until chicken is done about 20-30 minutes. 
  7. Bring sauce to desired consistancy by adding water
  8. Serve with Injera