Thursday, December 30, 2010

VoIP - the details, and how to do it


(Posted now even with some TBDs in it - just in case I never get back to it)

We have now been using "do it ourself" Voip (i.e. not something we buy and pay money from directly from our phone or cable company), and are very happy indeed. Since while we have done this we have several friends who have gone "cell phone only", and mentioned that they don't have home service anymore because they couldn't justify the cost - well, this post is for you, guys.

First, a summary of costs - rather than explain all of the possibilities, I will simply explain what we did, which is a pretty good place to be given all the obsession I applied to it. I did my homework. With the system described below, your monthly phone cost will be about $3.50 per month plus $.02 per minute (outgoing or incoming) to US and Canada. And that includes all the fees which in this case is just a 911 surcharge of about a dollar per month. You use your standard phone wiring and standard house phones - indeed, if you transfer your old number (if you currently have standard phone service), you can do it such that your family didn't even know anything changed. (Also, although I don't think this is useful to most people, if you only need an outgoing number, (want to be able to place calls from your home phone, but still use your cell phone to receive them), then your only monthly cost will be the $.02 per min.

Also note that compared with some solutions, the method I describe here does not use your computer, and indeed your computer does not even have to be turned on for the telephone to operate. And voicemail is handled "in the cloud" by the VIOP provider, not by your computer.
First, the things you need before you start - you probably have all of them:
  • You should already have some form of high speed internet which can reliably support at least 80Kbps traffic both upload and download speeds. A cable or DSL (phone line) modem will do it - satellite systems probably won't work to well, due to voice delays.
  • Your cable or DSL modem should be on around the clock, regardless of if your computer is on. For most this will not be a problem.Most are wired this way anyways.
  • You may or may not have a router / firewall. If you don't have one and don't need one, that is OK - the ATA you are going to buy will actually double as a hardware firewall. If you do, well, things will work just fine.
  • You can test your computer connection by going to this test link. I tend to get scores in the 4 to 4.2 range, and can report very good call quality.
Then, you need to do the following things:
  1. Get an account with a VoIP provider. The provider I selected is http//:www.callcentric.com, because they offer a "pay as you go by the minute", which is much cheaper for our usage pattern, while still allowing transitions to "unlimited" plans at a competative price (if you use, say over about 1000 minutes per month). We are very happy with their customer service, etc.
  2. From callcentric, buy a incoming telephone number. This is a number that can be called by any analog (or VoIP) phone in the world (or VoIP accounts, for that matter). These cost $1.95 per month, and offer incoming calls at 1.8 cents / minute. You will probably want to transfer over your existing number, and in most areas this is possible. However, I would suggest doing it in two steps, which lets you evaluate things first before dropping your exisiting phone service - get a "new" number for your area, play with it, then later change it into your (transferred) home number. One caveat about VoIP, at least with callcentric: you probably won't be listed in your local phone book. I think you can get listed in the national 411 database, anywho, etc, but you will probably be dropped from the local phon company white pages, because... you're not paying them any money. Anyways.... some people pay extra money not to be listed anyways.
  3. Buy an Analog Telephone Adaptor (ATA). I'll save you all the work (I first made a wrong decision) - get a Grandstream HT-502, even if you don't need all of its features. This adaptor has one feature you DO want, which is what is called "flexible dialing plan setup" - something the cheaper Grandstreams don't have. This box will cost you about $47 with shipping - I bought mine from Telephony Depot.
Once you have this all, do the following - note that only at step 7 do you change your current phone connection - you can fully test the system on a standalone telephone until you are ready to changeover. You will probably have to disrupt your computer system while you configure the ATA:
  1. Check to ensure your callcentric account is in order, and that you have both incoming and outgoing service. If you want, you can do a "software only" test, and install a "softphone" on your PC (see http://www.callcentric.com/support/device/xten/softphone) and test the system using a USB headset before you even connect up the ATA.
  2. Connect the ATA into the system. I suggest putting this box between your cable/DSL modem and your router (if you have one) or computer. You do this by plugging the cable modem into the WAN port on the ATA. For now, if you have one, leave your router disconnected from the ATA, and plug your computer's ethernet port into the LAN side, at least until you have the device configured properly. For now, don't hook to your overall telephone system - just plug any plain telephone into it for testing.
  3. Setup your ATA for the very first time. This is a bit complicated, and will require some patience, but you will only have to do it once. The HT-502 manual provides some reference material, and Callcentric provides standard instructions for configuring a HT-486 (a smaller brother of the HT-502) here but instead I would suggest following my detailed setup instructions - since your computer may or may not work on the web during configuration, I suggest printing them out.
  4. Note on step 3: as part of my listed configuration, I changed the default IP address that gets assigned to the LAN port - from 192.168.2.1 to 193.169.2.1. Once this is done, you will have to go to the 193.169.2.1 address. This change seemed necessary to make it work with at least my router.
  5. After configuration, verify that you can indeed place calls, receive calls and that you are happy with everything. Now it is time to get your computer network up and running (if you have a router - if you have only one computer, skip this step). Do this by disconnecting the PC from the LAN port and plugging your routers WAN input into it. Then connect your computer back into the router port it was originally connected to.
Now everything is working fine, you have a single phone connected to your ATA, which can place calls and accept calls on the incoming number you bought. At the same time, if you still have phone service from your telephone company, you haven't broken anything either, since you haven't tied this into the house. Evaluate with your single phone as long as you want.

Eventually you will want to switch over your old telephone number (optional). To do this, you contact Callcentric and tell them you want to transfer your old number to the inbound number you purchased from them. It is going to take several weeks for this to actually happen, though - communications between the companies, including your old company who is not going to rush to lose you as a customer. Eventually you will be informed that your number is indeed switched over Note that at this time, your prior phone service is now disconnected.

Now the final step is to change your house telephone system to your ATA, instead of the phone company. To do this, do as follows:
  1. Disconnect the phone wires at the entry to your house (if your phone company has not already done so). Once this is done....
  2. Using a telephone extension cable, plug the telephone jack on the ATA into your house telephone jack - the ATA is now functioning as the phone company, and driving your houses wiring, including all attached phone extensions.
  3. Test it using your standard house phones, and you are done. Enjoy saving $30-40 per month, while having a richer set of features to boot.

Detailed configuration of a Grandstream HT-502 for home VIOP use

This entry relates specifically to my VIOP post, and starts in the middle of things. To anyone else, don't expect it to make sense.

First step is to get your computer web browser talking to the Grandstream ATA. The following excerpt is from the HT-502 manual:

ACCESS THE WEB CONFIGURATION MENU
The HT502 HTML configuration page can be accessed via LAN or WAN ports.
• FROM THE LAN PORT:
1. Directly connect a computer to the LAN port
2. Open a command window on the computer
3. Type in “ipconfig /release”, the IP address etc becomes 0
4. Type in “ipconfig /renew”, the computer gets an IP address in 192.168.2.x segment by default
5. Open a web browser, type in the default IP address of the LAN port. http://192.168.2.1. You
will see the log in page of the device.

The login using the default password "admin". This will bring you to a set of 5 long, complex setup pages. Here are the settings I remember changing, although just in case I will also append my full configuration page for reference at the end of this post:

STATUS page: nothing to be configured here, but a good page to reference to see if things are working.

BASIC SETTINGS page:
  • End User Password: change if desired (but don't forget it!)
  • Device Mode: NAT router
  • WAN side HTTP: suggest keeping disabled, keeps hackers out of your ATA
  • LAN DHCP Base IP: 193.169.2.1 (or some other value) - needed this to work with my router, perhaps not required. Remember this address, as this is what you will need to access the device from your web browser after it is entered
  • Port forwarding - used to punch holes in your firewall for remote access, etc. Many should leave this blank. An example setting (for windows remote desktop, for instance) would be to forward WAN port 3389 to 193.169.2.100 LAN port 3389 for TCP. Note that the LAN IP should be consistent with the value you put in the LAN DHCP and Base IP values.
ADVANCED SETTINGS page:
  • I don't think I needed to make any changes here
FXS PORT 1 page:
  • Account active: Yes
  • Primary SIP server: callcentric.com
  • Outbound proxy: callcentric.com
  • SIP user ID: Here insert your callcentric SIP ID (which is not the same as your incoming telephone number). Mine begins with 17772, and is a 11 digit number
  • Authenticate ID: Same as the SIP user ID
  • Authenticate password: your callcentric password
  • Name: Fill in what you want, optional. This is not what peoples caller ID will display.
  • DNS Mode: SRV
  • User ID is a phone number: Yes
  • SIP Registration: yes
  • Unregister on Reboot: no
  • Outgoing call without registration: No (this will keep you from getting a dial tone if things are not working, highly recommended).
  • Enable Call Features: yes
  • Distinctive ring tone: I didn't play with this, but this lets you change rings for special numbers, etc.
  • Dial plan: this is what gets you 11 + 7 dialing, e.g. 1(AAA)NNN-MMMM and just NNN-MMMM for "local" calls. You will have to customize the following string (between the angle brackets, which should not be included: <{^1900x. |<=1AAA>[2-9]xxxxxx|1[2-9]xx[2-9]xxxxxx|011[2-9]x.|[3469]11|*x.}>, where AAA is your area code. Also, if you are crazy and want to be able to place calls to 900 numbers, delete the first part, e.g. ^1900x. |
  • Preferred vocoders: This probably changes with time, but the following settings work for me, with each choice separated by commas: G729, G723, iLBC, G726-32, PCMU, PCMA, AAL2-G726-40, G729.
FXS PORT2 page: Account Active = No, unless you have a second line.

In case I forgot something, here is my reference dump of my config. pages, with some private values deleted:

End User Password: (purposely not displayed for security protection) Web Port: (default for HTTP is 80) Telnet Server: No Yes IP Address:
dynamically assigned via DHCP
DHCP hostname: (optional)
DHCP domain: (optional)
DHCP vendor class ID: (optional)
use PPPoE
PPPoE account ID:
PPPoE password:
PPPoE Service Name:
Preferred DNS server: . . .
statically configured as:
IP Address: . . .
Subnet Mask: . . .
Default Router: . . .
DNS Server 1: . . .
DNS Server 2: . . .
Time Zone: Self-Defined Time Zone: (For exampe: MTZ+6MDT+5,M4.1.0,M11.1.0) Language: NAT/DHCP Server Information & Configuration: Device Mode: NAT Router Bridge NAT maximum ports: (range: 0 - 4096, default is 1024) NAT TCP timeout: (range: 0 - 3600, default is 3600) NAT UDP timeout: (range: 0 - 3600, default is 300) Uplink bandwidth: Downlink bandwidth: Enable UPnP support: No Yes Reply to ICMP on WAN port: No Yes (Unit will not respond to PING from WAN side if set to No) WAN side HTTP/Telnet access: No Yes (WAN side access will be rejected if set to No) Cloned WAN MAC Addr: (in hex format) Enable LAN DHCP: No Yes LAN DHCP Base IP: (base IP for the LAN port, default is 192.168.2.1) LAN DHCP Start IP: (default is 100) LAN DHCP End IP: (default is 199) LAN Subnet Mask: (default is 255.255.255.0) DHCP IP Lease Time: (in units of hours, default is 120 hours or 5 days) DMZ IP: Port Forwarding: WAN port LAN IP LAN port Protocol
WAN port LAN IP LAN port Protocol
WAN port LAN IP LAN port Protocol
WAN port LAN IP LAN port Protocol
WAN port LAN IP LAN port Protocol
WAN port LAN IP LAN port Protocol
WAN port LAN IP LAN port Protocol
WAN port LAN IP LAN port Protocol

================== ADVANCED SETTINGS PAGE ======================

Admin Password: (purposely not displayed for security protection) Layer 3 QoS: (Diff-Serv or Precedence value) Layer 2 QoS: 802.1Q/VLAN Tag 802.1p priority value (0-7) STUN server is : (URI or IP:port) Keep-alive Interval: (in seconds, default 20 seconds) Use STUN to detect network connectivity: No
Yes, total STUN response misses to restart DHCP (mininum=3) Firmware Upgrade and Provisioning: Upgrade Via TFTP HTTP HTTPS
Firmware Server Path:
Config Server Path:

Firmware File Prefix: Firmware File Postfix:
Config File Prefix: Config File Postfix:

Allow DHCP Option 66 to override server:
No Yes

Automatic Upgrade:
No Yes, every minutes(60-5256000).
Yes, daily at hour (0-23). Yes, weekly on day (0-6).

Always Check for New Firmware at Boot up
Check New Firmware only when F/W pre/suffix changes
Always Skip the Firmware Check Authenticate Conf File: No Yes (cfg file would be authenticated before acceptance if set to Yes) Firmware Key: (in Hexadecimal Representation) SSL Certificate:
SSL Private Key: SSL Private Key Password: System Ring Cadence: Call Progress Tones:
Dial Tone:
Ringback Tone:
Busy Tone:
Reorder Tone:
Confirmation Tone:
Call Waiting Tone:
Syntax: f1=val[,f2=val[,c=on1/off1[-on2/off2[-on3/off3]]]];
(Frequencies are in Hz and cadence on and off are in ms) Lock keypad update: No Yes (configuration update via keypad is disabled if set to Yes) Disable voice prompt: No Yes (voice prompt is disabled if set to Yes) Disable Direct IP Call: No Yes (direct IP call is disabled if set to Yes) NTP Server: (URI or IP address) Syslog Server: Syslog Level:

===================== FXS PORT 1 setup ===========================
Account Active: No Yes Primary SIP Server: (e.g., sip.mycompany.com, or IP address) Failover SIP Server: (Optional, used when primary server no response) Outbound Proxy: (e.g., proxy.myprovider.com, or IP address, if any) SIP transport: UDP TCP TLS (default is UDP) NAT Traversal (STUN): No No, but send keep-alive Yes SIP User ID: (the user part of an SIP address) Authenticate ID: (can be identical to or different from SIP User ID) Authenticate Password: (purposely not displayed for security protection) Name: (optional, e.g., John Doe) DNS Mode: A Record SRV NAPTR/SRV User ID is phone number: No Yes SIP Registration: No Yes Unregister On Reboot: No Yes Outgoing Call without Registration: No Yes Register Expiration: (in minutes. default 1 hour, max 45 days) SIP Registration Failure Retry Wait Time: (in seconds. Between 1-3600, default is 20) local SIP port: (default is 5060 for UDP and TCP; 5061 for TLS) local RTP port: (1024-65535, default 5004) Use random port: No Yes Refer-To Use Target Contact: No Yes Transfer on Conference Hangup: No Yes Remove OBP from Route Header: No Yes Support SIP Instance ID: No Yes Validate Incoming SIP Message: No Yes Check SIP User ID for incoming INVITE: No Yes (no direct IP calling if Yes) SIP T1 Timeout: SIP T2 Interval: DTMF Payload Type: Preferred DTMF method:
(in listed order) Priority 1:
Priority 2:
Priority 3: Send Hook Flash Event: No Yes (Hook-Flash will be sent as a DTMF event if set to Yes) Enable Call Features: No Yes (if Yes, call features using star codes will be supported locally) Offhook Auto-Dial: (User ID/extension to dial automatically when offhook) Proxy-Require: Use NAT IP: (used in SIP/SDP message if specified) Distinctive Ring Tone: used if incoming caller ID is
used if incoming caller ID is
used if incoming caller ID is
Disable Call-Waiting: No Yes Disable Call-Waiting Caller ID: No Yes Disable Call-Waiting Tone: No Yes Disable Visual MWI: No Yes Ring Timeout: (10-300, default is 60 seconds) Delayed Call Forward Wait Time: (Allowed range 1-120, in seconds.) No Key Entry Timeout: (in seconds, default is 4 seconds) Early Dial: No Yes (use "Yes" only if proxy supports 484 response) Dial Plan Prefix: (this prefix string is added to each dialed number) Use # as Dial Key: No Yes (if set to Yes, "#" will function as the "(Re-)Dial" key) Dial Plan: [2-9]xxxxxx|1[2-9]xx[2-9]xxxxxx|011[2-9]x.|[3469]11|*x.}" maxlength="1024" size="60" name="P4200"> SUBSCRIBE for MWI: No, do not send SUBSCRIBE for Message Waiting Indication
Yes, send periodical SUBSCRIBE for Message Waiting Indication Send Anonymous: No Yes (caller ID will be blocked if set to Yes) Anonymous Call Rejection: No Yes Special Feature: Session Expiration: (in seconds. default 180 seconds) Min-SE: (in seconds. default and minimum 90 seconds) Caller Request Timer: No Yes (Request for timer when making outbound calls) Callee Request Timer: No Yes (When caller supports timer but did not request one) Force Timer: No Yes (Use timer even when remote party does not support) UAC Specify Refresher: UAC UAS Omit (Recommended) UAS Specify Refresher: UAC UAS (When UAC did not specify refresher tag) Force INVITE: No Yes (Always refresh with INVITE instead of UPDATE) Preferred Vocoder:
(in listed order) choice 1:
choice 2:
choice 3:
choice 4:
choice 5:
choice 6:
choice 7:
choice 8: G723 rate: 6.3kbps encoding rate 5.3kbps encoding rate iLBC frame size: 20ms 30ms iLBC payload type: (between 96 and 127, default is 97) AAL2-G726-16 payload type: (between 96 and 127, default is 100) AAL2-G726-24 payload type: (between 96 and 127, default is 99) AAL2-G726-32 payload type: (between 96 and 127, default is 104) AAL2-G726-40 payload type: (between 96 and 127, default is 103) G729E payload type: (between 96 and 127, default is 102) VAD: No Yes Symmetric RTP: No Yes Fax mode: T.38 (Auto Detect) Pass-Through Fax tone detection mode: Caller Callee Caller or Callee Jitter buffer type: Fixed Adaptive Jitter buffer length: Low Medium High SRTP Mode: Disabled Enabled but not forced Enabled and forced SLIC Setting: Caller ID Scheme: Polarity Reversal: No Yes (reverse polarity upon call establishment and termination) Loop Current Disconnect: No Yes (loop current disconnect upon call termination) Loop Current Disconnect Duration: (In 100-10000 milliseconds range, default is 200) Hook Flash Timing: In 40-2000 milliseconds range, minimum: maximum: On Hook Timing: (In 40-2000 milliseconds range, default is 400) Gain: TX RX Ring Tones (Syntax: c=on1/off1-on2/off2-on3/off3; [...]) Ring Tone 1: Ring Tone 2: Ring Tone 3: Ring Tone 4: Ring Tone 5: Ring Tone 6: Ring Tone 7: Ring Tone 8: Ring Tone 9: Ring Tone 10:

Thursday, November 25, 2010

Some obsessive thoughts on knives

This is another one of those silly obsessive posts that matter little to anyone, but which can perhaps save some time for other obsessives like myself some day.

Several weeks ago, for some reason (Nina Burgess doesn't know, but its her fault), I started reviewing my kitchen knife technique, mostly from reading and watching several good youtube videos on the subject.

One thing led to another, and in my obsessive way I found myself researching chef's knives - in this case, 8" chef's knives. Now, we have a very excellent set of knives indeed (some Henckels 4-star knives my wife claims I married her to get...) - but the chef's knife was only 6", which while good for my wife with her smaller hands, was a bit small for me when I started holding the knife correctly (which actually has your thumb and forefinger over the blade and not the handle). So... open the search for a knife. This I obsessed over for a while, and finally decided on a knife that works for me at an affordable cost, yet which can work well with my wife's high-bred knives. This blog is about the conclusions I am starting to come to after reflection. Consider it FWIW.

Knives are one of those product areas that you can spend from very little (buy them at your local supermarket) to a whole lot, over $200 per knife. In such a market, the term "you get what you pay for" is only somewhat true. I feel the price vs. quality curve is monotonically increasing, but there is probably quite a "knee to the curve", and there are some good deals out there to be had. Let's think about the process of finding that knee.

First - romance put aside (and knives, often being wedding presents have lots of romance associated with them), a knife is a knife. They are all sharp, and they all cut - most of them quite well. So we are already to the second or third order effects before we have even started.

As I see it, the things worth considering are:
  • The overall type of knife (chef's knife, carving, paring, etc) - I'm not considering that here.
  • The material of the knife. Most people use stainless for obvious reasons, even if traditional iron may cut better. Within stainless there seems to be several grades and hardnesses. At the lower end of the market are the somewhat softer steels. This does not make the knife bad. If the quality of the softer steel is good, it means you will have a knife that is easy to sharpen, but will have to be sharpened more often. For example, I have a number of Chicago Cutlery knives that are very sharp, and very satisfying to sharpen - but... they need to be sharpened (I'm not counting steeling) every 50 uses or so. On the other end of the spectrum are the wonderfully tempered steel knives - such as the Henckels we own. These have a totally different "feel" to them when you use a steel - it feels slipperier and much, much harder. When sharpening or steeling them, they need much more work, and IMHO it is actually harder to get a good edge on them. But.. once you do, it lasts a long time. It is no surprise that professional cooks as a result always favor these knives - and hence why the "professional" knives are also the expensive knives, generally speaking. They also often have someone else sharpen them.
  • For a given type (say, Chef's knife) - the blade profile (the "normal" or long way). With some knifes, such as carving knives, this is a non-topic - they are straight. With chef's knives, you have both French and German profiles. And then the Japanese knives are totally different, much straighter. This is a preference thing - and can be easily researched on the internet, so I won't discuss it here.
  • Straight or serrated - my opinion, forget serrated, expect probably bread knifes. Period.
  • Blade construction -forged or stamped. No doubt, forged is the standard, and the most expensive. It results in a shaped, tapered blade that usually goes fully through the handle. On the other hand, it is not always necessary for a very well-working knife. Once example would be the Victorinox chef's knife, which is stamped, but... gets great reviews and several people thinks actually cuts better than the $150 knives.
  • Blade cross profile - if you look end-on, a given class of knife will have a different profile, and I think this can make a quite a bit of difference. Many of the high-end, forged knives have an evenly tapered profile, from the back evenly thinning to the edge. With this style of profile, you don't have to do much grinding to get the really thin edge, since things were already very thin to begin with. On the opposite extreme, the cheapest stamped knives may be the same thickness all the way, with a hollow-ground (concave) taper at the last 1/4 inch to make the blade thin. I tend to dislike this style, probably not because it is inherently bad, but rather that it tends to be associated with cheap, bad, knives. In the middle, you can have forged knives that taper, but not thin enough at the end. They then "sharpen" them with what appears to be a blunter angle in the last 1/16th inch. My personal opinion - you will regret this every time you stone sharpen the knife, because you will have to grind down a lot of metal, and still probably won't get the 15 - 20 degree angle you want. Take home message - if you are getting a forged knife, look for one that has as little of a "final sharpening" edge as you can within your price point.
Beyond these factors, I think most is style and preference, not cutting ability. I expect that the difference reviewers are finding between the "upper middle" and "high end" knives are more about how well they come factory sharpened and how they "feel" than how they cut.

As for my personal decision (I bought a Calphalon Contemporary 8" chef's knife), and how I came to it - it went like this:
  • Style mattered quite a bit for me - if I didn't buy a Henckel's knife which matched the others we had (and wonderful knives they are), I wanted to get something that was, well, "similar". This also (after great internal debate) tossed out the Victoninox, which I expect would meet the technical requirements well, but just wasn't my style.
  • I wanted a chef's knife with a profile on the "french side of German". That tossed out Wusthof. Calphalon was very similar to the Henckels, perhaps a bit straighter.
  • Material - I know from another knife I have by the same maker the Calphalon is a rather hard steel - it sharpens very much like the Henckels. This works for me, because I have good sharpening equipment and know how to use it. For others that just want a sharp knife - I'm told the Victorinox is softer, but takes a great edge.
  • Cross profile - here I found quite a difference, and I expect this is one area where you get what you pay for in an expensive knife. The Henckels and the Wusthof have great, even tapers - you can't really tell where the edge begins. That's what you get for your $110. The $35 knives are much more variable. The one I picked was "most of the way there", which means that I expect I will need to work a bit more on sharpening, and possibly the knife may have a shorter maximum lifetime - after which the "base blade" will be too wide to taper well. However, this is still likely to be 20 years, and... I can buy three of these knives for the price of one Henckels, so... a trade that works for me.
There, I'm done. Hope this will be useful to someone :-)

Tuesday, June 08, 2010

Colorful cupcakes - powered by kids, some supervision required

This last Saturday, Vika had one of her friends over, bringing the girl inventory temporarily to three. I had recently seen a really cool web site featuring colored cakes, and decided to try them myself, as sort of "practice" for entertaining kids during, I don't know, a sleepover or something.

The method is really simple, and pretty obvious from the pictures - check out the video at the above link for additional details.

Step 1: use a standard white cake mix, making sure you use only egg whites (no yellow).

Step 2: pour the batter into a number of cups. Add quite a bit of gel food coloring (like in the case below, probably 1/2 teaspoon, or ~ 2 ml) to make really saturated colors. Mix with plastic spoons, scraping sides (easier to clean up).

Step 3: Pour into each color in turn foil (prettier, more of a surprise) cupcake cups - the recipe for use made 16 cupcakes. You sort of have to use trial and error, but remember - all your colors should only fill the cup 60% of the way, so, think a dollop the size of a quarter or 50 cent piece.

Bake and eat. OK, if you want, frost to make it more of a surprise - white frosting is most spectacular.

Opening text







Just out of the oven:




In its full glory:

Wednesday, May 12, 2010

Amazing photo page

OK, in this modern age of digital photography, it is becoming easier and easier to find rather amazing photography. But.. in the end, skill still pays.

Browsing the results of photo contest finalists are really interesting, but when a single photographer has soooo many amazing shots, it stands out. Here it is, check out this link:

Monday, April 12, 2010

Diana's Precis Romeo and Juliette

At her current second-grade level, Diana is not a literary giant (yet, at least). Yet, several days back in the car either G or I mentioned Romeo and Juliette in some context or another, and Diana's ears popped up. This was then followed by Diana herself popping up (also typical). What she said, however, was highly amusing to us:

"Oh yeah, I know it! Juliette and Romeo. (pause). They fell in love. And where are they now? (pause) DEAD. (pause) Dead, Dead Dead!! Ha! "