<?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-7119305</id><updated>2024-08-30T10:15:56.356-04:00</updated><category term="C"/><title type='text'>Open Technology Bits</title><subtitle type='html'>OTBits Journal - This journal is a compilation of various open source technology bits useful for IT facilities and systems management.&lt;br&gt;&#xa;Rodolfo Alcazar - &amp;lt;rodolfoap@gmail.com&amp;gt;</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://otbits.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7119305/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://otbits.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Unknown</name><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>20</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7119305.post-5108294827752738605</id><published>2009-06-16T05:12:00.000-04:00</published><updated>2009-10-28T14:54:10.454-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="C"/><title type='text'>Ioccc best one liner</title><content type='html'>This is a brief analysis of &lt;a href=&quot;http://www.ioccc.org/1987/korn.c&quot;&gt;korn.c&lt;/a&gt;, winner of the &lt;a href=&quot;http://www.ioccc.org/years.html#1987_korn&quot;&gt;1987 IOCCC&lt;/a&gt;. Why? &lt;a href=&quot;http://www.ioccc.org/1987/korn.hint&quot;&gt;Because&lt;/a&gt;. And because many people who shot some explanations have many flaws and conceptual mistakes.&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;#include &amp;lt;stdio.h&amp;gt;
/*
* Review of one of the best IOCCC one liner winners.
* See International Obfuscated C Code Contest (http://www.ioccc.org)
* ...found other reviews with conceptual mistakes, so I wrote mine...
*
* Winners:  http://www.ioccc.org/years.html#1987
* The code: http://www.ioccc.org/1987/korn.c
* Hints:    http://www.ioccc.org/1987/korn.hint
*
* Rodolfo Alcazar Portillo &amp;lt;rodolfoap@gmail.com&amp;gt;
*/

main() {
/* a simple text */
printf(&quot;%s\n&quot;,&quot;unix&quot;);

/* or... */
printf(&quot;%six\n&quot;,&quot;un&quot;);

/* adding an unnecesary C text terminator does not change output */
printf(&quot;%six\n\0&quot;,&quot;un&quot;);

/* replace \n==\012 which is a printable form of an octal value */
printf(&quot;%six\012\0&quot;,&quot;un&quot;);

/* the additional X won&#39;t print due to +1 offset */
printf(&quot;X%six\012\0&quot;+1,&quot;un&quot;);

/* nor any other character */
printf(&quot;\021%six\012\0&quot;+1,&quot;un&quot;);

/* rephrasing syntax as a text array */
printf(&amp;amp;&quot;\021%six\012\0&quot;[1],&quot;un&quot;);

/* And the preprocessor said &quot;Let unix==1&quot;. Verification
*      $ cpp -dM /dev/null | grep unix
*   #define __unix__ 1
*   #define __unix 1
*   #define unix 1
*
* Therefore it won&#39;t run on Windows unless compiled with cygwin or defined in preprocessor as:
* #define unix 1
*
* ...and therefore redefining the unix variable would raise an error.
*/
printf(&amp;amp;&quot;\021%six\012\0&quot;[unix],&quot;un&quot;);

/* &amp;amp;text[n]==&amp;amp;n[text] is basic pointer arithmetics, or addition communitivity */
printf(&amp;amp;unix[&quot;\021%six\012\0&quot;],&quot;un&quot;);

/* &#39;a&#39;==0x61 then (&#39;a&#39;-0x61)==0 */
printf(&amp;amp;unix[&quot;\021%six\012\0&quot;],&quot;un&quot;+&#39;a&#39;-0x61);

/* Then add any char -X- and a offset of 1 (==&#39;a&#39;-0x60) */
printf(&amp;amp;unix[&quot;\021%six\012\0&quot;],&quot;Xun&quot;+&#39;a&#39;-0x60);

/* use a double-quoted string, and its offset, which gives an integer value: &#39;a&#39;==&quot;a&quot;[0] */
printf(&amp;amp;unix[&quot;\021%six\012\0&quot;],&quot;Xun&quot;+&quot;a&quot;[0]-0x60);

/* or the same, with an arbitrary text and offset */
printf(&amp;amp;unix[&quot;\021%six\012\0&quot;],&quot;Xun&quot;+&quot;XaXX&quot;[1]-0x60);

/* again, replace 1 with the predefined preprocessor unix==1 value...  */
printf(&amp;amp;unix[&quot;\021%six\012\0&quot;],&quot;Xun&quot;+&quot;XaXX&quot;[unix]-0x60);

/* rephrasing, array pointer arithmetics, addition is communitive */
printf(&amp;amp;unix[&quot;\021%six\012\0&quot;],&quot;Xun&quot;+(unix)[&quot;XaXX&quot;]-0x60);

/* ditto */
printf(&amp;amp;unix[&quot;\021%six\012\0&quot;],(unix)[&quot;XaXX&quot;]+&quot;Xun&quot;-0x60);

/* at last, change ignored chars to something meaningful */
printf(&amp;amp;unix[&quot;\021%six\012\0&quot;],(unix)[&quot;have&quot;]+&quot;fun&quot;-0x60);
}

&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://otbits.blogspot.com/feeds/5108294827752738605/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7119305/5108294827752738605' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7119305/posts/default/5108294827752738605'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7119305/posts/default/5108294827752738605'/><link rel='alternate' type='text/html' href='http://otbits.blogspot.com/2009/06/ioccc-best-one-liner.html' title='Ioccc best one liner'/><author><name>Unknown</name><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>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7119305.post-3956372936063535201</id><published>2008-03-31T11:44:00.000-04:00</published><updated>2010-03-31T11:46:06.776-04:00</updated><title type='text'>Bug photo (2010/03/31)</title><content type='html'>&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/AVvXsEg6GoRy8vlTyf3XIp3x5FK1FUMg1BGYVpLev_QPA54N5MNxRq-c079AuhGUKWYjU8LOnnJI7k_nlDQA6kzJyFmyOiJmUK19jQyTl_UC2eh4Z7CAQ1Akv1-IIaqQswpf3gcK0aPbTQ/s1600/Bug-P1020308.gif&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/AVvXsEg6GoRy8vlTyf3XIp3x5FK1FUMg1BGYVpLev_QPA54N5MNxRq-c079AuhGUKWYjU8LOnnJI7k_nlDQA6kzJyFmyOiJmUK19jQyTl_UC2eh4Z7CAQ1Akv1-IIaqQswpf3gcK0aPbTQ/s320/Bug-P1020308.gif&quot; /&gt;&lt;/a&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7119305/posts/default/3956372936063535201'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7119305/posts/default/3956372936063535201'/><link rel='alternate' type='text/html' href='http://otbits.blogspot.com/2010/03/bug-photo-20100331.html' title='Bug photo (2010/03/31)'/><author><name>Unknown</name><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/AVvXsEg6GoRy8vlTyf3XIp3x5FK1FUMg1BGYVpLev_QPA54N5MNxRq-c079AuhGUKWYjU8LOnnJI7k_nlDQA6kzJyFmyOiJmUK19jQyTl_UC2eh4Z7CAQ1Akv1-IIaqQswpf3gcK0aPbTQ/s72-c/Bug-P1020308.gif" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-7119305.post-1726290374440597920</id><published>2007-01-18T07:00:00.000-04:00</published><updated>2007-01-18T13:53:11.311-04:00</updated><title type='text'>Update: Bash-only Linux</title><content type='html'>This is an update to &lt;a href=&quot;http://otbits.blogspot.com/2005/12/beautiful-dirty-trick-embedded-only.html&quot;&gt;this old article&lt;/a&gt;, which works on Fedora Core 6.&lt;p&gt;Copy this script into a file, modify the grub entries with your system parameters,  run it and enjoy using a dummy linux where you can only write &quot;help&quot;, and some useless commands... swear next it&#39;ll include the nvidia driver.&lt;/p&gt;&lt;p&gt;#!/bin/bash -v&lt;br /&gt;# Bash only filesystem on a file - rodolfoap@gmail.com&lt;/p&gt;&lt;p&gt;# Create an empty file&lt;br /&gt;dd if=/dev/zero of=/tmp/embed bs=2k count=4k&lt;/p&gt;&lt;p&gt;# Make an ext2fs&lt;br /&gt;/sbin/mkfs.ext2 -v -F -b 2048 /tmp/embed&lt;/p&gt;&lt;p&gt;# Mount it as a loop&lt;br /&gt;mkdir -p /mnt/embed&lt;br /&gt;mount -v /tmp/embed /mnt/embed -o loop -t ext2&lt;br /&gt;cd /mnt/embed&lt;/p&gt;&lt;p&gt;# Create basic structure and fill it with needed files&lt;br /&gt;mkdir bin dev lib&lt;br /&gt;cp -av /dev/tty /dev/console /dev/ram dev/&lt;br /&gt;cp -v /bin/bash bin/&lt;br /&gt;# to found libs needed by bash, use # ldd /bin/bash&lt;br /&gt;cp -v /lib/libtermcap.so.2 lib/&lt;br /&gt;cp -v /lib/libdl.so.2 lib/&lt;br /&gt;cp -v /lib/libc.so.6 lib/&lt;br /&gt;cp -v /lib/ld-linux.so.2 lib/&lt;/p&gt;&lt;p&gt;# Create boot file&lt;br /&gt;cd /tmp&lt;br /&gt;umount -v /mnt/embed&lt;br /&gt;gzip -v &amp;lt; embed &amp;gt; /boot/embed.gz&lt;/p&gt;&lt;p&gt;# Add entry in grub: change root and kernel line with your parameters&lt;br /&gt;cat &amp;gt;&amp;gt; /etc/grub.conf &amp;lt;&amp;lt; &quot;EOF&quot;&lt;br /&gt;title Bash Only Filesystem&lt;br /&gt;    root (hd0,0)&lt;br /&gt;    kernel /vmlinuz-2.6.18-1.2869.fc6 ro root=/dev/ram ramdisk_blocksize=2048 init=/bin/bash&lt;br /&gt;    initrd /embed.gz&lt;br /&gt;EOF&lt;/p&gt;&lt;p&gt;# Manually correct grub parameters&lt;br /&gt;read -p &quot;Press ENTER to start editing grub.conf...&quot;&lt;br /&gt;vi /etc/grub.conf&lt;/p&gt;&lt;p&gt;# End script. Reboot with &quot;init 6&quot; and choose the BASH option in GRUB.&lt;br /&gt;# Toto: sos un mostro, thnx.&lt;br /&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://otbits.blogspot.com/feeds/1726290374440597920/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7119305/1726290374440597920' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7119305/posts/default/1726290374440597920'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7119305/posts/default/1726290374440597920'/><link rel='alternate' type='text/html' href='http://otbits.blogspot.com/2007/01/update-bash-only-linux.html' title='Update: Bash-only Linux'/><author><name>Unknown</name><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>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7119305.post-500023558441257201</id><published>2006-04-09T07:54:00.000-04:00</published><updated>2007-01-18T07:58:49.139-04:00</updated><title type='text'>The SED beauty</title><content type='html'>Sed is one of the unix beauties. Simple, standard, absolutely&lt;br /&gt;text/driven, and overall, powerful as The Brain. Look at the examples.&lt;p&gt;Simple replace:&lt;/p&gt;&lt;p&gt;# sed -e &#39;s/en_US/es_ES/g&#39; /etc/sysconfig/i18n&lt;/p&gt;&lt;p&gt;Replace only on determined lines:&lt;/p&gt;&lt;p&gt;# sed -e &#39;/disable/s/yes/no/&#39; /etc/xinetd.d/pop3s&lt;/p&gt;&lt;p&gt;Adding after a line:&lt;/p&gt;&lt;p&gt;# sed -e &#39;/ListenAddress ::/a\AllowUsers root&#39; /etc/ssh/sshd_config&lt;/p&gt;&lt;p&gt;Deleting a line:&lt;/p&gt;&lt;p&gt;# sed -e &#39;/only_from/d&#39; /etc/xinetd.d/swat&lt;/p&gt;&lt;p&gt;Making a backup, just with &quot;-i&quot;&lt;/p&gt;&lt;p&gt;# sed -i.bak -e &#39;/\/AutoPPP/s/\#//&#39; /etc/mgetty+sendfax/login.config&lt;/p&gt;&lt;p&gt;Replace spaces on start lines:&lt;/p&gt;&lt;p&gt;# sed &#39;s/^ *//&#39; file&lt;/p&gt;&lt;p&gt;More than 2 spaces with one:&lt;/p&gt;&lt;p&gt;# sed &#39;s/[ ]\{2,\}/ /g&#39; file&lt;/p&gt;&lt;p&gt;This is my precious, my ring: Once we have to replace this text...&lt;/p&gt;&lt;p&gt;old: {pdf=FILE text=TEXT}&lt;br /&gt;new: {pdf=FILE title=FILE text=TEXT}&lt;/p&gt;&lt;p&gt;... on *THOUSANDS* of &quot;page.txt&quot; files in a BIIIG directory tree! Of&lt;br /&gt;course, &quot;FILE&quot; and &quot;TEXT&quot; were different on each. With a little help&lt;br /&gt;from my friends Sed and Find, took just a minute:&lt;/p&gt;&lt;p&gt;# find . -name page.txt -print -exec \&lt;br /&gt;&amp;gt; sed -i -e \&lt;br /&gt;&amp;gt; &quot;s/{pdf=\(.*\?\) text=\(.*\?\)}/{pdf=\1 title=\1 text=\2}/g&quot; &quot;{}&quot; \;&lt;/p&gt;&lt;p&gt;Note: &quot;.*&quot; is a GREEDY expression (RT regex FM). To avoid GREEDINESS,&lt;br /&gt;you should use &quot;.*?&quot;&lt;/p&gt;&lt;p&gt;Beautiful.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://otbits.blogspot.com/feeds/500023558441257201/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7119305/500023558441257201' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7119305/posts/default/500023558441257201'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7119305/posts/default/500023558441257201'/><link rel='alternate' type='text/html' href='http://otbits.blogspot.com/2007/01/sed-beauty.html' title='The SED beauty'/><author><name>Unknown</name><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-7119305.post-2839563252472962589</id><published>2006-03-11T07:40:00.000-04:00</published><updated>2007-01-18T07:41:07.152-04:00</updated><title type='text'>Running Tomcat!</title><content type='html'>How to install TOMCAT on Fedora:&lt;p&gt;a) Tomcat Itself&lt;br /&gt;yum install tomcat5&lt;br /&gt;yum install tomcat5-webapps&lt;br /&gt;yum install tomcat5-admin-webapps&lt;/p&gt;&lt;p&gt;a2) install java from SUN (could be using Fedora Frog)&lt;/p&gt;&lt;p&gt;b) Change on /etc/tomcat5/tomcat5.conf&lt;/p&gt;&lt;p&gt;JAVA_HOME=&quot;/opt/jre1.5.0_06&quot;&lt;br /&gt;(or which suits)&lt;/p&gt;&lt;p&gt;c) In /etc/tomcat5/tomcat-users.xml, put manager/admin roles to tomcat&lt;br /&gt;user:&lt;/p&gt;&lt;p&gt;&amp;lt;?xml version=&#39;1.0&#39; encoding=&#39;utf-8&#39;?&amp;gt;&lt;br /&gt;&amp;lt;tomcat-users&amp;gt;&lt;br /&gt; &amp;lt;role rolename=&quot;tomcat&quot;/&amp;gt;&lt;br /&gt; &amp;lt;role rolename=&quot;role1&quot;/&amp;gt;&lt;br /&gt; &amp;lt;role rolename=&quot;manager&quot;/&amp;gt;&lt;br /&gt; &amp;lt;role rolename=&quot;admin&quot;/&amp;gt;&lt;br /&gt; &amp;lt;user username=&quot;tomcat&quot; password=&quot;tomcat&quot; roles=&quot;manager,admin&quot;/&amp;gt;&lt;br /&gt; &amp;lt;user username=&quot;both&quot; password=&quot;tomcat&quot; roles=&quot;tomcat,role1&quot;/&amp;gt;&lt;br /&gt; &amp;lt;user username=&quot;role1&quot; password=&quot;tomcat&quot; roles=&quot;role1&quot;/&amp;gt;&lt;br /&gt;&amp;lt;/tomcat-users&amp;gt;&lt;/p&gt;&lt;p&gt;d) Start service:&lt;/p&gt;&lt;p&gt;# service tomcat5 start&lt;br /&gt; &lt;br /&gt;e) Browse &lt;a href=&quot;http://localhost:8080/&quot;&gt;http://localhost:8080/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;;)&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://otbits.blogspot.com/feeds/2839563252472962589/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7119305/2839563252472962589' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7119305/posts/default/2839563252472962589'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7119305/posts/default/2839563252472962589'/><link rel='alternate' type='text/html' href='http://otbits.blogspot.com/2007/01/running-tomcat.html' title='Running Tomcat!'/><author><name>Unknown</name><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-7119305.post-6190819442126442884</id><published>2006-02-22T07:33:00.000-04:00</published><updated>2007-01-18T07:35:42.227-04:00</updated><title type='text'>Disabling Beagle</title><content type='html'>Very simple. But you must do it every time it updates.&lt;p&gt;# sed -i -e &quot;/ENABLED/s/yes/no/g&quot; /etc/beagle/crawl-applications&lt;br /&gt;# sed -i -e &quot;/ENABLED/s/yes/no/g&quot; /etc/beagle/crawl-documentation &lt;/p&gt;&lt;p&gt;May The Source Be With You...&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://otbits.blogspot.com/feeds/6190819442126442884/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7119305/6190819442126442884' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7119305/posts/default/6190819442126442884'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7119305/posts/default/6190819442126442884'/><link rel='alternate' type='text/html' href='http://otbits.blogspot.com/2007/01/disabling-beagle.html' title='Disabling Beagle'/><author><name>Unknown</name><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-7119305.post-5884565757026437296</id><published>2006-01-18T07:27:00.000-04:00</published><updated>2007-01-18T07:29:46.669-04:00</updated><title type='text'>Linux/PHP with Windows/MSSQLServer Howto</title><content type='html'>Made on Fedora Core 6. Suppose other distros work the same. Good luck!&lt;p&gt;- Install freetds, the unixODBC-kde gui and php-odbc, for making php work with odbc&lt;/p&gt;&lt;p&gt;[rodolfoap] /root # yum install freetds unixODBC-kde php-odbc&lt;/p&gt;&lt;p&gt;- Connectivity test, port 1433TCP. If you get &quot;1&amp;gt;&quot;, ok. Elsewhere, its a firewall, ports, routing, etc. issue.&lt;/p&gt;&lt;p&gt;[rodolfoap] /root # tsql -S 192.168.1.20 -U sa -P sjasdad&lt;br /&gt;locale is &quot;en_US.UTF-8&quot;&lt;br /&gt;locale charset is &quot;UTF-8&quot;&lt;br /&gt;1&amp;gt; &lt;/p&gt;&lt;p&gt;- Create an entry in /etc/freetds.conf:&lt;br /&gt;[192.168.1.20]&lt;br /&gt;     host = 192.168.1.20&lt;br /&gt;     port = 1433&lt;br /&gt;     tds version = 8.0&lt;/p&gt;&lt;p&gt;- Add the entry in /etc/odbcinst.ini&lt;br /&gt;[MSSQLServer]&lt;br /&gt;Description     = MSSQLServer&lt;br /&gt;Driver          = MSSQLServer&lt;br /&gt;Servername      = 192.168.1.20&lt;br /&gt;Database        = Bienes&lt;br /&gt;UID             = sa&lt;br /&gt;PWD             = sjasdad&lt;br /&gt;Port            = 1433&lt;/p&gt;&lt;p&gt;- And /etc/odbcinst.ini&lt;br /&gt;[MSSQLServer]&lt;br /&gt;Description     =&lt;br /&gt;Driver          = /usr/lib/libtdsodbc.so.0&lt;br /&gt;Driver64        =&lt;br /&gt;Setup           = /usr/lib/libtdsS.so.1&lt;br /&gt;Setup64         =&lt;br /&gt;UsageCount      = 1&lt;br /&gt;CPTimeout       =&lt;br /&gt;CPReuse         = &lt;/p&gt;&lt;p&gt;- Now, you should get &quot;SQL&amp;gt;&quot;&lt;br /&gt;[rodolfoap] /root # isql -v MSSQLServer sa sjasdad&lt;br /&gt;+---------------------------------------+&lt;br /&gt;| Connected!                            |&lt;br /&gt;|                                       |&lt;br /&gt;| sql-statement                         |&lt;br /&gt;| help [tablename]                      |&lt;br /&gt;| quit                                  |&lt;br /&gt;|                                       |&lt;br /&gt;+---------------------------------------+&lt;br /&gt;SQL&amp;gt;&lt;br /&gt;(There you can perform SQL queries)&lt;/p&gt;&lt;p&gt;- The odbc php test page (for my database, of course):&lt;br /&gt;[rodolfoap] /root # cat /var/www/html/odbc.php &lt;/p&gt;&lt;p&gt;&amp;lt;?&lt;br /&gt;$connect = odbc_connect(&quot;MSSQLServer&quot;, &quot;sa&quot;, &quot;sjasdad&quot;);&lt;br /&gt;odbc_exec($connect, &quot;use Bienes&quot;);&lt;br /&gt;$result = odbc_exec($connect, &quot;SELECT * FROM Personas&quot;);&lt;br /&gt;while(odbc_fetch_row($result)){&lt;br /&gt;print(odbc_result($result, &quot;CodPersona&quot;).&#39; &#39;.odbc_result($result, &quot;Apellidos&quot;) . &quot;&amp;lt;br&amp;gt;\n&quot;);&lt;br /&gt;}&lt;br /&gt;odbc_free_result($result);&lt;br /&gt;odbc_close($connect);&lt;br /&gt;?&amp;gt;&lt;/p&gt;&lt;p&gt;- If you want to use mssql functions, install php-mssql from &lt;a href=&quot;http://remi.collet.free.fr/&quot;&gt;http://remi.collet.free.fr/&lt;/a&gt; , adding the repository and issueing &quot;yum install php-mssq&quot;. And then,&lt;/p&gt;&lt;p&gt;[rodolfoap] /root # cat /var/www/html/mssql.php&lt;br /&gt;&amp;lt;?&lt;br /&gt;$connect = mssql_connect(&quot;192.168.1.20&quot;, &quot;sa&quot;, &quot;sjasdad&quot;);&lt;br /&gt;mssql_select_db(&quot;Bienes&quot;, $connect);&lt;br /&gt;$result = mssql_query(&quot;SELECT * FROM Personas&quot;);&lt;br /&gt;$numRows = mssql_num_rows($result);&lt;br /&gt;echo &quot;&amp;lt;h1&amp;gt;&quot; . $numRows . &quot; Row&quot; . ($numRows == 1 ? &quot;&quot; : &quot;s&quot;) . &quot; Returned &amp;lt;/h1&amp;gt;&quot;;&lt;br /&gt;while($row = mssql_fetch_array($result))&lt;br /&gt;echo $row[&quot;IdPersona&quot;] . &quot; - &quot; . $row[&quot;Apellidos&quot;];&lt;br /&gt;mssql_free_result($result);&lt;br /&gt;mssql_close($connect);&lt;br /&gt;?&amp;gt; &lt;/p&gt;&lt;p&gt;Yastá!&lt;br /&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://otbits.blogspot.com/feeds/5884565757026437296/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7119305/5884565757026437296' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7119305/posts/default/5884565757026437296'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7119305/posts/default/5884565757026437296'/><link rel='alternate' type='text/html' href='http://otbits.blogspot.com/2007/01/linuxphp-with-windowsmssqlserver-howto.html' title='Linux/PHP with Windows/MSSQLServer Howto'/><author><name>Unknown</name><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>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7119305.post-113577608635500729</id><published>2005-12-28T09:13:00.000-04:00</published><updated>2005-12-28T09:23:36.320-04:00</updated><title type='text'></title><content type='html'>&lt;span style=&quot;font-weight:bold;&quot;&gt;Beautiful dirty trick: Embedded only-file bash filesystem&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This is a beautiful trick. Tip includes: making an empty 10Mb file; creating a filesystem on it; creating basic tree; creating devices; copying bash and required libs; unmounting it; making it a boot file and adding a grub entry. &lt;br /&gt;&lt;br /&gt;Put this on an executable-file-script and run it (tested on Fedora Core 4):&lt;br /&gt;&lt;br /&gt;#!/bin/bash&lt;br /&gt;#Script start ----------------------&lt;br /&gt;#Bash only filesystem on a file - rodolfoap@hotmail.com&lt;br /&gt;&lt;br /&gt;#Create an empty 10Mb file&lt;br /&gt;dd if=/dev/zero of=/tmp/embed bs=1k count=10k&lt;br /&gt;&lt;br /&gt;#Make an ext2fs&lt;br /&gt;/sbin/mkfs.ext2 -q /tmp/embed&lt;br /&gt;&lt;br /&gt;#Mount it as a loop&lt;br /&gt;mkdir /mnt/embed&lt;br /&gt;mount /tmp/embed /mnt/embed -o loop&lt;br /&gt;cd /mnt/embed&lt;br /&gt;&lt;br /&gt;#Create basic structure and fill it with needed files&lt;br /&gt;mkdir bin dev lib&lt;br /&gt;cp -a /dev/tty /dev/console /dev/ram dev/&lt;br /&gt;cp /bin/bash bin/&lt;br /&gt;#to found libs needed by bash, use # ldd /bin/bash&lt;br /&gt;cp /lib/libtermcap.so.2 lib/&lt;br /&gt;cp /lib/libdl.so.2 lib/&lt;br /&gt;cp /lib/libc.so.6 lib/&lt;br /&gt;cp /lib/ld-linux.so.2 lib/&lt;br /&gt;&lt;br /&gt;#Create boot file&lt;br /&gt;cd /tmp&lt;br /&gt;umount /mnt/embed&lt;br /&gt;gzip &lt; embed &gt; /boot/embed.gz&lt;br /&gt;echo &quot;&lt;br /&gt;title Bash only filesystem&lt;br /&gt;        root (hd0,2)&lt;br /&gt;        kernel /boot/vmlinuz-2.6.14-1.1644_FC4 ro root=/dev/ram init=/bin/bash&lt;br /&gt;        initrd /boot/embed.gz&quot; &gt;&gt; /etc/grub.conf&lt;br /&gt;#Script end ------------------------&lt;br /&gt;&lt;br /&gt;Reboot and choose the &quot;Bash only filesystem&quot; option.</content><link rel='replies' type='application/atom+xml' href='http://otbits.blogspot.com/feeds/113577608635500729/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7119305/113577608635500729' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7119305/posts/default/113577608635500729'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7119305/posts/default/113577608635500729'/><link rel='alternate' type='text/html' href='http://otbits.blogspot.com/2005/12/beautiful-dirty-trick-embedded-only.html' title=''/><author><name>Unknown</name><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>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7119305.post-112922785016813051</id><published>2005-10-13T14:24:00.000-04:00</published><updated>2005-10-17T19:33:43.600-04:00</updated><title type='text'>OS Tasting</title><content type='html'>&lt;p class=&quot;mobile-post&quot;&gt;A pic worths a thousand words. There are a lot of (linu)x-based distros, most of them oriented to specific user or application. This interesting page collects a lot of representative shots.&lt;br /&gt;&lt;/p&gt;&lt;p class=&quot;mobile-post&quot;&gt;&lt;a href=&quot;http://shots.osdir.com/&quot;&gt;http://shots.osdir.com/&lt;/a&gt;&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7119305/posts/default/112922785016813051'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7119305/posts/default/112922785016813051'/><link rel='alternate' type='text/html' href='http://otbits.blogspot.com/2005/10/os-tasting.html' title='OS Tasting'/><author><name>Unknown</name><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></entry><entry><id>tag:blogger.com,1999:blog-7119305.post-112907568003510007</id><published>2005-10-10T20:00:00.000-04:00</published><updated>2005-10-31T14:52:09.560-04:00</updated><title type='text'>Desktop GNUs</title><content type='html'>GNUs -mainly Linux- state of the arts for servers could be entitled as great. But that highlight not shows the same face for desktop usage. There are many issues to be confronted before we can see a really mature approach in migrating to linux environment. They can be organized in four main items, as we see on many posts of experienced admins, by the way, the most crystal approach: migration, stability, simplicity, comfort. Migration deals with the technical field: moving the user and his environment to this new gadget (thanks, wine; not wine for drinking, but the open application that is not an emulator; must include int this topic the learning curve fact). Stability, mainly with applications; if has been seen that the base OS handles tasks as a rock, is not the same with all applications. Comfort, with the maturity and easiness focus of task handling. The four issues lack off in some way. Not as a constant, but as everything, each case is to be handled with most care.&lt;br /&gt;&lt;br /&gt;Years ago, we think man will live on the moon, by Y2k. Now we live another type of revolution: internet. We forgot the moon. Same way, on the desktop, we may probably not replace just the OS on final users&#39; computers. Maybe the approach is based on powerful mainframes, generating desktops on dumb terminals. Simple, manageable, echologic. See the DiscoverStation solution as an example.&lt;br /&gt;&lt;br /&gt;Anyway, there are new resources on the net, u r not alone. Check them out and you will find the named state of the arts has evolved. Here are a couple of them. You can google for more and be surprised.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.desktoplinux.com/&quot;&gt;www.desktoplinux.com/&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.blogger.com/www.desktoplinuxconsortium.org/&quot;&gt;www.desktoplinuxconsortium.org/&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.debian.org/devel/debian-desktop/&quot;&gt;www.debian.org/devel/debian-desktop/&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.userful.com/products/library/&quot;&gt;www.userful.com/products/library/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Estracted from &lt;a href=&quot;http://www.swlink.net/~styma/LinuxForTheMasses.shtml&quot;&gt;http://www.swlink.net/~styma/LinuxForTheMasses.shtml&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;    * Linux/Fedora can supply the functionality that the end user needs once it is set up. It can do this more reliably than Windows.&lt;br /&gt;       &lt;br /&gt;    * The application interface for the Linux end user tools (office, k3b, games, etc.) is similar enough to the windows interface to make the transition relatively painless.&lt;br /&gt;       &lt;br /&gt;    * In it&#39;s current state, Fedora needs a technically savvy person to get it set up to a state that the end user can do things. Many of the issues revolve around licensing issues, such as the installs of xmms-mp3 and k3b-mp3. Some of the Firefox plugin issues fall into this category.&lt;br /&gt;       &lt;br /&gt;    * A tool, similar in concept to the wine-tools, would be useful in the distribution. It would have options like &quot;use MP3 format files&quot;, and if selected would add the livna repo&#39;s and check if k3b, xmms, and others with -mp3 versions were installed. If so, it would yum down the mp3 versions of these RPM&#39;s. The same would be true for enabling Java in the browser. Nothing I did could not be done by an automated tool.&lt;br /&gt;       &lt;br /&gt;    * Non-technical users need a support structure to use their Linux machines effectively. I suspect this is mostly true if one is migrating the users away from Windows. If they know how to do something in windows, it is easier to switch back than to go through the learning curve on Linux. The question remains, what do the non-technical Windows users do when they get stuck? I suspect they either thrash around till they get something to work or just give up. I do not have good data on this and don&#39;t see how to get it. As Dr. Heisenberg discovered, measuring things affects the object being measured.&lt;br /&gt;       &lt;br /&gt;    * It is possible that some of the procedures used could have been done better. &quot;How do I&quot; requests I got were often things I don&#39;t do often so I researched the issue to supply an answer.&lt;br /&gt;       &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;&lt;/span&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7119305/posts/default/112907568003510007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7119305/posts/default/112907568003510007'/><link rel='alternate' type='text/html' href='http://otbits.blogspot.com/2005/10/desktop-gnus.html' title='Desktop GNUs'/><author><name>Unknown</name><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></entry><entry><id>tag:blogger.com,1999:blog-7119305.post-112937932332043566</id><published>2005-10-01T20:06:00.000-04:00</published><updated>2005-10-17T20:35:03.890-04:00</updated><title type='text'>VNC tools mainframe-like terminals</title><content type='html'>What about buying a 50 bugs Pentium-I used computers(32 Mb RAM, 1Gb HD), and using the last Fedora Core 4 release, or Sarge? You can do that with linux VNCServer. VNC, on linux has the ability of creating desktop environments for each client. Here is an example with FC4.&lt;br /&gt;&lt;br /&gt;1. Install vncserver on linux server. Install vncviewer from RealVNC on clients. You need 128Mb RAM on server for each client.&lt;br /&gt;2. Create client entries like the line examples on /etc/sysconfig/vncserver&lt;br /&gt;&lt;br /&gt;VNCSERVERS=&quot;1:rodolfoap&quot;&lt;br /&gt;VNCSERVERARGS[1]=&quot;-geometry 800x600&quot;&lt;br /&gt;&lt;br /&gt;3. su as each user. Run vncserver. It will create the ~/.vnc structure.&lt;br /&gt;4. Edit ~/.vnc/xstartup:&lt;br /&gt;&lt;br /&gt;unset SESSION_MANAGER&lt;br /&gt;exec /etc/X11/xinit/xinitrc&lt;br /&gt;[ -x /etc/vnc/xstartup ] &amp;&amp;amp; exec /etc/vnc/xstartup&lt;br /&gt;[ -r $HOME/.Xresources ] &amp;&amp;amp; xrdb $HOME/.Xresources&lt;br /&gt;xsetroot -solid grey&lt;br /&gt;vncconfig -iconic &amp;&lt;br /&gt;xterm -geometry 80x24+10+10 -ls -title &quot;$VNCDESKTOP Desktop&quot; &amp;amp;&lt;br /&gt;exec gnome-session &amp;amp;&lt;br /&gt;&lt;br /&gt;5. Check your firewall rules! Start service. Connect from clients to SERVER_IP:5901 (each client is enumerated from 5901).&lt;br /&gt;&lt;br /&gt;This method allows you to have a lot of clients working on his own homes. Startup scripts, allowable programs, quotas. But thats a KDE or GNOME issue.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7119305/posts/default/112937932332043566'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7119305/posts/default/112937932332043566'/><link rel='alternate' type='text/html' href='http://otbits.blogspot.com/2005/10/vnc-tools-mainframe-like-terminals.html' title='VNC tools mainframe-like terminals'/><author><name>Unknown</name><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></entry><entry><id>tag:blogger.com,1999:blog-7119305.post-112906889416422723</id><published>2005-09-09T18:13:00.000-04:00</published><updated>2005-10-17T19:43:54.133-04:00</updated><title type='text'>Documentation-time logic</title><content type='html'>Document! But do not take this task as an addition to developing. Here is an example of an integrated way of developing and socumenting at the same time.&lt;br /&gt;&lt;br /&gt;The example shows a script which includes its own documentation. With simple tools, we generate man documentation from its output.&lt;br /&gt;&lt;br /&gt;First of all, you need this formatted output: --version and --help. This example applies the &quot;fortunes&quot; script written in a previous post.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;[rodolfoap] /home/rodolfoap &amp;gt; fortunes --version&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;font-family: courier new;&quot;&gt;GNU fortunes v0.1&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style=&quot;font-family: courier new;&quot;&gt;Copyright (C) 1999 Free Software Foundation, Inc.&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;font-family: courier new;&quot;&gt;This is free software; see the source for copying conditions.  There is NO&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;font-family: courier new;&quot;&gt;warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style=&quot;font-family: courier new;&quot;&gt;Written by Rodolfo Alcazar &amp;lt;rodolfoap@hotmail.com&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;font-family: courier new;&quot;&gt;[rodolfoap] /home/rodolfoap &amp;gt; fortunes --help&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;font-family: courier new;&quot;&gt;GNU fortunes is a personal fortunes engine organizer, written in bash.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style=&quot;font-family: courier new;&quot;&gt;Usage: fortunes [OPTION]&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style=&quot;font-family: courier new;&quot;&gt;Options:&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;font-family: courier new;&quot;&gt;-e              edit fortunes file&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;font-family: courier new;&quot;&gt;-l              enters learning mode&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;font-family: courier new;&quot;&gt;-m              enters multiline-learning mode&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;font-family: courier new;&quot;&gt;--help          shows this help&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;font-family: courier new;&quot;&gt;--version       shows version&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style=&quot;font-family: courier new;&quot;&gt;Examples:&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style=&quot;font-family: courier new;&quot;&gt;fortunes --help shows this help&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;font-family: courier new;&quot;&gt;fortunes -e             edits fortunes file&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;font-family: courier new;&quot;&gt;fortunes                generates a random fortune&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;font-family: courier new;&quot;&gt;fortunes -l             starts learning mode&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style=&quot;font-family: courier new;&quot;&gt;Report bugs to rodolfoap@hotmail.com&lt;/span&gt;&lt;br /&gt; &lt;/span&gt;&lt;br /&gt;Start documentation process:&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;[rodolfoap] /home/rodolfoap &amp;gt; help2man fortunes|gzip -f&amp;gt;fortunes.1.gz&lt;/span&gt;&lt;br /&gt; &lt;/span&gt;&lt;br /&gt;User just access the man page. In this case, the man page is not stored in its proper location.&lt;br /&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;br /&gt; &lt;span style=&quot;font-family: courier new;&quot;&gt;[rodolfoap] /home/rodolfoap &amp;gt; man ./fortunes.1.gz&lt;/span&gt;&lt;/span&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7119305/posts/default/112906889416422723'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7119305/posts/default/112906889416422723'/><link rel='alternate' type='text/html' href='http://otbits.blogspot.com/2005/09/documentation-time-logic.html' title='Documentation-time logic'/><author><name>Unknown</name><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></entry><entry><id>tag:blogger.com,1999:blog-7119305.post-112907188034216548</id><published>2005-08-07T19:02:00.000-04:00</published><updated>2005-10-17T19:46:15.256-04:00</updated><title type='text'>Linux power tools and classic formats</title><content type='html'>This is an interesting one. I had a 200-pages book, and need a 50-page book, with 4 little pages on each page. So I based this script on psdim, one of a thousand linux power tools:&lt;br /&gt;#bin/bash&lt;br /&gt;IMAGES=4&lt;br /&gt;echo Must have installed psdim!&lt;br /&gt;echo Converting...&lt;br /&gt;gs -dBATCH -dNOPAUSE -sDEVICE=pswrite -sOutputFile=$1.tmp.ps $1&lt;br /&gt;echo PSDIM output --------------------&lt;br /&gt;psdim -$IMAGES $1.tmp.ps&lt;br /&gt;echo PSDIM output end ----------------&lt;br /&gt;pstops $(psdim -$IMAGES $1.tmp.ps) $1.tmp.ps $1.tm2.ps&lt;br /&gt;gs -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile=$1.tiled.pdf $1.tm2.ps&lt;br /&gt;rm $1.tmp.ps $1.tm2.ps&lt;br /&gt;rename .pdf.tiled.pdf .tiled.pdf $1.tiled.pdf&lt;br /&gt;echo Done!&lt;br /&gt;&lt;br /&gt;You just need to start exploring GNU power tools now!</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7119305/posts/default/112907188034216548'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7119305/posts/default/112907188034216548'/><link rel='alternate' type='text/html' href='http://otbits.blogspot.com/2005/08/linux-power-tools-and-classic-formats.html' title='Linux power tools and classic formats'/><author><name>Unknown</name><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></entry><entry><id>tag:blogger.com,1999:blog-7119305.post-112907704075877924</id><published>2005-07-13T20:30:00.000-04:00</published><updated>2005-10-17T20:04:39.910-04:00</updated><title type='text'>Scripted Server Setup</title><content type='html'>&lt;p class=&quot;mobile-post&quot;&gt;As a tasks-overloaded systems administrator, I really experienced the &lt;span style=&quot;font-style: italic; font-weight: bold;&quot;&gt;information is, by far, the most important asset of a company&lt;/span&gt; motto. Enough to risk your job or your career if you lose some. So, years ago, I focused on two highlights on servers management: keeping safe data and automatizing administrative processes. I will focus on this article on the automatizing administrative processes issue.&lt;/p&gt; &lt;p class=&quot;mobile-post&quot;&gt;With Turbolinux, I wrote once a script, which allows me, runt before a fresh install, to complete a mailserver setup. Install tooks 10 minutes. Script execution (install additional rpms, copying mailboxes from other server, replacing configuration files, configure services and reboot), 5 minutes. With bash.&lt;br /&gt;&lt;/p&gt; &lt;p class=&quot;mobile-post&quot;&gt;The only problem was that next year we, the company, found ourselves working with SuSE. A couple of years, with Fedora. We expect the script will just need a little review with each scenario changing. False. The script needed a rewrite every time. So, as a part of writing automatization processes scripts, we include the &quot;source code&quot; of our needs.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt; &lt;p class=&quot;mobile-post&quot;&gt;This is an excerpt of a class I dictated. Useful for a mailserver setting up.&lt;br /&gt;&lt;/p&gt; &lt;p class=&quot;mobile-post&quot;&gt;Linux Fedora Core 4 Server&lt;br /&gt;==========================&lt;/p&gt;&lt;p class=&quot;mobile-post&quot;&gt;- Install Fedora Core 4&lt;/p&gt;&lt;p class=&quot;mobile-post&quot;&gt;- Do Not install SELINUX.&lt;/p&gt;&lt;p class=&quot;mobile-post&quot;&gt;- Custom Type installation - no packages&lt;/p&gt;&lt;p class=&quot;mobile-post&quot;&gt;- Hostname=www.example.org.bo&lt;/p&gt;&lt;p class=&quot;mobile-post&quot;&gt;Firewalling config with IP Tables&lt;br /&gt;=================================&lt;/p&gt;&lt;p class=&quot;mobile-post&quot;&gt;Add this rules to /etc/sysconfig/iptables:&lt;br /&gt;-A RH-Firewall-1-INPUT -p tcp --dport 22 -j ACCEPT&lt;br /&gt;-A RH-Firewall-1-INPUT -p tcp --dport 25 -j ACCEPT&lt;br /&gt;-A RH-Firewall-1-INPUT -p tcp --dport 80 -j ACCEPT&lt;br /&gt;-A RH-Firewall-1-INPUT -p tcp --dport 110 -j ACCEPT&lt;/p&gt;&lt;p class=&quot;mobile-post&quot;&gt;# service iptables restart&lt;/p&gt;&lt;p class=&quot;mobile-post&quot;&gt;Create yum repository&lt;br /&gt;=====================&lt;/p&gt;&lt;p class=&quot;mobile-post&quot;&gt;Install createrepo with rpm:&lt;br /&gt;# yum -y install createrepo&lt;/p&gt;&lt;p class=&quot;mobile-post&quot;&gt;Create basedir:&lt;br /&gt;# mkdir -p /rpm/Fedora/RPMS&lt;br /&gt;# cd /rpm/Fedora/RPMS&lt;/p&gt;&lt;p class=&quot;mobile-post&quot;&gt;Put each disc on cdrom and&lt;br /&gt;# mount /media/cdrom; cp -v /media/cdrom/Fedora/RPMS/*.rpm . ; eject&lt;/p&gt;&lt;p class=&quot;mobile-post&quot;&gt;On /etc/yum.repos.d/fedora.repo comment baseurl=, mirrorlist, gpg...,&lt;br /&gt;and add&lt;br /&gt;baseurl=file:///rpm/&lt;/p&gt;&lt;p class=&quot;mobile-post&quot;&gt;Create repository:&lt;br /&gt;# createrepo /rpm&lt;/p&gt;&lt;p class=&quot;mobile-post&quot;&gt;Config Apache web server&lt;br /&gt;========================&lt;/p&gt;&lt;p class=&quot;mobile-post&quot;&gt;# yum -y install httpd&lt;br /&gt;# service httpd start&lt;br /&gt;# chkconfig httpd on&lt;/p&gt;&lt;p class=&quot;mobile-post&quot;&gt;Config Pop3 server with Dovecot&lt;br /&gt;===============================&lt;/p&gt;&lt;p class=&quot;mobile-post&quot;&gt;# yum -y install dovecot&lt;br /&gt;# service dovecot start&lt;br /&gt;# chkconfig dovecot on&lt;/p&gt;&lt;p class=&quot;mobile-post&quot;&gt;Config SMTP server with Sendmail&lt;br /&gt;================================&lt;/p&gt;&lt;p class=&quot;mobile-post&quot;&gt;# yum install sendmail-cf&lt;br /&gt;# cd /etc/mail/&lt;/p&gt;&lt;p class=&quot;mobile-post&quot;&gt;# vi sendmail.mc&lt;/p&gt;&lt;p class=&quot;mobile-post&quot;&gt;Uncomment (wipe dnl):&lt;br /&gt;dnl define(`confAUTH_OPTIONS&#39;, `A p&#39;)dnl&lt;br /&gt;dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN&#39;)dnl&lt;br /&gt;dnl define(`confAUTH_MECHANISMS&#39;, `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5&lt;br /&gt;LOGIN PLAIN&#39;)dnl&lt;/p&gt;&lt;p class=&quot;mobile-post&quot;&gt;Comment (put dnl):&lt;br /&gt;DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA&#39;)dnl&lt;/p&gt;&lt;p class=&quot;mobile-post&quot;&gt;Generate sendmail cf file:&lt;br /&gt;# m4 sendmail.mc &amp;gt; sendmail.cf&lt;/p&gt;&lt;p class=&quot;mobile-post&quot;&gt;Add domains served by server:&lt;br /&gt;# echo example.org.bo &amp;gt;&amp;gt; local-host-names&lt;/p&gt;&lt;p class=&quot;mobile-post&quot;&gt;Add the networks this server accepts mail from:&lt;br /&gt;# echo 10.0.0 RELAY &amp;gt;&amp;gt; access&lt;/p&gt;&lt;p class=&quot;mobile-post&quot;&gt;Regenerate hash tables by restarting service&lt;br /&gt;# make&lt;br /&gt;or&lt;br /&gt;# service sendmail restart&lt;/p&gt;&lt;p class=&quot;mobile-post&quot;&gt;Install a webmail server with SquirrelMail&lt;br /&gt;=============================================&lt;/p&gt;&lt;p class=&quot;mobile-post&quot;&gt;# yum install squirrelmail&lt;/p&gt;&lt;p class=&quot;mobile-post&quot;&gt;Fill organizational data with&lt;br /&gt;# /usr/share/squirrelmail/config/conf.pl&lt;br /&gt;Must complete numbers 1 (general data), 7 (Motd) and 10 (languaje, here&lt;br /&gt;we use es_ES)&lt;/p&gt;&lt;p class=&quot;mobile-post&quot;&gt;Install Mailman mailing lists server&lt;br /&gt;====================================&lt;/p&gt;&lt;p class=&quot;mobile-post&quot;&gt;Install mailman:&lt;br /&gt;# yum install mailman&lt;/p&gt;&lt;p class=&quot;mobile-post&quot;&gt;Config mailman:&lt;br /&gt;# cd /usr/lib/mailman/bin&lt;br /&gt;# ./mmsitepass&lt;/p&gt;&lt;p class=&quot;mobile-post&quot;&gt;Maybe this is not necessary, but we must know where it is:&lt;br /&gt;# vi /etc/mailman/mm_cfg.py # put fqdn=&#39;www.example.org.bo&#39;&lt;/p&gt;&lt;p class=&quot;mobile-post&quot;&gt;Create lists&lt;br /&gt;# ./newlist # create &quot;mailman&quot; list and copy generated aliases&lt;br /&gt;to /etc/aliases&lt;br /&gt;# ./newlist # create &quot;mylist&quot; list and copy generated aliases&lt;br /&gt;to /etc/aliases&lt;br /&gt;# ./mailmanctl start&lt;br /&gt;# service sendmail restart&lt;br /&gt;# service httpd restart&lt;br /&gt;# service mailman start&lt;br /&gt;# chkconfig mailman on&lt;/p&gt;&lt;p class=&quot;mobile-post&quot;&gt;(on redhat, mailman require MAILMAN_USER and GROUP = &#39;root&#39; on&lt;br /&gt;Defaults.py)&lt;br /&gt;&lt;/p&gt; &lt;p class=&quot;mobile-post&quot;&gt;You can see how easy is to &quot;compile&quot; this to bash, with kickfiles, sed, yum or apt.&lt;br /&gt;&lt;/p&gt; &lt;p class=&quot;mobile-post&quot;&gt;Additional tip: whilst including this lines as comments on the script, include instructions if you are gonna execute interactive commands...&lt;br /&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://otbits.blogspot.com/feeds/112907704075877924/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7119305/112907704075877924' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7119305/posts/default/112907704075877924'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7119305/posts/default/112907704075877924'/><link rel='alternate' type='text/html' href='http://otbits.blogspot.com/2005/07/scripted-server-setup.html' title='Scripted Server Setup'/><author><name>Unknown</name><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-7119305.post-112907158951926060</id><published>2005-04-15T18:56:00.000-04:00</published><updated>2005-10-17T20:26:54.816-04:00</updated><title type='text'>Increasing productivity</title><content type='html'>Wanna load a bunch of users/passwords to your system? Wanna auto-generate mailman lists? Wanna concentrate all your weekly backups on a single server directory? Wanna batch? Got it! But only on text-based systems (read x-based OSs). If you manage IT facilities, YOU WILL NEED:&lt;br /&gt;&lt;br /&gt;* cron, at, batch&lt;br /&gt;&lt;br /&gt;* man man&lt;br /&gt;&lt;br /&gt;* perl, bash&lt;br /&gt;&lt;br /&gt;And some specific tools examples:&lt;br /&gt;&lt;br /&gt;* chpasswd, sed, awk, rsync, scp&lt;br /&gt;&lt;br /&gt;* mailman: all in /bin dir. sync_members will save you days if you schedule it with your /etc/passwd or adduser changes!&lt;br /&gt;&lt;br /&gt;* sendmail: m4, makemap&lt;br /&gt;&lt;br /&gt;* apache: mod_auth_pam, if you wanna simplify managing and have a LDAPping-Krb alternative&lt;br /&gt;&lt;br /&gt;* Windows admins: Have you tried bash tools on your cmd.exe line?&lt;br /&gt;&lt;br /&gt;X-based servers are in a highly mature state. They had evolved to satisfy most common administrative requests. Just search.&lt;br /&gt;&lt;br /&gt;A quote from &quot;A quarter Century of Unix&quot; by P Salus&quot; states, quoted from Simone Demblon :)&lt;br /&gt;&lt;br /&gt;* write programs that do one thing and do it well.&lt;br /&gt;* write programs that work together&lt;br /&gt;* write programs that handle text streams, because that is a universal interface&lt;br /&gt;&lt;br /&gt;Cheers!</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7119305/posts/default/112907158951926060'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7119305/posts/default/112907158951926060'/><link rel='alternate' type='text/html' href='http://otbits.blogspot.com/2005/04/increasing-productivity.html' title='Increasing productivity'/><author><name>Unknown</name><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></entry><entry><id>tag:blogger.com,1999:blog-7119305.post-112907117012179171</id><published>2005-03-03T18:46:00.000-04:00</published><updated>2005-10-13T07:50:07.610-04:00</updated><title type='text'>Detailed Linux Boot Process</title><content type='html'>Linux boot process is based, among others, on the System-V filed structure. Can read more on this article.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.ccoss.org/tutorials/lfs/Linux_from_Scratch_A_Tour.htm&quot;&gt;http://www.ccoss.org/tutorials/lfs/Linux_from_Scratch_A_Tour.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Fedora boot process, in more detail:&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://openskills.info/infobox.php?ID=228&quot;&gt;http://openskills.info/infobox.php?ID=228&lt;span class=&quot;&quot; style=&quot;display: block;&quot; id=&quot;formatbar_CreateLink&quot; title=&quot;Link&quot; onmouseover=&quot;ButtonHoverOn(this);&quot; onmouseout=&quot;ButtonHoverOff(this);&quot; onmouseup=&quot;&quot; onmousedown=&quot;CheckFormatting(event);FormatbarButton(&#39;richeditorframe&#39;, this, 8);ButtonMouseDown(this);&quot;&gt;&lt;/span&gt;&lt;/a&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7119305/posts/default/112907117012179171'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7119305/posts/default/112907117012179171'/><link rel='alternate' type='text/html' href='http://otbits.blogspot.com/2005/03/detailed-linux-boot-process.html' title='Detailed Linux Boot Process'/><author><name>Unknown</name><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></entry><entry><id>tag:blogger.com,1999:blog-7119305.post-112905882925264132</id><published>2005-02-16T15:27:00.000-04:00</published><updated>2005-10-17T20:29:11.540-04:00</updated><title type='text'>High leveling common tools</title><content type='html'>Tools like bash worths a &quot;man bash&quot; reading. You can even make recursive scripts! Lets play...&lt;br /&gt;&lt;pre&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;#!/bin/bash&lt;br /&gt;&lt;br /&gt;function generalista ()&lt;br /&gt;{&lt;br /&gt;    if [ $1 == &quot;0&quot; ] || [ $1 == &quot;1&quot; ]&lt;br /&gt;    then&lt;br /&gt;            echo 1&lt;br /&gt;    else&lt;br /&gt;            VARF=$(($1-1))&lt;br /&gt;            echo $VARF&lt;br /&gt;            generalista $VARF&lt;br /&gt;    fi&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;if [ &quot;$#&quot; == &quot;1&quot; ]&lt;br /&gt;then&lt;br /&gt;    if [ $1 -ge 0 ]&lt;br /&gt;    then&lt;br /&gt;            time LISTA=$(generalista $1)&lt;br /&gt;            echo El factorial es el producto de los factores de esta lista : $LISTA&lt;br /&gt;            FACTORIAL=1;&lt;br /&gt;            for FACTOR in $LISTA&lt;br /&gt;            do&lt;br /&gt;                    TEMP=$(($FACTORIAL*$FACTOR))&lt;br /&gt;                    FACTORIAL=$TEMP&lt;br /&gt;            done&lt;br /&gt;            echo Entonces, el factorial de $1 es $FACTORIAL, aunque eso no es correcto...&lt;br /&gt;    else&lt;br /&gt;            echo Error: integer MUST be positive&lt;br /&gt;    fi&lt;br /&gt;else&lt;br /&gt;    echo Usage: $0 positive_integer&lt;br /&gt;fi&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://otbits.blogspot.com/feeds/112905882925264132/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7119305/112905882925264132' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7119305/posts/default/112905882925264132'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7119305/posts/default/112905882925264132'/><link rel='alternate' type='text/html' href='http://otbits.blogspot.com/2005/02/high-leveling-common-tools.html' title='High leveling common tools'/><author><name>Unknown</name><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-7119305.post-112905880602866970</id><published>2005-01-07T15:26:00.000-04:00</published><updated>2005-10-17T20:33:59.840-04:00</updated><title type='text'>Bash humor quotes database aids</title><content type='html'>&lt;pre&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;#!/bin/bash&lt;br /&gt;&lt;br /&gt;FORTFILE=/home/rodolfoap/bin/fortunes.mine&lt;br /&gt;EDITOR=vi&lt;br /&gt;&lt;br /&gt;HLPTXT=$(cat &amp;lt;&amp;lt;EOT&lt;br /&gt;GNU fortunes is a personal fortunes engine organizer, written in bash.&lt;br /&gt;&lt;br /&gt;Usage: fortunes [OPTION]&lt;br /&gt;&lt;br /&gt;Options:&lt;br /&gt;      -e              edit fortunes file&lt;br /&gt;      -l              enters learning mode&lt;br /&gt;      -m              enters multiline-learning mode&lt;br /&gt;      --help          shows this help&lt;br /&gt;      --version       shows version&lt;br /&gt;&lt;br /&gt;Examples:&lt;br /&gt;&lt;br /&gt;      fortunes --help shows this help&lt;br /&gt;      fortunes -e             edits fortunes file&lt;br /&gt;      fortunes                generates a random fortune&lt;br /&gt;      fortunes -l             starts learning mode&lt;br /&gt;&lt;br /&gt;Report bugs to rodolfoap@hotmail.com&lt;br /&gt;EOT)&lt;br /&gt;&lt;br /&gt;VERTXT=$(cat &amp;lt;&amp;lt;EOT&lt;br /&gt;GNU fortunes v0.1&lt;br /&gt;&lt;br /&gt;Copyright (C) 1999 Free Software Foundation, Inc.&lt;br /&gt;This is free software; see the source for copying conditions.  There is NO&lt;br /&gt;warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.&lt;br /&gt;&lt;br /&gt;Written by Rodolfo Alcazar &lt;rodolfoap com=&quot;&quot;&gt;&lt;br /&gt;EOT)&lt;br /&gt;&lt;br /&gt;case &quot;$1&quot; in&lt;br /&gt;      &quot;&quot;)&lt;br /&gt;              fortune $FORTFILE&lt;br /&gt;              ;;&lt;br /&gt;      &quot;-e&quot;)&lt;br /&gt;              $EDITOR $FORTFILE&lt;br /&gt;              /usr/sbin/strfile $FORTFILE&lt;br /&gt;              echo&lt;br /&gt;              ;;&lt;br /&gt;      &quot;-l&quot;)&lt;br /&gt;              echo &quot;Entering learning mode.&quot;&lt;br /&gt;              echo&lt;br /&gt;              read -p &quot;&gt; &quot; QUE&lt;br /&gt;              echo -e &quot;$QUE\n%&quot; &gt;&gt; $FORTFILE&lt;br /&gt;              echo&lt;br /&gt;              /usr/sbin/strfile $FORTFILE&lt;br /&gt;              ;;&lt;br /&gt;      &quot;-m&quot;)&lt;br /&gt;              echo &quot;Entering multiline learning mode. End questions and answers with &lt;enter&gt;^D.&quot;&lt;br /&gt;              echo&lt;br /&gt;              echo -n &quot;&gt; &quot;&lt;br /&gt;              QUE=$(cat)&lt;br /&gt;              echo -e &quot;$QUE\n%&quot; &gt;&gt; $FORTFILE&lt;br /&gt;              echo&lt;br /&gt;              /usr/sbin/strfile $FORTFILE&lt;br /&gt;              ;;&lt;br /&gt;      &quot;-h&quot;|&quot;--help&quot;)&lt;br /&gt;              echo &quot;$HLPTXT&quot;&lt;br /&gt;              ;;&lt;br /&gt;      &quot;-v&quot;|&quot;--version&quot;)&lt;br /&gt;              echo &quot;$VERTXT&quot;&lt;br /&gt;              ;;&lt;br /&gt;esac&lt;br /&gt;&lt;br /&gt;&lt;/enter&gt;&lt;/rodolfoap&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Fun, hah? With this basics I&#39;ve wrote a flashcards studying tool. Drop me a line if you want it. Even better, you can write your own!</content><link rel='replies' type='application/atom+xml' href='http://otbits.blogspot.com/feeds/112905880602866970/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7119305/112905880602866970' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7119305/posts/default/112905880602866970'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7119305/posts/default/112905880602866970'/><link rel='alternate' type='text/html' href='http://otbits.blogspot.com/2005/01/bash-humor-quotes-database-aids.html' title='Bash humor quotes database aids'/><author><name>Unknown</name><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-7119305.post-108559080346832821</id><published>2004-01-03T13:00:00.004-04:00</published><updated>2010-02-24T08:27:12.221-04:00</updated><title type='text'>Curriculum Vitae (EN)</title><content type='html'>&lt;span style=&quot;font-weight: bold;&quot;&gt;Ing. Rodolfo José Alcázar Portillo &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: 78%;&quot;&gt;rodolfo.alcazar.portillo@gmail.com; NIE Y0555335Z, born La Paz, Bolivia, 30/04/1969&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: 85%;&quot;&gt;&lt;br /&gt;
&lt;span style=&quot;font-style: italic; font-weight: bold;&quot;&gt;(Entities located in La Paz, Bolivia, unless specifically mentioned)&lt;/span&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Studies&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-style: italic; font-weight: bold;&quot;&gt;Cisco CCNA certification, Technologies Transfer Center, 2002&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-style: italic; font-weight: bold;&quot;&gt;Networks/Comunications Specialization postgrade, Aquino University , 2002&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-style: italic; font-weight: bold;&quot;&gt;Internet/ Intranet Postgrade, Franz Tamayo Private University, 2001&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-style: italic; font-weight: bold;&quot;&gt;Systems Engineering, Catholic University, Cordoba, Argentina, 1993&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;Bachelor in humanities, American Institute, 1988&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Specialization Areas&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Implementation, management and administration of network and systems facilities (at present preparing material for possible publication of a book: Administracion de Centros de Computo - IT Facilities Management)&lt;/li&gt;
&lt;li&gt;Free software for enterprise applications and systems management&lt;/li&gt;
&lt;li&gt;Networks, data communications and Internet/Intranet technology; communications equipment of voice and data networks (Cisco, Motorola, mainly; routers, switches, firewalls)&lt;/li&gt;
&lt;li&gt;Information and data management;  systems auditing;  informatic systems and communications standards&lt;/li&gt;
&lt;li&gt;Operating systems: Linux, SCOUnix, Ultrix, AIX, Windows&lt;/li&gt;
&lt;/ul&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Experience related to the position&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;font-style: italic; font-weight: bold;&quot;&gt;2003 - 2010  Systems administrator, GTZ&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Specialized technical consultancy to governmental clients (local and  foreign) in design and implementation of IT services;&lt;/li&gt;
&lt;li&gt;IT facilities and data/voice networks design and implementation; supervision of LAN and WAN network cabling and interconnection with 6 offices in several city locations;&lt;/li&gt;
&lt;li&gt;Implementation of Intranet/Internet and administrative services for internal clients;&lt;/li&gt;
&lt;li&gt;IT services and systems management.&lt;/li&gt;
&lt;/ul&gt;&lt;span style=&quot;font-style: italic; font-weight: bold;&quot;&gt;2000 - 2003 Networks and Information Manager; Information Quality Control &lt;/span&gt;&lt;span style=&quot;font-style: italic; font-weight: bold;&quot;&gt;Technician, Ministry of Education (Ministerio de Educacion)&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;IT facilities and services design, implementation and management; supervision of network cabling of 2 Ministry of Education buildings and governmental buildings throughout the country;&lt;/li&gt;
&lt;li&gt;IT services and systems management;&lt;/li&gt;
&lt;li&gt;Educational information quality strategy development/implementation;&lt;/li&gt;
&lt;li&gt;organization of operatives in collecting redundant information in more than 2000 schools in all the country; pollsters and supervisors team coordination (70 simultaneously).&lt;/li&gt;
&lt;/ul&gt;&lt;span style=&quot;font-style: italic; font-weight: bold;&quot;&gt;1997 - 1999 Systems Coordinator, World Vision Bolivia&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Coordination of the IT team;&lt;/li&gt;
&lt;li&gt;Partners consultancy in Colombia, El Salvador, Honduras and Costa Rica ;&lt;/li&gt;
&lt;li&gt;IT facilities and services implementation and management, based on a design proposed from Costa Rica; supervision of network cabling;&lt;/li&gt;
&lt;li&gt;Participation in international systems auditories;&lt;/li&gt;
&lt;li&gt;Strategic and operative planification trainer; participation in revision of 40 operative plans and 6 strategic development plans of projects and national office.&lt;/li&gt;
&lt;/ul&gt;&lt;span style=&quot;font-style: italic; font-weight: bold;&quot;&gt;1997 Computer center responsible, Nexxo superagency of Bolivian Stock Market &lt;/span&gt;&lt;span style=&quot;font-style: italic; font-weight: bold;&quot;&gt;Agency (Bolsa Boliviana de Valores)&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Participation in implementation of stock values negotiation systems with a Colombian specialists team; participation in implementation of WAN network with 15 agencies of local stock market in several points of La Paz;&lt;/li&gt;
&lt;li&gt;Network protocols analysis for price fixing, as specialists assistance to ENTEL.&lt;/li&gt;
&lt;/ul&gt;&lt;span style=&quot;font-style: italic; font-weight: bold;&quot;&gt;1996 Data Analyst, National Secretary of Education (Secretaria Nacional de&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-style: italic; font-weight: bold;&quot;&gt;Educacion)&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Development and implementation of bolivian educative entities database;&lt;/li&gt;
&lt;li&gt;Network cabling and IT services specifications design for buildings of the Educational Reform Program;&lt;/li&gt;
&lt;li&gt;Participation in publication of 10 volumes of educative information compendiums.&lt;/li&gt;
&lt;/ul&gt;&lt;span style=&quot;font-style: italic; font-weight: bold;&quot;&gt;1994 - 1996 Computer Center Administrator, Banks and Financial Organizations&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-style: italic; font-weight: bold;&quot;&gt;Superintendency (Superintendencia de Bancos y Entidades Finacieras)&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;National Entities and Persons Financial Database management;&lt;/li&gt;
&lt;li&gt;Participation in migration of the Computer Center and network cabling and IT services design, SBEF building;&lt;/li&gt;
&lt;li&gt;Participation in design and implementation of IT services  according to specifications of World Bank counterpart.&lt;/li&gt;
&lt;/ul&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7119305/posts/default/108559080346832821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7119305/posts/default/108559080346832821'/><link rel='alternate' type='text/html' href='http://otbits.blogspot.com/2004/01/curriculum-vitae-en.html' title='Curriculum Vitae (EN)'/><author><name>Unknown</name><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></entry><entry><id>tag:blogger.com,1999:blog-7119305.post-112905879351125978</id><published>2004-01-01T13:00:00.004-04:00</published><updated>2010-03-05T07:33:42.487-04:00</updated><title type='text'>Curriculum Vitae (ES)</title><content type='html'>&lt;span style=&quot;font-weight: bold;&quot;&gt;Ing. Rodolfo José Alcázar Portillo &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: 78%;&quot;&gt;rodolfo.alcazar.portillo@gmail.com; NIE Y0555335Z, La Paz, Bolivia, 30/04/1969,&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Estudios realizados&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;    &lt;span style=&quot;font-style: italic; font-weight: bold;&quot;&gt;Certificación Cisco – CCNA, Centro de Transferencia de Tecnologías, 2002 &lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;font-style: italic; font-weight: bold;&quot;&gt;    Posgrado Especialización Redes/Comunicaciones, Universidad de Aquino, 2002&lt;/li&gt;
&lt;li style=&quot;font-style: italic; font-weight: bold;&quot;&gt;    Posgrado Internet/ Intranet, Universidad Privada Franz Tamayo, 2001&lt;/li&gt;
&lt;li style=&quot;font-style: italic; font-weight: bold;&quot;&gt;    Ingeniería de Sistemas, Universidad Católica Córdoba, Argentina, 1993&lt;/li&gt;
&lt;li style=&quot;font-style: italic; font-weight: bold;&quot;&gt;    Bachillerato en humanidades, Instituto Americano, 1988&lt;/li&gt;
&lt;/ul&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Áreas de especialización&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Implementación, gestión y administración de centros de cómputo (actualmente preparando material para posible publicación del libro: Administración de Centros de Cómputo)&lt;/li&gt;
&lt;li&gt;Software libre para aplicaciones empresariales y de gestión de sistemas y redes&lt;/li&gt;
&lt;li&gt;Redes, comunicaciones de datos y tecnología Internet/Intranet; equipos de comunicación de redes de voz y datos (Cisco, Motorola, principalmente; routers, switches, firewalls)&lt;/li&gt;
&lt;li&gt;Administración de datos e información; auditoría de sistemas; normas de sistemas y comunicaciones&lt;/li&gt;
&lt;li&gt;Sistemas operativos Linux, SCOUnix, Ultrix, AIX, Windows servers&lt;/li&gt;
&lt;/ul&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Experiencia relacionada al cargo&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-style: italic; font-weight: bold;&quot;&gt;2003&lt;/span&gt;&lt;span style=&quot;font-style: italic; font-weight: bold;&quot;&gt; – 2010&lt;/span&gt;&lt;span style=&quot;font-style: italic; font-weight: bold;&quot;&gt;&amp;nbsp; Administrador de sistemas, GTZ&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Asesoría técnica especializada a clientes gubernamentales (locales y en el exterior) en diseño e implementación de servicios informáticos&lt;/li&gt;
&lt;li&gt;Diseño e implementación centro de cómputos y red de datos y voz; supervisión cableados e interconexión LAN y WAN con 6 oficinas en distintos puntos de la ciudad;&lt;/li&gt;
&lt;li&gt;Implementación servicios Intranet/Internet y administrativos para clientes internos&lt;/li&gt;
&lt;li&gt;Administración de sistemas y servicios informáticos&lt;/li&gt;
&lt;/ul&gt;&lt;span style=&quot;font-style: italic; font-weight: bold;&quot;&gt;2000 – 2003 Administrador de redes y datos; Técnico en Control de Calidad de Información, Ministerio de Educación&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Diseño, implementación y gestión centro de cómputos y servicios informáticos; supervisión cableado 2 edificios Ministerio de Educación y edificios gubernamentales en el interior&lt;/li&gt;
&lt;li&gt;Administración de sistemas y servicios públicos&lt;/li&gt;
&lt;li&gt;Desarrollo/implementación estrategia calidad información educativa; Organización operativos de recolección de información redundante en más de 2000 escuelas de todo el país; coordinación equipo de encuestadores y supervisores (70 simultáneamente)&lt;/li&gt;
&lt;/ul&gt;&lt;span style=&quot;font-style: italic; font-weight: bold;&quot;&gt;1997 – 1999 Coordinador de Sistemas, World Vision Bolivia&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Coordinación equipo de Sistemas&lt;/li&gt;
&lt;li&gt;Apoyo a partners en Colombia, El Salvador, Honduras y Costa Rica&lt;/li&gt;
&lt;li&gt;Implementación y gestión centro de cómputos y servicios informáticos sobre un diseño propuesto desde Costa Rica; supervisión cableado de redes;&lt;/li&gt;
&lt;li&gt;Participación en auditorías internacionales de sistemas; &lt;/li&gt;
&lt;li&gt;Capacitador en planificación estratégica y operativa; participación en revisión de alrededor de 40 planes operativos y 6 planes estratégicos de desarrollo de proyectos y oficina nacional&lt;/li&gt;
&lt;/ul&gt;&lt;span style=&quot;font-style: italic; font-weight: bold;&quot;&gt;1997 Encargado del Centro de Cómputos, Nexxo superagencia de Bolsa &lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Participación en implementación de sistemas de negociación de valores con equipo de especialistas colombianos; participación en implementación de red WAN con 15 agencias de bolsa en varios puntos de La Paz&lt;/li&gt;
&lt;li&gt;Análisis de protocolos de redes para tarifación, asistencia a técnicos de ENTEL&lt;/li&gt;
&lt;/ul&gt;&lt;span style=&quot;font-style: italic; font-weight: bold;&quot;&gt;1996 Analista de datos, Secretaría Nacional de Educación &lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Desarrollo e implementación de base de datos de entidades educativas de Bolivia &lt;/li&gt;
&lt;li&gt;Diseño especificaciones cableados y servicios de red para edificios del Programa de Reforma Educativa&lt;/li&gt;
&lt;li&gt;Participación publicación de 10 tomos de compendios de información educativa&lt;/li&gt;
&lt;/ul&gt;&lt;span style=&quot;font-style: italic; font-weight: bold;&quot;&gt;1994 – 1996 Administrador del centro de cómputos, Superintendencia de Bancos y Entidades Financieras &lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Administración de datos financieros y Central de Riesgos nacional&lt;/li&gt;
&lt;li&gt;Participación migración centro de cómputos y diseño cableado y servicios informáticos Ed. SBEF – Plaza Isabel La Católica&lt;/li&gt;
&lt;li&gt;Participación diseño e implementación servicios informáticos según especificaciones contraparte Banco Mundial&lt;/li&gt;
&lt;/ul&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7119305/posts/default/112905879351125978'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7119305/posts/default/112905879351125978'/><link rel='alternate' type='text/html' href='http://otbits.blogspot.com/2004/01/curriculum-vitae-es.html' title='Curriculum Vitae (ES)'/><author><name>Unknown</name><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></entry></feed>