HMBR


Bash ‘must know’ tips
July 13, 2010, 1:08 am
Filed under: nerd, open source

Usually I read a lot of bash tips, codes, snippets, but some tips are hard to find, let see 2 tips:

Read Line

The ideia is, read each line of a file using bash, some people use terrible ways to do this job.

Bash has a simple way, $(< filename)

echo $(< file.txt)

Apparently the command did’n work, but the fact’s, the command worked, but printed line by line without ‘\n’.

This for show how to work with each line.

for i in $(<file); do echo $i; done

Rename only the extension

This is simple, some tasks need a in file and a out file, the two files can be different, if we need a ‘for’ we need create a good number of files.

Instead of create something like foo.txt and foo.txt.xml, you can create one foo.xml.

Let’s use ${//}  to improve your  work.


$variable = name.foo
echo ${variable/foo/bar}

Inside a for, is awesome:

for i in */*.xml; do xml2xsd $i ${i/xml/xsd}; done

Thanks



Como utilizar o Mascaramento de pacotes para descobrir as causas de um downgrade.
August 25, 2008, 12:33 am
Filed under: gentoo, gentoobr, nerd, open source

Uma das coisas mais comuns no uso do gentoo, principalmente quando mistura pacotes estáveis, testings e unstables (como eu costumo fazer), é o downgrade de algum pacote para alguma versão anterior sem uma razão aparente, como o downgrade de uma versão estável para uma antiga versão.

Isso ocorreu comigo quando fui realizar um emerge -NDuav word:

hellboy ~ # emerge -NDuav world


These are the packages that would be merged, in order:


Calculating world dependencies... done!
[ebuild     UD] dev-util/bzr-1.1 [1.5] USE="bash-completion -curl -emacs -sftp -test" 3,346 kB
[ebuild     U ] app-text/poppler-0.8.6 [0.8.5] USE="jpeg zlib -cjk" 1,435 kB
[ebuild     U ] app-text/poppler-bindings-0.8.6 [0.8.5] USE="cairo gtk -qt3 -qt4 -test" 0 kB


Total: 3 packages (2 upgrades, 1 downgrade), Size of downloads: 4,781 kB


Would you like to merge these packages? [Yes/No]

Vejam o caso do bazaar (dev-util/bzr), mas acontece que a versão 1.5 é uma versão estável como aponta o eix:

hellboy ~ # eix dev-util/bzr
[I] dev-util/bzr
Available versions:  0.17 1.1 ~1.3 ~1.4 1.5 [M]~1.6_rc5 {bash-completion curl emacs sftp test}
Installed versions:  1.5(07:43:31 PM 08/23/2008)(bash-completion -curl -emacs -sftp -test)
Homepage:            http://bazaar-vcs.org/
Description:         Bazaar is a next generation distributed version control system.

A razão deste comportamento é sempre por causa de algum pacote já instalado ou que vai ser instalado, eu acho que a maneira abaixo a mais simples para descobrir qual o pacote esta forçando o downgrade.

Primeiro eu mascaro o todas as versões abaixo da versão já instalada do programa que esta sendo forçado o downgrade, no caso, todas as versões do bazaar abaixo do 1.5.

sudo echo '<=dev-util/bzr-1.4' >> /etc/portage/package.mask

Feito isso, refaço o comando que originou o pedido de downgrade e vejo o resultado:

hellboy ~ # emerge -NDuav world


These are the packages that would be merged, in order:


Calculating world dependencies /
!!! All ebuilds that could satisfy "=dev-util/bzr-1.1*" have been masked.
!!! One of the following masked packages is required to complete your request:
- dev-util/bzr-1.1 (masked by: package.mask)


For more information, see MASKED PACKAGES section in the emerge man page or
refer to the Gentoo Handbook.
(dependency required by "dev-util/bzrtools-1.1.0" [installed])


!!! Problem resolving dependencies for dev-util/bzrtools
!!! Depgraph creation failed.

Dai eu observo que o responsável pelo downgrade é o pacote dev-util/bzrtools, que consta com todas as versões consideradas como instáveis:

hellboy ~ # eix bzrtools
[I] dev-util/bzrtools
Available versions:  ~0.17.1 (~)1.1.0 ~1.3.0 ~1.4.0 ~1.5.0
Installed versions:  1.1.0(02:34:38 AM 02/06/2008)
Homepage:            http://bazaar.canonical.com/BzrTools
Description:         bzrtools is a useful collection of utilities for bzr.

Como é um caso de pacotes instáveis, uma maneira seria apagar o pacote instável ou utilizar a keyword, como eu estou querendo aprender mais do bazaar, prefiro arriscar utilizar o pacote instável.

sudo echo '=dev-util/bzrtools-1.5.0 ~*' >> /etc/portage/package.keywords

Com isso elimino a fonte do downgrade e refaço o meu comando sem medo de downgrades :-D .

hellboy ~ # emerge -NDuav world


These are the packages that would be merged, in order:


Calculating world dependencies... done!
[ebuild     U ] dev-util/bzrtools-1.5.0 [1.1.0] 82 kB
[ebuild     U ] app-text/poppler-0.8.6 [0.8.5] USE="jpeg zlib -cjk" 1,435 kB
[ebuild     U ] app-text/poppler-bindings-0.8.6 [0.8.5] USE="cairo gtk -qt3 -qt4 -test" 0 kB


Total: 3 packages (3 upgrades), Size of downloads: 1,517 kB


Would you like to merge these packages? [Yes/No]

:-D



batch scanning
April 21, 2008, 4:03 pm
Filed under: nerd, open source

As vezes é necessário copiar uma quantidade bizarra de arquivos, uma maneira simples de colocar em batch esta tarefa.

 1 #!/bin/bash
 2
 3 device="hpaio:/usb/Photosmart_C3100_series?serial=BR73NGQ13X04KV";
 4
 5 while true;
 6
 7     do if [[ -a stop_file ]];
 8         then break ;
 9     fi;
10
11     echo "scanning" ;
12     name=`date +%s` ;
13     scanimage -d $device -p >$name.pnm;
14
15     convert $name.pnm $name.jpg;
16     rm $name.pnm;
17
18     echo "sleeping" ;
19     sleep 10s;
20
21     do if [[ -a stop_file ]];
22         then break ;
23     fi;
24
25 done


gtk and cedilla, a big brazillian problem
November 4, 2007, 4:00 pm
Filed under: gnome, open source

One of the mostly annoying thinks about gtk is ‘ç’, especially when you are a Portuguese speaker and use US keyboard + gtk, this is because someone on the past made this choice

at us-intl keyboards, acute+c = ć

I’m not arguing against Polish, Bosnian, Croatian or Serbian, but is a stupid choice when we compare the use of ç in the Latin World (Brazil, France, Spain, Portugal, etc) , even English has some ç.

My way to solve that is simple.

diff gtk.immodules.old /etc/gtk-2.0/gtk.immodules


14c14
< "cedilla" "Cedilla" "gtk+" "/usr/share/locale"
"az:ca:co:fr:gv:oc:pt:sq:tr:wa"
---
> "cedilla" "Cedilla" "gtk+" "/usr/share/locale" "az:ca:co:fr:gv:oc:pt:sq:tr:wa:en"

I hope that, some day, someone will fix that or put at the gtk ebuild a flag like us_latin_cedilla

180 millions of Brazilians will  love it.



Gentoo Tools
April 19, 2007, 5:28 pm
Filed under: gentoo, open source

Gentoo is know as a hard linux distribution, in fact, only the installation is a hard process, everything else is just a piece of cake.

Ok, it’s not easy as ubuntu, but with the right tools, everyone can make magic.

IMHO, no one can have all Gentoo experience without:

  1. equery (useful when you need information, as USE flags, depends, package contents, etc)
  2. eix ( excellent search packages program )
  3. euse (USE flags )
  4. revdep-rebuild (after an emerge -NDuav world, to fix broken packages)
  5. module-rebuild rebuild -X ( after an kernel update, rebuild old modules to fit with your new kernel)

Equery, euse and revdep-rebuild are part of gentoolkit ( emerge gentoolkit), eix and module-rebuild have their own package.

And, of course, vim for everything else :-P



using zenity with emerge
April 3, 2007, 6:48 pm
Filed under: gentoo, open source

Zenity is a great tool, it creates a gtk dialog box using shell commands.

The following line shows how you can make a emerge without worry waiting for a terminal response.

emerge -NDupv world >/tmp/newpackage && zenity --text-info --filename=/tmp/newpackage && zenity --question --text="emerge?" && emerge -NDuv world



FISL 8.0
March 19, 2007, 1:20 am
Filed under: open source

Less than 25 days.

fisl



Powerless Computing
November 29, 2006, 6:30 pm
Filed under: open source

When I listened that OLPC would use hand crank to generate energy, I thought that was a joke, but I was looking for digital ink and I found a very interesting article.

http://www.wired.com/wired/archive/6.02/negroponte.html



Gentoo: Acer Aspire 5672
November 17, 2006, 6:34 pm
Filed under: gentoo, open source

I started a new entry at gentoo-wiki.

It’s about Acer Aspire5672 WLMi.

http://gentoo-wiki.com/HARDWARE_Acer_Aspire_5672_WLMi

You can help me improve it :-)



Firefox 2.0 & SessionSaver
October 24, 2006, 6:00 pm
Filed under: firefox, open source

SessionSaver was one of my favorites plug-ins, and now, is one of news Firefox 2.0 features, but the default is to show the last tabs only if browser crash.

But you can change this behavior, making Firefox acts like the old SessionSaver.

At edit(options)->preferences, change the behavior when Firefox starts to “Show my windows and tabs from last time”

firefox session

Now, you can close your browser without lose your tabs.




Follow

Get every new post delivered to your Inbox.