<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress.com" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>unix &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://en.wordpress.com/tag/unix/</link>
	<description>Feed of posts on WordPress.com tagged "unix"</description>
	<pubDate>Mon, 23 Nov 2009 02:03:25 +0000</pubDate>

	<generator>http://en.wordpress.com/tags/</generator>
	<language>en</language>

<item>
<title><![CDATA[On C Programming and K &amp; R's Impossible Exercise 1-21]]></title>
<link>http://dgoodmaniii.wordpress.com/2009/11/22/on-c-programming-and-k-rs-impossible-exercise-1-21/</link>
<pubDate>Sun, 22 Nov 2009 20:57:23 +0000</pubDate>
<dc:creator>dgoodmaniii</dc:creator>
<guid>http://dgoodmaniii.wordpress.com/2009/11/22/on-c-programming-and-k-rs-impossible-exercise-1-21/</guid>
<description><![CDATA[No, it&#8217;s not really impossible; it&#8217;s just extremely difficult until you make a certain, ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>No, it&#8217;s not really impossible; it&#8217;s just extremely difficult until you make a certain, particular mental leap, one which was long in coming for my idiot little brain.</p>
<p>However, some brief background:  K &#38; R is Kernighan and Ritchie, authors of the monumental <a href="http://en.wikipedia.org/wiki/The_C_Programming_Language_(book)">The C Programming Language</a>.  When I say &#8220;monumental,&#8221; I don&#8217;t mean &#8220;huge,&#8221; because it&#8217;s not; it&#8217;s actually remarkably short, given that it describes the programming language which underlies just about every significant systems program of the modern computing age.  As K &#38; R themselves state in said wise tome:</p>
<blockquote><p>
We have tried to retain the brevity of the first edition.  C is not a big language, and it is not well served by a big book.
</p></blockquote>
<p>Such wisdom!  Such restraint!  If only more programming book authors could conduct themselves with such brevity!  As a student of the Thomists, themselves dedicated <i>studentes brevitatis</i>, I can&#8217;t help but admire this kind of sensibility.</p>
<p>K &#38; R have, rightly, exercised enormous influence in the world of computing, particular in that of GNU/Linux.  Now, GNU has one coding style, while Linux has another; it&#8217;s the same language, but each uses different styles.  The primary difference is that the Linux style is wonderful, while the GNU style is awful[1]; the reason for this is that the Linux style respects K &#38; R, while the GNU style neglects them, thus consigning itself to the nether regions of illegibility.  As <a href="http://www.chris-lott.org/resources/cstyle/LinuxKernelCodingStyle.txt">Linus Torvalds</a> himself has noted,</p>
<blockquote><p>
First off, I&#8217;d suggest printing out a copy of the GNU coding standards, and NOT read it.  Burn them, it&#8217;s a great symbolic gesture. . . . the preferred way [of coding is] shown to us by the prophets Kernighan and Ritchie . . . Heretic people all over the world have claimed that this [style is] inconsistent, but all right-thinking people know that (a) K&#38;R are _right_ and (b) K&#38;R are right.[2]
</p></blockquote>
<p>So, in other words, K &#38; R are right.  Period.  Moving on.</p>
<p>In any case, one thing that K &#38; R absolutely love to do is throw into their text, as if it&#8217;s a minor practice step, programs that are incredibly difficult to execute correctly.  These exercises are described in a way which implies mere employment of what has already been discussed, and that much is technically true; however, they often require cognitive leaps quite beyond the text to that point.  Doubtlessly K &#38; R&#8217;s immense brilliance render these cognitive leaps hardly worth mentioning, mere flickers of their intellectual thumbs; for puny mortals such as myself, however, they&#8217;re more equivalent to running the Boston marathon.  There are many such exercises; however, without a doubt the <em>worst</em> example of this that I&#8217;ve encountered thus far is the dreaded Exercise 1-21, the entab program.</p>
<p>It sounds benign enough:</p>
<blockquote><p>
Write a program entab that replaces strings of blans by the minimum number of tabs and blanks to achieve the same spacing.  Use the same tab stops as for detab.  [The program in Exercise 1-20; also difficult, but not murderously so.]  When either a tab or a single blank would suffice to reach a tab stop, which should be given preference?
</p></blockquote>
<p>Hardly designing a rocket guidance system, is it?  This one shouldn&#8217;t take more than half an hour.</p>
<p><em>Wrong</em>.  You couldn&#8217;t be more wrong.  For <em>hours</em> I struggled, never successfully attaining this simple end.  I&#8217;m even ashamed to say that I resorted to <a href="http://users.powernet.co.uk/eton/kandr2/krx121.html">the answers site</a>, just for ideas.  <em>But even those programs didn&#8217;t work</em>.  Seriously; I tried them.  They don&#8217;t do what the exercise says they should do.</p>
<p>They do something, of course; they do what my initial attempt at the program did.  They take any group of spaces equal to a tab and replace it with a tab.  That&#8217;s great and all, but it&#8217;s not what the exercise requires.</p>
<p>Here&#8217;s an example.  The programs at <a href="http://users.powernet.co.uk/eton/kandr2/">Heathfield&#8217;s</a> are fine programs, but they don&#8217;t meet what the exercise requires.  Here&#8217;s what they do; first line is the ruler, second the input, third the output:</p>
<pre>
             &#124;________&#124;________&#124;________&#124;________&#124;
             &#124;Now__________is____the______time
             &#124;Now\t__is____the_____time
</pre>
<p>For those of you who don&#8217;t know, that &#8216;\t&#8217; means &#8220;tab,&#8221; the pipes (&#8220;&#124;&#8221;) represent tab stops, and the underscores are there because they&#8217;re easier to see than spaces.  In other words, these programs simply find sequences of eight spaces and replaces them with tabs.  It takes no notice of where the tab stops actually are.  All well and good.  But the exercise doesn&#8217;t just want sequences of eight blanks replaced by tabs; it wants some sequences of <em>less</em> than eight blanks replaced, if that would yield the same spacing as the original input.</p>
<p>This second solution is <em>much</em> harder than the first (which I was able to achieve quite quickly, even with my tiny brain and limited programming acumen).  I beat my head against the wall for a long time&#8212;then finally had an epiphany.  <em>I can make the program work!</em></p>
<p>If I&#8217;d sat down and planned out how to solve this problem, like a <em>real</em> programmer, instead of just started banging away at it the way I did, I would have solved this very quickly.  But I didn&#8217;t, so I got started off on the wrong track, and because I already had a program in front of me, albeit one that didn&#8217;t work, I wasn&#8217;t able to see that I&#8217;d gone wrong from the very beginning.</p>
<p>The answer is that you need <em>two</em> variables, in addition to the string; one to keep the basic index on the line, and one that keeps track of the tab characters.  If you know programming, look at the code and you&#8217;ll see what I mean.  If you don&#8217;t, just take my word for it:  two variables made all the difference.</p>
<p><em>And it works!</em></p>
<p>So, for your enlightenment (by &#8220;enlightenment,&#8221; I mean &#8220;amusement that it took someone so long to solve such a simple problem, and yet that someone is so excited about it&#8221;), here&#8217;s the code.  I hope other anxious learners beating their heads against bricks with this problem will learn from my own egregious errors.</p>
<pre>
/* +AMDG */
/*
 * A program that replaces a sequence of blanks by the
 * minimum number of tabs and blanks necessary to achieve
 * the same spacing.  Gives preference to tabs when either a
 * tab or a single blank would suffice to reach a tab stop.
 *
 * This program is released under the GNU General Public
 * License, version 3.
 *
 */

#include
#include

#define MAXLINE 10000
#define TABSTOP 8

int getline(char s[], int lim);
int tabreplace(char s[], int tabspot, int index);

int main(void)
{
	int i; /* keep track of string index */
	int j; /* keep track of tab stops */
	char string[MAXLINE];

	while(getline(string, MAXLINE) &#62; 0) {
		for(i=1,j=1; string[i] != ''; ++i,++j)
			i -= tabreplace(string,j,i);
		printf("%s",string);
	}
	return 0;
}

int tabreplace(char s[], int tabspot, int index)
{
	int i;
	int numspaces;

	if (((tabspot % TABSTOP) == 0) &#38;&#38; (s[index-1] == '_')) {
		for (i = index-1; (s[i] == '_') &#38;&#38; (i &#62; (index-TABSTOP)); --i);
		numspaces = (i&#62;(index-TABSTOP)) ? index-i-1 : index-i;
		if (numspaces &#62; 0)
			s[index-numspaces] = '\t';
		for(i=index-numspaces+1; s[i] != ''; ++i)
			s[i] = s[i+numspaces-1];
		s[++i] = '';
		return numspaces-1;
	}
	return 0;
}

int getline(char s[], int lim)
{
	int c, i;

	for (i=0; i&#60;lim-1 &#38;&#38; (c=getchar())!=EOF &#38;&#38; c!=&#39;\n&#39;; ++i)
		s[i] = c;
	if (c == &#39;\n&#39;)
		s[i++] = c;
	s[i] = &#39;&#39;;
	return i;
}
</pre>
<p><em>It works!</em>  I&#8217;m really excited.  Technology, though often abused, is incredibly powerful; learning more about it is more powerful still.</p>
<p>Praise be to Christ the King!</p>
<p>1.  Don&#8217;t worry; both produce programs of equal usability, all other things being equal.  It&#8217;s just that reading GNU-styled code is crazily impossible to me, while reading Linux-styled code, given that it&#8217;s directly from the immortal K &#38; R, is pure pleasure.<br />
2.  I&#8217;m citing with legal standards here; that is, brackets indicate not only inserted material, but also possibly excluded material.  This unencumbers selective quotations significantly, removing the need for braces <em>and</em> ellipses; I&#8217;ve provided a link to the full text.  So many interpolations and exclusions were required because Torvalds is being much more specific than I am here; the spirit of his remarks is the same.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[GNU/Linux e le Access Control List]]></title>
<link>http://guiodic.wordpress.com/2009/11/22/gnulinux-e-le-access-control-list/</link>
<pubDate>Sun, 22 Nov 2009 07:36:24 +0000</pubDate>
<dc:creator>guiodic</dc:creator>
<guid>http://guiodic.wordpress.com/2009/11/22/gnulinux-e-le-access-control-list/</guid>
<description><![CDATA[In questo post viene citato spesso UGO ma non ha nulla a che fare con il Ragionier Fantozzi Questo a]]></description>
<content:encoded><![CDATA[In questo post viene citato spesso UGO ma non ha nulla a che fare con il Ragionier Fantozzi Questo a]]></content:encoded>
</item>
<item>
<title><![CDATA[Instalação do Open-solaris 2009]]></title>
<link>http://pratesdicas.wordpress.com/2009/11/21/instalacao-do-open-solaris-2009/</link>
<pubDate>Sat, 21 Nov 2009 21:56:42 +0000</pubDate>
<dc:creator>alexandreprates</dc:creator>
<guid>http://pratesdicas.wordpress.com/2009/11/21/instalacao-do-open-solaris-2009/</guid>
<description><![CDATA[O Open-solaris é um sistema operacional de código aberto mantido pela Sun e pela comunidade, ele é u]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>O Open-solaris é um sistema operacional de código aberto mantido pela Sun e pela comunidade, ele é um sistema clone do Solaris (sistema proprietário da Sun ). A idéia é mais ou menos igual a da Red Hat que comercializa o RHEL e desenvolve junto com a comunidade o Fedora.<br />
O Open- solaris é um sistema operacional derivado do solaris que por sua vez é derivados dos BSDs. As principais caracteristicas do Solaris 10 (tambem do open-solaris) são:</p>
<li>DTrace: análise e resolução de problemas de performance, em tempo real;</li>
<li>Solaris Containers: consolidação de aplicações em servidores de maior porte, através da criação de ambientes isolados e independentes;     * Predictive Self-Healing: capacidade de antecipar-se à ocorrência de falhas que possam causar paradas críticas, isolando-as e recuperando-se;</li>
<li>Smarter Updating: atualizações automáticas e inteligentes através do Sun Update Connection;</li>
<li> Integrated Open Source Applications: disponibilidade de centenas de aplicações já integradas ao sistema;</li>
<li> ZFS: um novo tipo de sistema de arquivos que provê administração simplificada, semântica transacional, integridade de dados end-to-end e grande escalabilidade.</li>
<p>Para download do Open-solaris 2009 <a href="http://hub.opensolaris.org/bin/view/Main/downloads">clique aqui&#62;</a>;</p>
<p>Sua instalação é facil, pois alem ser em liveCD ele vem com um instalador interativo.</p>
<p>Veja como é feita a instalação:</p>
<p><span style='text-align:center; display: block;'><object width='425' height='350'><param name='movie' value='http://www.youtube.com/v/wVBZExDigs0&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' /><param name='allowfullscreen' value='true' /><param name='wmode' value='transparent' /><embed src='http://www.youtube.com/v/wVBZExDigs0&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' type='application/x-shockwave-flash' allowfullscreen='true' width='425' height='350' wmode='transparent'></embed></object></span></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Instalar Oracle Database 10g Release 2 (10.2.0.2) en Solaris 10 (x86)]]></title>
<link>http://littlebigadmin.wordpress.com/2009/11/21/instalar-oracle-database-10g-release-2-10-2-0-2-en-solaris-10-x86/</link>
<pubDate>Sat, 21 Nov 2009 19:42:02 +0000</pubDate>
<dc:creator>littlebigadmin</dc:creator>
<guid>http://littlebigadmin.wordpress.com/2009/11/21/instalar-oracle-database-10g-release-2-10-2-0-2-en-solaris-10-x86/</guid>
<description><![CDATA[Basicamente esto es una copia/traducción de lo que hay en la www.oracle-base.com . Lo pongo aquí por]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Basicamente esto es una copia/traducción de lo que hay en la www.oracle-base.com . Lo pongo aquí por comodidad.</p>
<p>La instalación de Solaris por defecto no tiene mayor pega, y podemos recurrir a <a href="http://www.oracle-base.com/articles/misc/Solaris10X86-32Installation.php" target="_blank">esta guia</a> si fuera necesario.</p>
<p>&#160;</p>
<p>Finalmente, instalaremos Oracle Database siguien <a href="http://www.oracle-base.com/articles/10g/OracleDB10gR2InstallationOnSolaris10.php" target="_blank">esta última guia</a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Three Quick Linux Tips]]></title>
<link>http://htipe.wordpress.com/2009/11/21/three-quick-linux-tips/</link>
<pubDate>Sat, 21 Nov 2009 17:32:18 +0000</pubDate>
<dc:creator>Zero Signal</dc:creator>
<guid>http://htipe.wordpress.com/2009/11/21/three-quick-linux-tips/</guid>
<description><![CDATA[In this post I&#8217;m going to point you to three quick and useful Linux tips from three different ]]></description>
<content:encoded><![CDATA[In this post I&#8217;m going to point you to three quick and useful Linux tips from three different ]]></content:encoded>
</item>
<item>
<title><![CDATA[[Unix based] Busca e leitura dos arquivos]]></title>
<link>http://srpantano.wordpress.com/2009/11/21/busca-e-leitura-dos-arquivos/</link>
<pubDate>Sat, 21 Nov 2009 16:37:12 +0000</pubDate>
<dc:creator>srpantano</dc:creator>
<guid>http://srpantano.wordpress.com/2009/11/21/busca-e-leitura-dos-arquivos/</guid>
<description><![CDATA[Como utilizo muito terminal  Solaris no trabalho e Ubuntu em casa, um pequeno script é muito útil qu]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Como utilizo muito terminal  Solaris no trabalho e Ubuntu em casa, um pequeno script é muito útil quando fazemos uma busca por arquivos e no resultado queremos saber qual deles tem um determinado texto dentro:</p>
<p><code>$ for i in `find . -name '*.trc' -ls &#124; grep 'Apr 22' &#124; awk -F" " '{ print $9 }'`; do grep "texto" $i; done</code></p>
<p>excplicando:</p>
<p><strong>for i in</strong> # loop com a iteração em i<strong></strong></p>
<p style="padding-left:30px;"><strong>`find . -name &#8216;*.trc&#8217; -exec -ls -l {}; &#124; grep &#8216;Apr 22&#8242; &#124; aw&#8217;k -F&#8221; &#8221; &#8216;{ print  $8}&#8217;`;</strong><em> </em> # primeiro procure, a partir do diretório atual todos arquivos com extensão .trc e os mostre utilizando um &#8220;ls -l&#8221;, na lista filtre os arquivos pela data de 22 de abril e por fim exiba somente a 8 coluna da lista, usando espaço como separador de colunas.</p>
<p style="padding-left:30px;"><strong>do grep &#8220;texto&#8221; $i;</strong> # a partir do resultado da linha acima faz uma busca do texto em cada arquivo<strong></strong></p>
<p><strong>done</strong> # final do for</p>
<p>Um observação importante é que a data e a quantidade de colunas pode variar de acordo com o sistema operacional.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[FreeBSD vs Linux]]></title>
<link>http://yers78.wordpress.com/2009/11/21/freebsd-vs-linux/</link>
<pubDate>Sat, 21 Nov 2009 15:59:50 +0000</pubDate>
<dc:creator>yers78</dc:creator>
<guid>http://yers78.wordpress.com/2009/11/21/freebsd-vs-linux/</guid>
<description><![CDATA[Скоро четыре года, как FreeBSD и Linux чередуются на моих машинах (домашних и служебных) с некоторой]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><blockquote><p><span style="color:#339966;"><em>Скоро четыре года, как FreeBSD и Linux чередуются на моих машинах (домашних и служебных) с некоторой периодичностью. Или мирно уживаются в одном, отдельно взятом системном блоке. И за это время я заметил интересную закономерность&#8230;.</em></span></p></blockquote>
<p><a href="http://www.ixbt.com/soft/linux-vs-bsd.shtml">Статья</a> Алексея Федорчука, старенькая но дате, но не утратившая актуальность и поныне</p>
<p>&#160;</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Recursive Grep Example]]></title>
<link>http://jaysonlorenzen.wordpress.com/2009/11/20/recursive-grep-example/</link>
<pubDate>Fri, 20 Nov 2009 21:57:28 +0000</pubDate>
<dc:creator>Jayson</dc:creator>
<guid>http://jaysonlorenzen.wordpress.com/2009/11/20/recursive-grep-example/</guid>
<description><![CDATA[Nothing really needing explaining here, but wanted an example for doing a recrsive grep handy as I c]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Nothing really needing explaining here, but wanted an example for doing a recrsive grep handy as I can never remember it.</p>
<p>&#160;</p>
<p>grep -RH &#8211;include &#8220;*.java&#8221; TEXT_I_AM_LOOKING_FOR *</p>
<p>&#160;</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[How to Fix Snow Leopard's Finder-Copying Bug]]></title>
<link>http://chimac.net/2009/11/20/how-to-fix-snow-leopards-finder-copying-bug/</link>
<pubDate>Fri, 20 Nov 2009 15:50:43 +0000</pubDate>
<dc:creator>chimac</dc:creator>
<guid>http://chimac.net/2009/11/20/how-to-fix-snow-leopards-finder-copying-bug/</guid>
<description><![CDATA[Matt has a great explanation of Unix stuff in mac and how to repair bundles.  Must read if you are a]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Matt has a great explanation of Unix stuff in mac and how to repair bundles.  Must read if you are an advanced user.  Click <a href="http://db.tidbits.com/article/10772" target="_self">here</a>.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Google Chrome OS..!!]]></title>
<link>http://freeakx.wordpress.com/2009/11/20/google-chrome-os/</link>
<pubDate>Fri, 20 Nov 2009 12:39:35 +0000</pubDate>
<dc:creator>Cesar Troya S.</dc:creator>
<guid>http://freeakx.wordpress.com/2009/11/20/google-chrome-os/</guid>
<description><![CDATA[El día de ayer, google presento al mundo su nuevo sistema operativo, estuve un rato siguiendo la con]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>El día de ayer, google presento al mundo su nuevo sistema operativo, estuve un rato siguiendo la conferencia de lanzamiento, y se nombraron algunas características interesantes, la mayoría de las cuales están muy bien sintetizadas en el siguiente vídeo:<br />
<span style='text-align:center; display: block;'><object width='425' height='350'><param name='movie' value='http://www.youtube.com/v/0QRO3gKj3qw&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' /><param name='allowfullscreen' value='true' /><param name='wmode' value='transparent' /><embed src='http://www.youtube.com/v/0QRO3gKj3qw&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' type='application/x-shockwave-flash' allowfullscreen='true' width='425' height='350' wmode='transparent'></embed></object></span></p>
<p>Mi opinion?&#8230; Pues me parece q el concepto es totalemtne revolucionario y muy novedoso, sin embargo veo dos grandes problemas, al funcionar como base del explorador web, nuestros archivos estaran siempre en un servidor de algún tercero, lo q supone un importante riesgo de seguridad, y segundo sin internet, no tenemos NADA&#8230; no juegos, no documentos, no musica, sin duda lo probare detenidamente, pero no creo q sea capas  de reemplazar a un sistema operativo completo, pero si puede resistir el cargo de una importante alternativa adjunta, para cuando se quiere hacer cosas básicas o simplemente quemar tiempo&#8230;.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Univerb Gaming Studios Engine8 (lack of-)progress update]]></title>
<link>http://microdotsagamedev.wordpress.com/2009/11/20/univerb-gaming-studios-engine8-lack-of-progress-update/</link>
<pubDate>Fri, 20 Nov 2009 08:18:57 +0000</pubDate>
<dc:creator>microdotsagamedev</dc:creator>
<guid>http://microdotsagamedev.wordpress.com/2009/11/20/univerb-gaming-studios-engine8-lack-of-progress-update/</guid>
<description><![CDATA[Dear readers, You may or may not be happy to know that we&#8217;ve found our Mojo and begun getting ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Dear readers,</p>
<p>You may or may not be happy to know that we&#8217;ve found our Mojo and begun getting things back on track for Engine8 Framework, our internal game development toolset for some commercial projects in the future. If you haven&#8217;t already registered on the forums, you may freely here: http://www.univerbstudios.co.za/</p>
<p>The latest news as it happens will be posted here when important but most of the smaller posting happens there. We&#8217;ve been battling a bit with Irrlicht and our original LUA based intergration &#8212; we&#8217;ve decided to step back, re-evaluate where we are (no where) and restart.</p>
<p>This time we&#8217;ve opted on Ogre3D as a base, with our tools written around it. We&#8217;ve not even begun yet but on face value &#8211; the feature set and support seems superior in everyway. We&#8217;re completely excluding netcode, physics and sound for the time being, with focus on asset management, landscaping tools only. We&#8217;re looking at SDL for this but if anyone has a better solution (and allowed to use it commercially) please shout back.</p>
<p>Heres to take 101&#8230;</p>
<p>Ciao.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Las siete vidas del gato: NeXTSTEP, OPENSTEP y como mezclar muchas mayúsculas y minúsculas]]></title>
<link>http://chilenomac.wordpress.com/2009/11/20/las-siete-vidas-del-gato-nextstep-openstep-y-como-mezclar-muchas-mayusculas-y-minusculas/</link>
<pubDate>Fri, 20 Nov 2009 07:00:04 +0000</pubDate>
<dc:creator>varodonaire</dc:creator>
<guid>http://chilenomac.wordpress.com/2009/11/20/las-siete-vidas-del-gato-nextstep-openstep-y-como-mezclar-muchas-mayusculas-y-minusculas/</guid>
<description><![CDATA[Mac OS X es un hijo de padres muy distintos: NeXTSTEP y Mac OS. Aunque lleva menos de diez años con ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p style="text-align:justify;">Mac OS X es un hijo de padres muy distintos: NeXTSTEP y Mac OS. Aunque lleva menos de diez años con nosotros, en realidad su gestación ha sido bastante larga. Esta es una continuación del artículo que puedes encontrar <a href="http://chilenomac.wordpress.com/2009/11/13/las-siete-vidas-del-gato-la-prehistoria-de-os-x-ii/">aquí</a>.<a href="http://chilenomac.wordpress.com/files/2009/11/300px-next_logo_svg.png"><img class="alignleft size-thumbnail wp-image-2260" title="next" src="http://chilenomac.wordpress.com/files/2009/11/300px-next_logo_svg.png?w=150" alt="" width="150" height="150" /></a></p>
<p style="text-align:justify;">Como veíamos en la entrada anterior, la elección de la base para el nuevo Mac OS era NeXTSTEP. ¿Pero qué significaba esto? ¿De dónde salía? ¿Qué implicaba eso para la comunidad de usuarios de Macintosh?</p>
<p><!--moreContinua leyendo para conocer las respuestas a estas preguntas--></p>
<h2 style="text-align:justify;">El origen de NeXTSTEP</h2>
<p style="text-align:justify;">Cuando Steve Jobs salió, más bien <strong>poco dignamente</strong>, de Apple, decidió que crearía una nueva compañía de computación, inspirado por conversaciones con el ganador del Nobel de química, Paul Berg, acerca de la necesidad de un workstation barato, suficientemente potente para realizar <strong>simulaciones científica</strong><strong>s</strong> en él, de modo que los estudiantes aprendieran ahí en vez de en costosos experimentos. Recordemos que en la época, la división entre computador personal y workstation era muy clara: un computador personal era un equipo con escaso poder, apenas suficiente para mover una aplicación, mientras que los workstation eran equipos muy potentes (para la época). Lo que Jobs se dedicó a crear era, entonces, una especie de intermedio a un precio razonable (lo que no consiguió, era bastante cara para un estudiante universitario).</p>
<p style="text-align:justify;">Y, por supuesto, esta máquina debía tener un sistema operativo. Los ingenieros de NeXT crearon un sistema operativo basado en el núcleo <strong>Mach</strong> y en Unix <strong>BSD</strong>. Sin embargo, lo importante es que las capas del sistema destinadas a aplicaciones con interfaz gráfica estaban completamente <strong>orientadas a objetos</strong>.</p>
<p style="text-align:justify;">¿Y qué es eso? La programación orientada a objetos es un tipo de programación, que en los años en que se fundó NeXT estaba empezando a aumentar en popularidad (dentro de lo que puede ser popular un paradigma de programación). Se trata de construir los programas a través de <strong>pequeños fragmentos</strong>, llamados objetos, lo que permite una mayor rapidez y fiabilidad al momento de crear las aplicaciones. Además, las interfaces gráficas de usuario se prestaban notablemente para esta forma de programar.</p>
<p style="text-align:justify;">Y efectivamente, en NeXTSTEP este concepto estaba <strong>completamente entretejido</strong> en el sistema. Esto permitía crear aplicaciones de gran calidad y en un tiempo relativamente rápido. Por lo demás el sistema traía (y trae… pero eso más adelante) utilidades que facilitaban enormemente el desarrollo de aplicaciones, aprovechando algunas características un tanto especiales del lenguaje que usaban los programadores, Objective C.</p>
<p style="text-align:justify;">Estos motivos, principalmente, hacían de NeXTSTEP un sistema bastante <strong>avanzado para la época.</strong> Mientras tanto, el negocio de computadores NeXT jamás despegó, salvo en ciertos nichos, como algunos bancos. Esto llevó a una redefinición de la compañía: ya no vendería hardware, concentrándose en producir el sistema operativo.</p>
<p style="text-align:justify;">Un detalle importante es que el sistema era originalmente para procesadores Motorola, pero con esa reestructuración, fue necesario convertirlo en multiplataforma. Así, pronto tuvo versiones para SPARC, PA-RISC y, notablemente, procesadores Intel.</p>
<h2 style="text-align:justify;">¿NeXT, OPEN, Open?</h2>
<p style="text-align:justify;">Así, el sistema fue evolucionando, desde la versión 0.8 en 1988 hasta la última, 3.3, en 1995. Pese a sus características, ninguna empresa estuvo mayormente interesada en el sistema. Finalmente, en 1993, fruto de una colaboración entre NeXT y Sun, saldría <strong>OpenStep</strong>. Esto era un API, es decir, una definición de las capas orientadas a objetos de <strong>NeXTSTEP</strong> que podía ser usada sobre distintos sistemas operativos (Unix, Solaris, e incluso Windows). La implementación de NeXT fue llamada <strong>OPENSTEP</strong> (siempre añadiendo confusión con las mayúsculas), lo que en la práctica era NeXTSTEP 4.0.</p>
<p style="text-align:justify;">Sin embargo, pese a ser posible usar OpenStep (sin tanta mayúscula) en casi cualquier sistema operativo, en la práctica ello no ocurrió. Ni siquiera Sun, que había creado junto con NeXT la API la usaba. Es en este estado de cosas cuando ocurre la compra de NeXT por parte de Apple. Lo que haría Apple con OPENSTEP (¿o era OpenStep? ¿o NeXTSTEP? ¿o NextStep?) lo veremos en el próximo capítulo.</p>
<h2 style="text-align:justify;">A modo de colofón</h2>
<p style="text-align:justify;">Ciertamente, podría decir muchas más cosas de NeXTSTEP. Aunque fue usado por muy poca gente, ciertamente tuvo un impacto que no estaba en proporción a la cantidad de usuarios. Por ejemplo, el concepto de <strong>World Wide Web</strong> y el primer navegador fueron creados por Sir Tim Berners-Lee en 1990 usando un computador NeXT. También otros programas, como Doom o FreeHand, fueron desarrollados principalmente en él.</p>
<p style="text-align:justify;">Además, la interfaz de usuario era bastante avanzada. Antes que escribir sobre ella, prefiero dejar algunas capturas.</p>
<p style="text-align:justify;"><a href="http://chilenomac.wordpress.com/files/2009/11/nextstep2.jpg"><img class="aligncenter size-medium wp-image-2254" title="nextstep2" src="http://chilenomac.wordpress.com/files/2009/11/nextstep2.jpg?w=300" alt="" width="300" height="236" /></a></p>
<p style="text-align:justify;">Reiniciando NeXTSTEP. La ruedita que sale en la esquina de la pantalla es el ancestro de la <strong>pelota de playa</strong> de Mac OS X.</p>
<p style="text-align:justify;"><a href="http://chilenomac.wordpress.com/files/2009/11/nextmaildesktop.jpg"><img class="aligncenter size-medium wp-image-2253" title="NeXTMailDesktop" src="http://chilenomac.wordpress.com/files/2009/11/nextmaildesktop.jpg?w=300" alt="" width="300" height="223" /></a></p>
<p style="text-align:justify;"><a href="http://chilenomac.wordpress.com/files/2009/11/nextmaildesktop.jpg"></a>En esta captura podemos ver <strong>Mail</strong> (sí, es de hecho el antecesor del programa que están pensando), con una de sus características más curiosas, lip service, que permitía insertar como adjunto grabaciones de voz hechas directamente en mail. También podemos ver el <strong>dock</strong>, en el borde derecho.</p>
<p style="text-align:justify;"><a href="http://chilenomac.wordpress.com/files/2009/11/mail.gif"><img class="aligncenter size-medium wp-image-2255" title="Mail" src="http://chilenomac.wordpress.com/files/2009/11/mail.gif?w=300" alt="" width="300" height="250" /></a></p>
<p style="text-align:justify;">En esta imagen, además de la misma aplicación Mail (pero en otra versión), podemos ver cosas como el <strong>panel de tipografías</strong>, que guarda una semejanza sospechosa a otro panel de tipografías bien conocido…</p>
<p style="text-align:justify;"><a href="http://chilenomac.wordpress.com/files/2009/11/captura-de-pantalla-2009-11-20-a-las-1-29-00.png"><img class="aligncenter size-medium wp-image-2256" title="Tipografías - OS X" src="http://chilenomac.wordpress.com/files/2009/11/captura-de-pantalla-2009-11-20-a-las-1-29-00.png?w=300" alt="" width="300" height="222" /></a></p>
<p style="text-align:justify;">Hablando de eso, quedan varias &#8220;reliquias&#8221; de NeXTSTEP en OS X. Por ejemplo, el <strong>ícono de cámara</strong> que aparece al sacar un screenshot de una ventana. Hay otras más, que veremos más adelante, cuando describamos en profundidad los componentes de OS X.</p>
<p style="text-align:justify;">Finalmente, un screenshot de NeXTSTEP 4.0, proyecto que no alcanzó a ver la luz (muero de sueño, permítanme la cursilería)</p>
<p style="text-align:justify;"><a href="http://chilenomac.wordpress.com/files/2009/11/ns40.jpg"><img class="aligncenter size-medium wp-image-2258" title="ns40" src="http://chilenomac.wordpress.com/files/2009/11/ns40.jpg?w=300" alt="" width="300" height="222" /></a></p>
<p style="text-align:justify;">
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Wiithon 1.1 publicado!]]></title>
<link>http://blogricardo.wordpress.com/2009/11/20/wiithon-1-1-publicado/</link>
<pubDate>Fri, 20 Nov 2009 03:16:00 +0000</pubDate>
<dc:creator>makiolo</dc:creator>
<guid>http://blogricardo.wordpress.com/2009/11/20/wiithon-1-1-publicado/</guid>
<description><![CDATA[Actualizado: sábado, 21 de noviembre de 2009 Bueno por fin publicamos la nueva versión tras casi 5 m]]></description>
<content:encoded><![CDATA[Actualizado: sábado, 21 de noviembre de 2009 Bueno por fin publicamos la nueva versión tras casi 5 m]]></content:encoded>
</item>
<item>
<title><![CDATA[How to Design on Linux]]></title>
<link>http://wwmag.wordpress.com/2009/11/19/how-to-design-on-linux/</link>
<pubDate>Thu, 19 Nov 2009 23:03:48 +0000</pubDate>
<dc:creator>renaldodesign</dc:creator>
<guid>http://wwmag.wordpress.com/2009/11/19/how-to-design-on-linux/</guid>
<description><![CDATA[Article by: Renaldo Creative Site: http://raindropgraphx.com &nbsp; Linux is an amazing operation sy]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><blockquote><p>Article by: Renaldo Creative</p>
<p>Site: <a title="Rain Drop Interactive" href="http://raindropgraphx.com">http://raindropgraphx.com</a></p></blockquote>
<p>&#160;</p>
<p>Linux is an amazing operation system. But most people think the design career is over, when they switch to Linux. Most designer use Corel and  Adobe software. Below you will find good Alternative for Linux.</p>
<p>01. Photoshop &#124; <a href="http://gimp.org">Gimp</a><br />
02. Illustrator &#124; <a href="http://www.inkscape.org/screenshots/index.php">Inkscape</a><br />
03. InDesign  <a href="http://www.scribus.net/">Scribus </a><br />
04. Dreamweaver  &#124;  <a href="http://net2.com/nvu">NVU</a><br />
05. Internet Explorer &#124; <a href="http://www.mozilla.com/en-US/firefox/upgrade.html">Firefox</a><br />
06. Microsoft Office &#124; <a href="http://openoffice.org">Open Office</a><br />
07. Quick Book &#124; <a href="http://www.gnucash.org/">GNU Cash</a><br />
08. Winrar &#124; <a href="http://peazip.sourceforge.net">Pea Zip</a><br />
09. Win Zip &#124; <a href="http://www.7-zip.org">7 Zip </a><br />
10. Flash &#124; <a href="http://f4l.sourceforge.net/">Flash4Linux</a></p>
<blockquote><p>Note a lot of Windows programs can be run on Linux with third party software.</p>
<p>Wine Hq <a href="http://winehq.com">http://winehq.com</a><br />
Codeweaver <a href="http://www.codeweavers.com">http://www.codeweavers.com</a><br />
Virtual Box <a href="http://virtualbox.org">http://virtualbox.org</a><br />
Win4lin <a href="http://win4lin.com">http://win4lin.com</a></p></blockquote>
<p>// </p>
<p><a href="http://www.addthis.com/bookmark.php?v=20"><img style="border:0 none;" src="http://s7.addthis.com/static/btn/lg-bookmark-en.gif" alt="Bookmark and Share" width="125" height="16" /></a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Y si Ubuntu se cuelga?? (También Funciona en algunos Linux)]]></title>
<link>http://freeakx.wordpress.com/2009/11/19/y-si-ubuntu-se-cuelga-tambien-funciona-en-algunos-linux/</link>
<pubDate>Thu, 19 Nov 2009 21:59:15 +0000</pubDate>
<dc:creator>Cesar Troya S.</dc:creator>
<guid>http://freeakx.wordpress.com/2009/11/19/y-si-ubuntu-se-cuelga-tambien-funciona-en-algunos-linux/</guid>
<description><![CDATA[(imagen gracias a http://www.cantv.net/) Si has usado winbug$ sabras, perfectamente la utilidad del ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p style="text-align:center;"><img src="http://www.cantv.net/images/redes/resenas/158013.jpg" alt="http://www.cantv.net/images/redes/resenas/158013.jpg" /></p>
<p style="text-align:center;">(imagen gracias a http://www.cantv.net/)</p>
<p>Si has usado winbug$ sabras, perfectamente la utilidad del CONTROL+ALT+DEL pues se cuelga continuamente y esta es la mejor manera de arreglar el problema sin tener q reiniciar la maquina, ahora bien, aunque en Ubuntu, para q se cuelge, es necesario realmente estar maltratando el sistema operativo o usar paquetes inestables, este problema aun sucede muy rara vez, en este corto tutorial les mostrare las varias equivalentes q tiene Ubuntu, para arrglar estas circunstancias.</p>
<p>Las opciones son:</p>
<p><!--more--></p>
<ul>
<li>En la Mayoría de las circunstancias, gracias a la propia forma en la q esta armado el OS linux, no c cuelga todo el sistema, sino solo una aplicación, por lo mismo, el decorador de las ventanas q es también el administrador sigue trabajando, y es este el que nos permite matar la aplicación de manera independiente, al estado del programa, Que quiero decir con esto?, pues si solo se cuelga un programa y el resto trabaja bien, solo hace falta usar el botón de cerrar, la X, q se encuentra comúnmente arriba  ala derecha, con esto aparecerá una leyenda diciendo que no responde y si queremos esperar o forzar la finalización del programa.</li>
</ul>
<ul>
<li>Si por alguna razón el paso anterior podemos usar, ¨El cursor asesino¨, es un complemento q permite matar aplicaciones con solo  clikear sobre estas, el sistema reconoce los procesos asociados y los termina, para hacerlo, precionamos ALT+F2 y en la pantalla q nos sale escribimos, <em><strong> xkill ,</strong></em> con esto nuestro cursor normal se transformara en una X, y como explique previamente, solo basta con dar clik sobre la aplicación problemática.</li>
</ul>
<ul>
<li>Ahora es casi imposible q ninguna de las 2 alternativas anteriores cumplan su funcion de forma correcta, pero aun tenemos algunas opciones más q son algo drasticas, pero eficinetes, la primera es abrir una terminal y ejecutar:</li>
</ul>
<p style="padding-left:60px;"><code>ps -A</code></p>
<p style="padding-left:30px;">Con eso nos saldra una lista con todos los procesos activos asi como tambien su número de identificacion llamado PID, vamos a suponer q tenian 300 pestañas abiertas en el firefox, y este dejo de trabajar, <span style="text-decoration:line-through;">q mala suerte </span>y q despues de probar las otras opciones no funcionan, asi q recurren a la terminal y escriben el comando anterior, revizan la lista y ven q el numero PID de firefox es 1546, entonces para forzar el cierre de este progrma usan el comando:</p>
<p style="padding-left:30px;"><code>sudo kill 1546</code></p>
<p style="padding-left:30px;">(siendo 1546 el PID del programa a matar)</p>
<p style="padding-left:30px;">Y listo, casi por arte de magia, firefox de abra cerrado.</p>
<ul>
<li>Ahora supongamos un caso más extremo, igualmente estabamos exagerando con el firefox, pero esta vez colgo TODO EL SISTEMA!!, el cursor no se mueve, y parece q no hay nada por hacer&#8230; pues no decesperen, solo tenemos q ser un poco más drasticos, presionamos simultaneamente CONTROL+ALT+F1 (o F2, F3, F4 depende de la distro q usen), esto nos pasara a una consola independiente de la interfaz gráfica, la cual no deberia colgarse nunca, <span style="text-decoration:line-through;">almenos a mi nunca me ha pasado</span>, y repetimos la opción anterior es decir:</li>
</ul>
<p style="padding-left:30px;"><code>ps -A</code><br />
<code>kill pid (pid es el número del proceso problemático)</code></p>
<p style="padding-left:30px;">Echo eso nos hace falta regresar al modo grafico, para eso precionamos, CONTROL+ALT+F7. Listo!!</p>
<p style="padding-left:30px;">
<ul>
<li>Nada funciona aun?? entonces subamos aun mas el nivel, necesitamos reiniciar las X este paso en la mayoría de los casos mata todos los procesos q usen recursos gráficos, y nos lleva a la pantalla de login, <strong>lamentablemente esta funcion viene desabilitada en los distribuciones de Ubuntu posteriores a la 9.04, explicare en un post posterior como habilitar este mecanismo, </strong>Para quienes ya hayan habilitado la función o usen una liberación anterior, basta con presionar simultáneamente, CONTROL+ALT+BACSPACE.</li>
</ul>
<ul>
<li> Otro metodo q da el mismo resultado es regresar a la terminal independiente q explique anteriormente, (Control+Alt+F1), y escribir:</li>
</ul>
<p style="padding-left:30px;"><code> sudo /etc/init.d/gdm stop</code><br />
<code>sudo /etc/init.d/gdm start</code></p>
<p style="padding-left:30px;">(esto funciona en gnome, si usan KDE reemplacen gmd, por kmd)</p>
<ul>
<li>Si con todo eso no tenemos respuesta, pues a llegado el momento de reiniciar la maquina, sin embargo existe una manera de hacerlo para reducir a mínimo el daño a nuestro equipo, para esto usaremos la famosa secuencia de emergencia mejor conocida como <strong>R.E.I.S.U.B.</strong>, sin soltar las teclas en ningún momento presionamos ALT+ImprPantPetsis (la tecla q se usa para hacer capturas de pantalla), y continuamos de manera secuencial, una detrás de la otra, con una separación de un segundo aproximadamente,  presionando las letras  R + E + I + S + U + B, con esto el equipo se reiniciara de forma segura y sin daños. A continuación, una explicación de q hace cada letra en el comando:</li>
</ul>
<p style="padding-left:90px;">R.- Devuelve el control al teclado (Raw)<br />
E.- Manda todos los procesos al term, es decir, los hace terminar (End)<br />
I.- Manda los procesos al Kill, es decir, los mata.<br />
S.- Sincroniza el disco duro (Sync)<br />
U.- Desmonta todos los sistemas de ficheros (Unmount)<br />
B.- Por último, reinicia el ordenador. (reBoot)</p>
<p style="padding-left:30px;">Si nada de esto funciona, mi consejo seria, vender la computadora como chatarra y cambiar por una un poco más moderna!&#8230;</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Vi: shortcut to replace word]]></title>
<link>http://vinayaknpatil.wordpress.com/2009/11/19/vi-shortcut-to-replace-word/</link>
<pubDate>Thu, 19 Nov 2009 11:53:10 +0000</pubDate>
<dc:creator>vinayaknp</dc:creator>
<guid>http://vinayaknpatil.wordpress.com/2009/11/19/vi-shortcut-to-replace-word/</guid>
<description><![CDATA[Go to the relevant word. To replace it type cw . Then enter the word. To replace the line from the c]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Go to the relevant word. To replace it type <b>cw</b>  . Then enter the word. To replace the line from the cursor onwards type <b>c$</b> and type the replacement.</p>
<p>To do the same change on multiple lines: Go to the position on the line where the change needs to be done. Then type <b>.</b> This will do the same replacement on the other line too</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Comandos Infaltables!!]]></title>
<link>http://freeakx.wordpress.com/2009/11/18/comandos-infaltables/</link>
<pubDate>Wed, 18 Nov 2009 21:40:20 +0000</pubDate>
<dc:creator>Cesar Troya S.</dc:creator>
<guid>http://freeakx.wordpress.com/2009/11/18/comandos-infaltables/</guid>
<description><![CDATA[En esta Oportunidad les Traigo una recopilación de lo q yo concidero son los comandos más, utiles, i]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>En esta Oportunidad les Traigo una recopilación de lo q yo concidero son los comandos más, utiles, importantes y usados tanto en Ubuntu como en muchas otras distros linux</p>
<ul>
<li style="text-align:left;"><strong>Adduser: </strong>Se utiliza para añadir un usuario.</li>
</ul>
<blockquote>
<blockquote><p>Uso: adduser &#60;nombreusuario&#62;</p></blockquote>
</blockquote>
<ul>
<li><strong>Alias (este esta bien explicado en un post anterior)<br />
</strong></li>
</ul>
<p style="padding-left:120px;">Uso: alias nombrequeledamos=’comando’</p>
<ul>
<li><strong>apt-get install nombredelprograma</strong><strong> =  i</strong>nstala el paquete.</li>
</ul>
<ul>
<li><strong>apt-get remove nombredelprograma = </strong>Borra el paquete. Con la opción –purge borra tambien la configuración del paquete instalado.</li>
</ul>
<ul>
<li><strong>apt-get update = </strong>Actualiza la lista de paquetes disponibles para instalar.</li>
</ul>
<ul>
<li style="text-align:left;"><strong>apt-get upgrade  = </strong>Instala las nuevas versiones de los diferentes paquetes disponibles.</li>
</ul>
<ul>
<li><strong>cd = </strong>Cambia el directorio.</li>
</ul>
<blockquote><p>Uso: cd nombredirectorio</p></blockquote>
<p><span style="color:#ff6600;"><em><strong>Continuar leyendo el resto de comandos:</strong></em></span></p>
<ul>
<li><!--more--><strong>chmod: </strong>Cambia los permisos de los archivos.</li>
</ul>
<p style="padding-left:90px;">r:lectura w:escritura x:ejecución<br />
+: añade permisos -:quita permisos<br />
u:usuario g:grupo del usuario o:otros<br />
Uso: chmod permisos nombrearchivo</p>
<ul>
<li><strong>chown: </strong>Cambia el propietario de un archivo.</li>
</ul>
<p style="padding-left:90px;">Uso: chown &#60;nombrepropietario&#62; &#60;nombrearchivo&#62;</p>
<ul>
<li><strong>cp:</strong>Copia archivos en el directorio indicado.</li>
</ul>
<p style="padding-left:60px;">Uso: cp archivoorigen archivodestino</p>
<ul>
<li><strong>deluser: </strong>Elimina una cuenta de usuario</li>
</ul>
<p style="padding-left:90px;">Uso: deluser &#60;nombreusuario&#62;</p>
<ul>
<li><strong>exit:</strong> Cierra las ventanas o las conexiones remotas establecidas</li>
</ul>
<ul>
<li><strong>fsck: </strong>Sirve para chequear si hay errores en nuestro disco duro.</li>
</ul>
<p style="padding-left:90px;">Uso: fsck -t &#60;fs_typo&#62; &#60;dispositivo&#62;</p>
<ul>
<li><strong>ftp: </strong>Protocolo de Transferencia de Archivos, permite transferir archivos de y para computadores remotos.</li>
</ul>
<p style="padding-left:60px;">Uso: ftp &#60;maquina_remota&#62;</p>
<ul>
<li><strong>grep</strong>: Su funcionalidad es la de escribir en salida estándar aquellas líneas que concuerden con un patrón. Busca patrones en archivos.</li>
</ul>
<p style="padding-left:90px;">grep: grep &#60;patronabuscar&#62; &#60;nombrearchivos&#62;</p>
<ul>
<li><strong>ifconfig: </strong>Obtener información de la configuración de red</li>
</ul>
<ul>
<li><strong>kill:</strong> Termina un proceso</li>
</ul>
<p style="padding-left:60px;">Uso: kill numeroPID</p>
<ul>
<li><strong>ls:</strong>Lista los archivos y directorios dentro del directorio de trabajo.</li>
</ul>
<ul>
<li><strong>make:</strong> Crea ejecutables a partir de los archivos fuente.</li>
</ul>
<ul>
<li><strong>man: </strong>muestra el manual de un programa o comando si este esta disponible</li>
</ul>
<p style="padding-left:90px;">Uso: man &#60;nombredelcomando&#62;</p>
<ul>
<li><strong>mkdir: </strong>Crea un nuevo directorio.</li>
</ul>
<p style="padding-left:90px;">Uso: mkdir nombredirectorio</p>
<ul>
<li><strong>mount: </strong>Monta una unidad.</li>
</ul>
<p style="padding-left:90px;">Uso: mount -t&#60; sistema_de_archivo&#62; &#60;dispositivo&#62; &#60;nombredirectorio&#62;</p>
<p><strong><br />
</strong></p>
<ul>
<li><strong>mv: </strong>Este comando sirve para renombrar un archivo.</li>
</ul>
<p style="padding-left:60px;">Uso: mv &#60;nombrearchivo&#62; &#60;nuevonombrearchivo&#62;</p>
<ul>
<li><strong>netstat:</strong>Muestra las conexiones y puertos abiertos por los que se establecen las comunicaciones.</li>
</ul>
<ul>
<li><strong>poweroff: </strong>Apaga el ordenador.</li>
</ul>
<ul>
<li><strong>ps: </strong>Muestra información acerca de los procesos activos.</li>
</ul>
<ul>
<li><strong>rlogin: </strong>Conecta un host local con un host remoto.</li>
</ul>
<p style="padding-left:90px;">Uso: rlogin &#60;maquina_remota&#62;</p>
<ul>
<li><strong>rm: </strong>Remueve o elimina un archivo.</li>
</ul>
<p style="padding-left:60px;">Uso: rm &#60;rutaynombrearchivo&#62;</p>
<ul>
<li><strong>rmdir: </strong>Elimina el directorio indicado, el cual debe estar vacío.</li>
</ul>
<p style="padding-left:90px;">Uso: rmdir nombredirectorio</p>
<ul>
<li><strong>sudo o su:</strong> Con este comando accedemos al sistema como root.</li>
</ul>
<ul>
<li><strong>umount: </strong>Desmontar unidades montadas anteriormente</li>
</ul>
<p style="padding-left:120px;">Uso: umount &#60;nombredirectorio&#62;</p>
<ul>
<li><strong>wc:</strong>Cuenta los caráteres, palabras y líneas del archivo de texto.</li>
</ul>
<p style="padding-left:60px;">Uso: wc nom_archivo</p>
<p style="padding-left:60px;">
<ul>
<li><strong>whereis: </strong>Devuelve la ubicación del archivo especificado, si existe.</li>
</ul>
<p style="padding-left:60px;">Uso: whereis nomb_archivo</p>
<p><strong>Larga vida a la consola!!</strong></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[When was it last restarted?]]></title>
<link>http://catpipegrep.wordpress.com/2009/11/18/when-was-it-last-restarted/</link>
<pubDate>Wed, 18 Nov 2009 19:35:03 +0000</pubDate>
<dc:creator>lmb</dc:creator>
<guid>http://catpipegrep.wordpress.com/2009/11/18/when-was-it-last-restarted/</guid>
<description><![CDATA[Does your shop restart all their processes on a regular (weekly, bi-weekly, monthly) basis? Mine too]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Does your shop restart all their processes on a regular (weekly, bi-weekly, monthly) basis? Mine too. Does the restart go smoothly every time? I don&#8217;t believe you.</p>
<p>Can anyone see a reason why pgrep can&#8217;t do this?</p>
<p><code><br />
#!/usr/bin/perl</p>
<p>use strict;</p>
<p>sub procs_older_than {</p>
<p>        my $GNU_date = '/usr/local/bin/date';</p>
<p>        my ($time, $process, @return);</p>
<p>        my $time_to_beat = `$GNU_date -d '$_[0]' +'%s'`;<br />
        chomp($time_to_beat);</p>
<p>        open (PS, "/usr/bin/ps -e -o stime -o args&#124;");</p>
<p>        while () {<br />
                chomp;</p>
<p>                ($time, $process) = split(' ');<br />
                $time =~ s/_/ /;</p>
<p>                my $time_reported = `$GNU_date -d '$time' +%s 2&#62;/dev/null`;</p>
<p>                if ($time_to_beat &#62; $time_reported) {<br />
                        push(@return, $process);<br />
                }<br />
        }<br />
        close(PS);</p>
<p>        return(@return);<br />
}</p>
<p>my $older_than = 'last friday';</p>
<p>my @old = procs_older_than($older_than);</p>
<p>foreach(@old) {<br />
        print "$_ started before $older_than\n";<br />
}<br />
</code></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[pbzip2: parallel bzipping]]></title>
<link>http://anothersysadmin.wordpress.com/2009/11/18/pbzip2-parallel-bzipping/</link>
<pubDate>Wed, 18 Nov 2009 17:35:20 +0000</pubDate>
<dc:creator>Vide</dc:creator>
<guid>http://anothersysadmin.wordpress.com/2009/11/18/pbzip2-parallel-bzipping/</guid>
<description><![CDATA[Probably this software existed for a quite long time but I didn&#8217;t know its existence &#8217;ti]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Probably this software existed for a quite long time but I didn&#8217;t know its existence &#8217;til now: <a href="http://compression.ca/pbzip2/">pbzip2</a><br />
it&#8217;s basically a bzip2 algorithm implementation with pthreads support. This mean, in a always more SMP world, that you can greatly improve your bzipping perfomances (divide the zipping time by the number of cores you have et voilà!)</p>
<p>Compression syntax is totally compatible:<br />
<code><br />
$ pbzip2 big.file<br />
</code></p>
<p>while to unzip you have to do<br />
<code><br />
$ pbzip2 -d big.file.bz2<br />
</code></p>
<p>Use with caution (or with -l and -p switches) cause you can easily saturate your 4xSix-cores monster.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[UNIX – Lesson 007 – tar, gzip/gunzip and compress/uncompress commands]]></title>
<link>http://tipsandtricks4it.wordpress.com/2009/11/18/lesson-007/</link>
<pubDate>Wed, 18 Nov 2009 12:32:46 +0000</pubDate>
<dc:creator>tipsandtricks4it</dc:creator>
<guid>http://tipsandtricks4it.wordpress.com/2009/11/18/lesson-007/</guid>
<description><![CDATA[tar The &#8220;tar&#8221; command archives files Syntax : tar key [f device_file] [filename …] Key a]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><strong>tar<br />
</strong>The &#8220;<em>tar</em>&#8221; command archives files<br />
Syntax :<br />
tar key [f device_file] [filename …]</p>
<p>Key argument :</p>
<ul>
<li>c  a new archive is created</li>
<li>x  files are extracted from the archive</li>
<li>t   a table of contents of the archive is printed</li>
<li>r   files are added to the end of the archive</li>
<li>f   the file argument is used as the tarfile and /etc/default/tar is not searched</li>
<li>v  a verbose option, print the name of each file or archive member as it is processed</li>
</ul>
<p>Example:<br />
<em>$ tar cvf Report.tar Report.log Report.log.bck</em><br />
a Report.log 157K<br />
a Report.log.link 157K</p>
<p><em>$ tar rvf Report.tar Report.log.bck2</em><br />
a Report.log.link2 157K</p>
<p><em>$ tar -tvf Report.tar</em><br />
-rw-r&#8212;&#8211; 30851/32 160498 Feb 21 11:42 2008 Report.log<br />
-rw-r&#8212;&#8211; 30851/32 160498 Feb 21 11:42 2008 Report.log.link<br />
-rw-r&#8212;&#8211; 30851/32 160498 Feb 21 11:43 2008 Report.log.link2</p>
<p><em>$ tar xvf Report.tar Report.log</em><br />
# You extract only the Report.log file from archive</p>
<p>================================================================================<br />
<strong>gzip/gunzip</strong><br />
The &#8220;<em>gzip</em>&#8221; command compresses/expands a file that is replaced by new one with the extension .gz, while keeping the same ownership modes, access and modification times.<br />
Syntax :<br />
gzip [-dlr] filename[.gz]<br />
gunzip [-lr] filename.gz</p>
<p>Key argument :</p>
<ul>
<li>-d   Decompress mode (like gunzip)</li>
<li>-f    Force compression or decompression even if the file already exists.</li>
<li>-l    List the following fields: compressed size, uncompressed size, ratio, uncompressed_name</li>
<li>-r   Recursive. If the file specified is a directory, gzip will descend into the directory and compress all the files it finds there (or decompress them in the case of gunzip)</li>
<li>-# -1 (or &#8211;fast) indicates the fastest compression method (less compression) and -9 (or –best) indicates the slowest compression method (best compression). The default compression level is -6.</li>
</ul>
<p>Example:<br />
<em>$ gzip Report.tar</em><br />
<em>$ ls –al</em><br />
total 80<br />
drwxr&#8212;&#8211; 2   xarabas admins 96        Feb 21 12:03 .<br />
drwxr&#8212;&#8211; 14 xarabas admins 8192    Feb 21 12:03 ..<br />
-rw-r&#8212;&#8211;  1   xarabas admins 26346  Feb 21 12:03 Report.tar.gz</p>
<p><em>$gunzip Report.tar.gz</em><br />
total 80<br />
drwxr&#8212;&#8211; 2   xarabas admins 96        Feb 21 12:03 .<br />
drwxr&#8212;&#8211; 14 xarabas admins 8192    Feb 21 12:03 ..<br />
-rw-r&#8212;&#8211;  1   xarabas admins 32156  Feb 21 12:03 Report.tar</p>
<p><em>$ gzip -l Report.tar.gz</em><br />
compressed uncompressed ratio uncompressed_name<br />
26346 484864 94.6% Report.tar</p>
<p><em>$ gzip -9 Report.tar</em><br />
<em>$ls -al</em><br />
total 80<br />
drwxr&#8212;&#8211; 2   xarabas admins 96        Feb 21 12:03 .<br />
drwxr&#8212;&#8211; 14 xarabas admins 8192    Feb 21 12:03 ..<br />
-rw-r&#8212;&#8211;  1   xarabas admins 26275  Feb 21 12:03 Report.tar.gz</p>
<p>================================================================================<br />
<strong>compress/uncompress</strong><br />
The &#8220;<em>compress/uncompress</em>&#8221; command compresses/expands a file, that is replaced by new one with the extension .Z, while keeping the same ownership modes, access and modification times.<br />
Syntax :<br />
compress filename<br />
uncompress filename.Z</p>
<p>Example:<br />
<em>$ compress Report.log<br />
$ ls -al</em><br />
total 80<br />
drwxr&#8212;&#8211; 2   xarabas admins 96        Feb 21 12:03 .<br />
drwxr&#8212;&#8211; 14 xarabas admins 8192    Feb 21 12:03 ..<br />
-rw-r&#8212;&#8211;  1   xarabas admins 28209  Feb 21 12:03 Report.log.Z</p>
<p><em>$ uncompress Report.log.Z<br />
$ ls -al</em><br />
total 80<br />
drwxr&#8212;&#8211; 2   xarabas admins 96        Feb 21 12:03 .<br />
drwxr&#8212;&#8211; 14 xarabas admins 8192    Feb 21 12:03 ..<br />
-rw-r&#8212;&#8211;  1   xarabas admins 30215  Feb 21 12:03 Report.log</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Quitar Hardware con seguridad]]></title>
<link>http://paranoialabs.wordpress.com/2009/11/17/quitar-hardware-con-seguridad/</link>
<pubDate>Wed, 18 Nov 2009 04:02:58 +0000</pubDate>
<dc:creator>luizja</dc:creator>
<guid>http://paranoialabs.wordpress.com/2009/11/17/quitar-hardware-con-seguridad/</guid>
<description><![CDATA[Probablemente (si eres usuario Windows) en tu vida hayas visto este mensaje, porque si eres usuario ]]></description>
<content:encoded><![CDATA[Probablemente (si eres usuario Windows) en tu vida hayas visto este mensaje, porque si eres usuario ]]></content:encoded>
</item>
<item>
<title><![CDATA[Langkah-langkah migrasi ke Linux - Best Practice]]></title>
<link>http://ardhian.wordpress.com/2009/11/18/langkah-langkah-migrasi-ke-linux-best-practice/</link>
<pubDate>Wed, 18 Nov 2009 02:04:22 +0000</pubDate>
<dc:creator>ardhian</dc:creator>
<guid>http://ardhian.wordpress.com/2009/11/18/langkah-langkah-migrasi-ke-linux-best-practice/</guid>
<description><![CDATA[Seringkali kita mendengar yang namanya migrasi operating system. Beberapa perusahaan baik besar, men]]></description>
<content:encoded><![CDATA[Seringkali kita mendengar yang namanya migrasi operating system. Beberapa perusahaan baik besar, men]]></content:encoded>
</item>
<item>
<title><![CDATA[Unix "PS" command ]]></title>
<link>http://ikennaokpala.wordpress.com/2009/11/18/unix-ps-command/</link>
<pubDate>Wed, 18 Nov 2009 00:45:19 +0000</pubDate>
<dc:creator>IKENNA OKPALA</dc:creator>
<guid>http://ikennaokpala.wordpress.com/2009/11/18/unix-ps-command/</guid>
<description><![CDATA[Today, i meet a senior colleague in the field of software named JOE WALNES. While i was showing Joe ]]></description>
<content:encoded><![CDATA[Today, i meet a senior colleague in the field of software named JOE WALNES. While i was showing Joe ]]></content:encoded>
</item>
<item>
<title><![CDATA[мониторинг работы с диском]]></title>
<link>http://mschedrin.wordpress.com/2009/11/18/%d0%bc%d0%be%d0%bd%d0%b8%d1%82%d0%be%d1%80%d0%b8%d0%bd%d0%b3-%d1%80%d0%b0%d0%b1%d0%be%d1%82%d1%8b-%d1%81-%d0%b4%d0%b8%d1%81%d0%ba%d0%be%d0%bc/</link>
<pubDate>Tue, 17 Nov 2009 23:03:20 +0000</pubDate>
<dc:creator>mschedrin</dc:creator>
<guid>http://mschedrin.wordpress.com/2009/11/18/%d0%bc%d0%be%d0%bd%d0%b8%d1%82%d0%be%d1%80%d0%b8%d0%bd%d0%b3-%d1%80%d0%b0%d0%b1%d0%be%d1%82%d1%8b-%d1%81-%d0%b4%d0%b8%d1%81%d0%ba%d0%be%d0%bc/</guid>
<description><![CDATA[Вот полезные утилиты для мониторинга работы системы и поцессов с жесткими дисками: gstat top -m io -]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Вот полезные утилиты для мониторинга работы системы и поцессов с жесткими дисками:<br />
gstat<br />
top -m io -o total<br />
lsof</p>
</div>]]></content:encoded>
</item>

</channel>
</rss>
