<?xml version="1.0" encoding="UTF-8"?>
<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/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>For Fun and Profit &#187; Desenvolvimento</title>
	<atom:link href="http://www.angusyoung.org/tags/tecnologia/desenvolvimento/feed" rel="self" type="application/rss+xml" />
	<link>http://www.angusyoung.org</link>
	<description>Um blog sobre ciência e tecnologia</description>
	<pubDate>Mon, 06 Oct 2008 21:29:33 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>Linguagens de Programação Diferentes</title>
		<link>http://www.angusyoung.org/2008/10/04/linguagens-de-programacao-diferentes/</link>
		<comments>http://www.angusyoung.org/2008/10/04/linguagens-de-programacao-diferentes/#comments</comments>
		<pubDate>Sat, 04 Oct 2008 23:29:11 +0000</pubDate>
		<dc:creator>angusyoung</dc:creator>
		
		<category><![CDATA[Curiosidades]]></category>

		<category><![CDATA[Desenvolvimento]]></category>

		<category><![CDATA[Geral]]></category>

		<category><![CDATA[Tecnologia]]></category>

		<guid isPermaLink="false">http://www.angusyoung.org/?p=123</guid>
		<description><![CDATA[Antes de reclamar que você programa em DataFlex, Genexus, Pro*C/C++ ou Java (obs: considere isso uma piada interna minha e não leve a sério) dê uma olhada nesse interessante post sobre linguagens de programação diferentes. Sua vida poderia ser bem pior &#8230;
]]></description>
			<content:encoded><![CDATA[<p>Antes de reclamar que você programa em <a title="DataFlex" href="http://en.wikipedia.org/wiki/Dataflex">DataFlex</a>, <a title="Genexus" href="http://en.wikipedia.org/wiki/Genexus">Genexus</a>, <a title="Pro*C/C++" href="http://www.angusyoung.org/?s=Pro*C%2FC%2B%2B">Pro*C/C++</a> ou Java (obs: considere isso uma piada interna minha e não leve a sério) dê uma olhada nesse interessante <a title="Linguagens de Programação Diferentes" href="http://marquinh05.com/linguagens-de-programacao-diferentes/">post</a> sobre linguagens de programação diferentes. Sua vida poderia ser bem pior &#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.angusyoung.org/2008/10/04/linguagens-de-programacao-diferentes/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Funcionalidades obscuras das linguagens de programação</title>
		<link>http://www.angusyoung.org/2008/10/03/funcionalidades-obscuras-das-linguagens-de-programacao/</link>
		<comments>http://www.angusyoung.org/2008/10/03/funcionalidades-obscuras-das-linguagens-de-programacao/#comments</comments>
		<pubDate>Fri, 03 Oct 2008 14:23:33 +0000</pubDate>
		<dc:creator>angusyoung</dc:creator>
		
		<category><![CDATA[C &amp; C++]]></category>

		<category><![CDATA[Desenvolvimento]]></category>

		<category><![CDATA[Tecnologia]]></category>

		<guid isPermaLink="false">http://www.angusyoung.org/?p=185</guid>
		<description><![CDATA[Recebi um link hoje, num chat via MSN, sobre features escondidas de linguagens de programação.

C
C++
Perl e muitas outras.

Ainda não li por completo, mas achei algumas pérolas, como a história de que implementações antigas do GCC tentavam executar um jogo cada vez que encontrava a diretiva #pragma nos fontes e outras já famosas como os métodos [...]]]></description>
			<content:encoded><![CDATA[<p>Recebi um link hoje, num chat via MSN, sobre <em>features</em> escondidas de linguagens de programação.</p>
<ul>
<li><a href="http://stackoverflow.com/questions/132241/hidden-features-of-c">C</a></li>
<li><a href="http://stackoverflow.com/questions/75538/hidden-features-of-c">C++</a></li>
<li><a href="http://stackoverflow.com/questions/161872/hidden-features-of-perl">Perl e muitas outras</a>.</li>
</ul>
<p>Ainda não li por completo, mas achei algumas pérolas, como a história de que implementações antigas do GCC tentavam executar um jogo cada vez que encontrava a diretiva #pragma nos fontes e outras já famosas como os métodos de branch prediction (previsão de fluxo??) __builtin_expect() do GCC. Não deixe de conferir.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.angusyoung.org/2008/10/03/funcionalidades-obscuras-das-linguagens-de-programacao/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Provendo informações uteis na linha de comando</title>
		<link>http://www.angusyoung.org/2008/09/25/provendo-informacoes-uteis-na-linha-de-comando/</link>
		<comments>http://www.angusyoung.org/2008/09/25/provendo-informacoes-uteis-na-linha-de-comando/#comments</comments>
		<pubDate>Thu, 25 Sep 2008 18:24:15 +0000</pubDate>
		<dc:creator>angusyoung</dc:creator>
		
		<category><![CDATA[C &amp; C++]]></category>

		<category><![CDATA[Desenvolvimento]]></category>

		<category><![CDATA[Dica]]></category>

		<category><![CDATA[Sistemas Operacionais]]></category>

		<category><![CDATA[Unix]]></category>

		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.angusyoung.org/?p=182</guid>
		<description><![CDATA[Hoje estava conversando com um amigo sobre como prover informações úteis e ajuda decente para programas de linha de comando (aqui, preciso fazer um adendo: embora pareça arcaico pra algumas pessoas, isso é realidade para muita gente, em especial aquelas desenvolvendo pra UNIX e Linux).

Então, conversando com esse amigo a minha sugestão foi modelar a [...]]]></description>
			<content:encoded><![CDATA[<p>Hoje estava conversando com um amigo sobre como prover informações úteis e ajuda decente para programas de linha de comando (aqui, preciso fazer um adendo: embora pareça arcaico pra algumas pessoas, isso é realidade para muita gente, em especial aquelas desenvolvendo pra UNIX e Linux).</p>
<p><span id="more-182"></span></p>
<p>Então, conversando com esse amigo a minha sugestão foi modelar a ajuda do programas de linha de comando a partir do modelo utilizado pelo GNU tar. O meu ponto de vista é que o GNU tar não apenas oferece uma quantidade boa de ajuda quando comparado com as alternativas, mas as oferece de maneira organizada. Nada melhor que colocar aqui pra mostrar o que eu falo:</p>
<p>HP UX:</p>
<pre>$ tar -help
tar: usage  tar [-]{txruc}[eONvVwAfblhm{op}][0-7[lmh]] [tapefile] [blocksize]
[[-C directory] file] &#8230;</pre>
<p>Solaris:</p>
<pre>$ tar -help
Usage: tar {c|r|t|u|x}[BDeEFhilmnopPqvw[0-7]][bfk][X...] [blocksize] [tarfile]
[size] [exclude-file...] {file | -I include-file | -C directory file}&#8230;</pre>
<p>GNU Tar:</p>
<pre>$ tar --help
Usage: tar [OPTION...] [FILE]&#8230;</pre>
<pre>GNU `tar' saves many files together into a single tape or disk archive, and can
restore individual files from the archive.</pre>
<pre>Examples:
tar -cf archive.tar foo bar  # Create archive.tar from files foo and bar.
tar -tvf archive.tar         # List all files in archive.tar verbosely.
tar -xf archive.tar          # Extract all files from archive.tar.</pre>
<pre>Main operation mode:</pre>
<pre>-A, --catenate, --concatenate   append tar files to an archive
-c, --create               create a new archive
-d, --diff, --compare      find differences between archive and file system
--delete               delete from the archive (not on mag tapes!)
-r, --append               append files to the end of an archive
-t, --list                 list the contents of an archive
--test-label           test the archive volume label and exit
-u, --update               only append files newer than copy in archive
-x, --extract, --get       extract files from an archive</pre>
<pre>Operation modifiers:</pre>
<pre>--check-device         check device numbers when creating incremental
archives (default)
-g, --listed-incremental=FILE   handle new GNU-format incremental backup
-G, --incremental          handle old GNU-format incremental backup
--ignore-failed-read   do not exit with nonzero on unreadable files
-n, --seek                 archive is seekable
--no-check-device      do not check device numbers when creating
incremental archives
--occurrence[=NUMBER]  process only the NUMBERth occurrence of each file
in the archive; this option is valid only in
conjunction with one of the subcommands &#8211;delete,
&#8211;diff, &#8211;extract or &#8211;list and when a list of
files is given either on the command line or via
the -T option; NUMBER defaults to 1
&#8211;sparse-version=MAJOR[.MINOR]
set version of the sparse format to use (implies
&#8211;sparse)
-S, &#8211;sparse               handle sparse files efficiently</pre>
<pre>Overwrite control:</pre>
<pre>-k, --keep-old-files       don't replace existing files when extracting
--keep-newer-files     don't replace existing files that are newer than
their archive copies
--no-overwrite-dir     preserve metadata of existing directories
--overwrite            overwrite existing files when extracting
--overwrite-dir        overwrite metadata of existing directories when
extracting (default)
--recursive-unlink     empty hierarchies prior to extracting directory
--remove-files         remove files after adding them to the archive
-U, --unlink-first         remove each file prior to extracting over it
-W, --verify               attempt to verify the archive after writing it</pre>
<pre>Select output stream:</pre>
<pre>--ignore-command-error ignore exit codes of children
--no-ignore-command-error   treat non-zero exit codes of children as
error
-O, --to-stdout            extract files to standard output
--to-command=COMMAND   pipe extracted files to another program</pre>
<pre>Handling of file attributes:</pre>
<pre>--atime-preserve[=METHOD]   preserve access times on dumped files, either
by restoring the times after reading
(METHOD=&#8217;replace&#8217;; default) or by not setting the
times in the first place (METHOD=&#8217;system&#8217;)
&#8211;delay-directory-restore   delay setting modification times and
permissions of extracted directories until the end
of extraction
&#8211;group=NAME           force NAME as group for added files
&#8211;mode=CHANGES         force (symbolic) mode CHANGES for added files
&#8211;mtime=DATE-OR-FILE   set mtime for added files from DATE-OR-FILE
-m, &#8211;touch                don&#8217;t extract file modified time
&#8211;no-delay-directory-restore
cancel the effect of &#8211;delay-directory-restore
option
&#8211;no-same-owner        extract files as yourself
&#8211;no-same-permissions  apply the user&#8217;s umask when extracting permissions
from the archive (default for ordinary users)
&#8211;numeric-owner        always use numbers for user/group names
&#8211;owner=NAME           force NAME as owner for added files
-p, &#8211;preserve-permissions, &#8211;same-permissions
extract information about file permissions
(default for superuser)
&#8211;preserve             same as both -p and -s
&#8211;same-owner           try extracting files with the same ownership
-s, &#8211;preserve-order, &#8211;same-order
sort names to extract to match archive</pre>
<pre>Device selection and switching:</pre>
<pre>-f, --file=ARCHIVE         use archive file or device ARCHIVE
--force-local          archive file is local even if it has a colon
-F, --info-script=NAME, --new-volume-script=NAME
run script at end of each tape (implies -M)
-L, --tape-length=NUMBER   change tape after writing NUMBER x 1024 bytes
-M, --multi-volume         create/list/extract multi-volume archive
--rmt-command=COMMAND  use given rmt COMMAND instead of rmt
--rsh-command=COMMAND  use remote COMMAND instead of rsh
--volno-file=FILE      use/update the volume number in FILE</pre>
<pre>Device blocking:</pre>
<pre>-b, --blocking-factor=BLOCKS   BLOCKS x 512 bytes per record
-B, --read-full-records    reblock as we read (for 4.2BSD pipes)
-i, --ignore-zeros         ignore zeroed blocks in archive (means EOF)
--record-size=NUMBER   NUMBER of bytes per record, multiple of 512</pre>
<pre>Archive format selection:</pre>
<pre>-H, --format=FORMAT        create archive of the given format</pre>
<pre>FORMAT is one of the following:</pre>
<pre>gnu                      GNU tar 1.13.x format
oldgnu                   GNU format as per tar &lt;= 1.12
pax                      POSIX 1003.1-2001 (pax) format
posix                    same as pax
ustar                    POSIX 1003.1-1988 (ustar) format
v7                       old V7 tar format</pre>
<pre>--old-archive, --portability
same as --format=v7
--pax-option=keyword[[:]=value][,keyword[[:]=value]]&#8230;
control pax keywords
&#8211;posix                same as &#8211;format=posix
-V, &#8211;label=TEXT           create archive with volume name TEXT; at
list/extract time, use TEXT as a globbing pattern
for volume name</pre>
<pre>Compression options:</pre>
<pre>-a, --auto-compress        use archive suffix to determine the compression
program
-j, --bzip2                filter the archive through bzip2
--lzma                 filter the archive through lzma
--use-compress-program=PROG
filter through PROG (must accept -d)
-z, --gzip, --gunzip, --ungzip   filter the archive through gzip
-Z, --compress, --uncompress   filter the archive through compress</pre>
<pre>Local file selection:</pre>
<pre>--add-file=FILE        add given FILE to the archive (useful if its name
starts with a dash)
--backup[=CONTROL]     backup before removal, choose version CONTROL
-C, &#8211;directory=DIR        change to directory DIR
&#8211;exclude=PATTERN      exclude files, given as a PATTERN
&#8211;exclude-caches       exclude contents of directories containing
CACHEDIR.TAG, except for the tag file itself
&#8211;exclude-caches-all   exclude directories containing CACHEDIR.TAG
&#8211;exclude-caches-under exclude everything under directories containing
CACHEDIR.TAG
&#8211;exclude-tag=FILE     exclude contents of directories containing FILE,
except for FILE itself
&#8211;exclude-tag-all=FILE exclude directories containing FILE
&#8211;exclude-tag-under=FILE   exclude everything under directories
containing FILE
&#8211;exclude-vcs          exclude version control system directories
-h, &#8211;dereference          follow symlinks; archive and dump the files they
point to
&#8211;hard-dereference     follow hard links; archive and dump the files they
refer to
-K, &#8211;starting-file=MEMBER-NAME
begin at member MEMBER-NAME in the archive
&#8211;newer-mtime=DATE     compare date and time when data changed only
&#8211;no-recursion         avoid descending automatically in directories
&#8211;no-unquote           do not unquote filenames read with -T
&#8211;null                 -T reads null-terminated names, disable -C
-N, &#8211;newer=DATE-OR-FILE, &#8211;after-date=DATE-OR-FILE
only store files newer than DATE-OR-FILE
&#8211;one-file-system      stay in local file system when creating archive
-P, &#8211;absolute-names       don&#8217;t strip leading `/&#8217;s from file names
&#8211;recursion            recurse into directories (default)
&#8211;suffix=STRING        backup before removal, override usual suffix (&#8217;~&#8217;
unless overridden by environment variable
SIMPLE_BACKUP_SUFFIX)
-T, &#8211;files-from=FILE      get names to extract or create from FILE
&#8211;unquote              unquote filenames read with -T (default)
-X, &#8211;exclude-from=FILE    exclude patterns listed in FILE</pre>
<pre>File name transformations:</pre>
<pre>--strip-components=NUMBER   strip NUMBER leading components from file
names on extraction
--transform=EXPRESSION use sed replace EXPRESSION to transform file
names</pre>
<pre>File name matching options (affect both exclude and include patterns):</pre>
<pre>--anchored             patterns match file name start
--ignore-case          ignore case
--no-anchored          patterns match after any `/' (default for
exclusion)
--no-ignore-case       case sensitive matching (default)
--no-wildcards         verbatim string matching
--no-wildcards-match-slash   wildcards do not match `/'
--wildcards            use wildcards (default for exclusion)
--wildcards-match-slash   wildcards match `/' (default for exclusion)</pre>
<pre>Informative output:</pre>
<pre>--checkpoint[=NUMBER]  display progress messages every NUMBERth record
(default 10)
&#8211;checkpoint-action=ACTION   execute ACTION on each checkpoint
&#8211;index-file=FILE      send verbose output to FILE
-l, &#8211;check-links          print a message if not all links are dumped
&#8211;no-quote-chars=STRING   disable quoting for characters from STRING
&#8211;quote-chars=STRING   additionally quote characters from STRING
&#8211;quoting-style=STYLE  set name quoting style; see below for valid STYLE
values
-R, &#8211;block-number         show block number within archive with each
message
&#8211;show-defaults        show tar defaults
&#8211;show-omitted-dirs    when listing or extracting, list each directory
that does not match search criteria
&#8211;show-transformed-names, &#8211;show-stored-names
show file or archive names after transformation
&#8211;totals[=SIGNAL]      print total bytes after processing the archive;
with an argument - print total bytes when this
SIGNAL is delivered; Allowed signals are: SIGHUP,
SIGQUIT, SIGINT, SIGUSR1 and SIGUSR2; the names
without SIG prefix are also accepted
&#8211;utc                  print file modification dates in UTC
-v, &#8211;verbose              verbosely list files processed
-w, &#8211;interactive, &#8211;confirmation
ask for confirmation for every action</pre>
<pre>Compatibility options:</pre>
<pre>-o                         when creating, same as --old-archive; when
extracting, same as --no-same-owner</pre>
<pre>Other options:</pre>
<pre>-?, --help                 give this help list
--restrict             disable use of some potentially harmful options
--usage                give a short usage message
--version              print program version</pre>
<pre>Mandatory or optional arguments to long options are also mandatory or optional
for any corresponding short options.</pre>
<pre>The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.
The version control may be set with --backup or VERSION_CONTROL, values are:</pre>
<pre>none, off       never make backups
t, numbered     make numbered backups
nil, existing   numbered if numbered backups exist, simple otherwise
never, simple   always make simple backups</pre>
<pre>Valid arguments for --quoting-style options are:</pre>
<pre>literal
shell
shell-always
c
c-maybe
escape
locale
clocale</pre>
<pre>*This* tar defaults to:
--format=gnu -f- -b20 --quoting-style=escape --rmt-command=/usr/sbin/rmt.exe
--rsh-command=/usr/bin/rsh</pre>
<pre>Report bugs to &lt;bug-tar@gnu.org&gt;.</pre>
<p>Sentiram a diferença?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.angusyoung.org/2008/09/25/provendo-informacoes-uteis-na-linha-de-comando/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Modelagem UML Genérica</title>
		<link>http://www.angusyoung.org/2008/06/28/modelagem-uml-generica/</link>
		<comments>http://www.angusyoung.org/2008/06/28/modelagem-uml-generica/#comments</comments>
		<pubDate>Sat, 28 Jun 2008 20:49:33 +0000</pubDate>
		<dc:creator>angusyoung</dc:creator>
		
		<category><![CDATA[Geral]]></category>

		<category><![CDATA[POG]]></category>

		<guid isPermaLink="false">http://www.angusyoung.org/?p=171</guid>
		<description><![CDATA[Recebi do meu amigo Bruno, lá de Chapecó, essa excelente modelagem UML genérica que se aplica a qualquer aplicação. Agora você não precisa mais perder tempo fazendo a análise e design. É só seguir os diagramas abaixo e tudo ficará bem.
Diagrama de Classes

Diagrama de Sequência

Diagrama de Casos de Uso

]]></description>
			<content:encoded><![CDATA[<p>Recebi do meu amigo Bruno, lá de Chapecó, essa excelente modelagem UML genérica que se aplica a <strong>qualquer </strong>aplicação. Agora você não precisa mais perder tempo fazendo a análise e design. É só seguir os diagramas abaixo e tudo ficará bem.</p>
<p><strong>Diagrama de Classes</strong></p>
<p><a href="http://www.angusyoung.org/wp-content/uploads/2008/06/class-diagram.png"><img class="alignnone size-thumbnail wp-image-172" title="Diagrama de Classes" src="http://www.angusyoung.org/wp-content/uploads/2008/06/class-diagram-150x45.png" alt="Diagrama de Classes" width="150" height="45" /></a></p>
<p><strong>Diagrama de Sequência</strong></p>
<p><a href="http://www.angusyoung.org/wp-content/uploads/2008/06/sequence-diagram.png"><img class="alignnone size-thumbnail wp-image-173" title="Diagrama de Sequência" src="http://www.angusyoung.org/wp-content/uploads/2008/06/sequence-diagram-150x125.png" alt="Diagrama de Sequência" width="150" height="125" /></a></p>
<p><strong>Diagrama de Casos de Uso</strong></p>
<p><a href="http://www.angusyoung.org/wp-content/uploads/2008/06/use-case-diagram.png"><img class="alignnone size-thumbnail wp-image-174" title="Diagrama de Casos de Uso" src="http://www.angusyoung.org/wp-content/uploads/2008/06/use-case-diagram-150x112.png" alt="Diagrama de Casos de Uso" width="150" height="112" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.angusyoung.org/2008/06/28/modelagem-uml-generica/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Dica: Corrigindo erro da user32.lib no CMake com NMake Makefiles</title>
		<link>http://www.angusyoung.org/2008/05/31/dica-corrigindo-erro-da-user32lib-no-cmake-com-nmake-makefiles/</link>
		<comments>http://www.angusyoung.org/2008/05/31/dica-corrigindo-erro-da-user32lib-no-cmake-com-nmake-makefiles/#comments</comments>
		<pubDate>Sat, 31 May 2008 17:59:21 +0000</pubDate>
		<dc:creator>angusyoung</dc:creator>
		
		<category><![CDATA[Desenvolvimento]]></category>

		<category><![CDATA[Dica]]></category>

		<category><![CDATA[Tecnologia]]></category>

		<guid isPermaLink="false">http://www.angusyoung.org/?p=160</guid>
		<description><![CDATA[No CMake, quando se usa o gerador NMake Makefiles ele costuma dar o erro:
LINK : fatal error LNK1104: cannot open file 'user32.lib'
LINK Pass 1 failed.  with 2
NMAKE : fatal error U1077: &#8216;&#8221;C:\Arquivos de programas\CMake
2.6\bin\cmake.exe&#8221;&#8216; : return code &#8216;0xffffffff&#8217;
Stop.
NMAKE : fatal error U1077: &#8216;&#8221;C:\Arquivos de programas\Microsoft Visual
Studio 8\VC\BIN\nmake.exe&#8221;&#8216; : return code &#8216;0&#215;2&#8242;
Stop.
Mesmo que você tenha o [...]]]></description>
			<content:encoded><![CDATA[<p>No CMake, quando se usa o gerador NMake Makefiles ele costuma dar o erro:</p>
<p><code class="prettyprint">LINK : fatal error LNK1104: cannot open file 'user32.lib'<br />
LINK Pass 1 failed.  with 2<br />
NMAKE : fatal error U1077: &#8216;&#8221;C:\Arquivos de programas\CMake<br />
2.6\bin\cmake.exe&#8221;&#8216; : return code &#8216;0xffffffff&#8217;<br />
Stop.<br />
NMAKE : fatal error U1077: &#8216;&#8221;C:\Arquivos de programas\Microsoft Visual<br />
Studio 8\VC\BIN\nmake.exe&#8221;&#8216; : return code &#8216;0&#215;2&#8242;<br />
Stop.</code></p>
<p>Mesmo que você tenha o Microsoft Platform SDK, isso ocorre porque o linker não consegue encontrar a user32.lib. Para projetos que usam o gerador do Visual Studio você pode configurar isso seguindo as recomendações da configuração do SDK, mas para resolver este problema em projetos que usam a NMake, você precisa adicionar o path da user32.lib na variável de ambiente LIB. Você pode fazer isso na mão, após iniciar o prompt de comando do Visual Studio: </p>
<p><code class="prettyprint">set LIB=%LIB%;"C:\Arquivos de programas\Microsoft Platform SDK\Lib"</code></p>
<p>Ou então adicionar o path nas variáveis de ambiente do sistema através da aba &#8220;Avançado&#8221; nas propriedades do sistema.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.angusyoung.org/2008/05/31/dica-corrigindo-erro-da-user32lib-no-cmake-com-nmake-makefiles/feed/</wfw:commentRss>
		</item>
		<item>
		<title>IDE online</title>
		<link>http://www.angusyoung.org/2008/05/21/ide-online/</link>
		<comments>http://www.angusyoung.org/2008/05/21/ide-online/#comments</comments>
		<pubDate>Wed, 21 May 2008 10:56:44 +0000</pubDate>
		<dc:creator>angusyoung</dc:creator>
		
		<category><![CDATA[Desenvolvimento]]></category>

		<category><![CDATA[Dica]]></category>

		<category><![CDATA[Tecnologia]]></category>

		<guid isPermaLink="false">http://www.angusyoung.org/?p=150</guid>
		<description><![CDATA[Meu amigo Diego me passou a dica sobre o CodeIDE. Segundo ele, é um site onde pode executar códigos, suporta várias linguagens como Pascal, C++, Perl, JavaScript, HTML, e outras. Você digita o código, e mandar executar, já ve o resultado na página mesmo. O site também oferece suporte a chat e grupos, o que [...]]]></description>
			<content:encoded><![CDATA[<p>Meu amigo <a title="Diego" href="http://wodanaz.blogspot.com/">Diego</a> me passou a dica sobre o <a title="Code IDE" href="http://www.codeide.com/">CodeIDE</a>. Segundo ele, <em>é um site onde pode executar códigos, suporta várias linguagens como Pascal, C++, Perl, JavaScript, HTML, e outras. Você digita o código, e mandar executar, já ve o resultado na página mesmo.</em><em> O site também oferece suporte a chat e grupos, o que possibilita vc explicar o código para alguém, discutir sobre um código, etc, etc. Aqui tem um artigo sobre o site<br />
<a href="http://blog.cidandrade.pro.br/technology/interface-online-para-ensino-de-programacao-codeide/" target="_blank">http://blog.cidandrade.pro.br/technology/interface-online-para-ensino-de-programacao-codeide/</a> &#8230;<br />
</em></p>
<p>Eu achei o site uma grande mão na roda pra quando você quer mostrar alguma técnica ou explicar algo para alguém. Além disso, ele tem um recurso de realce de sintaxe (syntax highlight) que melhora a percepção do código.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.angusyoung.org/2008/05/21/ide-online/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Dica: XPath</title>
		<link>http://www.angusyoung.org/2008/05/15/dica-xpath/</link>
		<comments>http://www.angusyoung.org/2008/05/15/dica-xpath/#comments</comments>
		<pubDate>Fri, 16 May 2008 05:15:40 +0000</pubDate>
		<dc:creator>angusyoung</dc:creator>
		
		<category><![CDATA[Desenvolvimento]]></category>

		<category><![CDATA[Dica]]></category>

		<category><![CDATA[Tecnologia]]></category>

		<guid isPermaLink="false">http://www.angusyoung.org/?p=135</guid>
		<description><![CDATA[O XPath é uma linguagem para seleção de nós em um documento XML. Entre outas coisas, é bastante utilizada quando se trabalha com XSLT. Como ela também é suportada em diversas bibliotecas ela é comumente utilizada com C (libxml2), C++ (xalan, xerces, etc), Java (jaxp, etc), Python, e muitas outras linguagens
Hoje, precisei fazer uma expressão [...]]]></description>
			<content:encoded><![CDATA[<p>O <a title="XPath" href="http://en.wikipedia.org/wiki/Xpath">XPath </a>é uma linguagem para seleção de nós em um documento XML. Entre outas coisas, é bastante utilizada quando se trabalha com <a title="XLST" href="http://en.wikipedia.org/wiki/XLST">XSLT</a>. Como ela também é suportada em diversas bibliotecas ela é comumente utilizada com C (libxml2), C++ (xalan, xerces, etc), Java (jaxp, etc), Python, e muitas outras linguagens<br />
Hoje, precisei fazer uma expressão para obter um nó somente quando o nó pai fosse igual a um determinado valor e tivesse algum atributo específico.</p>
<blockquote><p>&lt;paises continente="Europa"/&gt;<br />
&lt;pais nome="Portugal"/&gt;<br />
&lt;pais nome="França" /&gt;<br />
&lt;/paises&gt;<br />
&lt;paises continente="Africa" /&gt;<br />
&lt;pais nome="Angola"/&gt;<br />
&lt;/paises&gt;</p></blockquote>
<p>Vamos supor que você quisesse obter o nó referente a Angola. Você poderia faze-lo através da seguinte expressão:</p>
<div class="igBar"><span id="lcode-2"><a href="#" onclick="javascript:showCodeTxt('code-2'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-2">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">//paises[@continente='Africa']/pais[@nome='Angola'] </span></div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>No caso a expressão // representa os nós descendentes ou o próprio e a expressão @ representa um atributo. A expressão completa representa um caminho para o nó (de modo análogo <em>/usr/share</em> ou <em>C:/windows</em> representam um caminho no disco rígido).<br />
Mais sobre XPath <a title="XPath tutorial" href="http://www.w3schools.com/Xpath/default.asp">neste</a> excelente tutorial.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.angusyoung.org/2008/05/15/dica-xpath/feed/</wfw:commentRss>
		</item>
		<item>
		<title>eBook Gratis sobre desenvolvimento no Mac OS X</title>
		<link>http://www.angusyoung.org/2008/04/05/ebook-gratis-sobre-desenvolvimento-no-mac-os-x/</link>
		<comments>http://www.angusyoung.org/2008/04/05/ebook-gratis-sobre-desenvolvimento-no-mac-os-x/#comments</comments>
		<pubDate>Sat, 05 Apr 2008 17:36:26 +0000</pubDate>
		<dc:creator>angusyoung</dc:creator>
		
		<category><![CDATA[Desenvolvimento]]></category>

		<category><![CDATA[Mac OS X]]></category>

		<category><![CDATA[Sistemas Operacionais]]></category>

		<category><![CDATA[Tecnologia]]></category>

		<guid isPermaLink="false">http://www.angusyoung.org/2008/04/05/ebook-gratis-sobre-desenvolvimento-no-mac-os-x/</guid>
		<description><![CDATA[Peguei essa dica no OS News: o CocoaLab distribui um eBook grátis para quem quiser se aventurar no desenvolvimento para Mac OS X. O livro é voltado para desenvolvimento no Leopard com Xcode 3 usando Objective C e Cocoa e está disponível aqui. Não usa o Leopard? Então baixe a versão para o Tiger aqui. [...]]]></description>
			<content:encoded><![CDATA[<p>Peguei essa dica no OS News: o CocoaLab distribui um eBook grátis para quem quiser se aventurar no desenvolvimento para Mac OS X. O livro é voltado para desenvolvimento no Leopard com Xcode 3 usando Objective C e Cocoa e está disponível <a href="http://www.cocoalab.com/BecomeAnXcoder.pdf">aqui</a>. Não usa o Leopard? Então baixe a versão para o Tiger <a href="http://www.cocoalab.com/BecomeAnXcoder(Tiger).pdf">aqui</a>. O livro está, obviamente, em inglês, então se você não conhece o idioma de Shakespeare considere esse mais um bom motivo para aprender.</p>
<p>Fontes: <a href="http://www.osnews.com" title="OS News">OS News</a> e <a href="http://pmougin.wordpress.com/2008/03/26/become-an-xcoder-leopard-edition/" title="Fun Script">Fun Script</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.angusyoung.org/2008/04/05/ebook-gratis-sobre-desenvolvimento-no-mac-os-x/feed/</wfw:commentRss>
		</item>
		<item>
		<title>É hoje!!!</title>
		<link>http://www.angusyoung.org/2008/03/28/e-hoje/</link>
		<comments>http://www.angusyoung.org/2008/03/28/e-hoje/#comments</comments>
		<pubDate>Sat, 29 Mar 2008 04:03:31 +0000</pubDate>
		<dc:creator>angusyoung</dc:creator>
		
		<category><![CDATA[Desenvolvimento]]></category>

		<category><![CDATA[Tecnologia]]></category>

		<guid isPermaLink="false">http://www.angusyoung.org/2008/03/28/e-hoje/</guid>
		<description><![CDATA[O 4º encontro de programadores C/C++. Por um lado eu fico feliz porque a comunidade de desenvolvedores C/C++ brasileira está se organizando cada vez mais. Por outro lado eu fico frustado porque mais uma vez eu não pude ir devido a alterações na minha agenda pessoal e profissional 
]]></description>
			<content:encoded><![CDATA[<p>O <a href="http://www.cbrasil.org/wiki/index.php?title=Quarto_Encontro_de_Programadores">4º encontro de programadores C/C++</a>. Por um lado eu fico feliz porque a comunidade de desenvolvedores <a href="http://www.ccppbrasil.org">C/C++ brasileira</a> está se organizando cada vez mais. Por outro lado eu fico frustado porque mais uma vez eu não pude ir devido a alterações na minha agenda pessoal e profissional <img src='http://www.angusyoung.org/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.angusyoung.org/2008/03/28/e-hoje/feed/</wfw:commentRss>
		</item>
		<item>
		<title>How To: como escrever software impossível de se manter</title>
		<link>http://www.angusyoung.org/2008/03/28/how-to-como-escrever-software-impossivel-de-se-manter/</link>
		<comments>http://www.angusyoung.org/2008/03/28/how-to-como-escrever-software-impossivel-de-se-manter/#comments</comments>
		<pubDate>Sat, 29 Mar 2008 03:57:13 +0000</pubDate>
		<dc:creator>angusyoung</dc:creator>
		
		<category><![CDATA[Desenvolvimento]]></category>

		<category><![CDATA[Geral]]></category>

		<category><![CDATA[Tecnologia]]></category>

		<guid isPermaLink="false">http://www.angusyoung.org/2008/03/28/how-to-como-escrever-software-impossivel-de-se-manter/</guid>
		<description><![CDATA[Disponível aqui. Por mais irreal que algumas coisas possam parecer eu te garanto, não são.
]]></description>
			<content:encoded><![CDATA[<p>Disponível <a href="http://freeworld.thc.org/root/phun/unmaintain.html">aqui</a>. Por mais irreal que algumas coisas possam parecer eu te garanto, não são.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.angusyoung.org/2008/03/28/how-to-como-escrever-software-impossivel-de-se-manter/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Oracle: um pouco sobre PL/SQL</title>
		<link>http://www.angusyoung.org/2008/03/12/oracle-um-pouco-sobre-plsql/</link>
		<comments>http://www.angusyoung.org/2008/03/12/oracle-um-pouco-sobre-plsql/#comments</comments>
		<pubDate>Wed, 12 Mar 2008 13:27:20 +0000</pubDate>
		<dc:creator>angusyoung</dc:creator>
		
		<category><![CDATA[Banco de Dados]]></category>

		<category><![CDATA[Desenvolvimento]]></category>

		<category><![CDATA[Tecnologia]]></category>

		<guid isPermaLink="false">http://www.angusyoung.org/2008/03/12/oracle-um-pouco-sobre-plsql/</guid>
		<description><![CDATA[Continuando o último post sobre Oracle, agora falando sobre PL/SQL (Procedural Language/Structured Query Language). A PL/SQL é uma extensão, proprietária da Oracle, à linguagem SQL que adiciona construções comuns às linguagens procedurais, como por exemplo variáveis, condicionais, excessões, etc.
Se você nunca viu um código em PL/SQL ele é semelhante ao seguinte:
PLAIN TEXT
CODE:




set serveroutput ON size [...]]]></description>
			<content:encoded><![CDATA[<p>Continuando o último post sobre Oracle, agora falando sobre <a href="http://en.wikipedia.org/wiki/PL/SQL">PL/SQL</a> (Procedural Language/Structured Query Language). A PL/SQL é uma extensão, proprietária da Oracle, à linguagem <a href="http://en.wikipedia.org/wiki/SQL">SQL</a> que adiciona construções comuns às linguagens procedurais, como por exemplo variáveis, condicionais, excessões, etc.</p>
<p>Se você nunca viu um código em PL/SQL ele é semelhante ao seguinte:</p>
<div class="igBar"><span id="lcode-4"><a href="#" onclick="javascript:showCodeTxt('code-4'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-4">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">set serveroutput ON size <span style="color:#800000;color:#800000;">2000</span> format WORD_WRAPPED;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">DECLARE</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">v_hello VARCHAR<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#800000;color:#800000;">255</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">BEGIN</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">SELECT <span style="color:#CC0000;">'Hello World!'</span> INTO v_hello FROM DUAL;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">DBMS_OUTPUT.<span style="">PUT_LINE</span><span style="color:#006600; font-weight:bold;">&#40;</span>v_hello<span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">END;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">/</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">EXIT </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p><span id="more-111"></span> Talvez você tenha achado um tanto grande para um "<a href="http://en.wikipedia.org/wiki/Hello_World">Hello World</a>", certo? Eu também achei na primeira vez que vi, mas depois que eu conferi o que ela pode fazer (e como ela me auxilia em algumas tarefas) eu comecei a relevar, pelo menos parcialmente, um pouco dessa verborragia. Enfim, caso você queira conhecer um pouco mais sobre PL/SQL aqui vão alguns links:</p>
<p><a href="http://download-west.oracle.com/docs/cd/B10501_01/appdev.920/a96624/toc.htm">PL/SQL Guia do Usuário (Oracle 9i)</a>.</p>
<p><a href="http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14251/toc.htm">Fundamentos de Programação com Oracle (Oracle 10g)</a>.</p>
<p><a href="http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14261/toc.htm">PL/SQL Guia do Usuário (Oracle 10g)</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.angusyoung.org/2008/03/12/oracle-um-pouco-sobre-plsql/feed/</wfw:commentRss>
		</item>
		<item>
		<title>IBM Message Service Client for C/C++</title>
		<link>http://www.angusyoung.org/2008/03/07/ibm-message-service-client-for-cc/</link>
		<comments>http://www.angusyoung.org/2008/03/07/ibm-message-service-client-for-cc/#comments</comments>
		<pubDate>Sat, 08 Mar 2008 00:19:01 +0000</pubDate>
		<dc:creator>angusyoung</dc:creator>
		
		<category><![CDATA[C &amp; C++]]></category>

		<category><![CDATA[Desenvolvimento]]></category>

		<category><![CDATA[Tecnologia]]></category>

		<category><![CDATA[MQ Websphere IBM C++ C]]></category>

		<guid isPermaLink="false">http://www.angusyoung.org/2008/03/07/ibm-message-service-client-for-cc/</guid>
		<description><![CDATA[Interessado em trabalhar com MQ, interfacear com JMS e Websphere MQ usando C/C++? Dá uma olhada no IBM Message Service Client for C/C++. Eu ainda não pude estudar a fundo, mas isso certamente está na minha TODO.
]]></description>
			<content:encoded><![CDATA[<p>Interessado em trabalhar com MQ, interfacear com JMS e Websphere MQ usando C/C++? Dá uma olhada no <a href="http://www-1.ibm.com/support/docview.wss?uid=swg24007092">IBM Message Service Client for C/C++</a>. Eu ainda não pude estudar a fundo, mas isso certamente está na minha TODO.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.angusyoung.org/2008/03/07/ibm-message-service-client-for-cc/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Escrevendo um sistema de arquivos</title>
		<link>http://www.angusyoung.org/2008/03/05/escrevendo-um-sistema-de-arquivos/</link>
		<comments>http://www.angusyoung.org/2008/03/05/escrevendo-um-sistema-de-arquivos/#comments</comments>
		<pubDate>Thu, 06 Mar 2008 00:15:45 +0000</pubDate>
		<dc:creator>angusyoung</dc:creator>
		
		<category><![CDATA[Desenvolvimento]]></category>

		<category><![CDATA[Linux]]></category>

		<category><![CDATA[Tecnologia]]></category>

		<category><![CDATA[Linux Kernel Development Sistemas Arquivos]]></category>

		<guid isPermaLink="false">http://www.angusyoung.org/2008/03/05/escrevendo-um-sistema-de-arquivos/</guid>
		<description><![CDATA[Neste link, existe um tutorial sobre como escrever um sistema de arquivos simples. Bastante interessante se você se interessa por desenvolvimento em baixo nível. Adicionalmente a este texto recomendo a leitura do Linux Kernel Development, escrito pelo Robert Love, engenheiro da Novel e figurinha conhecida no desenvolvimento do Linux.
]]></description>
			<content:encoded><![CDATA[<p>Neste <a href="http://www.geocities.com/ravikiran_uvs/articles/rkfs.html" title="Writing a simple file system">link</a>, existe um tutorial sobre como escrever um sistema de arquivos simples. Bastante interessante se você se interessa por desenvolvimento em baixo nível. Adicionalmente a este texto recomendo a leitura do <a href="http://www.submarino.com.br/imports_productdetails.asp?Query=ProductPage&amp;ProdTypeId=9&amp;ProdId=445818&amp;ST=SR">Linux Kernel Development</a>, escrito pelo Robert Love, engenheiro da Novel e figurinha conhecida no desenvolvimento do Linux.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.angusyoung.org/2008/03/05/escrevendo-um-sistema-de-arquivos/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.606 seconds -->
