<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3984739269374966438</id><updated>2024-08-29T14:09:52.172+01:00</updated><category term="Linux"/><category term="C++"/><category term="programming"/><category term="C"/><category term="ssh"/><category term="Unix"/><category term="make"/><category term="threads"/><category term="windows"/><category term="Adsense"/><category term="Gnome 3"/><category term="Solaris"/><category term="X11"/><category term=".net"/><category term="BSD"/><category term="CSS"/><category term="GNU"/><category term="HTML"/><category term="I/O"/><category term="Posix"/><category term="Responsive"/><category term="Ubuntu"/><category term="Web design"/><category term="asynchronous"/><category term="aws"/><category term="file"/><category term="gulp"/><category term="maps"/><category term="nuxt"/><category term="osm"/><category term="seg fault"/><category term="serverless"/><category term="visual studio"/><title type='text'>Random Tech</title><subtitle type='html'>A collection of articles I have found useful or interesting and a few interesting topics and techniques I have found hard to find detailed information about elsewhere.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://tech-digby280.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3984739269374966438/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://tech-digby280.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/3984739269374966438/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>digby280</name><uri>http://www.blogger.com/profile/16802503687651031869</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>93</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3984739269374966438.post-1296840254297135861</id><published>2020-02-09T13:16:00.000+00:00</published><updated>2020-02-09T13:16:05.907+00:00</updated><title type='text'>Help!  I tried to switch ISP and now I have no internet: Using 4G and/or 5G for home broadband</title><summary type="text">This guide is aimed at users in the United Kingdom.&amp;nbsp; Experiences in other jurisdictions may vary.&amp;nbsp; I have included details why I started using 4G for internet access in case anyone finds it entertaining.&amp;nbsp; If you are only interested in the practicalities then feel free to skip the &quot;My story&quot; section.


My story

I recently made a critical error.&amp;nbsp; After staying with the same ISP</summary><link rel='replies' type='application/atom+xml' href='http://tech-digby280.blogspot.com/feeds/1296840254297135861/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3984739269374966438/1296840254297135861' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3984739269374966438/posts/default/1296840254297135861'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3984739269374966438/posts/default/1296840254297135861'/><link rel='alternate' type='text/html' href='http://tech-digby280.blogspot.com/2020/02/help-i-tried-to-switch-isp-and-now-i.html' title='Help!  I tried to switch ISP and now I have no internet: Using 4G and/or 5G for home broadband'/><author><name>coder280</name><uri>http://www.blogger.com/profile/08455472911326632628</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3984739269374966438.post-6710508142492102840</id><published>2019-11-03T14:47:00.002+00:00</published><updated>2019-11-03T14:47:52.058+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="maps"/><category scheme="http://www.blogger.com/atom/ns#" term="osm"/><title type='text'>Displaying Maps On Your Website</title><summary type="text">If you are looking for a way to display maps on your website there are a lot of options available to you. Most people will just think of Google Maps but there are a lot of alternatives and some are cheaper too.


How they compare

Pricing
Prices and pricing models vary a lot. Many APIs offer some free &quot;requests&quot; per month or year but be careful about how they define a &quot;request&quot;. There are two </summary><link rel='replies' type='application/atom+xml' href='http://tech-digby280.blogspot.com/feeds/6710508142492102840/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3984739269374966438/6710508142492102840' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3984739269374966438/posts/default/6710508142492102840'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3984739269374966438/posts/default/6710508142492102840'/><link rel='alternate' type='text/html' href='http://tech-digby280.blogspot.com/2019/11/displaying-maps-on-your-website.html' title='Displaying Maps On Your Website'/><author><name>coder280</name><uri>http://www.blogger.com/profile/08455472911326632628</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3984739269374966438.post-5673409462688671069</id><published>2019-10-20T14:02:00.000+01:00</published><updated>2019-10-20T14:02:33.077+01:00</updated><title type='text'>How to convert a GeoTIFF file to raster map tiles</title><summary type="text">There are several options available if you want to convert a GeoTIFF file to raster map tiles. Here I will show three ways of achieving this.

I am using docker here because it is a really easy way platform-independent way to use the latest tools. If you are not familiar with docker I highly recommend learning about it. Docker is a really powerful piece of software. However, If you prefer to can </summary><link rel='replies' type='application/atom+xml' href='http://tech-digby280.blogspot.com/feeds/5673409462688671069/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3984739269374966438/5673409462688671069' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3984739269374966438/posts/default/5673409462688671069'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3984739269374966438/posts/default/5673409462688671069'/><link rel='alternate' type='text/html' href='http://tech-digby280.blogspot.com/2019/10/how-to-convert-geotiff-file-to-raster.html' title='How to convert a GeoTIFF file to raster map tiles'/><author><name>coder280</name><uri>http://www.blogger.com/profile/08455472911326632628</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3984739269374966438.post-4629607088490081041</id><published>2019-02-26T22:12:00.000+00:00</published><updated>2019-02-26T22:12:34.625+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Adsense"/><category scheme="http://www.blogger.com/atom/ns#" term="aws"/><category scheme="http://www.blogger.com/atom/ns#" term="gulp"/><category scheme="http://www.blogger.com/atom/ns#" term="nuxt"/><category scheme="http://www.blogger.com/atom/ns#" term="serverless"/><title type='text'>gulp-awspublish always updates files, even when there are no changes</title><summary type="text">I have just started using gulp-awspublish to help manage a nuxt universal app I created.  I thought it would be worth sharing my experience here because I did not find any articles about similar problems.  My application is currently very small so this is really only an annoyance.  However, it could be problematic for larger apps because many files will be unnecessarily uploaded potentially </summary><link rel='replies' type='application/atom+xml' href='http://tech-digby280.blogspot.com/feeds/4629607088490081041/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3984739269374966438/4629607088490081041' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3984739269374966438/posts/default/4629607088490081041'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3984739269374966438/posts/default/4629607088490081041'/><link rel='alternate' type='text/html' href='http://tech-digby280.blogspot.com/2019/02/gulp-awspublish-always-updates-files.html' title='gulp-awspublish always updates files, even when there are no changes'/><author><name>coder280</name><uri>http://www.blogger.com/profile/08455472911326632628</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3984739269374966438.post-5488234237444881213</id><published>2019-02-20T21:22:00.000+00:00</published><updated>2019-02-22T21:05:39.429+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Adsense"/><category scheme="http://www.blogger.com/atom/ns#" term="CSS"/><category scheme="http://www.blogger.com/atom/ns#" term="HTML"/><category scheme="http://www.blogger.com/atom/ns#" term="Responsive"/><category scheme="http://www.blogger.com/atom/ns#" term="Web design"/><title type='text'>Adsense responsive ads ignore or override css styles</title><summary type="text">
I had some trouble getting adsense responsive ads to respond to css styling. I thought it might be helpful to share my experience because I could not find anyone else with the same problem.  I tried to follow the instructions here but I found the ads would still exceed the height I configured.  My code looked something like this:





The script and html was taken from my adsense account and I </summary><link rel='replies' type='application/atom+xml' href='http://tech-digby280.blogspot.com/feeds/5488234237444881213/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3984739269374966438/5488234237444881213' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3984739269374966438/posts/default/5488234237444881213'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3984739269374966438/posts/default/5488234237444881213'/><link rel='alternate' type='text/html' href='http://tech-digby280.blogspot.com/2019/02/adsense-responsive-ads-ignore-or.html' title='Adsense responsive ads ignore or override css styles'/><author><name>coder280</name><uri>http://www.blogger.com/profile/08455472911326632628</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3984739269374966438.post-2641867483293971974</id><published>2016-03-28T20:16:00.000+01:00</published><updated>2016-03-28T20:19:40.232+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="C"/><category scheme="http://www.blogger.com/atom/ns#" term="C++"/><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><category scheme="http://www.blogger.com/atom/ns#" term="make"/><category scheme="http://www.blogger.com/atom/ns#" term="Unix"/><title type='text'>GNU Make: How many jobs is optimal for the &#39;-j&#39; option?</title><summary type="text">
The most common recommendation for the best value for the &#39;-j&#39; option is number of CPUs including virtual CPUs plus one.&amp;nbsp; This is in fact the default for Ninja - another build system similar to make.&amp;nbsp; However, I read an interesting article recently recommending that this value should be just the number of CPUs.&amp;nbsp; Although this article is now a little dated it makes some sense </summary><link rel='replies' type='application/atom+xml' href='http://tech-digby280.blogspot.com/feeds/2641867483293971974/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3984739269374966438/2641867483293971974' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3984739269374966438/posts/default/2641867483293971974'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3984739269374966438/posts/default/2641867483293971974'/><link rel='alternate' type='text/html' href='http://tech-digby280.blogspot.com/2016/03/gnu-make-how-many-jobs-is-optimal-for-j.html' title='GNU Make: How many jobs is optimal for the &#39;-j&#39; option?'/><author><name>coder280</name><uri>http://www.blogger.com/profile/08455472911326632628</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3984739269374966438.post-2904419945065658256</id><published>2016-03-26T14:42:00.004+00:00</published><updated>2016-03-27T11:48:22.712+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="make"/><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><category scheme="http://www.blogger.com/atom/ns#" term="Unix"/><title type='text'>GNU Make: Why not use load average to limit the number of jobs started?</title><summary type="text">
GNU make has a &#39;-l&#39; option which allow you to limit the maximum load used by GNU make.&amp;nbsp; It works by preventing new job from starting if the load average over the last second exceeds the value provided.&amp;nbsp; I decided to write an article about this because I seen a lot of very vague statements about why using this option isn&#39;t necessarily a good idea.&amp;nbsp; I don&#39;t entirely disagree with </summary><link rel='replies' type='application/atom+xml' href='http://tech-digby280.blogspot.com/feeds/2904419945065658256/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3984739269374966438/2904419945065658256' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3984739269374966438/posts/default/2904419945065658256'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3984739269374966438/posts/default/2904419945065658256'/><link rel='alternate' type='text/html' href='http://tech-digby280.blogspot.com/2016/03/gnu-make-why-not-use-load-average-to.html' title='GNU Make: Why not use load average to limit the number of jobs started?'/><author><name>coder280</name><uri>http://www.blogger.com/profile/08455472911326632628</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3984739269374966438.post-969459045952472383</id><published>2016-03-20T03:00:00.001+00:00</published><updated>2016-03-27T11:48:33.936+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="C++"/><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><category scheme="http://www.blogger.com/atom/ns#" term="seg fault"/><title type='text'>C++ segfault occurs after main() returns</title><summary type="text">
A junior developer I work with came to me recently with an interesting issue.&amp;nbsp; A simple C++ application he had written was seg faulting and he couldn&#39;t figure out why.&amp;nbsp; If you are thinking this sounds like a threading issue thn you are wrong this time.&amp;nbsp; I have come across many seg faults occuring because threads aren&#39;t cleaned up properly.&amp;nbsp; However, in this case the </summary><link rel='replies' type='application/atom+xml' href='http://tech-digby280.blogspot.com/feeds/969459045952472383/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3984739269374966438/969459045952472383' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3984739269374966438/posts/default/969459045952472383'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3984739269374966438/posts/default/969459045952472383'/><link rel='alternate' type='text/html' href='http://tech-digby280.blogspot.com/2016/03/c-segfault-occurs-after-main-returns.html' title='C++ segfault occurs after main() returns'/><author><name>coder280</name><uri>http://www.blogger.com/profile/08455472911326632628</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3984739269374966438.post-4920760944230090847</id><published>2012-06-30T10:23:00.000+01:00</published><updated>2016-03-20T02:44:54.075+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="asynchronous"/><category scheme="http://www.blogger.com/atom/ns#" term="BSD"/><category scheme="http://www.blogger.com/atom/ns#" term="C"/><category scheme="http://www.blogger.com/atom/ns#" term="C++"/><category scheme="http://www.blogger.com/atom/ns#" term="file"/><category scheme="http://www.blogger.com/atom/ns#" term="I/O"/><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><category scheme="http://www.blogger.com/atom/ns#" term="Posix"/><category scheme="http://www.blogger.com/atom/ns#" term="threads"/><category scheme="http://www.blogger.com/atom/ns#" term="Unix"/><title type='text'>Asynchronous I/O using standard POSIX calls</title><summary type="text">*nix systems provide a POSIX standard set of functions for asynchronous I/O. &amp;nbsp;These functions are:

aio_read -&amp;nbsp;Enqueue &amp;nbsp;a read request.
aio_write -&amp;nbsp;Enqueue a write request.
aio_fsync -&amp;nbsp;Enqueue a sync request for the I/O operations on a file descriptor.
aio_error -&amp;nbsp;Obtain the error status of an enqueued I/O request.
aio_return -&amp;nbsp;Obtain the return status of a </summary><link rel='replies' type='application/atom+xml' href='http://tech-digby280.blogspot.com/feeds/4920760944230090847/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3984739269374966438/4920760944230090847' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3984739269374966438/posts/default/4920760944230090847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3984739269374966438/posts/default/4920760944230090847'/><link rel='alternate' type='text/html' href='http://tech-digby280.blogspot.com/2012/06/asynchronous-io-using-standard-posix.html' title='Asynchronous I/O using standard POSIX calls'/><author><name>coder280</name><uri>http://www.blogger.com/profile/08455472911326632628</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3984739269374966438.post-4089876308900220234</id><published>2012-06-22T21:04:00.000+01:00</published><updated>2012-06-22T21:05:11.397+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Gnome 3"/><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><category scheme="http://www.blogger.com/atom/ns#" term="Ubuntu"/><category scheme="http://www.blogger.com/atom/ns#" term="X11"/><title type='text'>Enable Ctrl-Alt-Backspace combination to restart X server in Ubuntu 12.04</title><summary type="text">Many Linux distributions including Ubuntu prior to 9.04 allow you to restart the X windows server using the Ctrl-Alt-Backspace key combination. &amp;nbsp;However, this is now disabled by default in Ubuntu. &amp;nbsp;If you want to enable it again&amp;nbsp;go to Unity dash type “Keyboard Layout” or System Setting -&amp;gt; Keyboard Layout -&amp;gt; Options expand “Key Sequence to Kill X Server” then Check list.

Now </summary><link rel='replies' type='application/atom+xml' href='http://tech-digby280.blogspot.com/feeds/4089876308900220234/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3984739269374966438/4089876308900220234' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3984739269374966438/posts/default/4089876308900220234'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3984739269374966438/posts/default/4089876308900220234'/><link rel='alternate' type='text/html' href='http://tech-digby280.blogspot.com/2012/06/enable-ctrl-alt-backspace-combination.html' title='Enable Ctrl-Alt-Backspace combination to restart X server in Ubuntu 12.04'/><author><name>coder280</name><uri>http://www.blogger.com/profile/08455472911326632628</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3984739269374966438.post-8592585926691278491</id><published>2012-04-05T09:20:00.000+01:00</published><updated>2012-04-11T09:01:06.309+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="C"/><category scheme="http://www.blogger.com/atom/ns#" term="C++"/><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><title type='text'>C/C++ Macro Functions: Why use a do while statement?</title><summary type="text">Yesterday a colleague of mine ask me a question I was once presented with in an interview: Why write a C/C++ with a do while and not simply an opening and closing brace?

For those of you who are not aware it is good practice to write a macro style function using a do while statement. &amp;nbsp;This contrived example should illustrate:
#define FOO(X,Y) do { x = bar(x); y = x * y; } while(0)

The </summary><link rel='replies' type='application/atom+xml' href='http://tech-digby280.blogspot.com/feeds/8592585926691278491/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3984739269374966438/8592585926691278491' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3984739269374966438/posts/default/8592585926691278491'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3984739269374966438/posts/default/8592585926691278491'/><link rel='alternate' type='text/html' href='http://tech-digby280.blogspot.com/2012/04/cc-macro-functions-why-use-do-while.html' title='C/C++ Macro Functions: Why use a do while statement?'/><author><name>coder280</name><uri>http://www.blogger.com/profile/08455472911326632628</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3984739269374966438.post-1905510854350749614</id><published>2012-03-24T09:32:00.001+00:00</published><updated>2012-03-24T09:37:06.120+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="GNU"/><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><category scheme="http://www.blogger.com/atom/ns#" term="make"/><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><category scheme="http://www.blogger.com/atom/ns#" term="Solaris"/><category scheme="http://www.blogger.com/atom/ns#" term="threads"/><title type='text'>The GNU Make Job Server</title><summary type="text">Quite some years ago I played around with the GNU Make source code as part of a C programming course I studied. &amp;nbsp;At the time I came across the GNU Make job server but did not really understand what it did. &amp;nbsp;However, having read a bit about it recently I thought I would share the details because it gives an interesting insight into solving some problems related to&amp;nbsp;parallelism.&amp;nbsp;</summary><link rel='replies' type='application/atom+xml' href='http://tech-digby280.blogspot.com/feeds/1905510854350749614/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3984739269374966438/1905510854350749614' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3984739269374966438/posts/default/1905510854350749614'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3984739269374966438/posts/default/1905510854350749614'/><link rel='alternate' type='text/html' href='http://tech-digby280.blogspot.com/2012/03/gnu-make-job-server.html' title='The GNU Make Job Server'/><author><name>coder280</name><uri>http://www.blogger.com/profile/08455472911326632628</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3984739269374966438.post-8725549755091665771</id><published>2012-03-15T13:48:00.000+00:00</published><updated>2012-03-24T09:37:35.860+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="C"/><category scheme="http://www.blogger.com/atom/ns#" term="C++"/><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><title type='text'>C Program gets segmentation fault after main returns</title><summary type="text">Today I found quite an interesting bug at work. &amp;nbsp;A Linux sample application was sometimes seg faulting on exit. &amp;nbsp;However, when I started to investigate the bug I found that the seq fault occurred after the main function reached the return value. &amp;nbsp;Now there are a number of possible causes for this I have come across in the past including other threads seg faulting, bugs in standard </summary><link rel='replies' type='application/atom+xml' href='http://tech-digby280.blogspot.com/feeds/8725549755091665771/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3984739269374966438/8725549755091665771' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3984739269374966438/posts/default/8725549755091665771'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3984739269374966438/posts/default/8725549755091665771'/><link rel='alternate' type='text/html' href='http://tech-digby280.blogspot.com/2012/03/c-program-get-segmentation-fault-after.html' title='C Program gets segmentation fault after main returns'/><author><name>coder280</name><uri>http://www.blogger.com/profile/08455472911326632628</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3984739269374966438.post-8368176827286049154</id><published>2012-03-15T12:06:00.001+00:00</published><updated>2012-04-05T08:50:53.222+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><category scheme="http://www.blogger.com/atom/ns#" term="ssh"/><category scheme="http://www.blogger.com/atom/ns#" term="X11"/><title type='text'>HowTo: X11 forwarding with ssh and sudo</title><summary type="text">I often find myself logging into remote servers using ssh. &amp;nbsp;ssh has a really cool X11 forwarding feature that allows you to open graphical applications remotely. &amp;nbsp;However, if you use sudo you will find you are unable to open&amp;nbsp;graphical&amp;nbsp;applications.

I found this handy webpage explaining how to get this to work:&amp;nbsp;http://tinyurl.com/83yoes4</summary><link rel='replies' type='application/atom+xml' href='http://tech-digby280.blogspot.com/feeds/8368176827286049154/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3984739269374966438/8368176827286049154' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3984739269374966438/posts/default/8368176827286049154'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3984739269374966438/posts/default/8368176827286049154'/><link rel='alternate' type='text/html' href='http://tech-digby280.blogspot.com/2012/03/howto-x11-forwarding-with-ssh-and-sudo.html' title='HowTo: X11 forwarding with ssh and sudo'/><author><name>coder280</name><uri>http://www.blogger.com/profile/08455472911326632628</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3984739269374966438.post-2071276959311098642</id><published>2012-03-15T09:32:00.000+00:00</published><updated>2012-04-11T09:01:39.338+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Gnome 3"/><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><title type='text'>HowTo: Get Gnome 3 to work in a more conventional way with dual displays</title><summary type="text">Normally when you use multiple displays in Linux both displays make up a complete workspace. &amp;nbsp;However, the default behaviour in Gnome 3 is to only have the primary display change when you switch workspaces. &amp;nbsp;I can see some advantages to doing it this way. &amp;nbsp;Although, this is not the way I usually work so I reverted to the normal method.

To do this you need to install &#39;gconf-editor&#39;</summary><link rel='replies' type='application/atom+xml' href='http://tech-digby280.blogspot.com/feeds/2071276959311098642/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3984739269374966438/2071276959311098642' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3984739269374966438/posts/default/2071276959311098642'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3984739269374966438/posts/default/2071276959311098642'/><link rel='alternate' type='text/html' href='http://tech-digby280.blogspot.com/2012/03/howto-get-gnome-3-to-work-in-more.html' title='HowTo: Get Gnome 3 to work in a more conventional way with dual displays'/><author><name>coder280</name><uri>http://www.blogger.com/profile/08455472911326632628</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3984739269374966438.post-1877159203064812803</id><published>2012-03-14T09:42:00.002+00:00</published><updated>2012-03-14T09:42:51.899+00:00</updated><title type='text'>HowTo: Copy file with a colon in the name using scp</title><summary type="text">Today I found myself frustrated because I needed to copy a file with a name containing multiple colons using scp. &amp;nbsp;I was about to revert to renaming the file when I came across the solution. &amp;nbsp;All you need to do is prepend &#39;./&#39; to the beginning of the file name and scp will interpret it correctly.</summary><link rel='replies' type='application/atom+xml' href='http://tech-digby280.blogspot.com/feeds/1877159203064812803/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3984739269374966438/1877159203064812803' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3984739269374966438/posts/default/1877159203064812803'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3984739269374966438/posts/default/1877159203064812803'/><link rel='alternate' type='text/html' href='http://tech-digby280.blogspot.com/2012/03/howto-copy-file-with-colon-in-name.html' title='HowTo: Copy file with a colon in the name using scp'/><author><name>coder280</name><uri>http://www.blogger.com/profile/08455472911326632628</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3984739269374966438.post-3261570959723346893</id><published>2012-03-12T20:25:00.000+00:00</published><updated>2012-03-12T20:25:16.354+00:00</updated><title type='text'>HowTo: Power off in Gnome 3</title><summary type="text">Gnome 3 will detect if your PC supports suspend functionality. &amp;nbsp;If it does the &#39;Power Off&#39; option in the system menu is replaced with &#39;Suspend&#39;. &amp;nbsp;If you want to power off your computer yon need to hold down the alt key. &amp;nbsp;The text should then change to &#39;Power off&#39;. &amp;nbsp;I searched around and could not find any articles explaining why they chose to do this. &amp;nbsp;I can not say I </summary><link rel='replies' type='application/atom+xml' href='http://tech-digby280.blogspot.com/feeds/3261570959723346893/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3984739269374966438/3261570959723346893' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3984739269374966438/posts/default/3261570959723346893'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3984739269374966438/posts/default/3261570959723346893'/><link rel='alternate' type='text/html' href='http://tech-digby280.blogspot.com/2012/03/howto-power-off-in-gnome-3.html' title='HowTo: Power off in Gnome 3'/><author><name>coder280</name><uri>http://www.blogger.com/profile/08455472911326632628</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3984739269374966438.post-2986483678219629561</id><published>2012-03-12T20:06:00.000+00:00</published><updated>2012-03-12T20:06:57.631+00:00</updated><title type='text'>Fed up with Ubuntu&#39;s Unity shell?</title><summary type="text">I have been using Ubuntu&#39;s Unity shell for nearly a year now and I have to say I don&#39;t really like it. &amp;nbsp;My main objection is that it is quite heavy weight. &amp;nbsp;I run Ubuntu of several computer both at home and at work and I still notice it is not very responsive at times. &amp;nbsp;I was considering switching away from Ubuntu but I found an alternative today. &amp;nbsp;The guys at Ubuntu have </summary><link rel='replies' type='application/atom+xml' href='http://tech-digby280.blogspot.com/feeds/2986483678219629561/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3984739269374966438/2986483678219629561' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3984739269374966438/posts/default/2986483678219629561'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3984739269374966438/posts/default/2986483678219629561'/><link rel='alternate' type='text/html' href='http://tech-digby280.blogspot.com/2012/03/fed-up-with-ubuntus-unity-shell.html' title='Fed up with Ubuntu&#39;s Unity shell?'/><author><name>coder280</name><uri>http://www.blogger.com/profile/08455472911326632628</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3984739269374966438.post-1530647959893191587</id><published>2012-02-27T10:36:00.003+00:00</published><updated>2012-02-28T13:01:58.978+00:00</updated><title type='text'>Streaming data to a specific interface without using the routing table (Linux)</title><summary type="text">I recently created a multicast generator application to test an application that processes multicast data. &amp;nbsp;The application worked well. &amp;nbsp;However, I became frustrated with having to set up the routes on any server I used to ensure the data was sent out of the correct interface. &amp;nbsp;tcpreplay overcomes this by allowing you to give the interface name on the command line and bypasses the</summary><link rel='replies' type='application/atom+xml' href='http://tech-digby280.blogspot.com/feeds/1530647959893191587/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3984739269374966438/1530647959893191587' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3984739269374966438/posts/default/1530647959893191587'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3984739269374966438/posts/default/1530647959893191587'/><link rel='alternate' type='text/html' href='http://tech-digby280.blogspot.com/2012/02/i-recently-created-multicast-generator.html' title='Streaming data to a specific interface without using the routing table (Linux)'/><author><name>coder280</name><uri>http://www.blogger.com/profile/08455472911326632628</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3984739269374966438.post-2752371120725442880</id><published>2011-08-29T17:30:00.000+01:00</published><updated>2011-08-29T17:30:19.372+01:00</updated><title type='text'>Basic SSH Tunneling and port forwarding</title><summary type="text">Just the other day I was looking for a good HowTo guide for SSH tunnelling in Linux but I could not exactly what I was looking for.&amp;nbsp; So once I found all the information I needed I thought I should write so someone - perhaps me - might find it useful in future.

The basics - What exactly is SSH tunnelling

SSH tunnelling allows you to encrypt data between two servers.&amp;nbsp; The data is </summary><link rel='replies' type='application/atom+xml' href='http://tech-digby280.blogspot.com/feeds/2752371120725442880/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3984739269374966438/2752371120725442880' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3984739269374966438/posts/default/2752371120725442880'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3984739269374966438/posts/default/2752371120725442880'/><link rel='alternate' type='text/html' href='http://tech-digby280.blogspot.com/2011/08/basic-ssh-tunneling-and-port-forwarding.html' title='Basic SSH Tunneling and port forwarding'/><author><name>coder280</name><uri>http://www.blogger.com/profile/08455472911326632628</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3984739269374966438.post-1135710107097105876</id><published>2011-04-25T11:26:00.000+01:00</published><updated>2011-04-25T11:26:42.693+01:00</updated><title type='text'>Creating Your Own Custom Wireshark Dissector</title><summary type="text">Wireshark is a powerful open source tool used to dissect Ethernet packets. Have you ever wondered what it takes to implement your own custom dissector? Furthermore, have you attempted to learn Wireshark&#39;s API and found it difficult to understand? This article will attempt to demystify the development of your very own protocol dissector. This article uses Amin Gholiha&#39;s &quot;A Simple IOCP Server/</summary><link rel='replies' type='application/atom+xml' href='http://tech-digby280.blogspot.com/feeds/1135710107097105876/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3984739269374966438/1135710107097105876' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3984739269374966438/posts/default/1135710107097105876'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3984739269374966438/posts/default/1135710107097105876'/><link rel='alternate' type='text/html' href='http://tech-digby280.blogspot.com/2011/04/creating-your-own-custom-wireshark.html' title='Creating Your Own Custom Wireshark Dissector'/><author><name>coder280</name><uri>http://www.blogger.com/profile/08455472911326632628</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3984739269374966438.post-8152731858782765180</id><published>2011-03-28T10:07:00.002+01:00</published><updated>2011-03-28T10:07:57.850+01:00</updated><title type='text'>Linux Daemon Writing HOWTO</title><summary type="text">Creating a daemon in Linux uses a specific set of rules in a given order.  Knowing how they work will help you understand how daemons operate in userland  Linux, but can operate with calls to the kernel also. In fact, a few daemons  interface with kernel modules that work with hardware devices, such as external  controller boards, printers,and PDAs. They are one of the fundamental building  </summary><link rel='replies' type='application/atom+xml' href='http://tech-digby280.blogspot.com/feeds/8152731858782765180/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3984739269374966438/8152731858782765180' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3984739269374966438/posts/default/8152731858782765180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3984739269374966438/posts/default/8152731858782765180'/><link rel='alternate' type='text/html' href='http://tech-digby280.blogspot.com/2011/03/linux-daemon-writing-howto.html' title='Linux Daemon Writing HOWTO'/><author><name>coder280</name><uri>http://www.blogger.com/profile/08455472911326632628</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3984739269374966438.post-8050055018922012114</id><published>2011-02-18T08:50:00.002+00:00</published><updated>2011-02-18T08:50:43.708+00:00</updated><title type='text'>IEEE Standard 754 Floating Point Numbers</title><summary type="text">IEEE Standard 754 floating point is the most common representation today for real numbers on computers, including Intel-based PC&#39;s, Macintoshes, and most Unix platforms. This article gives a brief overview of IEEE floating point and its representation. Discussion of arithmetic implementation may be found in the book mentioned at the bottom of this article.


http://steve.hollasch.net/cgindex/</summary><link rel='replies' type='application/atom+xml' href='http://tech-digby280.blogspot.com/feeds/8050055018922012114/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3984739269374966438/8050055018922012114' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3984739269374966438/posts/default/8050055018922012114'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3984739269374966438/posts/default/8050055018922012114'/><link rel='alternate' type='text/html' href='http://tech-digby280.blogspot.com/2011/02/ieee-standard-754-floating-point.html' title='IEEE Standard 754 Floating Point Numbers'/><author><name>coder280</name><uri>http://www.blogger.com/profile/08455472911326632628</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3984739269374966438.post-9052913280818038286</id><published>2011-02-16T20:14:00.000+00:00</published><updated>2011-02-16T20:14:47.842+00:00</updated><title type='text'>Byte Swapping Floating Point Types</title><summary type="text">The standard library functions only have byte swapping functions for 16 bit and 32 bit integral types. 8 bit data doesn&#39;t need swapping. But sometimes you want to write floating point data to the network or a file. This is problematic in that different processor architectures may use different bit level representations of floating point data, but these days most machines use IEEE 754 </summary><link rel='replies' type='application/atom+xml' href='http://tech-digby280.blogspot.com/feeds/9052913280818038286/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3984739269374966438/9052913280818038286' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3984739269374966438/posts/default/9052913280818038286'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3984739269374966438/posts/default/9052913280818038286'/><link rel='alternate' type='text/html' href='http://tech-digby280.blogspot.com/2011/02/byte-swapping-floating-point-types.html' title='Byte Swapping Floating Point Types'/><author><name>coder280</name><uri>http://www.blogger.com/profile/08455472911326632628</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3984739269374966438.post-4260284684274744879</id><published>2011-02-07T22:55:00.000+00:00</published><updated>2011-02-07T22:55:06.601+00:00</updated><title type='text'>Understanding and Using Floating Point Numbers</title><summary type="text">Most programmers have heard or observed one strange thing or another about floating point numbers. For example, we often discover that floating point numbers that look the same do not necessarily satisfy C&#39;s &quot;==&quot; test. New programmers are usually taught never to use == for floating point numbers for this reason. Occasionally we run into other exceptional cases, for instance mathematically sound </summary><link rel='replies' type='application/atom+xml' href='http://tech-digby280.blogspot.com/feeds/4260284684274744879/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3984739269374966438/4260284684274744879' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3984739269374966438/posts/default/4260284684274744879'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3984739269374966438/posts/default/4260284684274744879'/><link rel='alternate' type='text/html' href='http://tech-digby280.blogspot.com/2011/02/understanding-and-using-floating-point.html' title='Understanding and Using Floating Point Numbers'/><author><name>coder280</name><uri>http://www.blogger.com/profile/08455472911326632628</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>