Monday, November 16, 2009

Customer usage of Eclipse Tools

Recently I read about the Eclipse UDC i.e Usage Data Collector a set of plugins which can help you to analyse what views/bundles etc of the tool is being used , in what manner by the end user.

Besides providing a lot of "Customer Tool Interaction" this mechanism definitely provides a hope to make tools intelligent based on the data being generated by customer activities.

The Eclipse UDC is very easy to use as it comes in Preference page for eclipse and can be configured directly from there.

The Database location can be specified in many different ways depening on what kind of application one is developing.

Looking fwd to see its usage with a combination of Artificial Intelligence where component learn and evolve by operating on the data gathered from customer activity on each one of them.

Monday, October 12, 2009

Evolving Services with Technology

How long does it take to realize we have a huge set of services available for communicating and collaborating with our friends colleagues or just anyone in the world...Let me list down the services that I see

1)E mail
2)Chat
3)Blog
4)Wiki
5)Discussion Forums
6)SMS
7)Social Networking sites ovi twitter facebook orkut etc ..


Quite a few isnt it?

Now lets talk about something like Google Wave ...its an open source google initiative to collaborate the services and make our communication centralised rather than posting things at different places and then trying to realise the connectivity of thoughts.

With Google Wave developers at google have tried to show how to keep evolving services when technology is evolving....More should come from us to take such initiatives with huge global response and make earth a better place!

Saturday, October 10, 2009

Always a developer

Two ways Two views Two right things..

Which way which view to get the which right thing....

Sounding abstract yeah that s how one sounds when confused .Lets look into the Two X's.

Case Way1 (x=1): Do things in a stable work...make sure nothing breaks.

Case Way2(x=2):Keep evolving even if it means to break whatever exists

Case View1: Customers are happy with stable product why do u wanna make them unhappy

Case View2:Excite the customers with new things...can be other way at times too

Case Output1: A stable product that every one likes and trusts ..but can get bored.

Case Output2: A new exciting product make world go crazy ...can turn them mad too.

Wow haven't I quoted things that should be merged and excitement should be built with trust...Its the ability to adjust (way1) and be flexible(way2) .


Monday, September 28, 2009

Qt OpenGL in QGraphicsItem

I was working on trying to use OpenGL facilities in my graphics View ..As I am more into animations I was looking for QGraphicsItem to be on similar lines for OpenGL widget also.

The scan over the web always pushed me to use setViewPort on GraphicsView for OpenGL widget...but alas this was not tht was gonna help me...

Also Qt 4.6 follow ups made sure that I got to look at ideas of extending QGraphicsItem and QObject together to create my own needed OpenGL Graphics Item...

I will put here what I acheived from Qt 4.6 guys and am working on customising this more for OpenGL item support...


Here s the code snippet that can help having OpenGL widget as QGraphicsItem




OGMainWindow::OGMainWindow(QWidget *parent)
: QMainWindow(parent), ui(new Ui::OGMainWindow)
{
ui->setupUi(this);

ui->graphicsView->setScene(&scene);
GLWidget *glWidget= new GLWidget();


QImage image=QImage(":/img/auxpoint.png");

QGraphicsItem *gitem=new QGraphicsPixmapItem(QPixmap::fromImage(image));

scene.addItem(gitem);

//Custom Item can be similar to QGraphicsWidgetItem
CusotmItem *glItem = new CusotmItem(glWidget);
scene.addItem(glItem);

}

Sunday, September 27, 2009

Extending Qt Animation

Recently working with Qt Animation Framework I realised that though QVariantAnimation has property for setting easing curve to Custom type .

However this custom graph style doesnt really help the animation to follow graph of user s choice as the function pointer behind expects a definition like

qreal customFunc( qreal time) ;

where time t element of [0,1]  closed interval

also the return value is progress normalised between [0,1].

To support custom graph style that does have more parameters varying rather than just time one needs to extend QtVariantAnimation or QtPropertyAnimation.

I extended from QtPropertyAnimation for my CustomAnimation class something like..
class CustomAnimation : public QtPropertyAnimation

{

Q_OBJECT

public:

qreal a1Value() const;

void seta1Value(const qreal value);

...

QString style();

void setStyle(QString style);

CustomAnimation(QObject *parent = 0);

CustomAnimation(QObject *target, const QByteArray &propertyName, QObject *parent = 0);

~ CustomAnimation();

void updateCurrentValue(const qreal value);

void updateState(QtAbstractAnimation::State oldState, QtAbstractAnimation::State newState);

void updateCurrentTime(int msecs);

private:

qreal a1;

QString curveStyle;

Q_DISABLE_COPY(CustomAnimation);

};