Sunday, September 13, 2009

A WRONG pitch for the "enterprise" minded

NEWS FLASH!
Open source technologies run our daily lives!

I've given many demos taking on the role as an engineer, an advocate of open-source and selling my business. I have to say that most times, I am trying to "prove" that open-source has a place in the enterprise B2B market. More times than not, I find myself attempting to sell the notion that a "freely available" product can work harder, faster and better that some commercial solution. This situation happens even if it isn't directly relavent to the solution I'm there to pitch or demo. In most cases, my jovial "community of experts" approach comes across as what most sales folks would call a "tap dance". I was wrong in doing that, in fact, I was way off base ...

Let me explain, its simple enough once you read it.

Open-source moves B2B, the movement comes in ways that an average employee may not even get to witness. Open-source development has led to the ability to answer daily questions such as, "do I have any orders on my Yahoo cart?" or the "Do I have any emails in my Gmail account?" or even "Did my best friend update their Facebook status?". In fact, I don't know how many times I've been on the recieving end of functionality that gets the "Oh that's cool..." nod because of the tools open-source technologies provide me.

Everyday, there are Fortune 500 companies reliant upon the abilities of their engineers to deploy and maintain open-source applications. In fact, I wonder if those Mars rovers would have lasted so long without a few OS ideals .... hmmm.

So, in summary, I was wrong in waisting my time "doing the dance". Open-source doesn't need my help in that regard (probably would have begged for me NOT to). The next time you find yourself pitching an open-source idea, don't fall into my mistake if they question you. Give them a few usage examples and (under your hat) question them as a potenial client for even asking....

(A few enterprise stories for the super techs out there proving my point)

Over three years ago, I was pitching JBoss messaging server would be far superior to any other messaging platform for our 10,000+ daily message translations. I had to prove this concept to a group of Fortune 100 company (named omited for obvious reasons) non-believers, by sending 5 times the daily messages as they expected to be "laughing" on lookers. Of course, it did just fine and passed with flying colors. So much so ... that it is considered main test platform today.

Thursday, January 22, 2009

OpenOffice just angered me

Apparently OpenOffice clears your clipboard if you close the word processor before you paste it.
Thanks a lot for that OpenOffice. What a great "feature!"

Tuesday, January 13, 2009

More JavaScript please!

JavaScript frameworks like jQuery, Prototype and Dojo are all relatively new, circa 2005. Before the days of JS frameworks though doing any kind of JS development could easily and rapidly turn into a nightmare. Those days are a thing of the past though and with the great support and flexibility of the current frameworks, JS development has been easier than ever. It's no longer a problem to build complex and cross browser supported JS applications anymore.

Couple the JS frameworks together with the increasing effort to speed JS up in the browser engines and make it more efficient, I think we are beginning to see a paradigm shift on the Internet. More and more applications will be moved to the web, where they have some very distinct advantages. With web applications patches can be applied and pushed live almost instantly, without having to push the update to each client. This is a huge benefit, allowing you more control over your application as it's more in your hands and not the user. Having a web applications also makes it very easy to distribute and grow out your infrastructure should you need to.

This already has been happening over the last decade, albeit much slower and not as obvious. Take Yahoo, Microsoft and Google for example; all of their web mail applications have improved leaps and bounds from the early days. Google especially is embracing this shift in how the Internet is utilized: Gmail, Google Docs, Google Calendar, Picasa, etc. While these are all great applications and are an excellent example of what can now be done with the increasing availability of hardware and JS improvements, I personally think it's just the tip of the iceberg.

Monday, January 12, 2009

We are authorize.net resellers!

If you're not familiar with authorize.net, then you probably aren't too familiar with payment processing.

That's okay. That's why you have us. :)

Authorize.net is a payment processing gateway used to enable merchants to accept payments on their website, and specifically in applications we develop.

We are pleased to be official resellers of authorize.net and can help you with getting a merchant account set up, establishing a gateway and other services.

For more information click here or contact us.

Thursday, December 18, 2008

A little benchmarking for all

It used to be that if an application was too slow you can just throw more hardware at it to scale. With the ever increasing speeds of CPUs and price drops of RAM this is still viable, but is obviously not an ideal solution in most cases. Like most problems, I think the answer to this is a little mix of both. While giving the application more hardware to work with will certainly help, you're going to get the most out of the new hardware if the application's code has some optimizations.

I've included a small micro benchmarking class for some simple script benchmarks. It allows for multiple profiles so you can track the time of more than one section of code at once. It's simple, all you do is create an instance and call the start/stop methods as needed. It records the micro time values in an array for later retrieval. You now have a small, simple and easy to use class to help you work out those bottlenecks in your code. Go forth young programmers, write the fastest code you can!

<?php
 
class benchmark
{
    
private $profiles;
 
    
public function __construct()
    {
    }
 
    
public function start($profile 'default')
    {
        
$this->profiles[$profile]['start'] = microtime(true);
    }
 
    
public function stop($profile 'default')
    {
        
$this->profiles[$profile]['stop'] = microtime(true);
        
$this->profiles[$profile]['elapsed'] = $this->profiles[$profile]['stop'] - $this->profiles[$profile]['start'];
    }
 
    
public function getTime($profile 'default')
    {
        if(
$profile == 'all') {
            return 
$this->profiles;
        }
        if(isset(
$this->profiles[$profile])) {
            return 
$this->profiles[$profile];
        }
        return 
false;
    }
}
 
$benchmark = new benchmark();
 
$benchmark->start();
for(
$x 0$x != 1000$x++) {
    
$benchmark->start('second');
    for(
$i 0$i != 10$i++) {
        
$benchmark->start('third');
        for(
$z 0$z != 1$z++) {
            
$tmp = ($x $i) * 32;
        }
        
$benchmark->stop('third');
    }
    
$benchmark->stop('second');
}
$benchmark->stop();
 
print_r($benchmark->getTime('all'));
 
?>

Monday, December 15, 2008

APIs make applications happy

An API (or application programming interface for those acronym junkies) is defined on Wikipedia:

An application programming interface (API) is a set of functions, procedures, methods, classes or protocols that an operating system, library or service provides to support requests made by computer programs.

We designed an application programming interface recently for an e fulfillment company (look for a case study in an upcoming blog).

This client's advantage to his business is simple. He can offer same day shipping with his location being a short drive to the wholesale warehouse. Previously, the wholesaler had to mail the dealer the shipment, then they had to ship the order themselves.

We spent a great deal of time examining and integrating this process with the wholesaler and talking to dealers. Of course we spent a lot of time with our client as well. Technicate prides itself on being able to see a business process and creating an application around it.

That's what we do. :)

In order to make the process seamless to dealers (and users of the website), we decided to create an API that transfers orders from most popular E-Commerce platforms (i.e OSCommerce, Magento, Yahoo). By sending a simple XML feed we allow the dealer to send orders real time.

If the dealer is technically inclined and a do it yourselfer, they have all they need. Technicate has also helped dealers integrate into the system as well.

We in essence became the e fulfillment house's IT department.

It's been fun watching this e fulfillment company grow. By using an API rather than an interface, we've saved the dealers time and money spent on inputting orders.

Our next step?

Hopefully in the future integrating this API into the wholesaler, eliminating any interaction from the dealer.

At that point, they can get shipping done while they sleep. :)

To find out how we can enhance your web application with an API, contact us.

Labels: , , ,

Tuesday, December 2, 2008

Get satisfaction

One of the coolest things to happen to the Internet is the renewed sense of social networking and community as technology continues to evolve.

One of the sites on our radar lately is http://www.getsatisfaction.com. It allows customers and companies to interact in a new way. If you have any questions for a company, it's a place to go and get them answered quickly and efficiently.

It improves on the same old support form. You can add a great idea, and others can see. You can report a problem with a product, or give praise for a job well done.

Looking over the Adobe customer service section, this type of thing can be a mixed bag. Are bad comments just a sign your product is huge (and therefore vulnerable to bad input) or just bad?

We support good customer service at Technicate, so we went ahead and set up there. If you have any questions or comments about our products and company, why don't you go give it a try?

http://getsatisfaction.com/technicatesolutions/