Tom Cox  

Exploring Chicago's Pepper and Egg Sandwich

Posted by Tom Cox
Friday, March 12, 2010

During the Lenten season my thoughts often turn from IT to P&E. P&E, of course, being the infamous Chicago Pepper and Egg sandwich. While Chicago might be known for its Vienna beef hot dog or its Italian beef sandwich, on Fridays during Lent, a different breed of sandwich appears. The Pepper and Egg, in its essential raw form consists of a portion of gently scrambled eggs and fried green peppers placed on a French roll. I don't know if it's just me, but I seem to be having a difficult time finding places that serve the P&E -- especially in the Loop -- where lunchtime dining has suffered in general with a steady influx of corporate chains and the fading away of lunch spots with table service.

However, I did manage to find the sandwich at a handful of places, and I've supplied some notes below.

Keep in mind, I did have to break my golden rule of only patronizing places with table service, but it is Lent, and we're called to make sacrifices.

Cafe' Bionda's Bionda To Go
400 S. Financial Place
Score: A
A popular and tasty spot mostly frequented by the trading community, Bionda serves the P&E as a special for Lenten Fridays only. The egg had a great balance -- not too soggy, not too firm. The peppers were a nice blend of green and red and were grilled but with enough crispness to preserve a bit of the raw pepper taste. The pepper and egg was served atop an extremely fresh Turano roll and with a side of fries. I'll be back!

Boni Vino
111 W. Van Buren
Score: B
One of my favorite sit-down lunch spots in the Loop, Boni Vino just feels like home. Everything there is delicious, and maybe it's my high hopes that influenced my scoring. The P&E was average at best. The eggs were a little soggy and the green peppers were barely cooked. Also, there were so many green peppers, that they just overpowered the sandwich. However, I love this place -- just not so much for the P&E!

Luke's Italian Beef
215 W. Jackson
Score: A-
If memory serves me correctly, Luke's serves the P&E every Friday, not just during Lent. This may go back to the pre-Vatican II days when every Friday was supposed to be meatless. Anyway, the P&E at Luke's was pretty straight up. Eggs and peppers both a tad soggy, but otherwise right in the ballpark. The bread was fresh (important) and I got an order of their excellent fries, a one-pound bag of greasy goodness! Yum!

Portillo's
100 W. Ontario
Score: A
A bit outside the Loop and a well-known chain, Portillo's puts out a surprisingly good P&E during Lent. The egg to pepper ratio is accurate and the consistency is perfect. Also, you can mix things up a little -- like getting your P&E on a croissant or adding onions and cheese. Good stuff!

Rick Sternquist  

Google Apps - Premier vs Standard Editions

Posted by Rick Sternquist
Wednesday, February 17, 2010

At Chicago Technologies, our clients often ask us what's the difference between Google Apps Premier Edition and Google Apps Standard Edition. Here's a quick comparison:

Premier Edition:
  • 24/7 Phone support and 99.9% up-time guarantee.
  • 25GB storage per user without advertisements.
  • Increased security and privacy of data.
  • Unlimited users and groups .
  • Blackberry and Microsoft Outlook interoperability.
  • Client conversions are automated.
  • Virus and spam protection by Postini.
  • Postini archiving at an additional cost.
  • Full administrative and data control.

Standard Edition:
  • No Phone technical support is available. Standard users will have to access the Google Apps forms to resolve any issues. Up-time is not guaranteed with a service level of “best effort”.
  • 7GB storage per user with advertisements.
  • Limited to 50 users and 10 groups.
  • Limited Blackberry and Microsoft Outlook interoperability.
  • Client conversions are manual.
  • Limited administrative and data control.

Chris Fuller  

Invalid or malformed application: check Manifest

Posted by Chris Fuller
Thursday, December 17, 2009

I started building a brand new Silverlight 3.0 Application today and ran into this error message in my browser the first time I ran my new app:

Invalid or malformed application: check Manifest

I did some research and came across this hint:

In human-readable words, this is what fixed it for me:
1. Open the properties of your project.
2. On the first page, open the drop down list of "Startup object".
3. Select the page your project starts with. In my case, changing the name of the namespace broke the startup object.

from this blog post:
http://forums.silverlight.net/forums/t/11452.aspx

This pushed me in the right direction. I remembered that I had changed my initial namespace in my .cs files, but not in the project properties. I changed the default namespace and then selected the correct startup project, (xxx.app where xxx is my default namespace).

Problem resolved.

Lesson learned:
If your startup object is not correct in the project properties window, you will get the dreaded, "Invalid or malformed application: check Manifest" error.

Tom Cox  

ASP.NET Web Services vs. WCF Services

Posted by Tom Cox
Friday, December 11, 2009

The term “web service” is similar to the term “cloud computing” in
that it’s pretty vague, and it can mean different things to different
people. So when I hear someone say we need a “web service that does
x”, I immediately start asking a few clarifying questions:

Is the individual referring to the traditional “.asmx” web service
or the WCF “.svc” web service?

Will it implement a SOAP or a REST architecture?

Is it really a web (http) service or some other type of
communication service, such as a named pipe communication, a tcp
communication, or a MSMQ messaging queue communication?

The answers to these questions help determine whether a web service, a
WCF service, (or something else), should be utilized.
In the next few paragraphs I’ll differentiate a web service from a WCF
service and point you to a nice link that further summarizes the
differences.

The key thing to understand about ASP.NET Web Services and WCF
Services is that they are very similar in implementation and concept,
but that there are some key differences to be aware of.
Both technologies define contracts for passing xml data and both
technologies can leverage SOAP and WSDL concepts and work over the
http protocol.

That’s where many of the similarities end. Windows Communication
Foundation, as its name implies, supports many types of communication
between disparate machines (or between processes on the same machine).
This may seem obvious, but it was especially eye opening to me as I
first used WCF for tcp communication and, later, worked my way
backwards to use it for http web service purposes.

ASP.NET Web Services were Microsoft's first attempts at building
service oriented concepts into the ASP.NET platform.
The core library for ASP.NET Web Services is the XMLSerializer.
Since there are other formats for exchanging data, such as POX and
JSON, WCF’s DataContractSerializer is expanded to accept these types
of data as well.

WCF Services came along after ASP.NET Web Services and it looks to me
like Microsoft saw the value in a service oriented architecture, but
saw some flaws in how ASP.NET Web Services were built.
It appears that they wanted to make sweeping improvements to their
service oriented architecture without breaking the existing code base,
so they built upon the concepts of ASP.NET Web Services, but on a new
platform.

I see this platform as a communication standard launching point for
the next decade, and look forward to the technological innovations
that it will spawn.

The following blog post by Kalyan Bandarupalli goes into more detail
about the specific differences between ASP.NET Web Services and WCF
Services:
http://www.techbubbles.com/wcf/wcf-vs-aspnet-web-services

Labels:

Chris Fuller  

What's the name of that color?

Posted by Chris Fuller
Tuesday, December 8, 2009

I would rather work in WCF, the middle tier and SQL Server. The reality is, when I work with end-users, I often have to work as a designer and get into screen layout and color schemes.

Here's one tool that makes working with colors easier - especially when the user has a named color and you need to find the RGB or Hex equivalent:

Name that color

It's also helpful when you are trying to find a color and Photoshop is not available.

Chris Fuller  

SQL Server 2005 Restore Error: Exclusive access could not be obtained because the database is in use. (Microsoft.SqlServer.Smo)

Posted by Chris Fuller
Friday, December 4, 2009

I do a lot of prototyping, so I am backing up, moving and restoring SQL Server databases a lot. We are using SQL Server 2005.

I recently ran into this error:


I shut down all services and applications using the database, and I still got it. I then noticed that I had a query window open in Enterprise Manager. I closed all of the query windows, tried again and was able to restore successfully.

Hind sight is always 20/20 - duh, the query windows open a connection to the database - but when you work in Enterprise Manager a lot, as I do, it's easy to forget something like that.

Lesson learned.

Chris Fuller  

Source Control Best Practices (Part 2 of 2)

Posted by Chris Fuller
Wednesday, November 25, 2009

The primary purpose of source control is to share a common library of
source across developers and check files in and out of that common
library to enable collaboration.

Most application developers understand the importance of source
control. Unfortunately, I have had the unpleasant experience of having seen
first-hand the perils of not implementing source control correctly. I am sharing my story in the hope it may help you understand source control better and avoid the productivity drain that can occur when your team has to waste time fighting against source control rather than using source control as a valuable development tool.

On one project I was on, the team implemented improper source control.
I tried to help them understand that this was not the proper use of
source control software, but I was a late-comer to the project and
procedures were already established that the team was unwilling to change.

At any rate, I don't know where the team got this theory, but their concept
for source control was that every developer should have their own branch of
source code. The concept was that any one developer should be able to make
changes to any area of the system without holding up any of the other team
members. This was supposed to make our team more agile and efficient.

We ended up having the following results instead:

1. The primary purpose of source control was effectively negated.
Instead of checking in and out of a common library, we each checked
in and out of our own, isolated library.

2. Creating even an interim build was a monumental effort. Bringing our
code libraries together was a painstaking (and manual) task where we sifted
through which changes to apply from each developer. This process took
literally days to complete and often resulted in the introduction of bugs and
issues because it was so difficult to create a good version of the source.

3. Deja Vu all over again. After a common build was eventually completed,
each of us was required to create our own branch from the common source
and we would begin the exercise of being out of sync once again.

Let me give you a quick example:

I have taken a messy module with 800 lines of code
and paired it down to 200 lines of code, in doing so I eliminated 3 redundant
methods entirely. My colleague made a few small changes to his branch of the code,
and checked these changes into his branch. When we go to do the build, the
"build master," the poor developer stuck with bringing all of the various branches
together for our build, looks at both of our versions of source and sees that they
are different. How does this "build master" know which code is correct? She is under time pressure to get the build out, she sees that my version is missing 3 methods, so she decides that the source with the most code is the correct one, starts with that and picks and chooses the differences that appear to make sense to create the version used for the build. When the build is done, and I get the new "master" copy of the source, I look at this module and all of the clean-up work that I did was gone. I either have to blow it off, or do it again.

Each developer should be in control and have responsibility for making sure the
correct source is checked out and checked back in. This should not be left up to
a single developer at the end. No matter how good that developer is, it is
simply too daunting of a task, especially in crunch time, to have to go back
through and make judgment calls about other developer's code.

Needless to say, this process of creating a branch for each developer killed
our productivity, caused in-fighting amongst the project team, and absolutely
killed moral.

In the end, this project was delivered very late, with very few of the
promised features. I attribute most, (if not all), of this project's issues to improper source control procedures.

Please see my previous post for how to use source control and branching effectively.