{"id":4888,"date":"2011-09-19T16:05:00","date_gmt":"2011-09-19T09:05:00","guid":{"rendered":"http:\/\/www.kitty.in.th\/?page_id=4888"},"modified":"2024-12-31T23:30:37","modified_gmt":"2024-12-31T16:30:37","slug":"projects","status":"publish","type":"page","link":"https:\/\/kitty.in.th\/index.php\/projects\/","title":{"rendered":"Projects"},"content":{"rendered":"<h2>\u0e42\u0e0a\u0e04\u0e14\u0e35<\/h2>\n<p>\u0e2b\u0e19\u0e31\u0e07\u0e2a\u0e37\u0e2d\u0e40\u0e02\u0e35\u0e22\u0e19\u0e42\u0e14\u0e22\u0e1e\u0e23\u0e30\u0e2d\u0e32\u0e08\u0e32\u0e23\u0e22\u0e4c\u0e21\u0e34\u0e15\u0e0b\u0e39\u0e42\u0e2d\u0e30 \u0e04\u0e40\u0e27\u0e2a\u0e42\u0e01 \u0e40\u0e1c\u0e22\u0e41\u0e1e\u0e23\u0e48\u0e42\u0e14\u0e22 \u0e21\u0e39\u0e25\u0e19\u0e34\u0e18\u0e34\u0e21\u0e32\u0e22\u0e32 \u0e42\u0e04\u0e15\u0e21\u0e35 \u0e1e\u0e35\u0e48\u0e2b\u0e19\u0e48\u0e2d\u0e22\u0e2a\u0e48\u0e07\u0e21\u0e32\u0e43\u0e2b\u0e49\u0e2d\u0e48\u0e32\u0e19 \u0e41\u0e25\u0e30\u0e44\u0e14\u0e49\u0e41\u0e23\u0e07\u0e1a\u0e31\u0e19\u0e14\u0e32\u0e25\u0e43\u0e08\u0e08\u0e32\u0e01 \u0e2d. \u0e1e\u0e24\u0e29\u0e20\u0e4c \u0e40\u0e25\u0e22\u0e19\u0e31\u0e48\u0e07\u0e04\u0e31\u0e14\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e43\u0e2b\u0e21\u0e48\u0e17\u0e31\u0e49\u0e07\u0e40\u0e25\u0e48\u0e21 \u0e17\u0e33\u0e40\u0e1b\u0e47\u0e19 PDF \u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e40\u0e1c\u0e22\u0e41\u0e1e\u0e23\u0e48\u0e40\u0e1b\u0e47\u0e19 e-book<\/p>\n<p><a href=\"https:\/\/kitty.in.th\/wp-content\/uploads\/2011\/09\/lucky-book.pdf\">\u0e14\u0e32\u0e27\u0e19\u0e4c\u0e42\u0e2b\u0e25\u0e14\u0e2b\u0e19\u0e31\u0e07\u0e2a\u0e37\u0e2d\u0e42\u0e0a\u0e04\u0e14\u0e35<\/a><\/p>\n<hr \/>\n<h2>KITTY HTTPD<\/h2>\n<p>Kitty HTTPD is a fast, safe, and lightweight web server. It aims to share files through HTTP service without installing a heavyweight-full-feature HTTP server.<\/p>\n<h4>Features<\/h4>\n<ul>\n<li>Support continuous \/ range requests<\/li>\n<li>Implement HTTP\/1.1 requirement<\/li>\n<li>Multithreaded server to support concurrent connections<\/li>\n<li>Large file (&gt; 2 GB) support<\/li>\n<li>Log to syslog facility (LOG_LOCAL0)<\/li>\n<li>Automatic indexing<\/li>\n<li>IPv6 support<\/li>\n<li>Reuse address (SO_REUSEADDR)<\/li>\n<li>Fast TCP socket (TCP_NODELAY, TCP_CORK)<\/li>\n<li>Set EUID<\/li>\n<li>Support various MIME types<\/li>\n<li>Small binary (~ 22 kB)<\/li>\n<li>No configuration file<\/li>\n<\/ul>\n<p><a title=\"Kitty HTTPD \u2013 A Lightweight Web Server\" href=\"http:\/\/kitty.in.th\/index.php\/projects\/kitty-httpd\/\">More about Kitty HTTPD<\/a><\/p>\n<hr \/>\n<h2>ACER-EC<\/h2>\n<p>Acer-EC is a program to read\/write registers through embedded controller of Acer Aspire One D150. It is written in C, and process registers according to DSDT of Acer AOD150.<\/p>\n<h4>Features:<\/h4>\n<ul>\n<li>Show status:\n<ul>\n<li>Bluetooth, Touchpad, Wireless,<\/li>\n<li>Backlight (brightness) level<\/li>\n<li>CPU temperature<\/li>\n<li>Power status<\/li>\n<li>Battery status, and capacity<\/li>\n<\/ul>\n<\/li>\n<li>Toggle bluetooth, touchpad, wireless<\/li>\n<li>Set backlight level (0 &#8211; 9)<\/li>\n<li>Dump registers, known fields<\/li>\n<\/ul>\n<p><a title=\"Acer-EC: Acer Aspire One D150 Embedded Controller\" href=\"http:\/\/kitty.in.th\/index.php\/projects\/acer-ec\/\">More about Acer-EC<\/a><\/p>\n<hr \/>\n<h2>ORPHAN-THUMBNAIL<\/h2>\n<p>GNOME generates thumbnails for image, video, PDF, and other documents. Those thumbnails are cached in\u00a0<tt>~\/.thumbnails<\/tt>\u00a0and never be purged. That could occupy amount of your disk.<\/p>\n<p>orphan-thumbnail is a program to find orphan GNOME thumbnails. It reads thumbnails and find URI to the original file in PNG comments. It is capable to show and\/or delete orphan thumbnails.<\/p>\n<p><a title=\"orphan-thumbnail \u2013 a program to find orphan GNOME thumbnail\" href=\"http:\/\/kitty.in.th\/index.php\/projects\/orphan-thumbnail\/\">More about orphan-thumbnail<\/a><\/p>\n<hr \/>\n<h2>GIMP( &gt;= 2.4)&#8217;S TINY-FU<\/h2>\n<p>SIOD has already been deprecated. GIMP 2.4 has move to TinyScheme, another implementation of Scheme. In GIMP 2.4, some may call it &#8220;Tiny-Fu&#8221;. TinyScheme is literally better than SIOD in many aspects. However, some of the SIOD scripts may not be compatible with TinyScheme, including scripts I wrote for older GIMP. Worry not, those scripts have been rewritten for TinyScheme already. So, here they are:<\/p>\n<table>\n<tbody>\n<tr>\n<th>SCRIPTS<\/th>\n<th>DESCRIPTION<\/th>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/ftp.kitty.in.th\/pub\/sources\/tiny-fu\/kitty.in.th-auto-levels.scm\">kitty.in.th-auto-levels.scm<\/a><\/td>\n<td>Scale level to the full range. The cut-off threshold is configurable<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/ftp.kitty.in.th\/pub\/sources\/tiny-fu\/kitty.in.th-auto-photo-frame.scm\">kitty.in.th-auto-photo-frame.scm<\/a><\/td>\n<td>My auto-level + photo-frame<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/ftp.kitty.in.th\/pub\/sources\/tiny-fu\/kitty.in.th-bw.scm\">kitty.in.th-bw.scm<\/a><\/td>\n<td>Convert an image to grayscale. A color filter is selectable<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/ftp.kitty.in.th\/pub\/sources\/tiny-fu\/kitty.in.th-handheld-size.scm\">kitty.in.th-handheld-size.scm<\/a><\/td>\n<td>Resize image to handheld resolutions<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/ftp.kitty.in.th\/pub\/sources\/tiny-fu\/kitty.in.th-ir.scm\">kitty.in.th-ir.scm<\/a><\/td>\n<td>Infrared Filter effect<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/ftp.kitty.in.th\/pub\/sources\/tiny-fu\/kitty.in.th-lomo.scm\">kitty.in.th-lomo.scm<\/a><\/td>\n<td>Lomography effect<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/ftp.kitty.in.th\/pub\/sources\/tiny-fu\/kitty.in.th-photo-frame.scm\">kitty.in.th-photo-frame.scm<\/a><\/td>\n<td>My custom photo frame<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/ftp.kitty.in.th\/pub\/sources\/tiny-fu\/kitty.in.th-sepia.scm\">kitty.in.th-sepia.scm<\/a><\/td>\n<td>Sepia effect<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/ftp.kitty.in.th\/pub\/sources\/tiny-fu\/kitty.in.th-velvia.scm\">kitty.in.th-velvia.scm<\/a><\/td>\n<td>Velvia-like effect<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/ftp.kitty.in.th\/pub\/sources\/tiny-fu\/kitty.in.th-luko-sharpening.scm\">kitty.in.th-luko-sharpening.scm<\/a><\/td>\n<td>Luko&#8217;s sharpening method<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Again, just put in them in\u00a0<tt>~\/.gimp-2.4\/scripts\/<\/tt>\u00a0and it should work.<\/p>\n<hr \/>\n<h2>GIMP&#8217;S SCRIPT-FU<\/h2>\n<p>GIMP has a feature to extend capabilities by writing scripts to manipulate images. These scripts can be script-fu or python-fu. This is basically equivalent to Photoshop\\&#8217;s actions. For script-fu, it is written in an implementation of Scheme called SIOD, a kind of functional language similar to LISP (So you will face a lot of parentheses, just like LISP .. :P). You can call almost, if not all, functions available in GIMP, i.e., every menus, commands, extensions, python-fu, and script-fu. This means that what your script-fu will become a function in GIMP automatically. Nice, isn\\&#8217;t it ? These are script-fu I wrote:<\/p>\n<table>\n<tbody>\n<tr>\n<th>SCRIPTS<\/th>\n<th>DESCRIPTION<\/th>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/ftp.kitty.in.th\/pub\/sources\/script-fu\/kitty.in.th-auto-levels.scm\">kitty.in.th-auto-levels.scm<\/a><\/td>\n<td>Scale level to the full range. The cut-off threshold is configurable<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/ftp.kitty.in.th\/pub\/sources\/script-fu\/kitty.in.th-auto-photo-frame.scm\">kitty.in.th-auto-photo-frame.scm<\/a><\/td>\n<td>My auto-level + photo-frame<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/ftp.kitty.in.th\/pub\/sources\/script-fu\/kitty.in.th-bw.scm\">kitty.in.th-bw.scm<\/a><\/td>\n<td>Convert an image to grayscale. A color filter is selectable<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/ftp.kitty.in.th\/pub\/sources\/script-fu\/kitty.in.th-contrast-mask.scm\">kitty.in.th-contrast-mask.scm<\/a><\/td>\n<td>Perform contrast mask<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/ftp.kitty.in.th\/pub\/sources\/script-fu\/kitty.in.th-handheld-size.scm\">kitty.in.th-handheld-size.scm<\/a><\/td>\n<td>Resize image to handheld resolutions<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/ftp.kitty.in.th\/pub\/sources\/script-fu\/kitty.in.th-ir.scm\">kitty.in.th-ir.scm<\/a><\/td>\n<td>Infrared Filter effect<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/ftp.kitty.in.th\/pub\/sources\/script-fu\/kitty.in.th-lomo.scm\">kitty.in.th-lomo.scm<\/a><\/td>\n<td>Lomography effect<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/ftp.kitty.in.th\/pub\/sources\/script-fu\/kitty.in.th-photo-frame.scm\">kitty.in.th-photo-frame.scm<\/a><\/td>\n<td>My custom photo frame<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/ftp.kitty.in.th\/pub\/sources\/script-fu\/kitty.in.th-sepia.scm\">kitty.in.th-sepia.scm<\/a><\/td>\n<td>Sepia effect<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/ftp.kitty.in.th\/pub\/sources\/script-fu\/kitty.in.th-soft-filter.scm\">kitty.in.th-soft-filter.scm<\/a><\/td>\n<td>Soft filter effect<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/ftp.kitty.in.th\/pub\/sources\/script-fu\/kitty.in.th-velvia.scm\">kitty.in.th-velvia.scm<\/a><\/td>\n<td>Velvia-like effect<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Just put these scripts to\u00a0<tt>~\/.gimp-2.x\/scripts\/<\/tt>. They should appear in your Image\\&#8217;s Script-Fu -&gt; kitty.in.th automatically.<\/p>\n<p>Please be noted that most image manipulation techniques used in these scripts were taken from somewhere else (e.g., gimp guru, pantip.com, thaidphoto, etc. etc..). I just wrote script-fu to automate them. Credits should be given to those who invent the techniques.<\/p>\n<hr \/>\n<h2>GDICTTHAI &#8211; A GTK+ ENGLISH-THAI DICTIONARY<\/h2>\n<p>For Thai people, there is a number of English-Thai dictionary program available on Linux, e.g. KDictThai (QT\/KDE), cetdict (Text-based UI), and Lexitron (Java). However, there is no stand-alone GTK+\/GNOME E-T dictionary, so I wrote a very simple one using GTK+. At very beginning of the project, I would like to port code from KDictThai (that\\&#8217;s why the program is called GDictThai). But, later I found that it is easier to code it from scratch. The GDictThai&#8217;s logo\/icon is a modified version of KDictThai&#8217;s :P<\/p>\n<p><a href=\"https:\/\/ftp.kitty.in.th\/pub\/sources\/gdictthai\/\">Download GDictThai<\/a><\/p>\n<hr \/>\n<h2>BED &#8211; A BINARY EDITOR<\/h2>\n<p>BED is a command-line program to (over)write data at a specific byte offset of a particular file. You can just call \\&#8217;bed 0x4c5 0x0a myfile\\&#8217; to write 0x0a at the byte offset 0x4c5 of the file myfile. I wrote this program to simplify the way to change data in some savegame .. make it easier to cheat :P.<\/p>\n<p><a href=\"https:\/\/ftp.kitty.in.th\/pub\/sources\/bed\/\">Download BED<\/a><\/p>\n<hr \/>\n<h2>LWN2PDB<\/h2>\n<p>This is a simple script to convert the bigpage of LWN to pdb format, make it simpler to read on your Palm PDA. It requires txt2pdbdoc and wget.<\/p>\n<p><a href=\"https:\/\/ftp.kitty.in.th\/pub\/sources\/misc\/lwn2pdb\">Download lwn2pdb<\/a><\/p>\n<p><a href=\"https:\/\/ftp.kitty.in.th\/pub\/lwn\/\">Download The Linux Weekly News in PDB format<\/a><\/p>\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0e42\u0e0a\u0e04\u0e14\u0e35 \u0e2b\u0e19\u0e31\u0e07\u0e2a\u0e37\u0e2d\u0e40\u0e02\u0e35\u0e22\u0e19\u0e42\u0e14\u0e22\u0e1e\u0e23\u0e30\u0e2d\u0e32\u0e08\u0e32\u0e23\u0e22\u0e4c\u0e21\u0e34\u0e15\u0e0b\u0e39\u0e42\u0e2d\u0e30 \u0e04\u0e40\u0e27\u0e2a\u0e42\u0e01 \u0e40\u0e1c\u0e22\u0e41\u0e1e\u0e23\u0e48\u0e42\u0e14\u0e22 \u0e21\u0e39\u0e25\u0e19\u0e34\u0e18\u0e34\u0e21\u0e32\u0e22\u0e32 \u0e42\u0e04\u0e15\u0e21\u0e35 \u0e1e\u0e35\u0e48\u0e2b\u0e19\u0e48\u0e2d\u0e22\u0e2a\u0e48\u0e07\u0e21\u0e32\u0e43\u0e2b\u0e49\u0e2d\u0e48\u0e32\u0e19 \u0e41\u0e25\u0e30\u0e44\u0e14\u0e49\u0e41\u0e23\u0e07\u0e1a\u0e31\u0e19\u0e14\u0e32\u0e25\u0e43\u0e08\u0e08\u0e32\u0e01 \u0e2d. \u0e1e\u0e24\u0e29\u0e20\u0e4c \u0e40\u0e25\u0e22\u0e19\u0e31\u0e48\u0e07\u0e04\u0e31\u0e14\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e43\u0e2b\u0e21\u0e48\u0e17\u0e31\u0e49\u0e07\u0e40\u0e25\u0e48\u0e21 \u0e17\u0e33\u0e40\u0e1b\u0e47\u0e19 PDF \u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e40\u0e1c\u0e22\u0e41\u0e1e\u0e23\u0e48\u0e40\u0e1b\u0e47\u0e19 e-book \u0e14\u0e32\u0e27\u0e19\u0e4c\u0e42\u0e2b\u0e25\u0e14\u0e2b\u0e19\u0e31\u0e07\u0e2a\u0e37\u0e2d\u0e42\u0e0a\u0e04\u0e14\u0e35 KITTY HTTPD Kitty HTTPD is a fast, safe, and lightweight web server. It aims to share files through HTTP service without installing a heavyweight-full-feature HTTP server. Features Support continuous \/ range requests Implement HTTP\/1.1 requirement Multithreaded server to support &hellip; <a href=\"https:\/\/kitty.in.th\/index.php\/projects\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Projects<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-4888","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/kitty.in.th\/index.php\/wp-json\/wp\/v2\/pages\/4888","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kitty.in.th\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/kitty.in.th\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/kitty.in.th\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kitty.in.th\/index.php\/wp-json\/wp\/v2\/comments?post=4888"}],"version-history":[{"count":14,"href":"https:\/\/kitty.in.th\/index.php\/wp-json\/wp\/v2\/pages\/4888\/revisions"}],"predecessor-version":[{"id":20597,"href":"https:\/\/kitty.in.th\/index.php\/wp-json\/wp\/v2\/pages\/4888\/revisions\/20597"}],"wp:attachment":[{"href":"https:\/\/kitty.in.th\/index.php\/wp-json\/wp\/v2\/media?parent=4888"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}