<?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-232137978740955881</id><updated>2024-11-01T01:55:15.364-07:00</updated><category term="Ada"/><category term="AdaTutor"/><category term="tutorial"/><category term="Slackware"/><category term="Programming"/><category term="GtkAda"/><category term="assignment"/><category term="GCC"/><category term="Linux"/><category term="诗词"/><category term="唐诗"/><category term="C"/><category term="GNAT"/><category term="X11"/><category term="computer"/><category term="generic"/><category term="git"/><category term="i3"/><category term="nginx"/><category term="record"/><category term="GPS"/><category term="Javascript"/><category term="Linus Torvalds"/><category term="OpenSSL"/><category term="Slackware64"/><category term="TeX"/><category term="Text_IO"/><category term="array"/><category term="attribute"/><category term="firefox"/><category term="function"/><category term="html5"/><category term="interview"/><category term="operator"/><category term="package"/><category term="strings"/><category term="task"/><category term="wireshark"/><category term="3D"/><category term="48455197S1"/><category term="AdaCore"/><category term="Android"/><category term="Blog"/><category term="CA"/><category term="Chrome"/><category term="DTLS"/><category term="Dell"/><category term="Direct_IO"/><category term="EC"/><category term="Emscripten"/><category term="GNU"/><category term="Google"/><category term="Gtk_Builder"/><category term="HiDPI"/><category term="I18N"/><category term="IPv6"/><category term="LaTeX"/><category term="Lulu"/><category term="MIT"/><category term="MacBook"/><category term="Microsoft"/><category term="Montparnasse Tower"/><category term="NTFS"/><category term="Nexus"/><category term="OS X"/><category term="Open Course"/><category term="OpenVMS"/><category term="Operation System"/><category term="P5VDC-MX"/><category term="PDF"/><category term="Packing"/><category term="Parick Volkerding"/><category term="Patrick Volkerding"/><category term="Publishing"/><category term="SDL2"/><category term="SDL_GL_SetSwapInterval"/><category term="SDL_RenderPresent"/><category term="SE567"/><category term="SMS"/><category term="Sequential_IO"/><category term="Sputnik"/><category term="Static code analysis"/><category term="Stream_IO"/><category term="String"/><category term="TLS"/><category term="TOSLINK"/><category term="Tangerine"/><category term="Tower of Hanoi"/><category term="UDP"/><category term="Unbounded_String"/><category term="VAX"/><category term="Vector"/><category term="WebAssembly"/><category term="Windows"/><category term="Windows 10"/><category term="abstract subprogram"/><category term="abstract type"/><category term="access type"/><category term="animation"/><category term="bash"/><category term="blogger"/><category term="bonus"/><category term="boot manager"/><category term="brew"/><category term="bridge mode"/><category term="capitalization"/><category term="case"/><category term="cgi"/><category term="charging"/><category term="chroot"/><category term="cli"/><category term="client-less"/><category term="code beautifier"/><category term="comment"/><category term="completion"/><category term="constant"/><category term="controlled type"/><category term="conversion"/><category term="corrupted xref"/><category term="crash"/><category term="crypto"/><category term="deallocation"/><category term="declaration"/><category term="default parameter"/><category term="derived type"/><category term="display"/><category term="documentary"/><category term="donation"/><category term="drawing"/><category term="dynamic dispatching"/><category term="elliptic curve"/><category term="emulator"/><category term="enumeration"/><category term="exception"/><category term="exit"/><category term="eye"/><category term="fcgi"/><category term="fcgiwrap"/><category term="feed"/><category term="fixed point"/><category term="for"/><category term="forward banking"/><category term="gnatpp"/><category term="gnutls"/><category term="google earth"/><category term="google glass"/><category term="google watch"/><category term="goto"/><category term="guacamole"/><category term="gvim"/><category term="help"/><category term="hi-dpi"/><category term="highlight"/><category term="history"/><category term="http headers"/><category term="humor"/><category term="iPad"/><category term="iPhone"/><category term="identifier"/><category term="if"/><category term="indent"/><category term="infix notation"/><category term="instantiation"/><category term="interger"/><category term="lable"/><category term="laptop"/><category term="limited controlled type"/><category term="limited private"/><category term="logo"/><category term="lollipop"/><category term="loose ends"/><category term="mirror"/><category term="modular type"/><category term="module"/><category term="multidimention"/><category term="mupdf"/><category term="mutool"/><category term="not charging"/><category term="ntfs-3g"/><category term="number"/><category term="orangekey"/><category term="parameter"/><category term="php"/><category term="pitfalls"/><category term="pragmas"/><category term="pretty print"/><category term="private type"/><category term="procedure"/><category term="pty"/><category term="rEFInd"/><category term="range"/><category term="recursion"/><category term="redshift"/><category term="regression"/><category term="rename"/><category term="repair"/><category term="representation clause"/><category term="reset"/><category term="resizing"/><category term="rogers"/><category term="rsync. lftp"/><category term="server"/><category term="short circuit form"/><category term="slackbuilds.org"/><category term="slackpkg"/><category term="sound card"/><category term="source code"/><category term="spacing"/><category term="spam"/><category term="spawn-fcgi"/><category term="squashing commits"/><category term="stream"/><category term="subprogram"/><category term="subtype"/><category term="swirling hole"/><category term="system"/><category term="tab window"/><category term="tagged record"/><category term="terminal"/><category term="texia"/><category term="time"/><category term="tomcat"/><category term="toothpick"/><category term="tuxera"/><category term="typesetting"/><category term="unchecked"/><category term="universal type"/><category term="use"/><category term="use type"/><category term="user defined type"/><category term="user.email"/><category term="variable"/><category term="vcs"/><category term="wearable"/><category term="while"/><category term="windows password"/><category term="with"/><category term="wm"/><category term="xterm"/><category term="xxgdb"/><category term="宋词"/><title type='text'>Z&#39;s space</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://zhu-qy.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/232137978740955881/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://zhu-qy.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/232137978740955881/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Qunying</name><uri>http://www.blogger.com/profile/13348553855322529578</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>130</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-232137978740955881.post-1542560796398591720</id><published>2022-07-02T10:17:00.000-07:00</published><updated>2024-09-24T14:22:55.197-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Ada"/><category scheme="http://www.blogger.com/atom/ns#" term="Slackware"/><title type='text'>New release of Ada  for Slackware 15.0</title><content type='html'>&lt;p&gt;Finally, after many years of inactivity, a &lt;a href=&quot;https://github.com/qunying/ada-4-slackware/releases&quot; target=&quot;_blank&quot;&gt;new release&lt;/a&gt; is out for Slacware 15.0.&lt;/p&gt;

&lt;p&gt;Major changes of this release: contains the &lt;a href=&quot;https://github.com/qunying/ada-4-slackware/releases&quot; target=&quot;_blank&quot;&gt;Alire&lt;/a&gt;; the GNATStudio is using the binary &lt;a href=&quot;https://github.com/AdaCore/gnatstudio/releases&quot; target=&quot;_blank&quot;&gt;GNAT Studio Continuous Release 20220512&lt;/a&gt;, I failed to build it from source due to lots of dependcies and stuck in the &lt;a href=&quot;https://github.com/AdaCore/ada_language_server/&quot; target=&quot;_blank&quot;&gt;Ada langguare server&lt;/a&gt;; a build script that boostrap &lt;a href=&quot;https://github.com/AdaCore/gprbuild/&quot; target=&quot;_blank&quot;&gt;gprbuild&lt;/a&gt; and build/install all the basic packages (XMLAda, GTKAda, Florist, AUnit, GNATCOLL, etc).&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://zhu-qy.blogspot.com/feeds/1542560796398591720/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/232137978740955881/1542560796398591720' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/232137978740955881/posts/default/1542560796398591720'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/232137978740955881/posts/default/1542560796398591720'/><link rel='alternate' type='text/html' href='http://zhu-qy.blogspot.com/2022/07/new-release-of-ada-for-slackware-150.html' title='New release of Ada  for Slackware 15.0'/><author><name>Qunying</name><uri>http://www.blogger.com/profile/13348553855322529578</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-232137978740955881.post-7446096757716671121</id><published>2022-02-03T14:04:00.003-08:00</published><updated>2022-02-03T14:04:56.426-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Slackware"/><title type='text'>Hooray Slackware 15.0 is released!</title><content type='html'>Finally, after years of hardwork, &lt;a href=&quot;https://www.slackware.com/index.php&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;Slackware 15.0 finally released&lt;/a&gt;!

</content><link rel='replies' type='application/atom+xml' href='http://zhu-qy.blogspot.com/feeds/7446096757716671121/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/232137978740955881/7446096757716671121' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/232137978740955881/posts/default/7446096757716671121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/232137978740955881/posts/default/7446096757716671121'/><link rel='alternate' type='text/html' href='http://zhu-qy.blogspot.com/2022/02/hooray-slackware-150-is-released.html' title='Hooray Slackware 15.0 is released!'/><author><name>Qunying</name><uri>http://www.blogger.com/profile/13348553855322529578</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-232137978740955881.post-7053009422349183878</id><published>2021-10-17T18:00:00.000-07:00</published><updated>2021-10-17T18:00:39.133-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AdaCore"/><category scheme="http://www.blogger.com/atom/ns#" term="Blog"/><category scheme="http://www.blogger.com/atom/ns#" term="feed"/><title type='text'>Feed from AdaCore&#39;s blog not working properly</title><content type='html'>I have been subscribed to &lt;a href=&quot;https://blog.adacore.com/feed&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;AadCore&#39;s blog feed&lt;/a&gt; for some time. Its feed content was OK for some time, and suddently does not work any more (also for some time already, I just did not have time to tackle the problem). I could not get any new feed, altough I could see new blog entries posted. With both feed readers &lt;a href=&quot;https://lzone.de/liferea/&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;Liferea&lt;/a&gt; and Thunderbird, I could not get it display any feed.

&lt;p&gt;After invesitigation, I found the feed respone content is not conform to the standard, it contains a new line at the start of the feed, and has javascript block at the end of the response.

&lt;p&gt;When doing further investigation with Liferea, I found that it supports a very useful feature, a conversion filter. After try and error, I formuate a sed filter commands that could remove all those invalid entries in the source:
&lt;pre&gt;sed  -e &#39;1d&#39;  -e &#39;s/&lt;\/rss&gt;.*$/&lt;\/rss&gt;/&#39; -e &#39;/&lt;\/rss&gt;/q&#39;&lt;/pre&gt;
The first script removes the first line, the 2nd script remvoes all characters after &lt;i&gt;&amp;lt;/rss&amp;gt;&lt;/i&gt; in the same line, the 3rd scripte stops when encounter &lt;i&gt;&amp;lt;/rss&amp;gt;&lt;/i&gt;, effectively remove all contents after the matching line.
</content><link rel='replies' type='application/atom+xml' href='http://zhu-qy.blogspot.com/feeds/7053009422349183878/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/232137978740955881/7053009422349183878' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/232137978740955881/posts/default/7053009422349183878'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/232137978740955881/posts/default/7053009422349183878'/><link rel='alternate' type='text/html' href='http://zhu-qy.blogspot.com/2021/10/feed-from-adacores-blog-not-working.html' title='Feed from AdaCore&#39;s blog not working properly'/><author><name>Qunying</name><uri>http://www.blogger.com/profile/13348553855322529578</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-232137978740955881.post-8084230426468995017</id><published>2020-11-27T10:32:00.001-08:00</published><updated>2022-07-14T14:08:54.166-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="crash"/><category scheme="http://www.blogger.com/atom/ns#" term="SDL2"/><category scheme="http://www.blogger.com/atom/ns#" term="SDL_GL_SetSwapInterval"/><category scheme="http://www.blogger.com/atom/ns#" term="SDL_RenderPresent"/><title type='text'>Mystery crash in an SDL2 application (solved)</title><content type='html'>&lt;p&gt;I am developing an application in SDL2. It works OK most of the time.
But once in a while, it will crash while just going to refresh the screen with new content with &lt;a href=&quot;https://wiki.libsdl.org/SDL_RenderPresent&quot; target=&quot;_blank&quot;&gt;SDL_RenderPresent()&lt;/a&gt;. The backtrace from gdb shows:
&lt;pre&gt;#0  0x00007ffff73a1c7b in raise () from /lib64/libc.so.6
#1  0x00007ffff7382548 in abort () from /lib64/libc.so.6       
#2  0x00007ffff35a682b in ?? () from /usr/lib64/xorg/modules/dri/iris_dri.so
#3  0x00007ffff40a5886 in ?? () from /usr/lib64/xorg/modules/dri/iris_dri.so
#4  0x00007ffff35c29e9 in ?? () from /usr/lib64/xorg/modules/dri/iris_dri.so
#5  0x00007ffff35b6d2b in ?? () from /usr/lib64/xorg/modules/dri/iris_dri.so
#6  0x00007ffff4ef99e0 in glPrimitiveBoundingBox () from /usr/lib64/libGLX_mesa.so.0
#7  0x00007ffff4eecad1 in ?? () from /usr/lib64/libGLX_mesa.so.0
#8  0x00007ffff7ef6283 in ?? () from /usr/lib64/libSDL2-2.0.so.0
#9  0x0000000000415f42 in refresh_display (ctx=0x7fffffffd370) at gui/main.c:1077
#10 0x0000000000413c79 in main_loop_handler (ctx=0x7fffffffd370) at gui/main.c:362
#11 0x0000000000413b22 in main (argc=1, argv=0x7fffffffdd58) at gui/main.c:323
&lt;/pre&gt;&lt;/p&gt;

&lt;p&gt;I searched around the web with SDL2 crashing during &lt;emph&gt;SDL_RenderPresent()&lt;/emph&gt;. Most of them points to some form of memory corruption causing that, but I have double check my code with various tools and manual inspection, there is no memory corruption.  Then I came across this article &lt;a href=&quot;https://devcry.heiho.net/html/2015/20150211-rock-solid-frame-rates.html&quot; target=&quot;_blank&quot;&gt;&quot;Rock solid frame rates with SDL2&quot;&lt;/a&gt;, it mentioned a function &lt;emph&gt;SDL_SetSwapInterval()&lt;/emph&gt; which will delay &lt;emph&gt;SDL_RenderPresent()&lt;/emph&gt; from swapping the render buffers till the swap interval (wait for vsync). This seems match what I suspected that the buffer is updated on the wrong time and causing the crash.&lt;/p&gt;

&lt;p&gt;There is just a little problem, there is no more &lt;emph&gt;SDL_SetSwapInterval()&lt;/emph&gt; any more, in stead it become &lt;a href=&quot;https://wiki.libsdl.org/SDL_GL_SetSwapInterval&quot; target=&quot;_blank&quot;&gt;SDL_GL_SetSwapInterval()&lt;/a&gt;. I added in the oneline call &lt;emph&gt;SDL_GL_SetSwapInterval(1)&lt;/emph&gt;, and vala, so far all tests do not show the crash anymore.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://zhu-qy.blogspot.com/feeds/8084230426468995017/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/232137978740955881/8084230426468995017' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/232137978740955881/posts/default/8084230426468995017'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/232137978740955881/posts/default/8084230426468995017'/><link rel='alternate' type='text/html' href='http://zhu-qy.blogspot.com/2020/11/mystery-crash-in-sdl2-application-solved.html' title='Mystery crash in an SDL2 application (solved)'/><author><name>Qunying</name><uri>http://www.blogger.com/profile/13348553855322529578</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-232137978740955881.post-8838096362498530044</id><published>2020-07-09T09:46:00.001-07:00</published><updated>2024-03-01T17:51:28.241-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="C"/><category scheme="http://www.blogger.com/atom/ns#" term="Emscripten"/><category scheme="http://www.blogger.com/atom/ns#" term="Javascript"/><category scheme="http://www.blogger.com/atom/ns#" term="String"/><category scheme="http://www.blogger.com/atom/ns#" term="WebAssembly"/><title type='text'>WebAssmebly passing string from C to JavaScript</title><content type='html'>&lt;p&gt;Recently, I am working on a project that involves &lt;a href=&quot;https://webassembly.org/&quot;&gt;WebAssembly.&lt;/a&gt;
In the project I would need to call out a JavaScript function with a C string
&lt;var&gt;char *string&lt;/var&gt; as parameter.&lt;/p&gt;

&lt;p&gt;I could not get the string in JavaScript function, searching on the internet does not
result in any useful information. None of the solutions I found are elegant. Then I realized I had
used the WebSocket APIs from &lt;a href=&quot;https://emscripten.org/&quot;&gt;Emscripten&lt;/a&gt;, which is passing the
URL as a C string to the underline JavaScript support function. How does it do that? I digged out the &lt;a href=&quot;https://github.com/emscripten-core/emscripten/blob/master/src/library_websocket.js&quot;&gt;source&lt;/a&gt; of it
and found in function &lt;var&gt;emscripten_websocket_new&lt;/var&gt;, it is using &lt;var&gt;UTF8ToString&lt;/var&gt;
to convert the C string to a JavaScript String.
&lt;a href=https://emscripten.org/docs/api_reference/preamble.js.html#conversion-functions-strings-pointers-and-arrays&gt;&lt;var&gt;UTF8ToString&lt;/var&gt;&lt;/a&gt; is Emscripten&#39;s runtime function,
I could not call it directly from my JavaScript function.&lt;/p&gt;

&lt;p&gt;According to the &lt;a href=https://emscripten.org/docs/api_reference/preamble.js.html&gt;preamble.js&lt;/a&gt; document,
I would need to use &lt;code&gt;-s &#39;EXTRA_EXPORTED_RUNTIME_METHODS=[&quot;UTF8ToString&quot;]&#39;&lt;/code&gt; on the linker command to
export the function and use it as &lt;code&gt;Module.UTF8ToString&lt;/code&gt;. Problem solved.&lt;/p&gt;

&lt;p&gt;Below are sample code that demonstrate the usage:&lt;br /&gt;
JavaScirpt function:
&lt;pre&gt;
function processing_string_from_c(ptr, len) {
    var text = Module.UTF8ToString(ptr, len);
    ....
}
&lt;/pre&gt;

In the C code:
&lt;pre&gt;
 char *string;
 ...
 EM_ASM({process_string_from_c($0, $1);}, string, strlen(string));
 ...
&lt;/pre&gt;

And in the linker line, remember to use
&lt;pre&gt;-s &#39;EXTRA_EXPORTED_RUNTIME_METHODS=[&quot;UTF8ToString&quot;]&#39;&lt;/pre&gt;

P.S. In the latest release of emscripten, the export functions become global scope. So calls would be &lt;code&gt;UTF8ToString()&lt;/code&gt; directly.</content><link rel='replies' type='application/atom+xml' href='http://zhu-qy.blogspot.com/feeds/8838096362498530044/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/232137978740955881/8838096362498530044' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/232137978740955881/posts/default/8838096362498530044'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/232137978740955881/posts/default/8838096362498530044'/><link rel='alternate' type='text/html' href='http://zhu-qy.blogspot.com/2020/07/webassmebly-passing-string-from-c-to.html' title='WebAssmebly passing string from C to JavaScript'/><author><name>Qunying</name><uri>http://www.blogger.com/profile/13348553855322529578</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-232137978740955881.post-5417299664763247215</id><published>2018-07-25T16:17:00.000-07:00</published><updated>2018-08-08T13:22:35.937-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="donation"/><category scheme="http://www.blogger.com/atom/ns#" term="help"/><category scheme="http://www.blogger.com/atom/ns#" term="Parick Volkerding"/><category scheme="http://www.blogger.com/atom/ns#" term="Slackware"/><title type='text'>Slackware Creator Patrick Volkerding needs help</title><content type='html'>It was sad to know that &lt;a href=&quot;https://www.linuxquestions.org/questions/slackware-14/donating-to-slackware-4175634729/#post5882751&quot;&gt;Patrick (The creator/maintainer of Slackware)&lt;/a&gt; is on financial crisis.

&lt;p&gt;
It is unfortunate that he do not get his share of income from the store, and now he is
&lt;blockquote&gt;I mean, I&#39;m sitting here in a house with a giant hole in the roof, a broken
door sealed with duct tape, and a failed air conditioning condenser that I can&#39;t afford
to fix, my wife has been driving on a spare tire for weeks, my teeth need serious
attention again, and I only just got a machine here with UEFI for the first time
(bought a used machine... really out of my budget but it had to be done).&lt;/blockquote&gt;

&lt;p&gt;
The Slackware community is eager to help and for
the time being &lt;a href=&quot;https://www.linuxquestions.org/questions/slackware-14/donating-to-slackware-4175634729/page11.html#post5883695&quot;&gt;Patrick gave his PayPal&lt;/a&gt; account link before he could setup
a proper channel for donation.

&lt;p&gt;
Patrick Volkerding&#39;s Paypal account: &lt;a href=&quot;https://www.paypal.me/volkerdi&quot;&gt;https://www.paypal.me/volkerdi&lt;/a&gt;

&lt;p&gt;And please donate if you like Slackware and willing to help.

&lt;p&gt;Patrick has a cafepress account for &lt;a href=&quot;https://www.cafepress.com/volkerdi&quot;&gt;Official Licensed Slackware Store&lt;/a&gt;.
&lt;a href=&quot;https://www.linuxquestions.org/questions/slackware-14/donating-to-slackware-4175634729/page37.html#post5889067&quot;&gt;Confirmed by Patrick.&lt;/a&gt;




</content><link rel='replies' type='application/atom+xml' href='http://zhu-qy.blogspot.com/feeds/5417299664763247215/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/232137978740955881/5417299664763247215' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/232137978740955881/posts/default/5417299664763247215'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/232137978740955881/posts/default/5417299664763247215'/><link rel='alternate' type='text/html' href='http://zhu-qy.blogspot.com/2018/07/slackware-creator-patrick-volkerding.html' title='Slackware Creator Patrick Volkerding needs help'/><author><name>Qunying</name><uri>http://www.blogger.com/profile/13348553855322529578</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-232137978740955881.post-8934310277159111123</id><published>2018-02-02T10:36:00.001-08:00</published><updated>2024-06-25T14:07:22.523-07:00</updated><title type='text'>Why people think bitcoin has value, I still don&#39;t understand?</title><content type='html'>&lt;p&gt;I still don&#39;t understand why people will value Bitcoin or any derivative
coins.
&lt;/p&gt;

&lt;p&gt;
When I first heard about the name of Bitcoin when it was first come out,
my instinct think of it has absolutely no value besides
wasting resources to calculate those blocks.
&lt;/p&gt;

&lt;p&gt;
The so call decentralize nature of it only has value on the eyes criminal
for money laundering. Each and every transaction need to be kept in the
bitcoin network and it is growing bigger and bigger. That is causing
&lt;a href=&quot;https://coincentral.com/how-long-do-bitcoin-transfers-take/&quot;&gt;Transaction are getting longer and longer&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Even with today&#39;s value of USD$8K per bitcoin, I still see no value of it.
&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://zhu-qy.blogspot.com/feeds/8934310277159111123/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/232137978740955881/8934310277159111123' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/232137978740955881/posts/default/8934310277159111123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/232137978740955881/posts/default/8934310277159111123'/><link rel='alternate' type='text/html' href='http://zhu-qy.blogspot.com/2018/02/why-people-think-bitcoin-has-value-i.html' title='Why people think bitcoin has value, I still don&#39;t understand?'/><author><name>Qunying</name><uri>http://www.blogger.com/profile/13348553855322529578</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-232137978740955881.post-7847482593928996454</id><published>2017-10-30T14:46:00.002-07:00</published><updated>2017-10-30T14:46:56.956-07:00</updated><title type='text'>Ref: Macbook charger teardown</title><content type='html'>Ref: &lt;a href=&quot;http://www.righto.com/2015/11/macbook-charger-teardown-surprising.html&quot;&gt;Macbook charger teardown: The surprising complexity inside Apple&#39;s power adapter&lt;/a&gt; by Ken Shirriff.</content><link rel='replies' type='application/atom+xml' href='http://zhu-qy.blogspot.com/feeds/7847482593928996454/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/232137978740955881/7847482593928996454' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/232137978740955881/posts/default/7847482593928996454'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/232137978740955881/posts/default/7847482593928996454'/><link rel='alternate' type='text/html' href='http://zhu-qy.blogspot.com/2017/10/ref-macbook-charger-teardown.html' title='Ref: Macbook charger teardown'/><author><name>Qunying</name><uri>http://www.blogger.com/profile/13348553855322529578</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-232137978740955881.post-7660863659703053229</id><published>2017-10-04T10:44:00.000-07:00</published><updated>2017-10-04T10:44:41.145-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Ada"/><category scheme="http://www.blogger.com/atom/ns#" term="GCC"/><category scheme="http://www.blogger.com/atom/ns#" term="GNAT"/><category scheme="http://www.blogger.com/atom/ns#" term="Slackware"/><title type='text'>New Ada for Slackware released</title><content type='html'>Finally, long after released of GNAT GPL 2017 and GCC in 7.x series in Slackware-current,
I got some time to work on the Ada environment for Slackware and got a working version of GPS.
&lt;p&gt;
The new release is at &lt;a href=&quot;https://github.com/qunying/ada-4-slackware/&quot;&gt;GitHub&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://zhu-qy.blogspot.com/feeds/7660863659703053229/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/232137978740955881/7660863659703053229' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/232137978740955881/posts/default/7660863659703053229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/232137978740955881/posts/default/7660863659703053229'/><link rel='alternate' type='text/html' href='http://zhu-qy.blogspot.com/2017/10/new-ada-for-slackware-released.html' title='New Ada for Slackware released'/><author><name>Qunying</name><uri>http://www.blogger.com/profile/13348553855322529578</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-232137978740955881.post-4749458069200325172</id><published>2017-05-19T11:05:00.000-07:00</published><updated>2017-05-19T11:12:20.459-07:00</updated><title type='text'>Raised Fist Emoji</title><content type='html'>&lt;div style=&quot;text=center&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLKDCh1nstQKj0IXEp4qylF5BvTD-02Lw7EUZogwPJouB2n7zqihmbTsxpoKts7WWC4VHVcW6uCBsr_99sR6DvYS-JsIvGFzyZ-_I9ffUI8_ZhByidlls2BXZ7R2EtLrMsm7E1zBq8Tew/s1600/435fe70307bc055c802a5bb9f4613f8c.png&quot; /&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLKDCh1nstQKj0IXEp4qylF5BvTD-02Lw7EUZogwPJouB2n7zqihmbTsxpoKts7WWC4VHVcW6uCBsr_99sR6DvYS-JsIvGFzyZ-_I9ffUI8_ZhByidlls2BXZ7R2EtLrMsm7E1zBq8Tew/s1600/435fe70307bc055c802a5bb9f4613f8c.png&quot; /&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLKDCh1nstQKj0IXEp4qylF5BvTD-02Lw7EUZogwPJouB2n7zqihmbTsxpoKts7WWC4VHVcW6uCBsr_99sR6DvYS-JsIvGFzyZ-_I9ffUI8_ZhByidlls2BXZ7R2EtLrMsm7E1zBq8Tew/s1600/435fe70307bc055c802a5bb9f4613f8c.png&quot; /&gt;&lt;/div&gt;
✊✊✊</content><link rel='replies' type='application/atom+xml' href='http://zhu-qy.blogspot.com/feeds/4749458069200325172/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/232137978740955881/4749458069200325172' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/232137978740955881/posts/default/4749458069200325172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/232137978740955881/posts/default/4749458069200325172'/><link rel='alternate' type='text/html' href='http://zhu-qy.blogspot.com/2017/05/raised-fist-emoji.html' title='Raised Fist Emoji'/><author><name>Qunying</name><uri>http://www.blogger.com/profile/13348553855322529578</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><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLKDCh1nstQKj0IXEp4qylF5BvTD-02Lw7EUZogwPJouB2n7zqihmbTsxpoKts7WWC4VHVcW6uCBsr_99sR6DvYS-JsIvGFzyZ-_I9ffUI8_ZhByidlls2BXZ7R2EtLrMsm7E1zBq8Tew/s72-c/435fe70307bc055c802a5bb9f4613f8c.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-232137978740955881.post-9134132731761822355</id><published>2017-05-04T10:14:00.000-07:00</published><updated>2017-05-04T11:10:58.919-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Ada"/><category scheme="http://www.blogger.com/atom/ns#" term="GCC"/><category scheme="http://www.blogger.com/atom/ns#" term="Slackware"/><title type='text'>GCC 7.1 is out</title><content type='html'>&lt;p&gt;&lt;a href=&quot;https://gcc.gnu.org/gcc-7/&quot; target=_blank&gt;GCC 7.1 was released on May 2.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I tried it out and recompiled all my Ada related builds, &lt;strike&gt;finally I got a stable GPS
that does not crash after opening a project file&lt;/strike&gt;. It still crashed on me, maybe I should revert
to an older version?
&lt;/p&gt;
&lt;p&gt;
I have updated my build scripts
&lt;a href=&quot;http://https://github.com/qunying/ada-4-slackware&quot; target=_blank&gt;ada-4-slackware&lt;/a&gt; on gitHub.
There is still some problems with ASIS 2016, some API changed for the new compiler,
will update the build script once got time.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://zhu-qy.blogspot.com/feeds/9134132731761822355/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/232137978740955881/9134132731761822355' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/232137978740955881/posts/default/9134132731761822355'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/232137978740955881/posts/default/9134132731761822355'/><link rel='alternate' type='text/html' href='http://zhu-qy.blogspot.com/2017/05/gcc-7-is-out.html' title='GCC 7.1 is out'/><author><name>Qunying</name><uri>http://www.blogger.com/profile/13348553855322529578</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-232137978740955881.post-2230256907883488295</id><published>2017-04-20T11:06:00.000-07:00</published><updated>2017-04-20T11:06:31.152-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="3D"/><category scheme="http://www.blogger.com/atom/ns#" term="google earth"/><category scheme="http://www.blogger.com/atom/ns#" term="Montparnasse Tower"/><category scheme="http://www.blogger.com/atom/ns#" term="swirling hole"/><title type='text'>A strange 3D building from Google earth</title><content type='html'>As Google just release a new version of Google earth, I tried it on my phone with
&quot;I&#39;m feeling Lucky&quot; button ^_^, it lead me to the &quot;Montparnasse Tower&quot;, the 3D view
is strange on the north-west facing, there is a swirling hole in the upper part of the building.

&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjY6P-6tTSXQp-c0EYFTfMy5jCCgMbP2sNyU_ngLH2OILT323untfXYgDo0sY5AClCqC6ynw7nc5Bj0dhg6GYOU2bv0rTimQTiE2VYGB_6eOiZjXVe8Ii874rFKE_48021x8i2D9P9px4o/s1600/Montparnasse-tower.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjY6P-6tTSXQp-c0EYFTfMy5jCCgMbP2sNyU_ngLH2OILT323untfXYgDo0sY5AClCqC6ynw7nc5Bj0dhg6GYOU2bv0rTimQTiE2VYGB_6eOiZjXVe8Ii874rFKE_48021x8i2D9P9px4o/s320/Montparnasse-tower.jpg&quot; width=&quot;320&quot; height=&quot;224&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
You could find it by searching &quot;Montparnasse Tower&quot; or go to this link &lt;a href=&quot;https://earth.google.com/web/@48.84208373,2.32163335,176.80863415a,316.99543728d,35y,126.46197217h,44.99777544t,-0r/data=ClUaUxJNCiUweDQ3ZTY3MWNjYWUwMDI0NTE6MHhmYzA0ZmY5YzFiMWM1OTNjGW6cuSzLa0hAIRk2b0FbkwJAKhJNb250cGFybmFzc2UgVG93ZXIYASAB&quot; target=&#39;_blank&#39;&gt;Montparnasse Tower&lt;/a&gt; from Chrome.</content><link rel='replies' type='application/atom+xml' href='http://zhu-qy.blogspot.com/feeds/2230256907883488295/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/232137978740955881/2230256907883488295' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/232137978740955881/posts/default/2230256907883488295'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/232137978740955881/posts/default/2230256907883488295'/><link rel='alternate' type='text/html' href='http://zhu-qy.blogspot.com/2017/04/a-strange-3d-building-from-google-earth.html' title='A strange 3D building from Google earth'/><author><name>Qunying</name><uri>http://www.blogger.com/profile/13348553855322529578</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><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjY6P-6tTSXQp-c0EYFTfMy5jCCgMbP2sNyU_ngLH2OILT323untfXYgDo0sY5AClCqC6ynw7nc5Bj0dhg6GYOU2bv0rTimQTiE2VYGB_6eOiZjXVe8Ii874rFKE_48021x8i2D9P9px4o/s72-c/Montparnasse-tower.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-232137978740955881.post-7550487252936214653</id><published>2017-01-25T17:20:00.001-08:00</published><updated>2017-01-25T17:20:32.250-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="TLS"/><category scheme="http://www.blogger.com/atom/ns#" term="wireshark"/><title type='text'>Ref: Decrypting TLS Browser Traffic With Wireshark – The Easy Way!</title><content type='html'>Ref: &lt;a href=&quot;https://jimshaver.net/2015/02/11/decrypting-tls-browser-traffic-with-wireshark-the-easy-way/&quot;&gt;Decrypting TLS Browser Traffic With Wireshark – The Easy Way!&lt;/a&gt;
&lt;br&gt;
Ref: &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/Key_Log_Format&quot;&gt;NSS Key Log Format&lt;/a&gt;

</content><link rel='replies' type='application/atom+xml' href='http://zhu-qy.blogspot.com/feeds/7550487252936214653/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/232137978740955881/7550487252936214653' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/232137978740955881/posts/default/7550487252936214653'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/232137978740955881/posts/default/7550487252936214653'/><link rel='alternate' type='text/html' href='http://zhu-qy.blogspot.com/2017/01/ref-decrypting-tls-browser-traffic-with.html' title='Ref: Decrypting TLS Browser Traffic With Wireshark – The Easy Way!'/><author><name>Qunying</name><uri>http://www.blogger.com/profile/13348553855322529578</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-232137978740955881.post-9016621738011034096</id><published>2017-01-20T16:16:00.001-08:00</published><updated>2018-06-07T15:39:20.732-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="48455197S1"/><category scheme="http://www.blogger.com/atom/ns#" term="bonus"/><category scheme="http://www.blogger.com/atom/ns#" term="forward banking"/><category scheme="http://www.blogger.com/atom/ns#" term="orangekey"/><category scheme="http://www.blogger.com/atom/ns#" term="Tangerine"/><title type='text'>Tangerine Bonus Orange Key</title><content type='html'>    &lt;div style=&quot;background-color: rgb(245, 132, 38); border: 5px solid #f58426; border-radius: 25px;&quot;&gt;
      &lt;br&gt;
      &lt;h1 style=&quot;text-align: center;&quot;&gt;&lt;font size=&quot;15&quot;&gt;Your Free Orange Key&lt;/font&gt;&lt;/h1&gt;
      &lt;div align=&quot;center&quot;&gt;
        &lt;table style=&quot; text-align: center; width: auto;&quot; cellspacing=&quot;0&quot;
          cellpadding=&quot;0&quot;&gt;
          &lt;tbody&gt;
            &lt;tr&gt;&lt;td style=&quot;vertical-align: top;&quot;&gt;
     &lt;h1 style=&quot;text-align: center; background-color: rgb(51, 102, 255);&quot;&gt;
         &lt;font size=&quot;15&quot;&gt;48455197S1&lt;/font&gt;&lt;/h1&gt;
              &lt;/td&gt;
            &lt;/tr&gt;
          &lt;/tbody&gt;
        &lt;/table&gt;
      &lt;/div&gt;
      &lt;h4 style=&quot;text-align:center;&quot;&gt;&lt;font size=&quot;+3&quot;&gt;&lt;a
            href=&quot;http://www.tangerine.ca/en/sign-me-up/index.html&quot;
            target=&quot;_blank&quot;&gt;Enroll Now&lt;/a&gt;&lt;/font&gt;&lt;br&gt;
      &lt;/h4&gt;
    &lt;/div&gt;
This is my orange key, when you signed up for a new account, please use it as a
reference so that both of us could get some bonus from Tangerine.
  &lt;/p&gt;
</content><link rel='replies' type='application/atom+xml' href='http://zhu-qy.blogspot.com/feeds/9016621738011034096/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/232137978740955881/9016621738011034096' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/232137978740955881/posts/default/9016621738011034096'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/232137978740955881/posts/default/9016621738011034096'/><link rel='alternate' type='text/html' href='http://zhu-qy.blogspot.com/2017/01/tangerine-bonus-orange-key.html' title='Tangerine Bonus Orange Key'/><author><name>Qunying</name><uri>http://www.blogger.com/profile/13348553855322529578</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-232137978740955881.post-5611626203428550507</id><published>2017-01-16T10:54:00.001-08:00</published><updated>2017-01-16T10:54:40.425-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="charging"/><category scheme="http://www.blogger.com/atom/ns#" term="iPad"/><category scheme="http://www.blogger.com/atom/ns#" term="iPhone"/><category scheme="http://www.blogger.com/atom/ns#" term="not charging"/><category scheme="http://www.blogger.com/atom/ns#" term="toothpick"/><title type='text'>iPad not charging and a simple solution</title><content type='html'>&lt;p&gt;I got an iPad that is not charging, connect the power cable does not show any indication
of charging, and power keeps draining.&amp;nbsp; Search around the web, it seems it is quite common.&lt;/p&gt;

&lt;p&gt;
I follow a few advises from the search:&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Use compressed air to clean the input socket.&lt;/li&gt;
&lt;li&gt;Force a restart.&lt;/li&gt;
&lt;li&gt;Switch outlets or ports.&lt;/li&gt;
&lt;li&gt;Switch cables.&lt;/li&gt;
&lt;li&gt;Restore in iTunes
&lt;/ol&gt;
&lt;/p&gt;

&lt;p&gt;None of it working.&amp;nbsp; But, during test of stage 5, I actually got the iPad
charged in recovery mode. And it only works in recovery mode when connecting to a computer,
it won&#39;t work when charging from an power adapter.&lt;/p&gt;

&lt;p&gt;That makes me thinking,  why could it be charged under recovery mode but not normal operation?
Hardware seems working, is it a software issue? But I have fully restored the iPad with no success.
I search the web again, and found this one:
&lt;a href=&quot;http://http://www.iphonehacks.com/2013/12/tip-iphone-not-charging.html&quot;&gt;Simple solution if your iPhone or iPad is not charging&lt;/a&gt;.
It seems simple, and I took a toothpick and start picking the input socket, it does not
have lots of lint coming out, just a little bit of dirt. And it works!
&lt;/p&gt;

</content><link rel='replies' type='application/atom+xml' href='http://zhu-qy.blogspot.com/feeds/5611626203428550507/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/232137978740955881/5611626203428550507' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/232137978740955881/posts/default/5611626203428550507'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/232137978740955881/posts/default/5611626203428550507'/><link rel='alternate' type='text/html' href='http://zhu-qy.blogspot.com/2017/01/ipad-not-charging-and-simple-solution.html' title='iPad not charging and a simple solution'/><author><name>Qunying</name><uri>http://www.blogger.com/profile/13348553855322529578</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-232137978740955881.post-9114218029288649714</id><published>2016-11-30T10:35:00.001-08:00</published><updated>2016-11-30T10:35:43.598-08:00</updated><title type='text'>ZSTD - A new compression tool </title><content type='html'>&lt;p&gt;I has some personal interest in compression. Recently, I found this new compression tool:
&lt;a href=&quot;http://facebook.github.io/zstd/&quot; target=_blank&gt;ZStd&lt;/a&gt;. It compresses much faster than gzip with
better compression ratio.
&lt;/p&gt;

&lt;p&gt;For a not so scientific benchmark ^_^, to compress  linux-4.4.34.tar (648867840 bytes) kernel,
time reports the following:
&lt;/p&gt;
&lt;pre&gt;
time zstd linux-4.4.34.tar
real    0m5.157s
user    0m4.116s
sys     0m0.534s

time gzip -k linux-4.4.34.tar
real    0m21.255s
user    0m20.891s
sys     0m0.175s

time xz  -k linux-4.4.34.tar
real    4m21.785s
user    4m21.430s
sys     0m0.265s

648867840  linux-4.4.34.tar
132581836  linux-4.4.34.tar.zst (20.43%)    5.157s
137210920  linux-4.4.34.tar.gz  (21.15%)   21.255s
 90543184  linux-4.4.34.tar.xz  (13.95%) 4m21.785s
&lt;/pre&gt;

&lt;p&gt;It took zstd much less time to compress with slightly better compression than gzip.
For a better benchmark, please refer to the zstd&#39;s
&lt;a href=&quot;http://facebook.github.io/zstd/&quot; target=_blank&gt;home page&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;There is a &lt;a href=&quot;https://slackbuilds.org/repository/14.2/system/zstd/?search=zstd&quot; target=_blank&gt;SlackBuilds package&lt;/a&gt; maintain by me for Slackware also.
</content><link rel='replies' type='application/atom+xml' href='http://zhu-qy.blogspot.com/feeds/9114218029288649714/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/232137978740955881/9114218029288649714' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/232137978740955881/posts/default/9114218029288649714'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/232137978740955881/posts/default/9114218029288649714'/><link rel='alternate' type='text/html' href='http://zhu-qy.blogspot.com/2016/11/zstd-new-compression-tool.html' title='ZSTD - A new compression tool '/><author><name>Qunying</name><uri>http://www.blogger.com/profile/13348553855322529578</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-232137978740955881.post-5881221599124263870</id><published>2016-09-13T10:31:00.000-07:00</published><updated>2016-09-20T10:18:25.846-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Ada"/><category scheme="http://www.blogger.com/atom/ns#" term="GCC"/><category scheme="http://www.blogger.com/atom/ns#" term="Slackware"/><title type='text'>Ada programming environment based on GCC 6.2 and GNAT GPL 2016 in Slackware64 14.2</title><content type='html'>&lt;p&gt;New release of Slackware and new version of GNAT GPL 2016 prompt me to update the Ada programming environment under Slackware.&lt;/p&gt;

&lt;p&gt;First, I was trying to use the stock 5.3 compiler, but encounter gnat compiler error when compiling gprbuild. So has to use the FSF GCC 6.2 as the based.&lt;/p&gt;

&lt;h4&gt;The FSF GCC compiler&lt;/h4&gt;
At the writing, the latest release of GCC is 6.2.0.  First I update the build script to matched what&#39;s in the current tree.  I have changed the build directory to a fixed location to avoid the random location in the original script.  As it is needed for gnat_util build, a fixed location is easier for the script to find the right files.  Built and install without problem.
&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;GNAT Environment package&lt;/h4&gt;
&lt;p&gt;This package contains startup scripts to setup Ada project path environment variable ADA_PROJECT_PATH and GPR_PROJECT_PATH. They will be installed into /etc/profile.d by the doinst.sh.&lt;/p&gt;

&lt;p&gt;Also soft link of the GNAT Ada run time libraries are also created in doinst.sh.&lt;/p&gt;

&lt;h4&gt;XMLAda&lt;/h4&gt;
For XMLAda GPL 2016, the default build process is making use of gprbuild, which depends on XMLAda.  I followed what was done on Arch Linux and created a custom Makefile.SlackBuild.  But I installed the package with the following scheme, similar to what GNAT GPL 2016 is doing but with sub-directories for each sub-module:
&lt;pre&gt;
 usr/include/xmlada
             |- input
             |- unicode
             ...
 usr/lib64/xmlada
           |- input
           |  |- static
           |  `- relocatable
           |- unicode
           |  |- static
           |  `- relocatable
           ...
&lt;/pre&gt;
The document build requires Sphinx, as SlackBuilds.orgprovides all necessary build scripts, it is a matter of installing the relevant packages and dependencies.

&lt;h4&gt;GPRBuild&lt;/h4&gt;
The 2016 version of gprbuild required gprbuild itself.  So Similar to XMLAda, a custom Makefile was borrowed from the Arch Linux project and modified to suite the needs of Slackware. A patch was developed for the gprinstall program, so that its default library subdir and library soft link subdir points to lib64 under Slackware64. A gpr library is also created, as it is needed by a few other programs
&lt;br /&gt;&lt;br /&gt;
&lt;h4&gt;GNAT_UTIL&lt;/h4&gt;
The GNAT Util Libraryprovides access to GNAT compiler internals for AdaCore utilities.  The latest release is 5.1.0, it is used for our GCC 6.2.0.  The build went well.
&lt;br /&gt;&lt;br /&gt;

&lt;h4&gt;GTKAda&lt;/h4&gt;
It does not build very well at the first few builds, it keeps installing libs into /usr/lib in stead of /usr/lib64 on 64-bit system. It seems the generate file still insist on the lib&#39;s path. So more sed commands are added to change the lib path to lib64 on 64-bit system. After that, it built without problem with proper installation path.
&lt;br /&gt;&lt;br /&gt;
&lt;h4&gt;Aunit&lt;/h4&gt;
Aunit&#39;s build script has no big change from the previous version, except for the version bump.
&lt;br /&gt;&lt;br /&gt;
&lt;h4&gt;GNATColl&lt;/h4&gt;
I used version 16.1 from &lt;a href=&quot;https://github.com/AdaCore/gnatcoll/releases&quot;&gt;GitHub&lt;/a&gt;. GNATColl compiled OK, with minor problem with lib&#39;s installation path, similar to the problem in GtkAda. I always got gpr.gpr problem when compiling GPS, latter I found that not sure why, the installing process of gnatcoll will install a copy of the gpr.gpr project file and related object file and source into its own directory structure with some modification to gpr.gpr and causing error on the project file. I have to manually remove all gpr related files and directories and entries in the manifests file. Then GPS will compile with correct project file.
&lt;br /&gt;&lt;br /&gt;
&lt;h4&gt;GPS&lt;/h4&gt;
After fixing the gprbuild, gpr and gnatcoll libraries, GPS compile without problem. When running GPS, it gave python script warning about pep8 and jedi, after install those two from SlackBuilds.org, everything is working fine.
&lt;br /&gt;&lt;br /&gt;
&lt;h4&gt;Florist&lt;/h4&gt;
No trouble when compile and install florist.
&lt;br /&gt;&lt;br /&gt;
&lt;h4&gt;Asis&lt;/h4&gt;
Asis has no problem to compile and install after fixed the gprbuild install path.
&lt;br /&gt;&lt;br /&gt;
&lt;h4&gt;Gnatmem and Ahven&lt;/h4&gt;
Gnatmem (need to compile the binutils for Slackware 14.2 and use the build tree) and Aheven gave no trouble when compiled for the 2016 version. 
&lt;br /&gt;&lt;br /&gt;
All build scripts are available at &lt;a href=&quot;https://github.com/qunying/ada-4-slackware&quot;&gt;GitHub&lt;/a&gt;.

&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnTzf7f2ZHVsJM6ctxJEgfj53Q8YdSVY3d2odopLq4yeVzO18zjhpne-EKRJErHlr7G-fh1dT7fejQjpbJHeP6zRtpQoG4Lxd9LkljIVKU6YjOQamnHNvF7aJ0nAWQjgdnHKYTnnZE9jM/s1600/gps-2016.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnTzf7f2ZHVsJM6ctxJEgfj53Q8YdSVY3d2odopLq4yeVzO18zjhpne-EKRJErHlr7G-fh1dT7fejQjpbJHeP6zRtpQoG4Lxd9LkljIVKU6YjOQamnHNvF7aJ0nAWQjgdnHKYTnnZE9jM/s320/gps-2016.png&quot; width=&quot;295&quot; height=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zhu-qy.blogspot.com/feeds/5881221599124263870/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/232137978740955881/5881221599124263870' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/232137978740955881/posts/default/5881221599124263870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/232137978740955881/posts/default/5881221599124263870'/><link rel='alternate' type='text/html' href='http://zhu-qy.blogspot.com/2016/09/ada-programming-environment-based-on.html' title='Ada programming environment based on GCC 6.2 and GNAT GPL 2016 in Slackware64 14.2'/><author><name>Qunying</name><uri>http://www.blogger.com/profile/13348553855322529578</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><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnTzf7f2ZHVsJM6ctxJEgfj53Q8YdSVY3d2odopLq4yeVzO18zjhpne-EKRJErHlr7G-fh1dT7fejQjpbJHeP6zRtpQoG4Lxd9LkljIVKU6YjOQamnHNvF7aJ0nAWQjgdnHKYTnnZE9jM/s72-c/gps-2016.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-232137978740955881.post-4578252640785823591</id><published>2016-06-19T09:01:00.002-07:00</published><updated>2016-06-23T14:45:49.418-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="brew"/><category scheme="http://www.blogger.com/atom/ns#" term="NTFS"/><category scheme="http://www.blogger.com/atom/ns#" term="ntfs-3g"/><category scheme="http://www.blogger.com/atom/ns#" term="OS X"/><category scheme="http://www.blogger.com/atom/ns#" term="tuxera"/><title type='text'>How to mount NTFS filesystem on OS X</title><content type='html'>&lt;p&gt;I have a Dell backup drive and would like to backup some of my files on OS X to it.
But unfortunately it is formatted as NTFS, by default it is mounted read only on OS X.
&lt;/p&gt;

&lt;p&gt;Searching around, I found someone mention about the NTFS-3G, that is the tool
I am using for Linux.  It seems the fastest access is NTFS for Mac from &lt;a  target=_blank href=&quot;http://www.tuxera.com/products/tuxera-ntfs-for-mac/&quot;&gt;Tuxera.com&lt;/a&gt;, it is
also the sponsor of the open source project NTFS-3G. At first, I try to see if I could
order it, but it has a price tag of $36.33, well, if it were below the $10 mark I will buy it,
this price is a little pricy.
&lt;/p&gt;

&lt;p&gt;Next I try to find if any ntfs-3g binary package is available, the latest I could
find is from 2010, a little bit out dated. Then I came across this OSXFuse&#39;s project wiki about
&lt;a target=_blank href=&quot;https://github.com/osxfuse/osxfuse/wiki/NTFS-3G&quot;&gt;NTFS-3G&lt;/a&gt;.
I install the latest 3.4 &lt;a target=_blank href=&quot;http://osxfuse.github.io/&quot;&gt;OSXFUSE&lt;/a&gt;. Then
the &lt;a target=_blank href=&quot;http://brew.sh&quot;&gt;package manager &quot;Homebrew&quot;&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;Follow the procedure from the wiki, I issue the command
&lt;pre&gt;
brew install homebrew/fuse/ntfs-3g
&lt;/pre&gt;
Then it starts to download and compiling ... After a few minutes, I got ntfs-3g install.&lt;/p&gt;

&lt;p&gt;
Then I try the commands from a command shell.
&lt;pre&gt;
mkdir /Volumes/ntfs 
ntfs-3g /dev/disk1s1 /Volumes/ntfs
&lt;/pre&gt;
Hooray, I got a writable NTFS disk mounted!  I did not try to replace the system&#39;s mount_ntfs for
automount NTFS to read/write. The current form works for me.
&lt;/p&gt;

&lt;p&gt;
PS. Of course, in order to compile all related programs, you need to have Xcode installed.</content><link rel='replies' type='application/atom+xml' href='http://zhu-qy.blogspot.com/feeds/4578252640785823591/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/232137978740955881/4578252640785823591' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/232137978740955881/posts/default/4578252640785823591'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/232137978740955881/posts/default/4578252640785823591'/><link rel='alternate' type='text/html' href='http://zhu-qy.blogspot.com/2016/06/how-to-mount-ntfs-filesystem-on-os-x.html' title='How to mount NTFS filesystem on OS X'/><author><name>Qunying</name><uri>http://www.blogger.com/profile/13348553855322529578</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-232137978740955881.post-3801138813386782327</id><published>2016-03-24T17:29:00.000-07:00</published><updated>2017-02-08T17:43:53.925-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="emulator"/><category scheme="http://www.blogger.com/atom/ns#" term="html5"/><category scheme="http://www.blogger.com/atom/ns#" term="terminal"/><category scheme="http://www.blogger.com/atom/ns#" term="xterm"/><title type='text'>Google&#39;s hterm: HTML5 terminal  emulator</title><content type='html'>&lt;p&gt;Google&#39;s &lt;a href=&quot;https://github.com/chromium/hterm&quot; target=&quot;_blank&quot;&gt;hterm&lt;/a&gt; is a nice terminal
emulator. I would like to use the hterm part only and do some remote telnet session test
(I used &lt;a href=&quot;https://github.com/seanmiddleditch/libtelnet&quot; target=_blank&gt;libtelnet&lt;/a&gt; for the back-end server). But I encountered some usage problems.&lt;/p&gt;

&lt;p&gt;
First, you could not build a functional hterm script with the github repository, you will need
to checkout the full repository from &lt;a href=&quot;https://chromium.googlesource.com/apps/libapps/&quot; target=&quot;_blank&quot;&gt;https://chromium.googlesource.com/apps/libapps/&lt;/a&gt; and build from there.
&lt;/p&gt;

&lt;p&gt;
Second, &lt;a href=&quot;https://chromium.googlesource.com/apps/libapps/+/HEAD/hterm/doc/embed.md&quot;&gt;the embedded document&lt;/a&gt; is lagging. After following the description in the document, the terminal
could be displayed without problem, but there is no input at all.  The call back function register to the &lt;em&gt;io.onVTKeystroke()&lt;/em&gt; never get called.  After digging through other part of the libapps repository
for hterm&#39;s usage, I found &lt;em&gt;term.installKeyboard()&lt;/em&gt; function of the hterm terminal instance need
to be called after the &lt;em&gt;term.decorate()&lt;/em&gt; call. After that input event could be received.
&lt;/p&gt;
&lt;p&gt;
Third, I haven&#39;t found a way to make it acknowledge IME input.  Cut and paste utf8 encoded
characters causing it to output escaped utf8 stream (utf8 encoded of an utf8 stream).
&lt;/p&gt;
</content><link rel='replies' type='application/atom+xml' href='http://zhu-qy.blogspot.com/feeds/3801138813386782327/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/232137978740955881/3801138813386782327' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/232137978740955881/posts/default/3801138813386782327'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/232137978740955881/posts/default/3801138813386782327'/><link rel='alternate' type='text/html' href='http://zhu-qy.blogspot.com/2016/03/googles-hterm-html5-terminal-emulator.html' title='Google&#39;s hterm: HTML5 terminal  emulator'/><author><name>Qunying</name><uri>http://www.blogger.com/profile/13348553855322529578</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-232137978740955881.post-7033087395197687043</id><published>2015-11-13T16:03:00.001-08:00</published><updated>2016-09-14T12:43:04.386-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="HiDPI"/><category scheme="http://www.blogger.com/atom/ns#" term="i3"/><category scheme="http://www.blogger.com/atom/ns#" term="Slackware"/><title type='text'>Running i3 under HiDPI display</title><content type='html'>I recently got a MacbookPro (early 2015) with retina display for work.&amp;nbsp;
I installed a fresh Slackware64-current on to it with
&lt;a href=&quot;http://www.rodsbooks.com/refind/&quot;&gt;rEFInd&lt;/a&gt; as the boot loader.&amp;nbsp;
 The process was quite smooth,
I used a USB boot image then network install (with a thunderbolt gigabyte adapter).&amp;nbsp;
Some devices/functions are not fully functional but usable for me. Console font is
using the kernel built in SUN12x22 font with kernel option &quot;fbcon:font=SUN12x22&quot;. &lt;br /&gt;
&lt;br /&gt;
Since this laptop has a 2560x1600 on a 13&quot; display, roughly 227DI, my old setting for
i3 did not work well, although I already using xft font for status bar display.&amp;nbsp;
After a few search, I found out xorg server always set DPI 96, that is a bad move in my opinion,
as it makes previous valid DPI calculation wrong and still wrong for those cases
that the calculation do not fit.&amp;nbsp; And I have to add a line
&lt;pre&gt;xrandr --fbmm 286x179
&lt;/pre&gt;
in &lt;em&gt;.xinitrc&lt;/em&gt; file in order to let i3 pick up the correct DPI setting.&amp;nbsp; OK, now the
i3 status bar display fine.&amp;nbsp; &lt;strike&gt;The default &lt;em&gt;dmenu&lt;/em&gt; I initially installed does not
support xft font, so it looks really small.&amp;nbsp; Luckily there is a
&lt;em&gt;&lt;a href=&quot;http://slackbuilds.org/repository/14.1/desktop/dmenu2/&quot;&gt;dmenu2&lt;/a&gt;&lt;/em&gt; which
merged the xft patched.&amp;nbsp; Remove the old dmenu package and install the dmenu2 package,
then add the font parameter to the dmenu_run command in i3&#39;s config&lt;/strike&gt; Latest &lt;em&gt;dmenu&lt;/em&gt;
works with xft font now. Everything works fine.&lt;br /&gt;
&lt;br /&gt;
I have the following settings in my &lt;em&gt;.Xresources&lt;/em&gt; file.
&lt;pre&gt;Xft.dpi : 227
Xft.antialias: false
Xft.rgba: rgb

URxvt.scrollstyle: xterm
URxvt.background: black
URxvt.foreground: gray
URxvt.preeditType: Root
URxvt.scrollBar_right: true
URxvt.jumpScroll: true
URxvt.perl-ext-common:  tabbed
URxvt.tabbed.tabbar-fg: 2
URxvt.tabbed.tabbar-bg: 0
URxvt.tabbed.tab-fg:    3
URxvt.tabbed.tab-bg:    0
URxvt.termName: rxvt
URxvt.geometry: 83x27
urxvt.font: xft:DejaVuSansMono:size=8

Xpdf*fontList: -adobe-helvetica-bold-r-normal--0-0-0-0-p-0-iso8859-1
Xpdf.initialZoom: 200

Xcursor.size: 64

With the following, the width should be $((11*COLUMNS+13)) pixels;
! in contrast, the fixed = 6x13 bitmap font is typically used on a
! low-definition screen, giving a width of $((6*COLUMNS+13)) pixels.
XTerm*faceName:  Monospace
XTerm*faceSize:  10
! For xterm menus. This font is large enough, but a bit ugly.
XTerm*font:  -adobe-helvetica-bold-r-normal--0-0-0-0-p-0-iso8859-1
&lt;/pre&gt;
My default terminal is &lt;em&gt;rxvt-unicode&lt;/em&gt;, so it works fine. You may notice I have turn antialias off, the font looks sharp, you may see zigzag when looking really close, but for 227DPI, it&#39;s very clear without it already. &amp;nbsp;Most of the document on line regarding GTK+3&#39;s HiDPI support is by setting&lt;div&gt;&lt;div&gt;&lt;pre&gt;export GDK_SCALE=2
export GDK_DPI_SCALE=05
&lt;/pre&gt;
I found the program behave a little strange when this kind of scaling in effect.&amp;nbsp;
Font is a little blur than none scale one. For the Gnat Programing Studio (GPS),
with the scaling effect, the menu display strangely:
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-kBwZHVWoxN50rQ2A9mOGOoWJRo1kn8W4fAnkLZ4JHUnwQNVDhOH4sPKv5XiaJQPz_0JGPEf0_Zik07atQRHmvUlhiUV6Sv5erfEMIsj994sL_Q6PvWQLw7y-9hGHpCErKiqT8U62cOg/s1600/gps-screen.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-kBwZHVWoxN50rQ2A9mOGOoWJRo1kn8W4fAnkLZ4JHUnwQNVDhOH4sPKv5XiaJQPz_0JGPEf0_Zik07atQRHmvUlhiUV6Sv5erfEMIsj994sL_Q6PvWQLw7y-9hGHpCErKiqT8U62cOg/s320/gps-screen.png&quot;&gt;&lt;/a&gt;&lt;/div&gt;
compare with the one without scaling:
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjk6Dtgm-8M79YxB06IjJ5U21px-zAeKm6ZoguY28zD3FqxdZTC_qxC1fZ47RVYC0_26sATG5rYgRmUafTF-WtWohzSBiPFU6F0Qqql1yhx17ah-qC4f-1VMj_8poOSOtUeautn8PNAn2E/s1600/gps-screen-ok.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjk6Dtgm-8M79YxB06IjJ5U21px-zAeKm6ZoguY28zD3FqxdZTC_qxC1fZ47RVYC0_26sATG5rYgRmUafTF-WtWohzSBiPFU6F0Qqql1yhx17ah-qC4f-1VMj_8poOSOtUeautn8PNAn2E/s320/gps-screen-ok.png&quot;&gt;&lt;/a&gt;&lt;/div&gt;
I am not sure whether its GTK3&#39; fault or GPS&#39;s fault.&amp;nbsp; I would hope for a GDK_IMAGE_SCALE and only scale image, maybe that will work better.


&lt;/div&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
P.S. After upgrade to kernel 4.4, all the special keys (fn+Fx) works as expected (with &lt;a href=&quot;https://github.com/bytbox/pommed-light&quot;&gt;pommed-light&lt;/a&gt;)</content><link rel='replies' type='application/atom+xml' href='http://zhu-qy.blogspot.com/feeds/7033087395197687043/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/232137978740955881/7033087395197687043' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/232137978740955881/posts/default/7033087395197687043'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/232137978740955881/posts/default/7033087395197687043'/><link rel='alternate' type='text/html' href='http://zhu-qy.blogspot.com/2015/11/running-i3-under-hidpi-display.html' title='Running i3 under HiDPI display'/><author><name>Qunying</name><uri>http://www.blogger.com/profile/13348553855322529578</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><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-kBwZHVWoxN50rQ2A9mOGOoWJRo1kn8W4fAnkLZ4JHUnwQNVDhOH4sPKv5XiaJQPz_0JGPEf0_Zik07atQRHmvUlhiUV6Sv5erfEMIsj994sL_Q6PvWQLw7y-9hGHpCErKiqT8U62cOg/s72-c/gps-screen.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-232137978740955881.post-1434464457491980617</id><published>2015-10-01T11:05:00.000-07:00</published><updated>2016-04-28T13:21:50.017-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="corrupted xref"/><category scheme="http://www.blogger.com/atom/ns#" term="mupdf"/><category scheme="http://www.blogger.com/atom/ns#" term="mutool"/><category scheme="http://www.blogger.com/atom/ns#" term="PDF"/><category scheme="http://www.blogger.com/atom/ns#" term="repair"/><title type='text'>Using mutool to repair a PDF file that has corrupted xref table</title><content type='html'>Someone send me a PDF and I could not opened it on my Nexus 5 with Adobe&#39;s PDF reader
(It suits me the best for a PDF viewer in the android phone).&amp;nbsp;
But both &lt;a href=&quot;http://www.foolabs.com/xpdf/&quot; target=blank&gt;&lt;em&gt;XPDF&lt;/em&gt;&lt;/a&gt; and
&lt;a href=&quot;http://www.mupdf.com/&quot; target=blank&gt;&lt;em&gt;muPDF&lt;/em&gt;&lt;/a&gt; under
Linux could opened it with some error message saying
the xref table is corrupted and try to rebuild it.&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
How could I repair the pdf file?&amp;nbsp; The first tool comes in my mind is &lt;em&gt;pdftk&lt;/em&gt;,
it failed to read the corrupted file and give exception.&amp;nbsp; Then I try &lt;em&gt;pdf2ps&lt;/em&gt;, it failed either.&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
Google shows me some one saying &lt;em&gt;mutool&lt;/em&gt; from &lt;em&gt;muPDF&lt;/em&gt; could repair it.&amp;nbsp; I have
using &lt;em&gt;muPDF&lt;/em&gt; for some time, it is the default PDF viewer in my Slackware desktop.&amp;nbsp;
But I never take attention to the little tools come along with it,
after &lt;em&gt;man mutool&lt;/em&gt;, the following command save me:
&lt;pre&gt;
mutool clean corrupted.pdf clean.pdf
&lt;/pre&gt;
The repaired PDF file is in clean.pdf.&lt;br /&gt;
&lt;br /&gt;

P.S. muPDF does not come with Slackware, but it has a &lt;a href=&quot;http://slackbuilds.org/repository/14.1/office/mupdf/&quot;&gt;SlackBuild script&lt;/a&gt;.&amp;nbsp; For Windows user, muPDF provide &lt;a href=&quot;http://www.mupdf.com/downloads/&quot;&gt;windows version too&lt;/a&gt;.</content><link rel='replies' type='application/atom+xml' href='http://zhu-qy.blogspot.com/feeds/1434464457491980617/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/232137978740955881/1434464457491980617' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/232137978740955881/posts/default/1434464457491980617'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/232137978740955881/posts/default/1434464457491980617'/><link rel='alternate' type='text/html' href='http://zhu-qy.blogspot.com/2015/10/using-mutool-to-repair-pdf-file-that.html' title='Using mutool to repair a PDF file that has corrupted xref table'/><author><name>Qunying</name><uri>http://www.blogger.com/profile/13348553855322529578</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-232137978740955881.post-6042870363329460274</id><published>2015-09-24T17:03:00.000-07:00</published><updated>2016-05-20T09:51:49.096-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Ada"/><category scheme="http://www.blogger.com/atom/ns#" term="gnatpp"/><category scheme="http://www.blogger.com/atom/ns#" term="pretty print"/><title type='text'>gnatpp could not align exception declaration properly</title><content type='html'>I normally use the &lt;a href=&quot;http://docs.adacore.com/gnat_ugn-docs/html/gnat_ugn/gnat_ugn/gnat_utility_programs.html#the-gnat-pretty-printer-gnatpp&quot;&gt;GNAT Pretty-Printer &lt;em&gt;gnatpp&lt;/em&gt;&lt;/a&gt;
to format my Ada code.&amp;nbsp;
The output of it is not perfect but acceptable and make my code look consistent.&lt;br /&gt;
&lt;br /&gt;
It has a small alignment bug, for exception declaration, it could not handle it
properly.&amp;nbsp; For this specification &lt;em&gt;align_test.ads&lt;/em&gt;:
&lt;pre&gt;
package Align_Test is
    Index: Integer;
    Number_Test : Integer;

    Bad_File : exception;
    Bad_Argument : exception;
end Align_Test;
&lt;/pre&gt;

&lt;em&gt;gnatpp -r align_test.ads&lt;/em&gt; will produce:
&lt;pre&gt;
package Align_Test is
   Index       : Integer;
   Number_Test : Integer;

   Bad_File : exception;
   Bad_Argument : exception;
end Align_Test;
&lt;/pre&gt;

I have to manually align the declaration and add specific comments to fence it
from &lt;em&gt;gnatpp&lt;/em&gt; to change my alignment in future.&amp;nbsp;
&lt;pre&gt;
package Align_Test is
   Index       : Integer;
   Number_Test : Integer;

   --!pp off
   Bad_File     : exception;
   Bad_Argument : exception;
   --!pp on
end Align_Test;
&lt;/pre&gt;
It does not look good, but acceptable.&amp;nbsp; Wish next version of &lt;em&gt;gnatpp&lt;/em&gt;
could solve this problem.

&lt;p&gt;
P.S. Hooray, today (May. 19, 2016) AdaCore &lt;a href=&quot;http://www.adacore.com/developers/development-log/NF-17-P519-029-gnat#When:00:00:00Z&quot;&gt;fixed the alignment problem&lt;/a&gt;.  It will properly show up in GNAT GPL 2016.
&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://zhu-qy.blogspot.com/feeds/6042870363329460274/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/232137978740955881/6042870363329460274' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/232137978740955881/posts/default/6042870363329460274'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/232137978740955881/posts/default/6042870363329460274'/><link rel='alternate' type='text/html' href='http://zhu-qy.blogspot.com/2015/09/gnatpp-could-not-align-exception.html' title='gnatpp could not align exception declaration properly'/><author><name>Qunying</name><uri>http://www.blogger.com/profile/13348553855322529578</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-232137978740955881.post-1652411635872889358</id><published>2015-09-16T16:58:00.000-07:00</published><updated>2015-09-16T16:59:43.865-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="hi-dpi"/><category scheme="http://www.blogger.com/atom/ns#" term="laptop"/><category scheme="http://www.blogger.com/atom/ns#" term="TOSLINK"/><title type='text'>Where/when is my next laptop purchase</title><content type='html'>My fastest computer in my home right now is a MacBook from 2009.&amp;nbsp; It&#39;s hard disk
has been replaced by a SSD and runs smoothly with the latest OS X and Slackware
with some minor glitches (web-camera not working, occasionally system have USB bus error,
result in non usable system without keyboard, have to reboot back to OS X to fix it).&amp;nbsp;
I have been searching for my next laptop for some time, but still don&#39;t find
a perfect one that suites my particular requirements:

&lt;ul&gt;
&lt;li&gt;With 13&quot;/14&quot; screen resolution must be high DPI, the higher the better,
    minimum 3200x1800.&lt;/li&gt;
&lt;li&gt;Must have optical digital sound output, be it dedicated TOSLINK connector
    or combo with head phone jack (this has been standard for MacBook for years).&lt;/li&gt;
&lt;li&gt;Be lightweight and have longer battery life (&gt;= 8 hours)&lt;/li&gt;
&lt;li&gt;Must be Linux friendly.&lt;/li&gt;
&lt;/ul&gt;
 
Actually, Dell&#39;s XPS 13 almost meets the requirement, except for the
optical digital sound output.&amp;nbsp; Apple&#39;s MacBook Pro comes close but
it is not Linux friendly, and screen resolution is lower than Dell&#39;s.&amp;nbsp;
All of Lenovo&#39;s offers lack optical digital sound output, X1 carbon does not
have high resolution screen, Yoga Pro does not have enough CPU power.&lt;br /&gt;
&lt;br /&gt;

Maybe I should wait one or two more years, then Intel&#39;s new 3D XPoint maybe used for
storage, oh my, maybe I will never buy a new one ... ...</content><link rel='replies' type='application/atom+xml' href='http://zhu-qy.blogspot.com/feeds/1652411635872889358/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/232137978740955881/1652411635872889358' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/232137978740955881/posts/default/1652411635872889358'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/232137978740955881/posts/default/1652411635872889358'/><link rel='alternate' type='text/html' href='http://zhu-qy.blogspot.com/2015/09/wherewhen-is-my-next-laptop-purchase.html' title='Where/when is my next laptop purchase'/><author><name>Qunying</name><uri>http://www.blogger.com/profile/13348553855322529578</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-232137978740955881.post-2480573017992007391</id><published>2015-09-15T16:25:00.000-07:00</published><updated>2015-09-15T16:25:10.372-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Microsoft"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows 10"/><title type='text'>Microsoft is downloading Windows 10 to your machine &#39;just in case&#39;</title><content type='html'>Oh, Microsoft is doing his &quot;smart&quot; again. Now it will silently download Windows
10 image to your machine regardless you want it or not.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.theinquirer.net/inquirer/news/2425381/microsoft-is-downloading-windows-10-to-your-machine-just-in-case&quot;&gt;News from Inquirer confirmed it with Microsoft&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
It is time to turn off automatically update if you still want to keep running
it, or better wipe it out with a Linux distribution
(&lt;a href=&quot;http://www.slackware.com&quot;&gt;Slackware&lt;/a&gt;, should you ask for recommendation). ^_^
</content><link rel='replies' type='application/atom+xml' href='http://zhu-qy.blogspot.com/feeds/2480573017992007391/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/232137978740955881/2480573017992007391' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/232137978740955881/posts/default/2480573017992007391'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/232137978740955881/posts/default/2480573017992007391'/><link rel='alternate' type='text/html' href='http://zhu-qy.blogspot.com/2015/09/microsoft-is-downloading-windows-10-to.html' title='Microsoft is downloading Windows 10 to your machine &#39;just in case&#39;'/><author><name>Qunying</name><uri>http://www.blogger.com/profile/13348553855322529578</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-232137978740955881.post-7609030345323483868</id><published>2015-09-10T11:18:00.001-07:00</published><updated>2015-09-23T11:39:42.140-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Ada"/><category scheme="http://www.blogger.com/atom/ns#" term="GtkAda"/><title type='text'>Getting Started with GtkAda - Content</title><content type='html'>This is the content for my previous Getting Started with GtkAda blogs.

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;/2014/03/getting-started-with-gtkada.html&quot;&gt;Basic&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/2014/03/getting-started-with-gtkada-packing.html&quot;&gt;Packing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/2014/03/getting-started-with-gtkada-building.html&quot;&gt;Building user interfaces&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/2014/03/getting-started-with-gtkada-drawing.html&quot;&gt;Drawing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/2014/04/internationalized-application-with.html&quot;&gt;Internationalized application with Gtkada.Intl&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://zhu-qy.blogspot.com/feeds/7609030345323483868/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/232137978740955881/7609030345323483868' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/232137978740955881/posts/default/7609030345323483868'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/232137978740955881/posts/default/7609030345323483868'/><link rel='alternate' type='text/html' href='http://zhu-qy.blogspot.com/2015/09/getting-started-with-gtkada-content.html' title='Getting Started with GtkAda - Content'/><author><name>Qunying</name><uri>http://www.blogger.com/profile/13348553855322529578</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>