Saturday, August 6, 2016

The Gluten Free Burger Project

(Updated Tuesday, May 2, 2017 and June 6, 2017)

In 2006, GQ Magazine published "The 20 Hamburgers You Must Eat Before You Die." The restaurants are located everywhere from L.A. to New Haven to Seattle to Florida. We took a road trip that year, and I made a list of all these places. We ate at about half of them.

If we'd bothered to actually read the article, instead of just making the list, we might have noticed that a large part of what makes the burger is the bun. Since we must eat gluten free, and gluten-free hamburger buns were a rarity anywhere in 2006, we had to eat ours without the bun, and we missed half the experience.

Hence, my quest to identify hamburgers you must eat, served by a restaurant on a gluten free bun. Yeah, we can't eat gluten, Yeah, we want to eat our burger on a bun just like you do. Yeah, gluten-free buns are readily available. Yeah, lettuce wraps and corn tortillas do not cut it.

This is a list of restaurants purported to serve a decent burger on a gluten-free bun. We have not eaten at many of them, so now that we've identified a few, we can start checking them out. If you know anything about them, or have an opinion, or know of some that are not in our list, please comment. There is a list of resources at the bottom. I had these criteria for whether or not to list:
  1. They must list the GF bun option on their online menu. 
  2. It is not enough to just be listed on some GF web site.
  3. They must not have bad reviews on any GF web site or any review web site.

We have visited these

1. Smashburger - 300 locations
Our current favorite. A really soft GF bun. Helpful servers. And they have sweet potato fries cooked using a dedicated frier. Good shakes too. It's like fast food, not much ambience.

2. Red Robin - 500 locations
We only had a bad experience once, when they didn't really know how to cook the bun. And they tend to seat us in the bar, when we'd rather watch the children in the larger area. Their sweet potato fries are bottomless but they aren't as crisp as Smashburger's. Our favorites are the bacon guacamole burger and the DBG (with garlic aioli).

3. The Counter Burger - 40 locations, mostly in California
We ate here only once. It was good. We weren't impressed enough to visit again, when there are other places closer.

4. Koa's Seaside Grill - Lahaina, Maui
Many restaurants on Kauai and Maui will work with your gluten allergy. We just asked. The buns aren't on the menu, but they have them. (An exception to the rule.)

5. Gott's Roadside - St. Helena, San Francisco, Napa, Palo Alto
We visited the one in St. Helena when it was known as Taylor's Refresher. It was a lot of fun. The food was all huge. Everyone sits at long tables while the children play on the lawn. Don't know anything about their GF buns.

Update: We visited the Palo Alto location. The burger is big. They made my shake wrong twice before they got it correct.

6.  Armadillo Willy's - 8 locations in the bay area.
I visited the one near Blossom Hill and Almaden one day at lunch time. The burger was huge!

7. The Melt - 18 locations in San Jose, Palo Alto, southern California, Colorado, and Texas.
We went once. It was OK. The burger was nothing to write home about.

8. Scramblz - San Jose. Update 6-6-17: the bun is very soft. You can get side of GF waffles or french toast. Scramblz has a disclaimer that their kitchen is not GF and cross contamination could be a problem. We've never had a problem, but someone more sensitive that we are might get glutened.

9. Lyfe Kitchen - 14 locations in Cupertino, Palo Alto, southern California, Las Vegas, Colorado, Texas, Memphis, and Chicago. We ate at the one in Valencia near Magic Mountain. The bun was crunchy to the touch but soft in the mouth. The Farmhouse Burger is served with bacon and an egg over easy. The meat was cooked to medium, still pink.

10. Manna Cafe in Fresno. We did not have the burger, but the breakfast was wonderful.

11. Hero Certified Burgers in Ontario and Quebec. We ate at the lone outpost in Montreal. This one comes near the top of our list for its locally made gluten free bun with poppy seeds. Most of the other burgers we've eaten use the same off the shelf gluten free bun from a major baker.

12. B Good - 27 locations around Boston. We visited the one on Washington Street, near the State Street T station. The burger and sweet potato fries were tasty. They have some healthy brand of fountain sodas that still met my caffeine needs. Their niche seems to be healthy, locally-sourced food.

We visited these before they had GF buns

13. Santa Fe Bite - Santa Fe, NM
This one is owned by the owners of the Bobcat Bite, which closed. Bobcat was one of GQ's 20. Their burger was ok, but the small restaurant made it difficult. They are in a larger location now. Here is a recent review.


These locations are near us in northern California

  1. Mooyah Burger - Los Gatos, Morgan Hill, Walnut Creek, southern California, AL, AR, CO, CT, FL, IL, LA, MA, MT, NC, NH, NJ, NY, OH, PA, TN, TX, VA, WI, Canada, Mexico, Middle East. Not all locations have gluten free buns, but Los Gatos has it listed.
  2. Moxy Beer Garden - Berkeley
  3. Farm Burger - Berkeley, San Anselmo, North Carolina, and Georgia
  4. Kronnerburger - Oakland
  5. Drake's Brewing Company - Oakland
  6. Fast Food Francais - Sausalito
  7. Saturn Cafe - Berkeley
  8. Bernal Star - San Francisco
  9. BurgerMeister - Daly City, Alameda, San Francisco, Berkeley
  10. Mona's Burgers - Walnut Creek
  11. Broderick Road House - Walnut Creek, Sacramento
  12. Shoreline Coffee Shop - Mill Valley
  13. Moss Beach Distillery - Moss Beach

OK, still on the west coast, at least

  1. Burger Lounge - 20 locations in Los Angeles and San Diego
  2. Blue Moon Burgers - Seattle
  3. Cheeseburger Nation - Las Vegas, 4 on Oahu, 3 on Maui (we saw the one in Lahaina but we did not eat there)
  4. Burgerville - 39 locations in the Portland, Oregon area
  5. Wahlburgers - Las Vegas, FL, MA, MI, NY, PA, SC, Canada
  6. Blazing Onion - 7 locations in the Seattle area

At least some locations west of the Mississippi?

  1. Burger 21 - 20 locations mostly in Florida and Georgia, but also TX, IL, MI, PA, NY, VA, NC, NJ
  2. Culvers - 600 (?) locations in (in order of frequency) Wisconsin, Illinois, Minnesota, Michigan, IN, FL, IA, MO AZ, KY, SD, CO, TX, NE, OH, TN, UT, GA, KS, ND, SC, NC, ID, WY
  3. Cheeseburger in Paradise - FL, SC, VA, MD, NJ, IN, NE
  4. Guru Burgers and Crepes - Sugar Land, Texas
  5. Cafe Abiquiu - Abiquiu, NM
  6. Guru Burgers and Crepes - Sugar Land, TX - and it looks like they have gluten free crepes too!

The east coast or somewhere else far away

  1. The Nomad Hotel - New York
  2. The Little Beet Table - New York
  3. Vinsetta Garage - Berkley, Michigan
  4. Bareburger - 25 locations, mostly in NY and NJ
  5. Dakota Blue - Atlanta
  6. Sprig Restaurant - Decatur, GA
  7. South City Kitchen - 2 locations in Atlanta
  8. Yeah Burger - 2 locations in Atlanta
  9. Mainely Burgers - Cambridge, MA

Closed since this list was first created

  1. Four Burgers - Cambridge, MA

Monday, March 21, 2016

What programming language should I learn next?

The latest programming language rankings came out last month, and the most popular languages have not changed much since last time, nor have they changed much over several years.

When I think about learning a new programming language, I think about several things:
  • How easy is this language to learn?
  • How will I learn the language? In a community college class, online tutorials, or just study the manual?
  • What can I use this language for?
  • What tools does this language require? Can I install it on my computer?
Here is a summary of this information for the most popular programming languages.

LanguageDifficultyUsed forLearn at
JavaScriptEasyWeb clientCollege
JavaMediumGeneral purpose, AndroidCollege
PHPEasyWeb serverCollege
PythonEasyGeneral purpose, scripting, QA, ITCollege
C#DifficultWindowsCollege
C++DifficultGeneral purpose, embeddedCollege
RubyEasyWeb server, scripting, QA, ITOnline
CSSEasyWeb stylesCollege
CEasyGeneral purpose, embeddedCollege
Objective-CDifficultMac and iOSCollege

These languages have a ranking from 1 to 10, but the fact is, they are all very popular languages and no one language is used a lot more than any other language on the list.

JavaScript is used on more than 90 percent of all web pages worldwide. You can use JavaScript to create animations, validate web forms, create web applications that run on data, and exchange data in the background with a server. JavaScript is a very easy language to learn, and you can learn it at almost any community college.

Java is a general purpose language that is used in many embedded systems. Embedded systems are things we don't typically think of as computers, like set-top boxes and electric meters. But Java is probably most famous for programming Android apps. Java is not too easy to learn, but it is not super hard either. You can learn it at most community colleges and some universities.

PHP is used to create web servers that can access SQL databases. It is the most widely used web server language, being the language of choice for about 70 percent of web sites worldwide. It is easy to learn. You can take a class at several community colleges.

Python is one of the easiest languages to learn. It is used a lot for IT scripting. You can learn it at many community colleges.

C# is used to program Windows and Windows Phone applications in the .NET framework. It is a hard language to learn. Some community colleges offer classes.

C++ is an older general purpose language. It is used a lot for embedded systems programming (see above). C++ is hard to learn. Many community colleges offer classes, and some universities.

Ruby is an easy scripting language. It is used in many of the same applications as Python, but the Ruby on Rails framework lets you set up a web server quickly without having to learn PHP and Apache. For that reason, a lot of startup companies use it to quickly set up their web sites. But later, they will switch back over to PHP for the long term. Ruby is one of the few languges that is rarely offered as a college class. You'll have to buy a book or take an online tutorial. Ruby is an easy language to learn, but setting up Ruby on Rails is difficult.

CSS is the language for making web site styles. I'm surprised it is on this list. It is important for making web sites, but it is not a true programming language. You can learn CSS as a part of most HTML classes in college.

C is an older version of C++ that is not object oriented. It is a very fast and powerful language, easy to learn, but also dangerous. It has many features that only experienced programmers should use, but beginners try it anyway. It is mostly used in embedded systems that must work very quickly, "in real time." You can learn C as a part of a C++ class in college.

Objective-C is the language for writing Mac and iOS apps in Xcode. Until two years ago, it was the only option for writing Apple apps, which explains its wide use. Some colleges offer Objective-C classes, but most colleges are switching over to the newer Swift language. You can find a Stanford class in Objective-C and Swift online, but they expect you to be a smart Stanford student.

What about other languages?

Swift is Apple's replacement for Objective-C. It is much easier to learn than Objective-C. But Swift hasn't yet caught up with Objective-C because it has some idiosyncrasies and it is missing a few features. Also, programmers have been using Objective-C for many years, but Swift has not been available that long yet.

SQL, particularly MySQL, is not on this list but it ought to be. MySQL is a language for accessing the most common form of database. It is used a lot with PHP. So it ought to rank up there almost as high as PHP. The reason it is missing from this list is because of the way the data was gathered.

Perl is a popular language that has been losing ground to Python and Ruby, because they all do similar things but Python and Ruby are much easier than Perl.

Go (or Golang) is a new language from Google that is easy to use, but hasn't really found its niche yet.

Groovy is a new language that combines the best of Java and the scripting languages like Python. It uses Java syntax, but it can be run as a script without needing a Java compiler.








Wednesday, February 10, 2016

The Software Development Process

Requirements

It starts with the customer telling you what they want in the software project. The customer might be a paying customer. Or it might be another department within your company, your boss, or the instructor in your class.

It is important that the customer, whoever they are, tell you clearly what they are looking for. The main avenue for communicating this information is the requirements document. This is a written formal document that lists everything the customer is looking for.

The communication of the requirements document is usually followed up with a face-to-face meeting to settle details and verify there are no misunderstandings.

Specification

You or your company will then reply to the requirements document with another document called the specification. The specification will list all the details about how you will accomplish the customer's requirements. The specification will usually be created with conferences and meetings, because it must be detailed and specific; it is rare that one single person knows all the details about design, coding, testing, pricing, customer contact, and so on. Those functions are usually split up among different departments. So the specification document may require a bit of coordination.

The customer will then review the specification and sign off on it once they believe it sufficiently handles all the details they require.

Coding

Of course, someone must code the customer's final product. Traditionally, coding does not start until the specification document has been signed off. In the modern world of technology, this rarely works. Instead of proceeding neatly from step to step in this process, we frequently work together on all steps at the same time. All modern companies like Google and Facebook work this way. You can tell if you are looking at an older or more traditional company because they want you to know about SDLC or Software Development Life Cycle. You can tell if you are looking at a more modern company because they are looking for things like Agile.

In Agile programming, there may be a lot of back-and-forth between requirements, specification, and coding. Because of this, the requirements may change while you are in the process of coding. So you have to be ready to change plans at a moment's notice without complaining. This is why the process is called Agile (able to change direction quickly).

Testing

Every software product must be tested. Larger companies usually devote whole departments to nothing but testing. This is an important part of the software process. Without it, you may release a product that has bugs, and this will give you a bad reputation. If your product is not fully tested, it may get bad reviews in the iTunes store (or Google Play) and other potential buyers may decide not to try it.

Maintenance

This can easily be the longest part of the software process, because maintenance can last many years. Every time Apple changes Swift or Xcode, or the libraries, or a new product comes out (iPad Ginormous?), you may have to change things in your code. Also, buyers will report bugs in your code, and request new features.

So it is important that you write your code clearly, with comments, so next year, when you are trying to fix a bug, you can remember how your own code works. You'd be surprised how easy it is to forget what you were doing after you've not looked at your code for a while.