June 30, 2005

Generating data

Filed under: MagnaCRM, ProductX — Dimitris Giannitsaros @ 02:49

I wanted to populate my database with some “real” data (names, addresses, phones, company names etc) instead of random garbage and dozens of test123 records. Looking at ugly or random data is kind of depressing.

So I built some dictionaries containing names, lastnames, companies, streets etc (proving once again that the internet is vast). Then I entertained some thoughts of building a full data generation utility. Finally I created some simple scripts to insert the data and chose another task from my long list. Although I will probably have to come back to this later, it’s cool to have a thousand of the largest corporations in the world in my Accounts ;-)

I wonder if a free/open source data generator exists, containing lists of words (dictionaries) to generate real data.

June 29, 2005

Tentative name

Filed under: MagnaCRM, ProductX — Dimitris Giannitsaros @ 11:20

I am trying to come up with a name for the CRM application I am working on, but I haven’t found something that excites me yet. My best name so far is MagnaCRM (proposed to me on this forum thread), which is not bad, but I would prefer something more meaningful and probably without the word CRM or sales in it. So I haven’t yet made my mind about this.

If you happen to think of a name please drop me a line :)

Here are some words I am using for inspiration:

Names:
RapidSales, RapidCRM, RapidCell, TeamSales, OmniSales, OmniClient,
ClientPath, ClientTrail, SalesLog, SalesPilot, SalesMark,
CustomerTrack, ClientTrack, SalesAgenda

CRM related:
CRM, sales, salesforce, customer, client, account, contact, manage, management, opportunity, lead, issue, solution, business, group, team, time, schedule, task, order, product, deal, company, money, agenda, plan, organize, sell, data, asset

sales manager, customer needs, develop relationships, process, information, sales, marketing efectiveness, market trends, enterprise, contact management, sales automation, scheduling, operational, analytical, leads, discover customer, increase customer, data, account, order, implement, business needs, customized, solution, opportunities, operative, dynamic, customer serving processes, integrate, automate, direct, sales force automation

Generic:
guide, pilot, wizard, touch, link, control, admin, order, option, edge, mark, target, key, check, hub, loop, focus, agile, ready, rapid, results, flow, track, log, radar, sight, Omni

Latin:
Radix (root), Acta (beach), Signo (to mark), Octa (eight), Mentis (mens mentis - mind, thoughts), Navis (ship), Ineo (to come/go, to begin), Volo (fly), Patro (achieve), Conecto (connect), Infigo (fix, fasten, impress), Tingo (to wet/color/dye), Versi, Origo (source,origin)

malens, mane, milia, mire, mirus, multus, semper, soleo, sonitus, sono, specialis, specialitas, stella, carmen, casus, condo, opifer, optio, emacitas, emax, amplus, pronus, opus, tempto

June 28, 2005

More on Rails

Filed under: Web development — Dimitris Giannitsaros @ 13:59

I can’t spend any more time playing with Rails. It was fun and I have seen enough to know what this is all about and what I am missing. The Ajax tutorial was probably the most exciting one. Wondering if an action should be ajax based? Well just build it and see how it feels. With Rails it’s not like it will take you much time. And it will get better, much better, with things like autocompletion (like Google Suggest) and all other great scripts from script.aculo.us.

Ruby seems OK too, not that I was thrilled. I am not overly excited about any language, but I wonder what would have happened if David Heinemeier Hansson (Rails creator) had chosen a more popular language (e.g. PHP or perl). As it is, Rails is dragging Ruby up, while it should be the other way around.

It’s still early for anyone to know with certainty if Ruby on Rails will get really big. Hosting is a problem right now. There are some hosts supporting Rails (TextDrive, GeekISP, Planet Argon) but nowhere near those offering PHP hosting (virtually all).

On the other hand, the Rails part of the RoR equation, will probably make it, maybe by another language. I was pointed to PHP Cake and there is also Perl on Rails and Subway for Python. And that is good, because as a framework, Rails permits for really rapid development, without sacrificing quality.

June 27, 2005

Learning is fun

Filed under: Web development — Dimitris Giannitsaros @ 23:29

Spend most of the day playing with Rails. Learning a new technology can be addictive and you can have a really good time (if you are into this kind of things). I haven’t done this for some time (more than a year) and it felt quite refreshing. Learning something new, whether good or bad, offers new ways to see things, opens up the mind. I hope I have the time to do it more often, now that I remembered how good it is!

Rails verdict coming soon!

June 26, 2005

Ruby on Rails 2

Filed under: Web development — Dimitris Giannitsaros @ 14:01

I now have about 3 hours of Rails experience! Installation was a breeze, Hello World a no brainer. I followed the “Rolling with Ruby on Rails” tutorial (part I, part II), and I think I can see now why they say you can be very productive with Rails.

Things are still mingled in my mind, but what knowledge I have gained so far follows: Rails enforces the model view controller design, has a strict directory structure and utilizes special naming (e.g. a DB table called tasks and a class called Task are connected). One nice thing is that data lists and CRUD operations (create, retrieve, update, delete) are completely automated (scaffolding) for simple objects (no joins etc).

All these seem a bit restrictive at first and I don’t know what happens if you want to do things differently (though I guess it can be done). But the consequence of these rules is that you can do things extremely fast. Building a simple application (e.g. a phonebook application) can be done in a few hours. You don’t have to build any infrastructure, as this is exactly what Rails provide.

I still have a constant feeling that it can’t be used for “advanced” applications, even though I understand I am mistaken (Basecamp and Backpack are advanced enough).

I will continue experimenting with Rails because:
a) It’s fun
b) It’s different
c) I want to understand it better, so I know what people are talking about
d) I want to see how it integrates with AJAX

June 25, 2005

Ruby on Rails

Filed under: Web development — Dimitris Giannitsaros @ 15:31

I see Ruby on Rails mentioned everywhere. So I decided to have a look, because usually when so many smart people are excited about something, there is good reason. I have never worked with ruby before, so this will be another new for me.

I am installing right now and hope to have my first Hello World program up and running very soon!

June 24, 2005

script.aculo.us

Filed under: Links, Web development — Dimitris Giannitsaros @ 02:28

Thomas Fuchs launched script.aculo.us yesterday. In his own words:

script.aculo.us provides you with easy-to-use, compatible and, ultimately, totally cool JavaScript libraries

Check his demos (visual effects and drag ‘n’ drop) even if you’re not into javascript. They are indeed very cool, having a quality usually seen on flash sites.

Moreover, Thomas releases his libraries under an MIT license (do anything you like, but include the copyright notice).

June 23, 2005

Cool service: Prodigem

Filed under: Links, News, Products and Services — Dimitris Giannitsaros @ 02:09

Prodigem is a content hosting service, using Bit Torrent to distribute your media files (e.g. a movie). You can distribute them either for free or for a price (e.g. if you are an independent artist / creator). No DRM is used, but the material must be cleared for distribution via p2p networks (e.g. under a Creative Commons license).

Hosting prices are really low but there is a 10%+ cut from your profits.

June 22, 2005

Big Picture Small Office

Filed under: Links — Dimitris Giannitsaros @ 11:36

Big Picture Small Office is both one of the most interesting blogs I read and one of the few non-tech related ones. From the about page:

Why should you spend the time following the sometimes soap opera that is my job? Why should you care about what I have to say? First, because I actually have much to say. All the time, about everything. Nothing and noone is spared. My tortured soul reaches out and grabs at everything which becomes grist for my sordid mill.

Second, because I don’t spend my waking hours planted in a cubicle. I am in a corner office. With floor to ceiling windows and an assistant who actually makes me coffee. I am a Senior Vice President. I sit on the Executive Committee, a host of Steering Committees and even committees with no capital letters.

This person writes very well, has a good sense of humor and most importantly offers a glimpse into the way upper management works, in a very large corporation.

June 21, 2005

PHP components I would buy

Filed under: PHP, Products and Services — Dimitris Giannitsaros @ 15:09

This is inspired by Ian Landsman’s comment:

I think developers are afraid to build components for languages like Perl, PHP, etc because of the risk of an open source competitor but I think there’ s a good business in there someplace.

Off the top of my head, here are some PHP components / libraries / solutions I would gladly pay for:

  • As we know, all programs expand until they can read mail ;-) So I would love a library that does exactly that: integrate with mail accounts (supporting pop, imap, exchange, web mail services with no pop access, whatever else exists), retrieve mail, filter it for spam (with keywords, black/white lists and / or Bayesian Filtering), convert from weird / non standard encodings, handle html, detect quoted parts and give it to me in a nice format.
  • A special installer for PHP applications. This should probably be based in a well-established installer (e.g. NSIS or InnoSetup) for Windows and something similar for Linux / Unix / MacOS. It should of course support all these Op. Systems. It should detect if Apache / PHP is installed and use it, detect and use IIS on Windows installing PHP if it’s not installed. It should even install Apache / PHP / MySQL on a clean system (if this is allowed by the various licenses of course). Finally it should take care of databases. A mechanism should be provided to install / update the database, at least for the most popular databases (Access, MySQL, MS SQL, Postgres)
  • APIs to integrate with other services (which may or may not offer their own API). A good example of a service I would like to integrate with, is Google Maps. The integration of craiglist and Google Maps is an exceptional example of what one can do. Flickr is another service I may want to integrate with. Contrary to Google Maps, they offer a public API, but it requires a lot of work (and that’s why so many 3rd party API kits exist). Search engines (Google, Yahoo) offer APIs but they are incompatible. If I wanted to integrate with them I would have to do a lot of work. Amazon, Feedburner, Bloglines and many others provide APIs, but it’s difficult to integrate with each and every one of them. I would like one API for similar services (one for eShop sites, one for Search engines, one for RSS content, one for News portals etc). I would like the API I use to stay the same, even when the underlying APIs change (e.g. the Flickr API which is in beta changes from time to time).

Of course, if you happen to know any existing solutions for the above (free or commercial), drop me a line.

June 20, 2005

The Design of Everyday Things

Filed under: General — Dimitris Giannitsaros @ 23:49

I just finished The Design of Everyday Things by Don Norman. Very interesting book and it really makes you think about all the unnecessary trouble you sometimes have to go through for simple tasks (opening doors, using home appliances etc). Of course it relates to computers and software, although most examples cover much more common things.

It’s kind of sad that a book written in 1988, talking about bad design in light switches, air conditioners and phones is not yet dated today.

June 19, 2005

First things first

Filed under: MagnaCRM, PHP, ProductX, Web development — Dimitris Giannitsaros @ 23:43

Starting a new application from scratch is usually fun, but it also has some boring aspects. Here I write about some stuff I find rather boring, mostly because they give no visual feedback. The first units I coded and tested for my CRM application (a couple months ago), were:

  • Database abstraction layer: I discovered the excellent ADODB library some years ago. ADODB supports an impressive number of databases. It is stable, used in many projects and most importantly I have successfully deployed large and small applications using ADODB, in the past. What I did, was create a simple layer on top of ADODB and use that throughout my application. This way I can replace ADODB in the future, if I need to, without much difficulty.
  • Error handler: Using PHP’s set_error_handler() I route errors to a custom function. There I decide how to handle the error: whether to log the error, issue a warning to the user and continue or display an error message and halt execution. Obviously I use trigger_error() to… trigger errors.
  • Session handler: I built a custom session handler, based on an article by Matt Wade. This gives me the following advantages:
    1. I can store session data in the database. So I don’t have to care about some php.ini settings (e.g. session.save_path) and I can store the user id associated with each session.
    2. I have better control over things like the “Remember me” (cookie_lifetime) and session garbage collector settings.
    3. I can allow/disallow simultaneous use of the same username. This will be part of the simplified copy protection scheme.

After these were in place, I developed the user login / logout procedures, so I could both test all three units and do something that gives a sense of progress (hey, I can login and logout! It’s almost done ;-).

June 18, 2005

Payment options news

Filed under: Links, News — Dimitris Giannitsaros @ 12:51

I haven’t really considered how I will accept payment, as this is quite a few months away, but I keep an eye for news on that front. Today there were two:

  1. Google Wallet: Google plans to offer PayPal-like electronic-payment services, according to Google Blogoscoped
  2. Paypal’s Website Payments Pro: Even more interesting is a new service from PayPal, offering a merchant account & gateway. This means you can accept payment on your website, without redirecting to the PayPal website. I like PayPal since it has brand recognition and low rates.

If you are interested in other payment options check these sites:
http://www.regshare.com/
http://www.blackcatsystems.com/regservices/

June 17, 2005

Personal Mall

Filed under: Links, News — Dimitris Giannitsaros @ 13:53

Panayotis has an interesting idea:

A personal mall is a personal website presenting items the owner (or blogger) actually bought and used. Those things may be diverse in a way: books, gadgets, t-shirts, you name it. On the other hand, they are the items bought by a certain person, which means that people of similar interests may possibly like them too.

Check his “Things I Bought” blog, acting as his mall.

It would be very interesting to see something like that as a service (maybe offered by Blogger or LiveJournal) because it would be possible to have product categories, tags (with their own feed), favorite buyers, most popular products, centralized reviews/comments etc.

June 16, 2005

Writing a business plan

Filed under: MagnaCRM, ProductX — Dimitris Giannitsaros @ 21:58

What’s a business plan? From “This Web Business”:

A business plan is a document prepared by a company that outlines what kind of business the company is in, their history, their competition, their projections, their plans, and their current position.

Writing a business plan is not easy. Or necessary. But I chose to write one (for the first time in my life), based on the fact that when writing something you are forced to think about it. It took me almost 15 days (for 10 or so pages!), but I don’t regret it one bit. Here’s why:

It forced me to analyse many aspects of this whole deal, even on the technical side of things, where I believed no problems would arise. Since I didn’t intend to present my business plan to any bank, VC or investor I laxed the rules of what constitutes a business plan. I thought about, researched and wrote about many things:

  • The general outline of what my company will offer (Software products. No services, unless related with these products)
  • Company’s mission: a really short blah blah paragraph, aiming to make me feel confident and ready
  • Strengths: being small
  • Weaknesses: being small again, plus tons of other things ;-)
  • A comprehensive research of existing solutions in the CRM market. Commercial systems (in all flavours: windows vs. online, downloadable vs. hosted, enterprise vs. light) and Open Source solutions.
  • Proposed solution describing the core functionality plus advanced / innovative features.
  • Technology overview (PHP, Apache, IIS, Unix/Linux, Windows)
  • Support options: What do I want to offer my clients? What can I offer them? Will it cost?
  • Pricing (not that I decided - that’s a tough one)
  • Marketing & advertising: What are the most important CRM centered sites? How do I spread the word? What is Google AdWords and how much does it cost? Will I need a sales force?

As you can see, I probably got a little carried away when writing it. It includes many things that usually don’t belong to a business plan, but that’s fine with me. The important thing is, I thought about all these things and decided to continue with my plans.

Next Page »

Powered by WordPress Theme by H P Nadig