Friday, February 22, 2008

I usually try my luck here on my blogs first when I need help in finding a service that is needed for my company.  So here it goes :-)

I am looking for a phone system for our new offices in Santa Cruz that is not based on regular phones but VOIP.  I looked at Vonage but it was not geared towards business, as you can't have a phone attendant to request pushing a specific extension to reach a department.  I also looked at Packet8, it was a good solution but very expensive as you will have to have a full line for each employee that needs a phone on their desk to make calls, it came out to about $350 per month + $1400 startup fee for 9 phones in the office with a fax line.

They suggested having only 3 phones in the office, one for sales, one in the conference room and one for management, the rest of the team can use the phone in the conference room which sounded lame to me to ask employees to go to the conference room to make a call or use their cell phone. That costs about $185 per month.

Anyone heard of a different company that can make this work for us?

Thanks for your suggestion in advance

Friday, February 22, 2008 7:00:47 AM (Pacific Standard Time, UTC-08:00)  #    Comments [4]   Business | Falafel | Technology  | 
 Friday, February 01, 2008

This week, I have been at two corporations in San Antonio, Texas and Birmingham, Alabama teaching TestComplete 6.0, a SOLID automation testing tool that is gaining extreme momentum and acceptance in the industry.

I completed the training tonight for the Alabama company, they were truly terrific, very nice people and I enjoyed their company for the last few days, while teaching TestComplete 6.0.  It was emotional for me personally as they use Delphi as their main development tool.  Seeing Delphi running on their machine, and how successful their product is, I felt proud!  It has been almost 3 years since I wrote any code in Delphi for any customer but I have to say, every time I see Delphi code or get together with Delphi developers, it always bring a sweet spot to my heart.

I head home in few hours after a long week in airports and teaching every day.

Next week, I head to beautiful SYDNEY, Australia to teach there as well for 1 week, I will try to blog more and keep this blog alive and interesting. 

Cheers!

Friday, February 01, 2008 4:08:22 AM (Pacific Standard Time, UTC-08:00)  #    Comments [1]   Business | Falafel | Life | TestComplete  | 
 Tuesday, November 20, 2007

Falafel is partnering with Microsoft to offer this free half day seminar at the beautiful Saint Claire hotel in downtown San Jose, CA to celebrate the release of Visual Studio 2008, LINQ, WPF, WCF, WF and other exciting technologies.

Party

Please join us on December 10th from 9:00 AM to 1:00 PM
Register on the Microsoft event site ASAP as space is limited.

Charlie Calvert, the C# Community Project Manager will be there to talk about LINQ and Lino Tadros will present the usefulness of the new technologies.
Hope to see you there!
Tuesday, November 20, 2007 1:21:19 AM (Pacific Standard Time, UTC-08:00)  #    Comments [0]   ASP.NET | Business | C# | Conference | Falafel | LINQ | Sharepoint | Technology  | 
 Saturday, October 27, 2007

I just got back yesterday from a week long training sessions at Xerox in Rochester, NY.  I enjoyed my week there.  The weather was great, unexpectedly, and the city was calm with plenty of wonderful people everywhere I went.

TestComplete 6 behaved nicely after its release 3 weeks ago and proved to be a great addition to any quality assurance team worldwide.

Thank you Xerox! and thank you Rochester for a great week!

Saturday, October 27, 2007 10:57:59 PM (Pacific Standard Time, UTC-08:00)  #    Comments [1]   Business | Falafel | TestComplete  | 
 Monday, October 08, 2007

A group of the Falafel team took a well deserved week of vacation together and headed to Puerto Vallarta.  We had a great time and it was great to spend some time with friends and colleagues.  The Falafel team works very hard and parties very hard as well! :-)

74-685

Monday, October 08, 2007 9:28:59 PM (Pacific Standard Time, UTC-08:00)  #    Comments [0]   Falafel | Family | Life  | 
 Thursday, September 27, 2007

Our friends at AutomatedQA just released TestComplete 6.0 on Wednesday September 26th 2007.  Congratulations to the whole team!

I was in Irvine during that time teaching a TestComplete 5.0 class for 3 days.

TestComplete 6 adds significant new features to the award winning testing tool, from testing 64 bit applications, to testing popular 3rd party controls in Winforms and ASP.NET applications, plus improved Web Testing environment.

Kudos and Cheers to the AQ team!

Thursday, September 27, 2007 1:42:41 PM (Pacific Standard Time, UTC-08:00)  #    Comments [0]   Business | Falafel | Technology  | 
 Wednesday, September 12, 2007

If you are like me, having several computers thrown out of your house, in the middle of the street, out of frustration, because of the simple act of wisdom of trying to open a Word or Excel doc inside you Sharepoint 2007 site, welcome aboard!

After several visits to the therapist, sacrificing a duck and Googling the heck out of this issue, I am happy to share that Microsoft released a hot fix to remedy the situation at http://support.microsoft.com/default.aspx/kb/938888

If you are more interested in knowing what really was going on, well, After installing Office 2007, you must have installed another Office 2007 goodie like Sharepoint Designer 2007 or one of the nice new looking Office 2007 application add-ons that changed an important DLL in your office12 folder called OWSSUPP.DLL or as I call it "Satan.DLL".  Unfortunately, the new DLL is incompatible with NAME.DLL which it has to call into.

As a matter of fact, before this patch from Microsoft, the way to hack it was to get OWSSUPP.DLL from any Office 11 installation then run RegServ32 on it (which will fail by the way) (Not really, as it registered correctly, it just felt like reporting a failure to you anyway as a punishment)

Anyway, I LOVE SHAREPOINT, IT IS CONSULTING AND TRAINING HEAVEN :) 

Wednesday, September 12, 2007 12:15:01 AM (Pacific Standard Time, UTC-08:00)  #    Comments [0]   Falafel | Sharepoint | Technology  | 
 Saturday, September 08, 2007

You would think that finding a good web based Help desk for a company is not that big of a deal.  You Google on "Support Help Desk Web Application" and you get enough results that could take up the entire week in research for finding the one that really works.

Well, I made the mistake of choosing a good product from a bad company few months ago.  I researched for nearly a month seven different companies and their products to satisfy our needs at Falafel Software in having a simple ticket based support system on the web that also has a simple knowledgebase system that can help our customers and users find and request help quickly and easily.  Not too much to ask, right?

First of all, I installed all seven products and played with each one for at least 2 to 4 hours.  For some reason the Help Desk industry fell in love with PHP and MySQL long time ago that it is difficult to find a Help Desk out there that is not based on these technologies.  I have nothing against PHP or MySQL, if the product works, great!, I am ready to install and go for it.

I installed PHP 5.2 and MySQL 5, very easy to do especially if you know you way around config files and command line screens.

The truth of the matter is that for $500 I was able to purchase the FULL SupportSuite from Kayako (www.kayako.com) that looked, felt and behaved as the winner between all the products that I researched.  The company is based in India and the product is pretty mature in its third revision.  I implemented the support system for Falafel and released it on the site.  It looked good, worked well and I needed less than 8 hours of work to customize it and configure for the entire staff to go live which is less than I expected.

The problems started to occur when we started using the product.  It was very apparent to the team here that this product is not ready for prime time and that the team in India has never heard of the term "Quality Assurance" based on the reported bugs and forum messages that you could see for yourself at their company's site.

The final experience was 3 weeks ago when Kayako released a new "Stable" update called 3.11 where they broke the product and caused our support system to stop working on the Live Site.  We opened a support ticket with their team as "Critical" and it took a week of ridiculous answers on their system to finally admit that the update has a major problem. Then a second week to come up with a solution, which fixed the original problem and killed the system notification subsystem and corrupted the database. That of course, includes about 25 discussion threads with their team that could not get them to understand the urgency of the matter.  They concluded that the issue was based on my configuration, which was awkward especially after seeing how many people on the forums were having the same problem.

Anyway, the essence of this post is not really to bash any company, that is not my intent, it is however my intent to share with you the fact that it is not enough to look for a good product when you need one, it is also important to spend some time on that company's web site, forums, discussion groups to see how they treat their customers and how they release products and revisions.

For us, we decided that this product is not at par with what we need to support our customers best.

So I ask you, do you know of a product that would allow submission of Support tickets online and also allow for a Knowledgebase based on categories and finally it must have a good notification system for staff and customers.

Thanks for any input

Saturday, September 08, 2007 1:20:01 AM (Pacific Standard Time, UTC-08:00)  #    Comments [3]   Business | Falafel | Technology  | 
 Saturday, August 25, 2007

I am very excited to be asked to speak at this year's DevReach conference in Sofia, Bulgaria on October 1st and 2nd. I am presenting two sessions this year, the first is "LINO on LINQ" and the second one is "Silverlight, Flash on Steroids".

I am traveling with my colleague, John Waters (Falafel CTO), who will be speaking there as well on "Creating a billion dollar ERP system using Telerik technology".

Spending some time with the Telerik team in Bulgaria and some of the speakers I got to know through speaking at conference worldwide like (Steve Forte, Richard Campbell, Chad Hower and Brian Noyes) will be a treat!

 

DevReach logo

Saturday, August 25, 2007 6:54:26 PM (Pacific Standard Time, UTC-08:00)  #    Comments [0]   Business | C# | Conference | Falafel | LINQ | RadControls | Technology | Telerik  | 
 Friday, August 24, 2007

If you ever wondered what does it mean to have a Team Collaborate, take a look at the picture below where Adam Markowitz (ActiveFocus Chief Architect) is debugging some C# code while Jordan Halls (Executive sales manager) is asking for a customer requested feature, in the mean time, Mike Saad is holding the phone for Adam to reply to a customer's support call.  What a Team! :-)

image

Friday, August 24, 2007 9:41:26 PM (Pacific Standard Time, UTC-08:00)  #    Comments [0]   ActiveFocus | Falafel | Humor  | 
 Tuesday, August 21, 2007

Anonymous delegates are a very neat and useful feature in C# 2.0. The idea of keeping your code tight and simple without having to move all over your code to understand what it is supposed to be doing is always a welcomed feature in today's complex coding endeavors.

Let's take for example a simple class of Mediterranean Food below that just declares a name and description properties:

 
1 public class MediterraneanFood 2 { 3 private string _name; 4 public string Name 5 { 6 get 7 { 8 return _name; 9 } 10 } 11 12 public string Description 13 { 14 get 15 { 16 return _description; 17 } 18 } 19 20 private string _description; 21 22 23 public MediterraneanFood(string name, string description) 24 { 25 _name = name; 26 _description = description; 27 } 28 }

The goal of the code I am going to be writing below is to create a list of Mediterranean foods and then search the list for a specific food.  As you will see the code below, I tried to show how it is done in 3 different ways (Very old, old and Anonymous Delegates way) just to give you an idea of what the difference is and the code changes needed to bring the code to the 21st century :-)

In the first way (Very Old) we just go through the list using foreach to find the specific food we are looking for.  What's the fun in that! :-)

The second way (Old) I declared a delegate called "OldFindFood" and then in the code we pointed to that delegate via a predicate (type of a delegate) and let the delegate do the search for us.  Problem here of course is the meat of what it is supposed to do is far away from where it is being used in the code.

Finally, I used an Anonymous Delegate which does not need any of the previous code.  The anonymous delegate is declared on the fly and implemented right after the declaration making easy and simple to understand what the intent of this code supposed to be doing.

Have fun, let me know if you have questions or if you have a different opinion.

1 private static bool OldFindFood(MediterraneanFood foodToFind) 2 { 3 return ("Kabob" == foodToFind.Name); 4 } 5 6 private static void ShowFood(MediterraneanFood food) 7 { 8 Console.WriteLine("Name: {0} Description: {1}", 9 food.Name, food.Description); 10 } 11 12 static void Main(string[] args) 13 { 14 15 List<MediterraneanFood> mediterraneanFoods = new List<MediterraneanFood>(); 16 mediterraneanFoods.Add(new MediterraneanFood("Falafel", "Made to Order!!")); 17 mediterraneanFoods.Add(new MediterraneanFood("Kabob", "Meat on a skewer")); 18 mediterraneanFoods.Add(new MediterraneanFood("Babaganoush", "Eggplant dip")); 19 mediterraneanFoods.Add(new MediterraneanFood("Dolmas", 20 "Stuffed grape leaves, with meat")); 21 22 23 MediterraneanFood foundFood; 24 25 // -- Very Old -- 26 Console.WriteLine("\nVery old:"); 27 foreach (MediterraneanFood food in mediterraneanFoods) 28 { 29 if (food.Name == "Kabob") 30 { 31 ShowFood(food); 32 } 33 } 34 35 // -- Old -- 36 Console.WriteLine("\nOld:"); 37 38 System.Predicate<MediterraneanFood> myPredicate = 39 new Predicate<MediterraneanFood>(OldFindFood); 40 foundFood = mediterraneanFoods.Find(myPredicate); 41 ShowFood(foundFood); 42 43 // -- Anonymous Delegate -- 44 Console.WriteLine("\nAnonymous Delegate:"); 45 List<MediterraneanFood> foods = 46 mediterraneanFoods.FindAll(delegate(MediterraneanFood foodToFind) 47 { return (foodToFind.Description.ToLower().Contains("meat")); }); 48 foreach (MediterraneanFood food in foods) 49 { 50 Console.WriteLine(food.Description); 51 } 52 53 Console.ReadLine(); 54 } 55 }
Tuesday, August 21, 2007 10:59:15 AM (Pacific Standard Time, UTC-08:00)  #    Comments [2]   ASP.NET | C# | Falafel | Technology  | 

My dear friend Bary Nusz is visiting from Texas these couple of days attending some WPF, Expression Blend and Silverlight training.  He is staying with me these few days and tonight he decided to make a deployment for one of our major customers, but in style :)  I could not help but record his fancy life style while deploying a multi million dollar application from the comfort of my Jacuzzi.

Tuesday, August 21, 2007 3:39:14 AM (Pacific Standard Time, UTC-08:00)  #    Comments [0]   ASP.NET | Falafel | Life | Technology  | 
 Monday, August 20, 2007

I was trying to use the excellent RSS Toolkit 2.0 to place my company's news on the main site at www.Falafel.com in order to allow me to enter news in one place only which is our support.falafel.com site and aggregate all from one place.

I grabbed the RSS feed from here and it was few minutes till I was able to get the RSS Toolkit 2.0 component to show up on the site with the same exact CSS styling and everything.

One thing that bothered me is the publication dates for the news were coming in as a long DateTime format, for example: Fri, 17 Aug 2007 21:52:35 -0700

I am used to fix these problems in the ASP.NET markup by using something like:

<%# Eval("pubDate", "{0:D}") %>


For some reason, that did not work this time.  As a matter of fact, no matter what I place in the second parameter, no change occurs.  I went back to the XML coming from the RSS feed and noticed that the pubDate is placed inside of a CDATA schema, which really means it is coming in as a string and it is way too late in the game to retrieve it differently.

1 <item>
2 <title>
3 <![CDATA[Steve Tefethen Joins Falafel Software]]>
4 </title>
5 <link><![CDATA[http://support.falafel.com/index.php?_m=news&_a=viewnews&newsid=7&group=default]]>
6 </link>
7 <description><![CDATA[SAN JOSE, Calif. July 5, 2007 -- Blah, blah blah. ]]></description>
8 <unixdate><![CDATA[1187412755]]></unixdate>
9 <pubDate><![CDATA[Fri, 17 Aug 2007 21:52:35 -0700]]></pubDate>
10 </item>


Well, to fix this in your ASP.NET application, the easiest way is to do a double conversion on the fly from String to DateTime back to string in whatever format you desire.

<%# Convert.ToDateTime(Eval("pubDate")).ToLongDateString()%>

Monday, August 20, 2007 3:57:16 AM (Pacific Standard Time, UTC-08:00)  #    Comments [0]   ASP.NET | C# | Falafel | Technology  | 
 Sunday, August 19, 2007

I am sure I am a bit late to the game here, but I am hoping you will be able to help me with your experience in using Virtual PC vs VMWare.

I have a confession to make, I am not a big fan of the concept as I always see applications running pretty slow inside these virtual machines, but we are getting more and more technologies every day and most of them are in Alpha and Beta bits and these virtual machines are starting to make more sense to me.  I understand the cost (Speed) but I would be very happy to get some guidance from the people that read my blog about their experience with either one.  Thanks in advance.

Sunday, August 19, 2007 3:58:21 AM (Pacific Standard Time, UTC-08:00)  #    Comments [6]   Falafel | Technology  | 
 Thursday, August 16, 2007
I am very pleased to see the training courseware Falafel Software developed for Telerik available as on-demand printed material on Lulu.  The course was written by experts in the ASP.NET arena as well as the Telerik product offerings. RadControls for ASP.NET: A Step By Step Learning
Thursday, August 16, 2007 5:26:44 PM (Pacific Standard Time, UTC-08:00)  #    Comments [1]   ASP.NET | Falafel | RadControls | Telerik  | 
 Tuesday, August 14, 2007

Consulting companies, like Falafel Software, during their start up years do everything they can to get as many accounts as possible and fill the pipeline with work for all their developers and architects.  It is a matter of stability and security to know that the pipe is full and work is available and secure for at least 6 months into the future. To ask for more than 6 months of security I always thought is crazy especially in our beloved Software industry in the USA and especially in the Silicon Valley.  We, at Falafel, on the other hand have been very fortunate for the last 5 years.  The company has grown substantially every year while we’re having fun and enjoying the latest and greatest of technologies.
Once a small company reaches a level of maturity and decent number of accounts, I find a lot of them prefer to only handle bigger companies for business.  So you start with the Mom & Pop shops, then you get a couple of SMBs, transition to medium size, and all of a sudden find yourself contracting to Fortune 500 then Fortune 100 with some luck, personality, connections, hard work and quality people.
I remember the days when people used to call and say “Hi Lino, I am Mr. Foo and looking for someone to help me with a bug in my Delphi code, can you help? How much do you charge? How long will t take you to fix it?
I usually replied “I need to know the nature of the problem first”.  Then they said “Sure I will send you everything, I just wanted to know how much and how long it will take to fix it before I send you anything”
I know it might sound funny but it is the truth about consulting with individuals or very small companies. Budget and resources do not come easy and everyone has to watch their pennies.You end up fixing code, cleaning up code, recommending better architecture and all of a sudden the customer is sweating.  “Why did you fix line # 14, I only asked you to look in the first 10 lines of code only?”

Anyway, you get the picture. Life goes on and you find yourself bidding on multi-million dollar projects for fortune 500 companies where you control the project as long as you deliver on milestones and everyone is happy. You end up making a lot of money and the customer is a huge reference for other major projects to other fortune 500 companies.
Soon after getting the company completely saturated with major projects and employees are working on multi projects at the same time because we can’t find enough quality people to hire in time, you get the call from another Mr. Foo, “Hi Lino, can you look into my ASP.NET code and tell me why it is not working?” How much do you charge? How long will it take you to make the code work? :)


My blog here is about a very dangerous and subtle change in any small company that can cause serious consequences:
To Small Business or not to Small Business?
Some senior and very respected members of my team would vote NO on taking this kind of projects and I would totally respect their call on that as we are faced with several dilemmas, first, we have no resources to place on that kind of projects, second, it is not worth the headache, for $1000 probably, this customer will take most of your time for several days by asking for status every 2 hours and questioning why did issue 2 take 1 hour more than issue 1 and stuff like that where it will cost the company more time to reply to these issues than the revenue generated.

Ok, if you read this blog till here you probably already know what my recommendation is about the subject, well, you are wrong! :)

Most of my multi-million dollar deals all started years ago with 2 to 5 hours of consulting authorized via a very small PO.  I did my job right, the customer was happy and thenext project was on its way from same customer. 6 months later we have 2 people full time working with the customer.  5 years later, we have 7 people working full time at customer site that went from start up to a half a billion dollar company.
I remember sitting in the cafeteria in Frankfurt, Germany after a session I gave at the Borland conference in late 90s when a gentleman approached me asking if he can “pick my brain” about a COM+ issue he was having. I accepted of course and ended up having a 2 hour chit-chat and coding fest.  We got the problem solved, he bought me a drink and was very happy. I was happy to help as well.Later that week   I was hired by his company (one of the biggest financial companies in Europe) to help with the architecture of their new .NET based systems.

What I am trying to say, don’t forget how you got to where you are today!
One of the main reasons I have so many of these great accounts today is because when these accounts were small, none of the major consulting firms (big names) would even bother taking the time.
So I say “YES” if you are Microsoft, Hewlett Packard, EarthBound Farms, Accenture, etc… welcome to Falafel Software (All these are customers already :) ) but if you are Mr. Foo and need help making your company the next Microsoft or the next Hewlett Packard, I say “YES” as well, we would love to help you out. Just, please don’t ask me “how much and how long?” before I see your problem :)

Cheers
Lino

Monday, August 13, 2007 11:18:19 PM (Pacific Standard Time, UTC-08:00)  #    Comments [0]   Business | Falafel | Life  | 
 Friday, August 10, 2007
It was cool to be viewing, entering and managing Requirements, defects, issues, risks and change requests for all our projects at Falafel using my IPhone running ActiveFocus 2007.  It was nice to see that all the Telerik radControls are working fine under the Safari based browser for the IPhone. AFIPhone.JPG
Friday, August 10, 2007 3:42:32 PM (Pacific Standard Time, UTC-08:00)  #    Comments [0]   ActiveFocus | Falafel  |