<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Gtimelog on Random notes from mg</title>
    <link>https://mg.pov.lt/blog/tags/gtimelog.html</link>
    <description>Recent content in Gtimelog on Random notes from mg</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <managingEditor>marius@gedmin.as (Marius Gedminas)</managingEditor>
    <webMaster>marius@gedmin.as (Marius Gedminas)</webMaster>
    <copyright>Copyright © 2004–2020 Marius Gedminas</copyright>
    <lastBuildDate>Wed, 12 Oct 2011 14:25:13 +0300</lastBuildDate>
    <atom:link href="https://mg.pov.lt/blog/tags/gtimelog/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
      <title>N9 Hackathon in Vienna</title>
      <link>https://mg.pov.lt/blog/n9-hackathon.html</link>
      <pubDate>Wed, 12 Oct 2011 14:25:13 +0300</pubDate>
      <author>marius@gedmin.as (Marius Gedminas)</author>
      <guid>https://mg.pov.lt/blog/n9-hackathon.html</guid>
      <description>
&lt;p&gt;Last weekend I attended the &lt;a
href=&#34;https://metalab.at/wiki/N9_Hackathon&#34;&gt;N9 Hackathon&lt;/a&gt; in Vienna.
Nokia kindly sponsored all food and accommodation costs and, at the very end,
surprised me with an entirely unexpected gift of a N9 phone.&lt;/p&gt;

&lt;p&gt;Vienna: great transportation system, delicious food (either that, or I was
always extremely hungry when I ate), huge portions, restaurants open until
midnight.  Shame I didn&#39;t have time to see the city itself.&lt;/p&gt;

&lt;p&gt;The &lt;a href=&#34;http://swipe.nokia.com/&#34;&gt;N9&lt;/a&gt; is a gorgeous phone; much more
so in real life than in pictures.&lt;/p&gt;

&lt;p&gt;After some hassle upgrading the &lt;a href=&#34;http://qt.nokia.com/downloads/&#34;&gt;Qt
SDK&lt;/a&gt; (the provided upgrade tool managed to somehow remove the Qt Creator
IDE while purporting to upgrade it; I had to reinstall the entire SDK) and
flashing &lt;a href=&#34;https://mg.pov.lt/blog/n950&#34;&gt;my N950&lt;/a&gt; with Beta 2 firmware
(Qt SDK 1.1.3 produces apps incompatible with the old Beta 1 firmware of the
N950) I started prototyping a time tracking application in &lt;a
href=&#34;http://doc.trolltech.com/4.7-snapshot/qml-intro.html&#34;&gt;QML&lt;/a&gt;,
while learning QML and the &lt;a
href=&#34;https://www.developer.nokia.com/swipe/ux/pages/building_blocks.html&#34;&gt;N9
design guidelines&lt;/a&gt; at the same time.&lt;/p&gt;

&lt;p&gt;Converting the pretty pictures into QML was harder than I expected, but at
the end of the second day I had &lt;a
href=&#34;http://github.com/mgedmin/qml-time-tracker&#34;&gt;something&lt;/a&gt; that looked
like a native N9 application.&lt;/p&gt;

&lt;div style=&#34;text-align: center; float: none; margin-left: 1em&#34;&gt;
&lt;a href=&#34;https://mg.pov.lt/qml-timetracker-prototype.png&#34;
   title=&#34;click for full size image&#34;
&gt;&lt;img src=&#34;https://mg.pov.lt/qml-timetracker-prototype-cropped.png&#34;
       alt=&#34;screenshot of the prototype&#34; width=&#34;161&#34; height=&#34;306&#34; /&gt;&lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;Most useful reference pages were:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;The &lt;a href=&#34;http://doc.trolltech.com/4.7-snapshot/qdeclarativeintroduction.html&#34;&gt;QML
    syntax introduction&lt;/a&gt; (which felt incomplete, but was almost adequate in the end).&lt;/li&gt;
  &lt;li&gt;The &lt;a href=&#34;http://harmattan-dev.nokia.com/docs/library/html/qt-components/qt-components-meego-componentlist.html?tab=1&#34;&gt;list of Harmattan-specific QML components&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;The &lt;a href=&#34;http://harmattan-dev.nokia.com/docs/library/html/qt4/qdeclarativeelements.html?tab=1&#34;&gt;list of standard QML components&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;The &lt;a
    href=&#34;https://www.developer.nokia.com/swipe/ux/pages/building_blocks.html&#34;&gt;UI
    building blocks pages&lt;/a&gt; mentioned above (pretty pictures! pretty colours! I &lt;em&gt;like&lt;/em&gt; shiny things!).&lt;/li&gt;
  &lt;li&gt;&lt;a href=&#34;http://harmattan-dev.nokia.com/docs/library/html/qt-components/qt-components-meego-interfaceguide.html&#34;&gt;Harmattan
    Qt Components User Interface Guidelines&lt;/a&gt;: pixel and font sizes of the
    standard UI elements.  (Ignore the &#34;import UIConstants.js&#34; red herrings;
    it&#39;s an internal thing &lt;em&gt;apparently&lt;/em&gt;, and you can&#39;t use it
    directly from your 3rd-party apps.  Unless you find and copy UIConstants.js
    into your project, after figuring out if the licence allows it, which
    seemed too much of a hassle for me to even start.  So I hardcoded all
    the numbers directly, like a bad programmer who doesn&#39;t know about
    constants.)&lt;/li&gt;
  &lt;li&gt;The &lt;a
      href=&#34;http://harmattan-dev.nokia.com/docs/library/html/qt-components/qt-components-meego-simpletutorial.html?tab=1&#34;&gt;TutorialApplication&lt;/a&gt;
      sample, finding the sources of which was unexpectedly &lt;em&gt;difficult&lt;/em&gt;
      -- a straight git clone of the &lt;a
      href=&#34;http://qt.gitorious.org/qt-components/qt-components&#34;&gt;qt-components
      repository&lt;/a&gt; gives you something too recent to run with the older
      qt-components version on the N9.  I ended up using apt-get source
      qt-components in Scratchbox to download the &lt;a
      href=&#34;http://harmattan-dev.nokia.com/pool/harmattan-beta/free/q/qt-components/qt-components_1.0~git20110525-1+0m6.tar.gz&#34;&gt;source
      tarball&lt;/a&gt; of version 1.0~git20110525-1+0m6.  Look in
      qt-components/examples/meego/.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Finally, workflow.  QML is parsed at run time (application startup time,
unless you delay the loading), which means no recompilation ought to be
required to make changes, which means short development feedback cycles ought
to be possible.  So I was not happy about having to wait several seconds after
hitting Run in Qt Creator, while it built a .deb, copied it to the device over
wifi or USB networking, installed and ran it there.  Deploying to the Qt
Simulator is quicker, but not as much as I think it ought to be.  Plus, the
Qt Simulator apparently cannot simulate the landscape mode of the N9,
&lt;em&gt;and&lt;/em&gt; it lies about the default font size of QML Text elements (if you
do not specify a pixelSize, text elements will look all right in the simulator,
but ridiculously tiny on the N9).&lt;/p&gt;

&lt;p&gt;In the end I cobbled up a &lt;a
href=&#34;https://github.com/mgedmin/qml-time-tracker/blob/master/quicktest&#34;&gt;shell
script&lt;/a&gt; that rsyncs my updated QML files to the device and runs a short
&lt;a href=&#34;https://github.com/mgedmin/qml-time-tracker/blob/master/quicktest.py&#34;&gt;Python
script&lt;/a&gt; (over ssh) to launch them.  You need rsync and PySide installed on
the device for this, obviously, as well as having
SSH set up for passwordless logins.  As a bonus, I can now do QML development
during lunch, directly on the device, with &lt;a
href=&#34;https://mg.pov.lt/770/dists/harmattan/user/binary-armel/vim_7.3.260-1_armel.deb&#34;&gt;vim&lt;/a&gt;,
enjoying proper &lt;a
href=&#34;http://gitorious.org/qt-qml-demo-playground/qt-qml-demo-playground/blobs/raw/master/qml.vim&#34;&gt;syntax
highlighting&lt;/a&gt;.
:)&lt;/p&gt;

&lt;p&gt;Oh, and my code is &lt;a href=&#34;http://github.com/mgedmin/qml-time-tracker/&#34;&gt;up
on Github&lt;/a&gt;.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>GTimeLog: not dead yet!</title>
      <link>https://mg.pov.lt/blog/gtimelog-not-dead-yet.html</link>
      <pubDate>Fri, 18 Dec 2009 01:22:52 +0200</pubDate>
      <author>marius@gedmin.as (Marius Gedminas)</author>
      <guid>https://mg.pov.lt/blog/gtimelog-not-dead-yet.html</guid>
      <description>
&lt;p&gt;Back in 2004 I wrote a small Gtk+ app to help me keep track of my time, and
called it &lt;a href=&#34;https://mg.pov.lt/gtimelog/&#34;&gt;GTimeLog&lt;/a&gt;.  I shared it with
my coworkers, put it on the web (on the general &#34;release early, release often&#34;
principles), and it got sort-of popular before I found the time to polish it
into a state where I wouldn&#39;t be ashamed to show it to other people.&lt;/p&gt;

&lt;p&gt;Fast-forward to 2008: there are actual users out there (much to my
surprise), I still haven&#39;t added the originally-envisioned spit and polish,
haven&#39;t done anything to foster a development community, am wracked by guilt of
not doing my maintainerly duties properly, which leads to depression and
burnout.  So I do the only thing I can think of: run away from the project and
basically ignore its existence for a year.  Unreviewed patches accumulate in my
inbox.&lt;/p&gt;

&lt;p&gt;It seems that the sabbatical helped: yesterday, triggered by a &lt;a
  href=&#34;http://bugs.debian.org/560981&#34;&gt;new Debian bug report&lt;/a&gt;, I sat down,
fixed the bug, implemented a &lt;a
  href=&#34;https://bugs.launchpad.net/gtimelog/+bug/308750&#34;&gt;feature&lt;/a&gt;, applied a
&lt;a href=&#34;https://bugs.launchpad.net/gtimelog/+bug/328118&#34;&gt;couple&lt;/a&gt; of &lt;a
  href=&#34;https://bugs.launchpad.net/gtimelog/+bug/255618&#34;&gt;patches&lt;/a&gt;
languishing in the bug tracker, and &lt;a
  href=&#34;http://pypi.python.org/pypi/gtimelog&#34;&gt;released version 0.3&lt;/a&gt; (which
was totally broken thanks to setuptools magic that suddenly stopped
working; so released 0.3.1 just now).  Then went through my old unread email,
created &lt;a
  href=&#34;https://bugs.launchpad.net/gtimelog&#34;&gt;bugs in Launchpad&lt;/a&gt; and sent
replies to everyone.  Except &lt;a href=&#34;http://blog.pierlux.com/en/&#34;&gt;Pierre-Luc
  Beaudoin&lt;/a&gt;, since his @collabora.co.uk email address bounced.  If anyone
knows how to contact him, I&#39;d appreciate a note.&lt;/p&gt;

&lt;p&gt;&lt;img src=&#34;https://mg.pov.lt/gtimelog-about-dialog.png&#34;
        alt=&#34;version is now shown in the about dialog&#34; /&gt;&lt;/p&gt;

&lt;p&gt;There are also some older changes that I made before I emerged out of the
funk and so hadn&#39;t widely announced:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    There&#39;s a &lt;a href=&#34;http://groups.google.com/group/gtimelog&#34;&gt;mailing
      list&lt;/a&gt; for user and developer discussions (if there still are any ;).
  &lt;/li&gt;
  &lt;li&gt;
    GTimeLog&#39;s &lt;a href=&#34;https://code.launchpad.net/gtimelog&#34;&gt;source code&lt;/a&gt;
    now lives on Launchpad (actually, I &lt;a
      href=&#34;https://mg.pov.lt/blog/happenings.html&#34;&gt;mentioned&lt;/a&gt; this on my
    blog once).
  &lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
  </channel>
</rss>
