Home

Advertisement

Customize

bibtex unsrt em pt-br e com URLs

Nov. 15th, 2009 | 06:55 pm

Estava eu editando um artigo em LaTeX usando o estilo bibliográfico unsrt (\bibliographystyle{unsrt}) quando notei que ele não apresentava a URL das minhas referencias. Como resolvi:

1. Instalei o pacote do debian (squeeze) texlive-bibtex-extra, que contém o programa bsturl, o qual é um scrit perl que acrescenta o tipo bibliográfico @webpage e o suporte às propriedades url e lastchecked aos utros tipos. E vem com versões pré-convertidas dos estilos padrão, isto inclui o unsrt. A versão bsturl do unsrt chama unsrturl (\bibliographystyle{unsrturl}).

Mas isto medeixou ainda com as referencias em ingles. Para resolver isto fiz uma cópia do arquivo nsrturl.bst, que no meu caso (debian squeeze) se encontra em /usr/share/texmf-texlive/bibtex/bst/urlbst, para unsrturl-br.bst no diretório do meu artigo e traduzi o que estava me encomodando (não é uma tradução completa). Caso alguem precise de mais partes traduzidas comente aqiu que eu traduzo e atualizo aqui, ou caso alguem queira me enviar uma tradução mais completa eu também ficaria feliz.

Para usar copie o conteúdo do arquivo para, por exemplo, unsrturl-br.bst no diretório com seu documento e use o estilo unsrturl-br (\bibliographystyle{unsrturl-br}).

Abaixo o conteúdo do arquivo:

%%% Modification of BibTeX style file /local2/teTeX-1.0/share/texmf/bibtex/bst/base/unsrt.bst
%%% to add webpage entry type, and url and lastchecked fields
%%% Edits by urlbst.pl, version 0.1
%%% (marked with % urlbst.pl)
%%% Original headers follow...
% BibTeX standard bibliography style `unsrt'
	% version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09.
	% Copyright (C) 1985, all rights reserved.
	% Copying of this file is authorized only if either
	% (1) you make absolutely no changes to your copy, including name, or
	% (2) if you do make changes, you name it something other than
	% btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst.
	% This restriction helps ensure that all standard styles are identical.
	% The file btxbst.doc has the documentation for this style.

ENTRY
  { address
    author
    booktitle
    chapter
    edition
    editor
    howpublished
    institution
    journal
    key
    month
    note
    number
    organization
    pages
    publisher
    school
    series
    title
    type
    volume
    year
    url % urlbst.pl
    lastchecked
  }
  {}
  { label }

INTEGERS { output.state before.all mid.sentence after.sentence after.block }

INTEGERS { bracket.state outside.brackets open.brackets within.brackets close.brackets } % urlbst.pl
FUNCTION {init.state.consts}
{ #0 'outside.brackets := % urlbst.pl
  #1 'open.brackets :=
  #2 'within.brackets :=
  #3 'close.brackets :=

   #0 'before.all :=
  #1 'mid.sentence :=
  #2 'after.sentence :=
  #3 'after.block :=
}

STRINGS { s t }

% urlbst.pl
FUNCTION {output.nonnull.original}
{ 's :=
  output.state mid.sentence =
    { ", " * write$ }
    { output.state after.block =
	{ add.period$ write$
	  newline$
	  "\newblock " write$
	}
	{ output.state before.all =
	    'write$
	    { add.period$ " " * write$ }
	  if$
	}
      if$
      mid.sentence 'output.state :=
    }
  if$
  s
}

% urlbst.pl...
FUNCTION {output.nonnull}
{ % Save the thing we've been asked to output
  's :=
  % If the bracket-state is close.brackets, then add a close-bracket to what's
  % currently at the top of the stack, and set bracket.state to outside.brackets
  bracket.state close.brackets =
    { "]" *
      outside.brackets 'bracket.state :=
    }
    'skip$
  if$
  bracket.state outside.brackets =
    { % We're outside all brackets -- this is the normal situation.
      % Write out what's currently at the top of the stack, using the
      % original output.nonnull function.
      s
      output.nonnull.original
    }
    { % Still in brackets.  Add open-bracket or (continuation) comma, add the
      % new text (in s) to the top of the stack, and move to the close-brackets
      % state, ready for next time (unless inbrackets resets it).  If we come
      % into this branch, then output.state is carefully undisturbed.
      bracket.state open.brackets =
        { " [" * }
        { ", " * } % bracket.state will be within.brackets
      if$ 
      s * 
      close.brackets 'bracket.state :=
    }
  if$
}

% Call this function just before adding something which should be presented in 
% brackets.  bracket.state is handled specially within output.nonnull.
FUNCTION {inbrackets}
{ bracket.state close.brackets =
    { within.brackets 'bracket.state := } % reset the state: not open nor closed
    { open.brackets 'bracket.state := }
  if$
}

FUNCTION {format.url}
{ url empty$
    { "" }
    { "Disponível em: \url{" url * "}" * }
  if$
}

FUNCTION {format.lastchecked}
{ lastchecked empty$
    { "" }
    { inbrackets "citado em " lastchecked * }
  if$
}
%  ...% urlbst.pl

FUNCTION {output}
{ duplicate$ empty$
    'pop$
    'output.nonnull
  if$
}

FUNCTION {output.check}
{ 't :=
  duplicate$ empty$
    { pop$ "empty " t * " in " * cite$ * warning$ }
    'output.nonnull
  if$
}

FUNCTION {output.bibitem}
{ outside.brackets 'bracket.state := % urlbst.pl
   newline$
  "\bibitem{" write$
  cite$ write$
  "}" write$
  newline$
  ""
  before.all 'output.state :=
}

FUNCTION {fin.entry}
{ 
  bracket.state close.brackets = % urlbst.pl
    { "]" * }
    'skip$
  if$
   add.period$
  write$
  newline$
}

FUNCTION {new.block}
{ output.state before.all =
    'skip$
    { after.block 'output.state := }
  if$
}

FUNCTION {new.sentence}
{ output.state after.block =
    'skip$
    { output.state before.all =
	'skip$
	{ after.sentence 'output.state := }
      if$
    }
  if$
}

FUNCTION {not}
{   { #0 }
    { #1 }
  if$
}

FUNCTION {and}
{   'skip$
    { pop$ #0 }
  if$
}

FUNCTION {or}
{   { pop$ #1 }
    'skip$
  if$
}

FUNCTION {new.block.checka}
{ empty$
    'skip$
    'new.block
  if$
}

FUNCTION {new.block.checkb}
{ empty$
  swap$ empty$
  and
    'skip$
    'new.block
  if$
}

FUNCTION {new.sentence.checka}
{ empty$
    'skip$
    'new.sentence
  if$
}

FUNCTION {new.sentence.checkb}
{ empty$
  swap$ empty$
  and
    'skip$
    'new.sentence
  if$
}

FUNCTION {field.or.null}
{ duplicate$ empty$
    { pop$ "" }
    'skip$
  if$
}

FUNCTION {emphasize}
{ duplicate$ empty$
    { pop$ "" }
    { "{\em " swap$ * "}" * }
  if$
}

INTEGERS { nameptr namesleft numnames }

FUNCTION {format.names}
{ 's :=
  #1 'nameptr :=
  s num.names$ 'numnames :=
  numnames 'namesleft :=
    { namesleft #0 > }
    { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=
      nameptr #1 >
	{ namesleft #1 >
	    { ", " * t * }
	    { numnames #2 >
		{ "," * }
		'skip$
	      if$
	      t "others" =
		{ " et~al." * }
		{ " e " * t * }
	      if$
	    }
	  if$
	}
	't
      if$
      nameptr #1 + 'nameptr :=
      namesleft #1 - 'namesleft :=
    }
  while$
}

FUNCTION {format.authors}
{ author empty$
    { "" }
    { author format.names }
  if$
}

FUNCTION {format.editors}
{ editor empty$
    { "" }
    { editor format.names
      editor num.names$ #1 >
	{ ", editors" * }
	{ ", editor" * }
      if$
    }
  if$
}

FUNCTION {format.title}
{ title empty$
    { "" }
    { title "t" change.case$ }
  if$
}

FUNCTION {n.dashify}
{ 't :=
  ""
    { t empty$ not }
    { t #1 #1 substring$ "-" =
	{ t #1 #2 substring$ "--" = not
	    { "--" *
	      t #2 global.max$ substring$ 't :=
	    }
	    {   { t #1 #1 substring$ "-" = }
		{ "-" *
		  t #2 global.max$ substring$ 't :=
		}
	      while$
	    }
	  if$
	}
	{ t #1 #1 substring$ *
	  t #2 global.max$ substring$ 't :=
	}
      if$
    }
  while$
}

FUNCTION {format.date}
{ year empty$
    { month empty$
	{ "" }
	{ "there's a month but no year in " cite$ * warning$
	  month
	}
      if$
    }
    { month empty$
	'year
	{ month " " * year * }
      if$
    }
  if$
}

FUNCTION {format.btitle}
{ title emphasize
}

FUNCTION {tie.or.space.connect}
{ duplicate$ text.length$ #3 <
    { "~" }
    { " " }
  if$
  swap$ * *
}

FUNCTION {either.or.check}
{ empty$
    'pop$
    { "can't use both " swap$ * " fields in " * cite$ * warning$ }
  if$
}

FUNCTION {format.bvolume}
{ volume empty$
    { "" }
    { "volume" volume tie.or.space.connect
      series empty$
	'skip$
	{ " of " * series emphasize * }
      if$
      "volume and number" number either.or.check
    }
  if$
}

FUNCTION {format.number.series}
{ volume empty$
    { number empty$
	{ series field.or.null }
	{ output.state mid.sentence =
	    { "number" }
	    { "Number" }
	  if$
	  number tie.or.space.connect
	  series empty$
	    { "there's a number but no series in " cite$ * warning$ }
	    { " in " * series * }
	  if$
	}
      if$
    }
    { "" }
  if$
}

FUNCTION {format.edition}
{ edition empty$
    { "" }
    { output.state mid.sentence =
	{ edition "l" change.case$ " edição" * }
	{ edition "t" change.case$ " edição" * }
      if$
    }
  if$
}

INTEGERS { multiresult }

FUNCTION {multi.page.check}
{ 't :=
  #0 'multiresult :=
    { multiresult not
      t empty$ not
      and
    }
    { t #1 #1 substring$
      duplicate$ "-" =
      swap$ duplicate$ "," =
      swap$ "+" =
      or or
	{ #1 'multiresult := }
	{ t #2 global.max$ substring$ 't := }
      if$
    }
  while$
  multiresult
}

FUNCTION {format.pages}
{ pages empty$
    { "" }
    { pages multi.page.check
	{ "páginas" pages n.dashify tie.or.space.connect }
	{ "página" pages tie.or.space.connect }
      if$
    }
  if$
}

FUNCTION {format.vol.num.pages}
{ volume field.or.null
  number empty$
    'skip$
    { "(" number * ")" * *
      volume empty$
	{ "there's a number but no volume in " cite$ * warning$ }
	'skip$
      if$
    }
  if$
  pages empty$
    'skip$
    { duplicate$ empty$
	{ pop$ format.pages }
	{ ":" * pages n.dashify * }
      if$
    }
  if$
}

FUNCTION {format.chapter.pages}
{ chapter empty$
    'format.pages
    { type empty$
	{ "chapter" }
	{ type "l" change.case$ }
      if$
      chapter tie.or.space.connect
      pages empty$
	'skip$
	{ ", " * format.pages * }
      if$
    }
  if$
}

FUNCTION {format.in.ed.booktitle}
{ booktitle empty$
    { "" }
    { editor empty$
	{ "Em " booktitle emphasize * }
	{ "Em " format.editors * ", " * booktitle emphasize * }
      if$
    }
  if$
}

FUNCTION {empty.misc.check}
{ author empty$ title empty$ howpublished empty$
  month empty$ year empty$ note empty$
  and and and and and
    { "all relevant fields are empty in " cite$ * warning$ }
    'skip$
  if$
}

FUNCTION {format.thesis.type}
{ type empty$
    'skip$
    { pop$
      type "t" change.case$
    }
  if$
}

FUNCTION {format.tr.number}
{ type empty$
    { "Technical Report" }
    'type
  if$
  number empty$
    { "t" change.case$ }
    { number tie.or.space.connect }
  if$
}

FUNCTION {format.article.crossref}
{ key empty$
    { journal empty$
	{ "need key or journal for " cite$ * " to crossref " * crossref *
	  warning$
	  ""
	}
	{ "Em {\em " journal * "\/}" * }
      if$
    }
    { "Em " key * }
  if$
  " \cite{" * crossref * "}" *
}

FUNCTION {format.crossref.editor}
{ editor #1 "{vv~}{ll}" format.name$
  editor num.names$ duplicate$
  #2 >
    { pop$ " et~al." * }
    { #2 <
	'skip$
	{ editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
	    { " et~al." * }
	    { " and " * editor #2 "{vv~}{ll}" format.name$ * }
	  if$
	}
      if$
    }
  if$
}

FUNCTION {format.book.crossref}
{ volume empty$
    { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
      "Em "
    }
    { "Volume" volume tie.or.space.connect
      " of " *
    }
  if$
  editor empty$
  editor field.or.null author field.or.null =
  or
    { key empty$
	{ series empty$
	    { "need editor, key, or series for " cite$ * " to crossref " *
	      crossref * warning$
	      "" *
	    }
	    { "{\em " * series * "\/}" * }
	  if$
	}
	{ key * }
      if$
    }
    { format.crossref.editor * }
  if$
  " \cite{" * crossref * "}" *
}

FUNCTION {format.incoll.inproc.crossref}
{ editor empty$
  editor field.or.null author field.or.null =
  or
    { key empty$
	{ booktitle empty$
	    { "need editor, key, or booktitle for " cite$ * " to crossref " *
	      crossref * warning$
	      ""
	    }
	    { "Em {\em " booktitle * "\/}" * }
	  if$
	}
	{ "Em " key * }
      if$
    }
    { "Em " format.crossref.editor * }
  if$
  " \cite{" * crossref * "}" *
}

% urlbst.pl...
% Output a URL.  We can't use the more normal idiom (something like
% `format.url output'), because the `inbrackets' within
% format.lastchecked applies to everything between calls to `output',
% so that `format.url format.lastchecked * output' ends up with both
% the URL and the lastchecked in brackets.
FUNCTION {output.url}
{ url empty$
    'skip$ 
    { new.block 
      format.url output
      format.lastchecked output 
    }
  if$
}

% Webpage entry type.
% Title and url fields required;
% author, note, year, month, and lastchecked fields optional
% See references 
%   ISO 690-2 http://www.nlc-bnc.ca/iso/tc46sc9/standard/690-2e.htm
%   http://www.classroom.net/classroom/CitingNetResources.html
%   http://neal.ctstateu.edu/history/cite.html
%   http://www.cas.usf.edu/english/walker/mla.html
% for citation formats for web pages.
FUNCTION {webpage}
{ output.bibitem
  author empty$
    'skip$
    { format.authors output.nonnull }
  if$
  new.block
  format.title "title" output.check
  inbrackets "online" output
  new.block
  year empty$
    'skip$
    { format.date "year" output.check }
  if$
  lastchecked empty$
    'skip$
    { format.lastchecked output }
  if$
  new.block
  format.url "url" output.check
  new.block
  note output
  fin.entry
}
%   ...% urlbst.pl


FUNCTION {article}
{ output.bibitem
  format.authors "author" output.check
  new.block
  format.title "title" output.check
  new.block
  crossref missing$
    { journal emphasize "journal" output.check
      format.vol.num.pages output
      format.date "year" output.check
    }
    { format.article.crossref output.nonnull
      format.pages output
    }
  if$
  new.block
  output.url % urlbst.pl
  new.block
  note output
  fin.entry
}

FUNCTION {book}
{ output.bibitem
  author empty$
    { format.editors "author and editor" output.check }
    { format.authors output.nonnull
      crossref missing$
	{ "author and editor" editor either.or.check }
	'skip$
      if$
    }
  if$
  new.block
  format.btitle "title" output.check
  crossref missing$
    { format.bvolume output
      new.block
      format.number.series output
      new.sentence
      publisher "publisher" output.check
      address output
    }
    { new.block
      format.book.crossref output.nonnull
    }
  if$
  format.edition output
  format.date "year" output.check
  new.block
  output.url % urlbst.pl
  new.block
  note output
  fin.entry
}

FUNCTION {booklet}
{ output.bibitem
  format.authors output
  new.block
  format.title "title" output.check
  howpublished address new.block.checkb
  howpublished output
  address output
  format.date output
  new.block
  output.url % urlbst.pl
  new.block
  note output
  fin.entry
}

FUNCTION {inbook}
{ output.bibitem
  author empty$
    { format.editors "author and editor" output.check }
    { format.authors output.nonnull
      crossref missing$
	{ "author and editor" editor either.or.check }
	'skip$
      if$
    }
  if$
  new.block
  format.btitle "title" output.check
  crossref missing$
    { format.bvolume output
      format.chapter.pages "chapter and pages" output.check
      new.block
      format.number.series output
      new.sentence
      publisher "publisher" output.check
      address output
    }
    { format.chapter.pages "chapter and pages" output.check
      new.block
      format.book.crossref output.nonnull
    }
  if$
  format.edition output
  format.date "year" output.check
  new.block
  output.url % urlbst.pl
  new.block
  note output
  fin.entry
}

FUNCTION {incollection}
{ output.bibitem
  format.authors "author" output.check
  new.block
  format.title "title" output.check
  new.block
  crossref missing$
    { format.in.ed.booktitle "booktitle" output.check
      format.bvolume output
      format.number.series output
      format.chapter.pages output
      new.sentence
      publisher "publisher" output.check
      address output
      format.edition output
      format.date "year" output.check
    }
    { format.incoll.inproc.crossref output.nonnull
      format.chapter.pages output
    }
  if$
  new.block
  output.url % urlbst.pl
  new.block
  note output
  fin.entry
}

FUNCTION {inproceedings}
{ output.bibitem
  format.authors "author" output.check
  new.block
  format.title "title" output.check
  new.block
  crossref missing$
    { format.in.ed.booktitle "booktitle" output.check
      format.bvolume output
      format.number.series output
      format.pages output
      address empty$
	{ organization publisher new.sentence.checkb
	  organization output
	  publisher output
	  format.date "year" output.check
	}
	{ address output.nonnull
	  format.date "year" output.check
	  new.sentence
	  organization output
	  publisher output
	}
      if$
    }
    { format.incoll.inproc.crossref output.nonnull
      format.pages output
    }
  if$
  new.block
  output.url % urlbst.pl
  new.block
  note output
  fin.entry
}

FUNCTION {conference} { inproceedings }

FUNCTION {manual}
{ output.bibitem
  author empty$
    { organization empty$
	'skip$
	{ organization output.nonnull
	  address output
	}
      if$
    }
    { format.authors output.nonnull }
  if$
  new.block
  format.btitle "title" output.check
  author empty$
    { organization empty$
	{ address new.block.checka
	  address output
	}
	'skip$
      if$
    }
    { organization address new.block.checkb
      organization output
      address output
    }
  if$
  format.edition output
  format.date output
  new.block
  output.url % urlbst.pl
  new.block
  note output
  fin.entry
}

FUNCTION {mastersthesis}
{ output.bibitem
  format.authors "author" output.check
  new.block
  format.title "title" output.check
  new.block
  "Master's thesis" format.thesis.type output.nonnull
  school "school" output.check
  address output
  format.date "year" output.check
  new.block
  output.url % urlbst.pl
  new.block
  note output
  fin.entry
}

FUNCTION {misc}
{ output.bibitem
  format.authors output
  title howpublished new.block.checkb
  format.title output
  howpublished new.block.checka
  howpublished output
  format.date output
  new.block
  output.url % urlbst.pl
  new.block
  note output
  fin.entry
  empty.misc.check
}

FUNCTION {phdthesis}
{ output.bibitem
  format.authors "author" output.check
  new.block
  format.btitle "title" output.check
  new.block
  "PhD thesis" format.thesis.type output.nonnull
  school "school" output.check
  address output
  format.date "year" output.check
  new.block
  output.url % urlbst.pl
  new.block
  note output
  fin.entry
}

FUNCTION {proceedings}
{ output.bibitem
  editor empty$
    { organization output }
    { format.editors output.nonnull }
  if$
  new.block
  format.btitle "title" output.check
  format.bvolume output
  format.number.series output
  address empty$
    { editor empty$
	{ publisher new.sentence.checka }
	{ organization publisher new.sentence.checkb
	  organization output
	}
      if$
      publisher output
      format.date "year" output.check
    }
    { address output.nonnull
      format.date "year" output.check
      new.sentence
      editor empty$
	'skip$
	{ organization output }
      if$
      publisher output
    }
  if$
  new.block
  output.url % urlbst.pl
  new.block
  note output
  fin.entry
}

FUNCTION {techreport}
{ output.bibitem
  format.authors "author" output.check
  new.block
  format.title "title" output.check
  new.block
  format.tr.number output.nonnull
  institution "institution" output.check
  address output
  format.date "year" output.check
  new.block
  output.url % urlbst.pl
  new.block
  note output
  fin.entry
}

FUNCTION {unpublished}
{ output.bibitem
  format.authors "author" output.check
  new.block
  format.title "title" output.check
  new.block
  note "note" output.check
  format.date output
  fin.entry
}

FUNCTION {default.type} { misc }

MACRO {jan} {"January"}

MACRO {feb} {"February"}

MACRO {mar} {"March"}

MACRO {apr} {"April"}

MACRO {may} {"May"}

MACRO {jun} {"June"}

MACRO {jul} {"July"}

MACRO {aug} {"August"}

MACRO {sep} {"September"}

MACRO {oct} {"October"}

MACRO {nov} {"November"}

MACRO {dec} {"December"}

MACRO {acmcs} {"ACM Computing Surveys"}

MACRO {acta} {"Acta Informatica"}

MACRO {cacm} {"Communications of the ACM"}

MACRO {ibmjrd} {"IBM Journal of Research and Development"}

MACRO {ibmsj} {"IBM Systems Journal"}

MACRO {ieeese} {"IEEE Transactions on Software Engineering"}

MACRO {ieeetc} {"IEEE Transactions on Computers"}

MACRO {ieeetcad}
 {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}

MACRO {ipl} {"Information Processing Letters"}

MACRO {jacm} {"Journal of the ACM"}

MACRO {jcss} {"Journal of Computer and System Sciences"}

MACRO {scp} {"Science of Computer Programming"}

MACRO {sicomp} {"SIAM Journal on Computing"}

MACRO {tocs} {"ACM Transactions on Computer Systems"}

MACRO {tods} {"ACM Transactions on Database Systems"}

MACRO {tog} {"ACM Transactions on Graphics"}

MACRO {toms} {"ACM Transactions on Mathematical Software"}

MACRO {toois} {"ACM Transactions on Office Information Systems"}

MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}

MACRO {tcs} {"Theoretical Computer Science"}

READ

STRINGS { longest.label }

INTEGERS { number.label longest.label.width }

FUNCTION {initialize.longest.label}
{ "" 'longest.label :=
  #1 'number.label :=
  #0 'longest.label.width :=
}

FUNCTION {longest.label.pass}
{ number.label int.to.str$ 'label :=
  number.label #1 + 'number.label :=
  label width$ longest.label.width >
    { label 'longest.label :=
      label width$ 'longest.label.width :=
    }
    'skip$
  if$
}

EXECUTE {initialize.longest.label}

ITERATE {longest.label.pass}

FUNCTION {begin.bib}
{ preamble$ empty$
    'skip$
    { preamble$ write$ newline$ }
  if$
  "\begin{thebibliography}{"  longest.label  * "}" * write$ newline$
}

EXECUTE {begin.bib}

EXECUTE {init.state.consts}

ITERATE {call.type$}

FUNCTION {end.bib}
{ newline$
  "\end{thebibliography}" write$ newline$
}

EXECUTE {end.bib}

Link | Leave a comment | Add to Memories | Tell a Friend

shellscript to make a imagestrip

Nov. 11th, 2009 | 06:10 pm

Shellscript to make a image strip (tira in portuguese) from a dir with images. It's not recursive. Depends on imagemagick. See the source below for details:

#!/bin/sh

DIR="$1"
for f in $DIR/*
do
convert "$f" -resize x65 "tiny-$(basename $f)"
done
montage -geometry +0+0 -tile x1 tiny-* tira.jpg


--
Happy Hacking!

Link | Leave a comment | Add to Memories | Tell a Friend

Minhas férias na praia

Jan. 10th, 2009 | 01:27 pm



Foto tirada em Meia Praia, Santa Catarina, Brasil. Repare no logo do The Pirate Bay [http://thepiratebay.org/].

Link | Leave a comment | Add to Memories | Tell a Friend

Receita de Sucesso.

Nov. 26th, 2007 | 01:44 am
location: Brasil
mood: cynical cynical

1. Beba uma garrafa de cachaça o mais rápido que conseguir;
2. No dia seguinte não coma nada, evite líquidos também, faça algum exercício físico;
3. No próximo dia, ainda em jejum, assista a um noticiário, de preferencia a um sobre política no Brasil;
4. Escolha algum assunto de que goste e vá estudar;
5. Volte aqui e relate sua experiência;

Link | Leave a comment | Add to Memories | Tell a Friend

bibliografia bibliografia forte

Sep. 7th, 2007 | 04:00 pm

eu não acredito nisso. imaginação e criatividade tem força, bibliografia não

Link | Leave a comment {1} | Add to Memories | Tell a Friend

A POBREZA DO BRASIL TAMBÉM É MINHA

Sep. 1st, 2007 | 04:30 pm
location: Blumenau


Todo brasileiro é pobre.

Link | Leave a comment | Add to Memories | Tell a Friend

roído; ou; A Cidade dos Sonhos

Aug. 29th, 2007 | 09:44 am
location: UDESC
mood: tired tired
music: kraftwerk-morgenspaziergang

O bom de ter o cérebro danificado é que os sonhos ficam mais vívidos, até mesmo quando acordado.
Tags: ,

Link | Leave a comment | Add to Memories | Tell a Friend

sábado no shopping

Jul. 1st, 2007 | 09:00 pm

Quem não reclama conta vantagem.

Link | Leave a comment | Add to Memories | Tell a Friend

motivação

Jul. 1st, 2007 | 08:55 pm

conhece o gosto do fracasso?

Link | Leave a comment | Add to Memories | Tell a Friend

Saw 4tw

Jun. 21st, 2007 | 12:41 am

(00:35:31) Silent(AGAS!): "I wanna play a game"

"All your life you relied on other ppl to code for you"

"Now its time for you to code to save yourself"

"Each compiler error takes away one of your fingers"

"Code a corba application to be free"

Link | Leave a comment | Add to Memories | Tell a Friend

Burocrata Acéfalo

May. 24th, 2007 | 11:00 pm

"Burocracia é um conceito administrativo amplamente usado, caracterizado principalmente por um sistema hierárquico, com alta divisão de responsabilidade, onde seus membros executam invariavelmente regras e procedimentos padrões, como engrenagens de uma máquina. É também usado com sentido pejorativo, significando uma administração com muitas divisões, regras e procedimentos redundantes, desnecessárias ao funcionamento do sistema." [http://pt.wikipedia.org/wiki/Burocrata]

"Acefalia significa literalmente ausência da cabeça. É uma malformação muito menos comum que a anencefalia. O feto acéfalo (sem cabeça) é um gêmeo parasita unido a outro feto completamente intacto. O feto acéfalo tem corpo mas carece de cabeça e de coração; o pescoço do feto está unido ao do gêmeo normal. A circulação do sangue do feto acéfalo é proporcionada pelo coração do irmão. O feto acéfalo não pode existir independentemente do feto ao qual está unido." [http://pt.wikipedia.org/wiki/Acefalia]

Ressaltando a idéia.

Link | Leave a comment {1} | Add to Memories | Tell a Friend

doberman

Oct. 21st, 2006 | 12:38 pm

Eu continuo crescendo e a casca-mundo está fican apertada pra mim. Isso está me deixando irritado, como um... doberman.

Link | Leave a comment {1} | Add to Memories | Tell a Friend

desenvolvimento colaborativo de software

Oct. 12th, 2006 | 01:31 am

a gente não pára, somos formigas construindo um formigueiro!

Link | Leave a comment | Add to Memories | Tell a Friend

a Vela

Oct. 8th, 2006 | 08:30 am

É sábado e chove. Alguém deve ter batido o carro num poste e por isso a luz aqui em casa caiu. Acendi uma vela porque não quis ficar no escuro.

Depois a luz voltou e decidi apagar a vela, pois não precisava mais dela.

Algumas pessoas supersticiosas, eu incluso, pensam: Dado que a chama é vida e que é pelo sopro que recebemos a vida, não está certo usar o sopro, pelo qual nos foi dada a vida para apagar a chama. Não tendo nada com o que abafar a chama e não querendo usar meu corpo, portador da vida dada pelo sopro, agitei o ar com a mão para com o movimento, vida também, apagar a chama. E pelo excesso de movimento, agitação, que o corpo da vela não suportou, a chama se apagou antes que o corpo fosse consumido por completo.

Link | Leave a comment | Add to Memories | Tell a Friend

Culpa

Oct. 7th, 2006 | 09:06 pm

Senti vontade de fumar. Então comprei cigarro, paguei imposto, e fumei.

Queimei minha garganta, sujei meus pulmões, amarelei meu dentes, fiqui zonzo.

Me senti culpado, mas foi de pagar imposto, porquê no Brasil todo mundo devia sentir culpa de pagar imposto.

Link | Leave a comment | Add to Memories | Tell a Friend

daemon

Sep. 18th, 2006 | 09:51 pm

Minha vontade é infinita e se multiplica em mil demônios que me mastigam as entranhas dia e noite.
É este meu corpo, frágil como é, que vem salvando o mundo esses anos todos.

Link | Leave a comment | Add to Memories | Tell a Friend

lapsos de memória só passam a ser sintomas de alzheimer depois dos 60, é isso q me tranquiliza

Sep. 12th, 2006 | 10:22 pm

... esqueci.

Link | Leave a comment | Add to Memories | Tell a Friend

O suco de laranja

Sep. 11th, 2006 | 12:32 am

Não pode ser só isso.
Não acredito que seja isso e só.
E caso fosse, estaria tão ansioso por um suco de laranja?
O que espero encontrar que espero com tanta expectativa?
O que posso encontrar que ainda não tenha experimentado?
E porque o suco e nenhuma comida?
Vi nos cumes das casas, no ar parado, nos movimentos lentos, nos espaços vagos.
Estava lá, eu vi... mas não enxerguei.

Link | Leave a comment {2} | Add to Memories | Tell a Friend

Luddistas

Jul. 16th, 2006 | 01:44 am

Não percebem que o inimigo é uma sociedade que pouco se importa com "classes inferiores".

As máquinas não tem culpa, não tem nem vontade própria nem intenção.

Que tomem consciencia, q construam robôs... pelo moinho de vento e pela semana de 3 dias!

Pro inferno com a tecnofobia!

Link | Leave a comment {1} | Add to Memories | Tell a Friend

Governo federal investe para incluir créditos de celular na cesta básica.

Jul. 14th, 2006 | 02:30 pm
mood: bouncy bouncy

Atualmente comunicação é necessidade básica na vida dos brasileiros, chegando a ser quase mais essencial que a alimentação. Os gastos médios das famílias brasileiras com telefonia superam os gastos com alimento.

Pensando nisso o governo federal está tomando medidas que visam a inclusão digital. Está sendo discutida uma MP para investimentos em pesquisas de embalagens longa-vida para créditos de celular. Se as pesquisas forem bem sucedidas, os créditos passarão a ter uma validade maior e poderão ser estocados por mais tempo.

Com isso será viável o projeto, que já tramita na camara, de incluir uma ração de 10 minutos mensais nas cestas básicas distribuídas às famílias de baixa renda.

Outra consequencia das pesquisas será a redução nos preços dos créditos, já que a quantidade de créditos que apodrecem nos armazéns e são jogados fora todo ano, atualmente em torno de milhões, será reduzida drásticamente. Essa redução do deserdício e dos gastos para as operadoras certamente acarretará em redução dos preços para o consumidor final.

Link | Leave a comment | Add to Memories | Tell a Friend