<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Technical Difficulties &#187; Qt</title>
	<atom:link href="http://greensoftware.net/blog/category/qt/feed/" rel="self" type="application/rss+xml" />
	<link>http://greensoftware.net/blog</link>
	<description>Solving my problems</description>
	<lastBuildDate>Wed, 04 Jan 2012 21:48:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Windows Phone app development and the significance of DSLs.</title>
		<link>http://greensoftware.net/blog/2011/07/27/windows-phone-app-development-and-the-significance-of-dsls/</link>
		<comments>http://greensoftware.net/blog/2011/07/27/windows-phone-app-development-and-the-significance-of-dsls/#comments</comments>
		<pubDate>Wed, 27 Jul 2011 04:48:09 +0000</pubDate>
		<dc:creator>digitalSurgeon</dc:creator>
				<category><![CDATA[creative]]></category>
		<category><![CDATA[nokia]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Qt]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[adnroid]]></category>
		<category><![CDATA[domain specific language]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[qtquick]]></category>
		<category><![CDATA[xaml]]></category>

		<guid isPermaLink="false">http://greensoftware.net/blog/?p=302</guid>
		<description><![CDATA[Computers were supposed to do all the work for all humans, but as programmers we often neglect that very basic purpose of these machines. So we go on writing code doing every little bit ourselves, sure there are libraries to do some of that but using libraries does not really solve the problem. Good design [...]]]></description>
			<content:encoded><![CDATA[<p>Computers were supposed to do all the work for all humans, but as programmers we often neglect that very basic purpose of these machines. So we go on writing code doing every little bit ourselves, sure there are libraries to do some of that but using libraries does not really solve the problem. Good design for software is important, but we should not be designing and thinking how to write code when we want to download a file from network, when we need to parse an XML file, or any other easy but mundane task.</p>
<p>I have always thought about domain specific languages as a way to not only boost productivity but also free our thoughts from these small menial and mundane tasks. I am so excited about domain specific languages that I have thought numerous times to continue some research studies in this area. Sadly I havent been able to find any good place yet in Helsinki.</p>
<p>QML or QtQuick is an excellent DSL for creating nicely animated user interfaces, not just for desktop computers but also for mobile devices. The productivity boost is immense, I wrote complete applications in Qt Quick in weeks which even iPhone developers took months to write. Still more wild that the Qt Quick app ran fine on N900, N8 and other Nokia Qt devices. Since that time I have been hooked on Qt Quick. I havent found a better DSL for UI&#8217;s than Qt Quick. It is so simple, no crazy xml syntax like in XAML. XAML might be more powerful but the power is lost in its complexity and IMO bad idea of using XML. </p>
<p>The second experience of DSL came with LINQ when I wrote my first app for Windows Phone. I had previously done similar app on Android, iPhone and Qt/Symbian where I needed to parse huge XML documents, so I had to spend weeks just to write the code to handle the SAX events and create a state machine. This code was fragile and just too much work. Thank god for json.</p>
<p>Coming back to the point, the experience of parsing XML with LINQ was quite the opposite, it was &#8230; pleasant and enjoyable. I was amused by the speed at which I wrote the code and how simple it was. It all made sense.</p>
<p>I think Microsoft is on the right path. They already have two DSL&#8217;s incorporated in Windows Phone development, writing apps therefore for WP is quite easy and fun experience.</p>
<p>I hope in the future DSL&#8217;s will become even more common and we will have write apps in DSLs which are then glued together by a general purpose language.</p>
]]></content:encoded>
			<wfw:commentRss>http://greensoftware.net/blog/2011/07/27/windows-phone-app-development-and-the-significance-of-dsls/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Improving Qt&#8217;s properties.</title>
		<link>http://greensoftware.net/blog/2010/07/01/rfc-improving-qts-properties/</link>
		<comments>http://greensoftware.net/blog/2010/07/01/rfc-improving-qts-properties/#comments</comments>
		<pubDate>Thu, 01 Jul 2010 16:40:46 +0000</pubDate>
		<dc:creator>digitalSurgeon</dc:creator>
				<category><![CDATA[nokia]]></category>
		<category><![CDATA[objective c]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Qt]]></category>

		<guid isPermaLink="false">http://greensoftware.net/blog/?p=284</guid>
		<description><![CDATA[I have known Qt for about 9 years now. My first encounter with Qt was as a normal user who was exploring Linux to find out what the fuss was all about. With KDE I got my first experience of Qt. But I have only very recently started to use Qt as a development tool, [...]]]></description>
			<content:encoded><![CDATA[<p>I have known Qt for about 9 years now. My first encounter with Qt was as a normal user who was exploring Linux to find out what the fuss was all about. With KDE I got my first experience of Qt. But I have only very recently started to use Qt as a development tool, and I have been very happy about that. Makes life easy, with Qt being ported to Symbian, Meego the gates are open for developers to make money. Since I like to experiment with all the platforms no matter who they are from, I also played around with Objective-C on iPhone some while ago.</p>
<p>While Qt offers many many nice features which make Objective-C look like from stone age. Objective-C has some nice features as well, one I mentioned in my <a href="http://greensoftware.net/blog/2010/02/21/one-good-thing-in-objective-c/" target="_self">previous pos</a>t, which Qt already solves rather nicely and in a better way as one of the commenter pointed out. Objective-C and Qt are quite similar in a sense that they provide improvements on top of an already existing language. Qt with meta object compiler and Obj-C with something similar.</p>
<p>So back to the point, I now use Q_PROPERTY macro in my QObjects based classes a lot:</p>
<pre name="code" class="cpp">
class Person : public QObject
{
Q_OBJECT
Q_PROPERTY(QString name READ name WRITE setName)

public:
void setName(const QString&amp; aName) { iName = aName; }
QString name() const { return iName; }

private:
QString iName;
};
</pre>
<p>Now consider this Objective-C code:</p>
<pre name="code" class="c">// person.h
@interface Person : NSObject
{
NSString* name;
}
@property (nonatomic, retain) NSString* name; // same as Q_OBJECT 

// person.m:
@implementation Person
@synthesize name; // this generates getter/setter in the .m file

// rest of the code ...</pre>
</pre>
<p>So do you see what I see ? In the Objective-C version of the code I don't have to write the getter and setter methods, whereas in Qt i have to. I think all the information to automatically implement the getter and setter functions is already in the Q_PROPERTY macro, may be the moc compiler can go ahead and also generate the getter and setter methods for us ?</p>
]]></content:encoded>
			<wfw:commentRss>http://greensoftware.net/blog/2010/07/01/rfc-improving-qts-properties/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Developing Maemo5 and MeeGo applications on Windows</title>
		<link>http://greensoftware.net/blog/2010/05/21/developing-maemo5-and-meego-applications-on-windows/</link>
		<comments>http://greensoftware.net/blog/2010/05/21/developing-maemo5-and-meego-applications-on-windows/#comments</comments>
		<pubDate>Fri, 21 May 2010 04:33:08 +0000</pubDate>
		<dc:creator>digitalSurgeon</dc:creator>
				<category><![CDATA[nokia]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Qt]]></category>
		<category><![CDATA[meego]]></category>
		<category><![CDATA[sdk]]></category>
		<category><![CDATA[Symbian]]></category>

		<guid isPermaLink="false">http://greensoftware.net/blog/?p=276</guid>
		<description><![CDATA[Maemo/Meego devices are like a computer that you can put in your pocket, for example the N900. Before N900 these maemo devices had been slow, but thanks to the iphone the whole computer industry has realized the importance of speed. N900 is not slow, what i like about this phone is the keyboard and the [...]]]></description>
			<content:encoded><![CDATA[<p>Maemo/Meego devices are like a computer that you can put in your pocket, for example the N900. Before N900 these maemo devices had been slow, but thanks to the iphone the whole computer industry has realized the importance of speed. N900 is not slow, what i like about this phone is the keyboard and the great web browser that it has. Just imagine the scenario, you are reading a web page on your desktop and then when you have to catch the bus, that page opens up when you start the browser on your N900. This is possible with the firefox addon called the Mozilla Weave. N900 is just awesome, it just needs to exercise 4 hours a week to lose some extra fat that it has, but other wise I really like it.</p>
<p>But perhaps the best thing about N900 is that my Qt apps that I write for  Symbian  also work with little modifications on my N900! you dont even need to install some crazy toolchains or use the linux os to do any of this; with the <a href="http://www.forum.nokia.com/Tools_Docs_and_Code/Tools/IDEs/Nokia_Qt_SDK/">Nokia Qt SDK</a> you can do all of this from your windows computer. Even though its in beta right now; but every thing works; i am using it for a meego/maemo app i am doing and no issues yet</p>
]]></content:encoded>
			<wfw:commentRss>http://greensoftware.net/blog/2010/05/21/developing-maemo5-and-meego-applications-on-windows/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Two finger scrolling on Windows 7/XP/Vista</title>
		<link>http://greensoftware.net/blog/2010/01/30/two-finger-scrolling-on-windows-7xpvista/</link>
		<comments>http://greensoftware.net/blog/2010/01/30/two-finger-scrolling-on-windows-7xpvista/#comments</comments>
		<pubDate>Sat, 30 Jan 2010 20:05:21 +0000</pubDate>
		<dc:creator>digitalSurgeon</dc:creator>
				<category><![CDATA[nokia]]></category>
		<category><![CDATA[Qt]]></category>
		<category><![CDATA[UI]]></category>

		<guid isPermaLink="false">http://greensoftware.net/blog/?p=238</guid>
		<description><![CDATA[The two finger page scrolling on the macbooks is really neat, I think it is a better implementation then using a part of the laptop track pad for scrolling the pages. The newer laptops now have that feature, but what if your laptop doesn&#8217;t have multi-touch trackpad ? Well Logitech has released a new free [...]]]></description>
			<content:encoded><![CDATA[<p>The two finger page scrolling on the macbooks is really neat, I think it is a better implementation then using a part of the laptop track pad for scrolling the pages. The newer laptops now have that feature, but what if your laptop doesn&#8217;t have multi-touch trackpad ? Well <a href="http://blog.logitech.com/2010/01/29/new-logitech-touch-mouse-turns-your-iphone-or-ipod-touch-into-a-wireless-trackpad-and-keyboard/" target="_blank">Logitech has released</a> a new free iphone app which lets you use your iphone/ipod as a multi-touch track pad with your laptop.</p>
<p>First you need to install it in your iphone/ipod.  Search for &#8216;Touch Mouse&#8217;  in the app store, install it. Then go to <a href="http://www.logitech.com/index.cfm/494/6367&amp;hub=1&amp;cl=us,en?section=downloads" target="_blank">Logitech Touch Mouse Server Web site</a>, and get the server software for what ever your OS is. It seems only Linux is not supported. Sad! . Install the server, then run the app on your iphone/ipod, it will detect your computer and hit connect.</p>
<p>So while this is very neat, not every one has a iphone/ipod ( I have a first generation ipod touch ). It would be really great if there was a similar app for the Symbian phones, Android, WebOS or Maemo phones.</p>
<p>To do that we need to understand the protocol used by the touch mouse server and the client. My investigation just came to the conclusion that its a UDP based protocol, the app also uses bonjour for service discovery. The UDP protocol is very cryptic and it seems this is not a easy task, it would be just great if Logitech can release some documents on this.</p>
]]></content:encoded>
			<wfw:commentRss>http://greensoftware.net/blog/2010/01/30/two-finger-scrolling-on-windows-7xpvista/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Compiling Qt4.6 with OpenSSL Support on Windows with MingW</title>
		<link>http://greensoftware.net/blog/2009/12/01/compiling-qt4-6-with-openssl-support-on-windows-with-mingw/</link>
		<comments>http://greensoftware.net/blog/2009/12/01/compiling-qt4-6-with-openssl-support-on-windows-with-mingw/#comments</comments>
		<pubDate>Tue, 01 Dec 2009 16:14:57 +0000</pubDate>
		<dc:creator>digitalSurgeon</dc:creator>
				<category><![CDATA[nokia]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Qt]]></category>

		<guid isPermaLink="false">http://greensoftware.net/blog/?p=214</guid>
		<description><![CDATA[The Symbian port of Qt is a blessing, no more head banging. Work will be so much easier. The best thing about using Qt for Symbian development is that you dont need to use Carbide or the Emulator, you can use QtCreator to do most of your work. So I downloaded the 4.6 and before [...]]]></description>
			<content:encoded><![CDATA[<p>The Symbian port of Qt is a blessing, no more head banging. Work will be so much easier. The best thing about using Qt for Symbian development is that you dont need to use Carbide or the Emulator, you can use QtCreator to do most of your work. So I downloaded the 4.6 and before I can use it to continue my <a href="http://gitorious.org/qfacebookconnect/" target="_blank">QFacebookConnect</a> library, I need to compile it with OpenSSL support enabled. You have to do a lot of googling/binging to get that information. Well here is how you do it:</p>
<p>in the command prompt:<code><br />
SET LIB=c:\openssl\lib\mingw;%LIB%<br />
SET INCLUDE=c:\openssl\include;%INCLUDE%<br />
SET PATH=c:\openssl;%PATH%</code></p>
<p>now go to the Qt source folder and execute the configure.exe like so:</p>
<p><code>configure.exe -openssl</code></p>
<p>and finally<br />
<code>mingw32-make</code></p>
<p>and here a nice demo of qt4.6 while it compiles for you.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="497" height="302" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/PCx8RfNhhXk&amp;hl=en_US&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="497" height="302" src="http://www.youtube.com/v/PCx8RfNhhXk&amp;hl=en_US&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://greensoftware.net/blog/2009/12/01/compiling-qt4-6-with-openssl-support-on-windows-with-mingw/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>porting Facebook Connect for iphone to Qt !</title>
		<link>http://greensoftware.net/blog/2009/11/22/porting-facebook-connect-for-iphone-to-qt/</link>
		<comments>http://greensoftware.net/blog/2009/11/22/porting-facebook-connect-for-iphone-to-qt/#comments</comments>
		<pubDate>Sun, 22 Nov 2009 11:59:07 +0000</pubDate>
		<dc:creator>digitalSurgeon</dc:creator>
				<category><![CDATA[iphone]]></category>
		<category><![CDATA[Qt]]></category>
		<category><![CDATA[connect]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[porting]]></category>

		<guid isPermaLink="false">http://greensoftware.net/blog/?p=203</guid>
		<description><![CDATA[For a past couple of weeks I have been working on porting the facebook connect for iphone to Qt. Since Qt is going to make it big in next few years thanks to both Symbian 4 and Maemo 6 using it as their UI library, it makes a lot of sense to have a facebook  [...]]]></description>
			<content:encoded><![CDATA[<p>For a past couple of weeks I have been working on porting the <a href="http://wiki.developers.facebook.com/index.php/Facebook_Connect_for_iPhone" target="_blank">facebook connect for iphone</a> to Qt. Since Qt is going to make it big in next few years thanks to both Symbian 4 and Maemo 6 using it as their UI library, it makes a lot of sense to have a facebook  connect library for Qt, but since Facebook cares mostly about the platforms popular in the USA, which are iPhone and may be Android ( though there is no facebook connect for Android ) I took it upon myself to port this to Qt and learn objective-c and sharpen my Qt skills along the way.</p>
<p>the repository is hosted at <a href="http://gitorious.org/qfacebookconnect" target="_blank">http://gitorious.org/qfacebookconnect</a></p>
<p>Currently the project is in copy / paste / compile mode. But once I have all the files compiling I will optimize it for Qt. Please have a look and join if you are interested !</p>
]]></content:encoded>
			<wfw:commentRss>http://greensoftware.net/blog/2009/11/22/porting-facebook-connect-for-iphone-to-qt/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

