<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments for CannoNerd&#039;s shots</title>
	<atom:link href="http://cannonerd.wordpress.com/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://cannonerd.wordpress.com</link>
	<description>Susanna Huhtanen adventuring in software</description>
	<lastBuildDate>Tue, 07 Aug 2012 15:48:02 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>Comment on JavaScript and GNOME 3: Referring to files and asynchronous HTTP requests using async libsoup by Pau Iranzo (@paugnu)</title>
		<link>http://cannonerd.wordpress.com/2012/01/11/javascript-and-gnome-3-referring-to-files-and-asynchronous-http-requests-using-async-libsoup/#comment-259</link>
		<dc:creator><![CDATA[Pau Iranzo (@paugnu)]]></dc:creator>
		<pubDate>Tue, 07 Aug 2012 15:48:02 +0000</pubDate>
		<guid isPermaLink="false">http://cannonerd.wordpress.com/?p=143#comment-259</guid>
		<description><![CDATA[Hi cannonerd,

I&#039;ve used your code and it works great. But I need to make the call synchronously. How can I do that? Doing this: 
const _httpSession = new Soup.SessionSync();

Didn&#039;t seem to work... :S]]></description>
		<content:encoded><![CDATA[<p>Hi cannonerd,</p>
<p>I&#8217;ve used your code and it works great. But I need to make the call synchronously. How can I do that? Doing this:<br />
const _httpSession = new Soup.SessionSync();</p>
<p>Didn&#8217;t seem to work&#8230; :S</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on A leap from user to developer, status: landing gears down by cannonerd</title>
		<link>http://cannonerd.wordpress.com/2012/03/07/a-leap-from-user-to-developer-status-landing-gears-down/#comment-226</link>
		<dc:creator><![CDATA[cannonerd]]></dc:creator>
		<pubDate>Fri, 09 Mar 2012 09:34:03 +0000</pubDate>
		<guid isPermaLink="false">http://cannonerd.wordpress.com/?p=186#comment-226</guid>
		<description><![CDATA[Hi, I&#039;m not sure when it will be published under developer-docs, but for the mean time, https://github.com/cannonerd/GNOME-cookbook is where I have everything. The mallard pages are the ones that have bit more than just code, and in samples I have both finished and unfinished exasamples (buttons, toolbar and entry are working, the rest is just halfway there). But writing the guide is a never ending task, so if you have an particular annoyance, just tell me about it and maybe I can include it to the guide :)]]></description>
		<content:encoded><![CDATA[<p>Hi, I&#8217;m not sure when it will be published under developer-docs, but for the mean time, <a href="https://github.com/cannonerd/GNOME-cookbook" rel="nofollow">https://github.com/cannonerd/GNOME-cookbook</a> is where I have everything. The mallard pages are the ones that have bit more than just code, and in samples I have both finished and unfinished exasamples (buttons, toolbar and entry are working, the rest is just halfway there). But writing the guide is a never ending task, so if you have an particular annoyance, just tell me about it and maybe I can include it to the guide <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on A leap from user to developer, status: landing gears down by erick2red</title>
		<link>http://cannonerd.wordpress.com/2012/03/07/a-leap-from-user-to-developer-status-landing-gears-down/#comment-225</link>
		<dc:creator><![CDATA[erick2red]]></dc:creator>
		<pubDate>Thu, 08 Mar 2012 14:23:41 +0000</pubDate>
		<guid isPermaLink="false">http://cannonerd.wordpress.com/?p=186#comment-225</guid>
		<description><![CDATA[Hey, what&#039;s the status of your &quot;JavaScripter’s guide to GNOME&quot; ?
I&#039;m a sure, sure user of that, once it&#039;s done. I&#039;m not use to Javascript coding and I&#039;m having some troubles with it now.]]></description>
		<content:encoded><![CDATA[<p>Hey, what&#8217;s the status of your &#8220;JavaScripter’s guide to GNOME&#8221; ?<br />
I&#8217;m a sure, sure user of that, once it&#8217;s done. I&#8217;m not use to Javascript coding and I&#8217;m having some troubles with it now.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on A leap from user to developer, status: mid-air by Sam Thursfield</title>
		<link>http://cannonerd.wordpress.com/2012/02/13/a-leap-from-user-to-developer-status-mid-air/#comment-206</link>
		<dc:creator><![CDATA[Sam Thursfield]]></dc:creator>
		<pubDate>Wed, 22 Feb 2012 19:59:43 +0000</pubDate>
		<guid isPermaLink="false">http://cannonerd.wordpress.com/2012/02/13/a-leap-from-user-to-developer-status-mid-air/#comment-206</guid>
		<description><![CDATA[It&#039;s interesting, I think use of the terminal is very symbolic of the transition from user to developer. There&#039;s simply no better way to expose the internals of the OS and allow poking around and following on from that, development. However, it&#039;s a completely new way of operating, because generally graphical user interfaces go &quot;Here is everything you can do, do it&quot;, whereas the terminal gives you nothing.]]></description>
		<content:encoded><![CDATA[<p>It&#8217;s interesting, I think use of the terminal is very symbolic of the transition from user to developer. There&#8217;s simply no better way to expose the internals of the OS and allow poking around and following on from that, development. However, it&#8217;s a completely new way of operating, because generally graphical user interfaces go &#8220;Here is everything you can do, do it&#8221;, whereas the terminal gives you nothing.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on A leap from user to developer, status: mid-air by Tomaz Canabrava</title>
		<link>http://cannonerd.wordpress.com/2012/02/13/a-leap-from-user-to-developer-status-mid-air/#comment-201</link>
		<dc:creator><![CDATA[Tomaz Canabrava]]></dc:creator>
		<pubDate>Thu, 16 Feb 2012 11:23:25 +0000</pubDate>
		<guid isPermaLink="false">http://cannonerd.wordpress.com/2012/02/13/a-leap-from-user-to-developer-status-mid-air/#comment-201</guid>
		<description><![CDATA[@boteeka , maybe you don&#039;t like to use things from other &#039;DE&#039;s, but KDevelop 4 is really mature for C/C++/php development. Vala and python not yet. but belive-me, it is an awesome tool.]]></description>
		<content:encoded><![CDATA[<p>@boteeka , maybe you don&#8217;t like to use things from other &#8216;DE&#8217;s, but KDevelop 4 is really mature for C/C++/php development. Vala and python not yet. but belive-me, it is an awesome tool.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on A leap from user to developer, status: mid-air by boteeka</title>
		<link>http://cannonerd.wordpress.com/2012/02/13/a-leap-from-user-to-developer-status-mid-air/#comment-200</link>
		<dc:creator><![CDATA[boteeka]]></dc:creator>
		<pubDate>Wed, 15 Feb 2012 16:10:20 +0000</pubDate>
		<guid isPermaLink="false">http://cannonerd.wordpress.com/2012/02/13/a-leap-from-user-to-developer-status-mid-air/#comment-200</guid>
		<description><![CDATA[I had this feeling for many years now. Linux in general (all DEs and distributions) does not allow for quick and easy development (without a huge amount of previous hacker-like knowledge). You could argue that that&#039;s not the case: just fire up gEdit or your favorite editor and start writing code. And you would be right, that&#039;s quite easy for scripts, and very small programs.

But my point is that there should be a way (the OFFICIAL way) of clicking an icon which starts up a development environment where you can write code, click another button to build/run/debug and be done with it, rinse and repeat until you have your program ready.

It&#039;s a shame that we don&#039;t have that. Yes, there is MonoDevelop (which is the closest to what I have in mind -- but is mono :-/ ). Nothing similar (and mature enough to be usable) for python, c, c++, vala. 

There is this thing called Quickly which tries to tackle the same problem, but it&#039;s not integrated enough: you have to use the command line, gedit and glade. Three different applications: not well integrated.

Although I do prefer Linux over Windows or OSX, we have to give credit for what they achieved with VisualStudio and XCode respectively.

We  _need_ something like those for Linux as well!]]></description>
		<content:encoded><![CDATA[<p>I had this feeling for many years now. Linux in general (all DEs and distributions) does not allow for quick and easy development (without a huge amount of previous hacker-like knowledge). You could argue that that&#8217;s not the case: just fire up gEdit or your favorite editor and start writing code. And you would be right, that&#8217;s quite easy for scripts, and very small programs.</p>
<p>But my point is that there should be a way (the OFFICIAL way) of clicking an icon which starts up a development environment where you can write code, click another button to build/run/debug and be done with it, rinse and repeat until you have your program ready.</p>
<p>It&#8217;s a shame that we don&#8217;t have that. Yes, there is MonoDevelop (which is the closest to what I have in mind &#8212; but is mono :-/ ). Nothing similar (and mature enough to be usable) for python, c, c++, vala. </p>
<p>There is this thing called Quickly which tries to tackle the same problem, but it&#8217;s not integrated enough: you have to use the command line, gedit and glade. Three different applications: not well integrated.</p>
<p>Although I do prefer Linux over Windows or OSX, we have to give credit for what they achieved with VisualStudio and XCode respectively.</p>
<p>We  _need_ something like those for Linux as well!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on A leap from user to developer, status: mid-air by Rich</title>
		<link>http://cannonerd.wordpress.com/2012/02/13/a-leap-from-user-to-developer-status-mid-air/#comment-198</link>
		<dc:creator><![CDATA[Rich]]></dc:creator>
		<pubDate>Tue, 14 Feb 2012 09:07:39 +0000</pubDate>
		<guid isPermaLink="false">http://cannonerd.wordpress.com/2012/02/13/a-leap-from-user-to-developer-status-mid-air/#comment-198</guid>
		<description><![CDATA[One thing that helped me years ago was the list of commands found in the Dos/Win to Linux howto from The Linux Documentation Project:
http://tldp.org/HOWTO/DOS-Win-to-Linux-HOWTO.html

This might help a lot. Also, throwing yourself into a terminal helps. I had to learn how to use some basic commands as RedHat 6.2 didn&#039;t support my graphics card without lengthy manual configuration as it was a cheapo piece of junk. I was left in the CLI for a long time, which was a good learning experience. Also, I did not have an Internet connection so learning was slow from magazines.

Try changing your system run level from 5 to 3 and you&#039;ll learn CLI stuff quickly :-)

Happy hacking on your journey. The blog updates are interesting, thanks!]]></description>
		<content:encoded><![CDATA[<p>One thing that helped me years ago was the list of commands found in the Dos/Win to Linux howto from The Linux Documentation Project:<br />
<a href="http://tldp.org/HOWTO/DOS-Win-to-Linux-HOWTO.html" rel="nofollow">http://tldp.org/HOWTO/DOS-Win-to-Linux-HOWTO.html</a></p>
<p>This might help a lot. Also, throwing yourself into a terminal helps. I had to learn how to use some basic commands as RedHat 6.2 didn&#8217;t support my graphics card without lengthy manual configuration as it was a cheapo piece of junk. I was left in the CLI for a long time, which was a good learning experience. Also, I did not have an Internet connection so learning was slow from magazines.</p>
<p>Try changing your system run level from 5 to 3 and you&#8217;ll learn CLI stuff quickly <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Happy hacking on your journey. The blog updates are interesting, thanks!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on A leap from user to developer, status: mid-air by Stéphane Maniaci</title>
		<link>http://cannonerd.wordpress.com/2012/02/13/a-leap-from-user-to-developer-status-mid-air/#comment-195</link>
		<dc:creator><![CDATA[Stéphane Maniaci]]></dc:creator>
		<pubDate>Mon, 13 Feb 2012 20:28:02 +0000</pubDate>
		<guid isPermaLink="false">http://cannonerd.wordpress.com/2012/02/13/a-leap-from-user-to-developer-status-mid-air/#comment-195</guid>
		<description><![CDATA[I also second this post, thanks for writing it. Great progress have been made on the GNOME Docs in general (I&#039;m thinking about developer.gnome.org), but there is a lot of room for improvement indeed. Thanks for sharing!]]></description>
		<content:encoded><![CDATA[<p>I also second this post, thanks for writing it. Great progress have been made on the GNOME Docs in general (I&#8217;m thinking about developer.gnome.org), but there is a lot of room for improvement indeed. Thanks for sharing!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on A leap from user to developer, status: mid-air by diegoe</title>
		<link>http://cannonerd.wordpress.com/2012/02/13/a-leap-from-user-to-developer-status-mid-air/#comment-194</link>
		<dc:creator><![CDATA[diegoe]]></dc:creator>
		<pubDate>Mon, 13 Feb 2012 19:58:05 +0000</pubDate>
		<guid isPermaLink="false">http://cannonerd.wordpress.com/2012/02/13/a-leap-from-user-to-developer-status-mid-air/#comment-194</guid>
		<description><![CDATA[Thanks for writing this! It is totally true. Perhaps our biggest road block for new contributors. Please do not refrain from detailing the problems you encounter, or even better, proposing documentation for it.

Jhbuild has received lots of love recently, but it still is an experienced hacker tool :-/. Again, please do not refrain from commenting on this problem, the fresh and first hand experience is gold!]]></description>
		<content:encoded><![CDATA[<p>Thanks for writing this! It is totally true. Perhaps our biggest road block for new contributors. Please do not refrain from detailing the problems you encounter, or even better, proposing documentation for it.</p>
<p>Jhbuild has received lots of love recently, but it still is an experienced hacker tool :-/. Again, please do not refrain from commenting on this problem, the fresh and first hand experience is gold!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on JavaScript and GNOME 3: Referring to files and asynchronous HTTP requests using async libsoup by Owen</title>
		<link>http://cannonerd.wordpress.com/2012/01/11/javascript-and-gnome-3-referring-to-files-and-asynchronous-http-requests-using-async-libsoup/#comment-166</link>
		<dc:creator><![CDATA[Owen]]></dc:creator>
		<pubDate>Thu, 12 Jan 2012 22:57:15 +0000</pubDate>
		<guid isPermaLink="false">http://cannonerd.wordpress.com/?p=143#comment-166</guid>
		<description><![CDATA[Nice example!

It turns out there is one issue with the code as you have it - when you do:

function getWeather(callback) {
    var session = new Soup.SessionAsync();
    var request = Soup.Message.new(&#039;GET&#039;, &#039;http://api.geonames.org/weatherIcaoJSON?ICAO=EFHF&amp;username=demo&#039;);
    session.queue_message(request, function(session, message) { ...});
}

There is nothing keeping the &#039;session&#039; variable alive, so it could be garbage collected by the JS runtime before the request completes. This should simply result in your request not working, but right now it also can cause your program to crash in obscure ways, as I just tracked down in a 4-hour debugging session when trying to figure out why the weather extension causes GNOME Shell to crash at random times. :-)

The best thing to do is to create a single HTTP session for your program. This also gains some efficiency by not creating extra objects and possibly reusing persistant connections. At the toplevel scope of your file, do:

const _httpSession = new Soup.SessionAsync();
Soup.Session.prototype.add_feature.call(_httpSession, new Soup.ProxyResolverDefault());

Then just use _httpSession whenever you use a session. (The second line gets libsoup to use HTTP proxies when the user has configured that for their desktop. The weird syntax is to work around a GJS quirk for cases where there are properties and functions with the same name.)]]></description>
		<content:encoded><![CDATA[<p>Nice example!</p>
<p>It turns out there is one issue with the code as you have it &#8211; when you do:</p>
<p>function getWeather(callback) {<br />
    var session = new Soup.SessionAsync();<br />
    var request = Soup.Message.new(&#8216;GET&#8217;, &#8216;http://api.geonames.org/weatherIcaoJSON?ICAO=EFHF&amp;username=demo&#8217;);<br />
    session.queue_message(request, function(session, message) { &#8230;});<br />
}</p>
<p>There is nothing keeping the &#8216;session&#8217; variable alive, so it could be garbage collected by the JS runtime before the request completes. This should simply result in your request not working, but right now it also can cause your program to crash in obscure ways, as I just tracked down in a 4-hour debugging session when trying to figure out why the weather extension causes GNOME Shell to crash at random times. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>The best thing to do is to create a single HTTP session for your program. This also gains some efficiency by not creating extra objects and possibly reusing persistant connections. At the toplevel scope of your file, do:</p>
<p>const _httpSession = new Soup.SessionAsync();<br />
Soup.Session.prototype.add_feature.call(_httpSession, new Soup.ProxyResolverDefault());</p>
<p>Then just use _httpSession whenever you use a session. (The second line gets libsoup to use HTTP proxies when the user has configured that for their desktop. The weird syntax is to work around a GJS quirk for cases where there are properties and functions with the same name.)</p>
]]></content:encoded>
	</item>
</channel>
</rss>
