Skip to main content

Posts

Showing posts from 2010

My speech about Qt in Ciklum Speakers' Corner(RUS)

I wanted to share my speech that took place 21 Oct, it'a about how Qt helps to build cross-platform application. It was based on my experience building Owely.com for Windows, Mac OS and Linux. This presentation is based on russian, sorry eng speaking guys. And actual presentation on Eng: http://igorrac.blogspot.com/2010/10/qt-cross-platforming-rocks.html

Magento API + Java != Friends

Recently I've had a task to write small integration of Java to the Magento API, and meet a lot of troubles on the way. First of all Magento supports SOAP web-services that actually don't work well, I've found one solution http://code.google.com/p/magja I didn't tried because we spend much time trying to make them work with no result, so next was XML RPC based API that worked quite well on PHP examples, but caused more trubles. Login worked pretty well: XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl(); config.setServerURL(new URL("http://magento.dev/index.php/api/xmlrpc/")); XmlRpcClient client = new XmlRpcClient(); client.setConfig(config); Vector params = new Vector(); params.addElement( "defsan" ); params.addElement("123456"); String session = (String)client.execute( "login", params ); But other call's did worked, instead they show: Exception

Qt cross-platforming "rocks"!

Today I've made a topic about my experience of lunching Qt-based cross-platform product : Owely.com. In my presentation I've made few points about how C++ evolved during these years, and how it can become handy when you need high-performance cross-platform solution with high integration to the native API. Hopefully people that come to check this presentation was very interested in C++ and we had small but productive conversation. For thous who miss

Getting real presentation

this slides was prepared for Ciklum Speaker's Corner specially for developers. I've tried to squeeze only topics and quotes that's mostly important for new age application development. This slide prepared from "Getting real" book of 37signals Getting real in development View more presentations from defsan .

QPixmap::setAlphaChannel artifacts

  I found strange artifact connected with alpha channel in QPixmap. In my project Owely, I use few layers to separate different tools interactions, so you just repaint some level without worries. So all levels had alpha channels set on constructor, but strange stuff appear, on the second initialization they wasn't empty, they was filled with previous screenshot with transparency, check the image The problem was solved by this article: http://labs.trolltech.com/blogs/2009/12/16/qt-graphics-and-performance-an-overview/ there was words about setAlphaChannel that works unstable, and should be used with fill() method m_pixmap = QPixmap(parent->width(), parent->height()); m_pixmap.setAlphaChannel(m_pixmap); m_pixmap.fill(Qt::transparent); // this fix the deal I don't advise to use fill on paint event, or somewhere in the loop.

QSystemTrayIcon VS showFullScreen

I've found strange collision when you open window on full-screen and go to other application so that full-screen is on the back, then you have tray icon, then when you press on tray icon image just disappears. I've spend some long hours searching the problem that cause this, when discovered that full-screen mode overlaps icon tray and it just being redrawn by QPainter of MainWindow. This is quite strange problem, so I've dig more and more and found out that hiding Mac OS top menu do the same to the tray icon. It looks like when you hide the menu and in same time try to show IconTray it gives you a punch, so nothing could probably solve this problem. In my case I've changed the flow of the application, so now full-screen window is modal, when you exit full-screen mode it hide main window and tray icon works fine. Conclusion: NO QSystemTrayIcon and showFullScreen at same time

Hiding Mac OS system menu in Qt

I know it not a big deal, but when you work with full screen application system menu pops up when you move mouse on the top, so here is a hack that solve this problem, I use it in main.cpp put this in header #ifdef Q_WS_MACX #include #endif and this in main procedure: int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; w.show(); #ifdef Q_WS_MACX HideMenuBar(); #endif return a.exec(); //other code } thats it :) I hope it will help

Ciklum moved to new office

It's big WOW for everyone, now we have nice view from the window and work will be better :) Still I'm leaving company at 25th of May to join forces of new start-up Tuppy.com, hope this will happen smoothly without any delays. Still think that new office is big plus to stay there

How to get active window geometry on Carbon

I'm not a Carbon developer, so it took huge amount of time to find simple way how to get active window handle in Windows API it's simple as few commands and there is so much forums where you can find help for that. Don't know why, but mostly people are searching window title. My task was find window geometry on Qt. This example includes how to do this, but can be also used for retrieving other information. Still don't know how to cast AXUIElementRef to WId, so if someone have a clue let me know in comments. Example: QRect getActiveWindowGeometry() {     QRect rect;     ProcessSerialNumber psn = { 0L, 0L };     OSStatus err = GetFrontProcess(&psn); // get front process PSN     /*error check*/     pid_t *pidt;     GetProcessPID(&psn ,pidt); // get Pid from ProcessSerialNumber     AXUIElementRef theApp = AXUIElementCreateApplication(*pidt); //get Application from Pid     AXUIElementRef focusWindow;     AXValueRef value;     CGPoint xy;     CGSize

Getting Real on Ciklum PM Camp

 I had very nice few days in Ciklum PM gathering, a lot of useful workshops and discussions. One of the event was Speakers Corner, idea borrowed from UK, but in this case it was more about free talk of PMs with clients. There was some people from Holand and Denmark that took initiative and presented their own  vision about how outsourcing should work, how to grow trust and keep communication on the high level. Very useful experience when you see how it feels from other side of outsourcing. Also I wanted to say that we with Yuri Tukhnin presented "Getting Real" methodology of crafting the project. I'm in love with "Getting Real" it keep you tuff and realistic. We didn't managed to finish all slides by 30min, so we was about more than "real" :) at least we managed to tell about main stuff like code less and cut the features. I hope this seed will grow with in the company, at least I see that company decided to move in agile development way.  Today,

Startups magnet

   Strange thing, universe is build very interesting, when you try dig on something everything around it starts stick with you, new connection, new info is coming from everywhere. Like more then year ago I started working with my own startup and from that moment all everybody around me stated talking about startups, then some of people invites me to join their projects, some are just philosophizing. But the main point that when you are starting doing something, it's like travel to the parallel universe where all things are the same.    Second thought I've got that everything what you discover, every "new idea" was already made by someone, so you think "what the point to make same?". When youtube came on the market there was tons of video sharing websites, but almost all was expensive(storage was expensive at that time), so what they guys did, they put a lot of afford to make service free and fast, nobody else could fight for that, so youtube win. If you thi

People are interesting

...and people are interested. I like talking with people, when you first describe them an idea, you say: - Hm, it should be some sort of white-board.... They feel very suspicious , some heard about white-boards, some didn't but always they are trying to imagine this in their head, then you give them link to check. In few days, when you meet again during the coffee break, usually they start talking about the project: - It's very cool, but I've noticed that it would be cool to have .... So from that point you feel that not only you are involved in developing start-up, it become some sort of public and now your colleagues and other people that you met online are part of it, they own your product. This is one of exciting moments that help you continue development, so you know that you are on good track. Few weeks ago I've had feedback from one guy from the Mexico, he was reporting some hibernate issues upon Owely, some of them we fixed in next release, but it's no