Feeds:
Posts
Comments

Para aqueles que começaram a programar em Python agora, encontrar regras de indentação, e mais importante, quebrar elas e receber erros no shell, não deve ser algo muito interessante.
Eu particularmente gosto das regras do Python, elas agregam valor as boas práticas de coding. Tudo para que seu código seja mais legível e outros possam lê-lo um dia, em um futuro, sem precisar te xingar.

Como auxílio as boas práticas é possível encontrar alguns cheats e ferramentes que podem ajudar.
Primeiro, os cheats (e infelizmente essa é apenas para usuários vim/vi).

  • Nada mais que 80 colunas: essa ideia não poderia ser melhor, já que nem todo mundo usa um monitor wide screen, certo. Basta por essa linha no seu .vimrc silent match ErrorMsg /\%>80v/
  • 4 espaços: essa vem direto do PEP08. Diferente do Kernel que usa 8 espaços ou GNU style. Python usa 4 espaços (nada de tab!). Basta setar as seguintes linha no seu .vimrc e tudo funcionará perfeitamente.
set smartindent
set tabstop=4
set softtabstop=4
set shiftwidth=4
set expandtab
  • Retab: útil se o seu arquivo está zoneado por tabs. Basta digitar ESC: %retab no vim. Ele vai arrumar seu .py de acordo com a configuração anterior de espaços.
  • Removendo espaços no final da linha ou traling white spaces: autocmd BufWritePre *.py :%s/\s\+$//e.

Bacana, certo?

Para auxiliar ainda mais, que tal usar uma ferramenta chamada pep8 que vai te ajudar a checar se o seu arquivo está de acordo com o pep08 e de quebra usar o Pylint para analisar estaticamente o seu código?

Ambas são incrivelmente fáceis de se usar. Então, espero que essas dicas tenham sido úteis =)

Essas mensagens apareceram para mim quando pensei em atualizar o gtalk para hangout. Para bom entendedor o que o texto diz está mais do que claro. A finalidade no entanto pode ser interpretada como você bem quiser. Pra mim, o Google deixou a muito de ser uma empresa inovadora e passou a ser uma empresa de propagandas. Não por menos, afinal é assim que eles fazem os seus milhões.

Não venda sua liberdade.

 

image

 

image

Dica simples e rápida para quem costuma usar sites de cotação de passagens para comprá-las.

  1. Primeiro abra uma aba para o site de cotação. 
  2. Faça a cotação e salve o preço 
  3. Agora abra um outro browser (de preferência outro mesmo), só que dessa vez em modo privativo (aquele modo que você usa pra coisas escusas).
  4. Abra o site que você usa para cotar as passagens e faça uma nova cotação para o mesmo trajeto e período. Veja a diferença.

Aqui eu fiz um teste e tive 2.900k pra um destino X e em modo privativo obtive 2.500k para o mesmo destino dentro de um mesmo período. 
Sim senhoras e senhores, todos os sites de compra e cotação de passagens aéreas fazem isso. Eu já havia percebido isso, você provavelmente também. O grande problema é que não é ilegal, mas que é uma safadeza é. 

Espero que a dica sirva para vocês, pra mim esta servindo.

OBS: Por razões óbvias eu não postei nenhuma imagem de sites de cotação – não quero ser processado. Por isso, vejam vocês mesmo, afinal é bem simples.

 

I finally diced post something about that monsters…

You know, EFI/UEFI is the new magical stuffs that one day visa replace the BIOS and do nice things in UEFI mode, no more legacy. Maybe you already had heard something about that, mainly that new Win8 and Security Boot.

But, let’s talk a little about EFI, a truly little, :P.

These days I need to play with EFI in Linux and  dude it was not a nice thing. First because the material about how to play with EFI/UEFI and linux is poor or almost impossible to find out there in web. Yep, I found of lot specs by Intel talking about EFI and UEFI specs , ok. But I really wanted to find more material, more practical material.

So, just let talk about my Study of Case. In my Kernel I’m trying to grab a physical address that is an EFI_MEMORY_RUNTIME range. It’s means that it needs to be mapped in runtime. This address or efi runtime service neither a boot service, and here the things becomes a little bit trick and complicated. The biggest problem is that I need to run that physical address since it is an address to a function in EFI space, but into that function I  have some mysterious access to another physical address, what makes me unable to map that address to a virtual and use it nice and clean.  (I already did it and fall in a unable access page)

Now I really need to run it in physical space using some EFI trick, but is also now that my Odyssey starts. In any place in web I could found any good material or any little example of how to do that. Ok, that I’m trying to do is insane and maybe impossible or a nice party hard.

In EFI we/I found that efi_phy_prelog (thanks some god, in linux we have a little bit of efi files), that seems allow that a piece of physical code/address can run between it and efi_phys_epilog. But of course that does not work for me in my tests =).

The problem: Run a physical function/physical address into the kernel space in physical mode using some trick EFI or other else magical thing.

Solution: Try to put the whole map to this function in kernel table, when I say whole I really want to say that, include that physical address that is into the black box function.

Hope solution: EFI could me drive to this physical mode and run my code without all theses tricks and painful things.

Frustration: none in linux-efi list could help me/us in that adventure time through EFI and linux experience.

If you want to know more about EFI/UEFI take a look in that and be happy or cry.

If you already play with something like that =) feel free to give me clues, tips, any thing!

P.S: Sorry for my bad English, it is still being improved.

[1] http://wiki.phoenix.com/wiki/index.php/EFI_SYSTEM_TABLE

[2] http://www.intel.com/content/www/us/en/architecture-and-technology/unified-extensible-firmware-interface/efi-homepage-general-technology.html

De forma bem desleixada irei narrar minhas aventuras no meio dos códigos do kexec, o que venho aprendendo, o que acho que sei (prq sinceramente sempre surgem dúvidas), etc.

 

Primeiro, o que raios é o kexec? 

O kexec é uma ferramenta ou antes um patch no kernel que quando utilizado pode realizar um reboot no seu kernel de forma rápida sem passar pela bios. Não é só pra isso que ele serve. Ele também server para que você execute o kdump. Na verdade o kdump é outro código, mas se você pesquisar vai entender como que os dois estão relacionados e como o kdump depende do que o kexec faz.

Tudo começa em duas partes: duas sys calls (kexec_load e kexec_reboot), a primeira é responsável por carregar o kernel passado pelo kexec -l na memória em kernel space e deixar ele pronto para o reboot. A segunda, como o nome já diz, realiza o processo de reboot, mas com um detalhe a ela é passada uma flag que determina que esse reboot não é um reboot normal, é sim um reboot kexec. (eu planejo criar alguns .svg para que isso fique mais claro, por enquanto vamos só no modo texto :P).

Em uma área reservada nos 1G de memória se encontra um código com nome sugestivo chamado purgatory (ou purgatório) que é o responsável por fazer o handle entre o kernel antigo e o novo kernel. Depois de tudo isso, o kernel novo é rebootado e txaram. Um fast reboot é realizado.

Essa foi a explicação alto nível, sem detalhes que tinha para dar. Em próximos posts pretendo desenhar mais, detalhar mais, e trazer pedaços de código. 

:)

I never there was thought that one day in my life I’d be a victim in credit card fraud. Yep, I was, Today I had this amazing surprise to see that my card was being used by another person.

All this makes me think about how easy is to use the numbers of a random credit card to stealing others. It is so easy, so unbelievably. So, why we still have that problem ?. When the sites that deal with buys and the credit card companys will do this agreement about more security tools and ways to avoid that kind of trick?

 

I hope this action one day, until there…no more web buys for me, once that I cannot trust in web companies (buys) site. =)

Primeiro de muitos eu espero, quick-post :)

Kernel é aquele cara que vem no seu SO, que faz mágicas que você não vê…ou vê **abre o código aí**.

O meu Linux…e aqui vai em poucos passos como compilar o seu kernel, criar seus módulos e ser feliz com um kernel novo.

  • Pegue o código do kernel que você quer, aqui você é livre: https://github.com/torvalds/linux
  • A primeira coisa que você tem que fazer é configurar o seu kernel, que módulos você vai querer, como você vai querer ele, mas como esse é um quick-post, você talvez não queira configurar, talvez sim ** try gentoo **. Vamos no modo lazy: make –oldconfig, esse mágico comando vai configurar o seu kernel de acordo com .config do seu kernel já corrente. Isso quer dizer que as configurações serão iguais.
  • make -j<número de cores>. Esse comando compila seu kernel, e se você tiver mais de um core, tire proveito dele usando o -j ;).
  • make modules: cria os módulos que foram setados na sua configuração (tente make menuconfig e veja por si mesmo se não quiser usar o modo lazy –oldconfig)
  • make modules_install: Don’t panic! Esse comando não vai sobrescrever nada no seu sistema, vai apenas criar uma pasta com os módulos compilados do SEU kernel.
  • Agora você tem um /lib/modulos/<versão-do-seu-kernel>
  • No meu caso em, arch/x86/boot/ eu tenho o meu bzImage gerado. Com esse cara na mão, é só setar ele no meu grub2, ou em qualquer outro bootloader que você tenha.
  • Muito provavelmente você vai precisar de um initramfs (ele vai montar seu /root, arrumar seus módulos, tudo bonitinho). Use makeinitrd <nome-do-seu-initramfs> <versão-do-kernel-que-vc-quer>. Nesse caso o kernel que você acabou de compilar
  • Pronto, copie o bzImage (renomeie para um nome bonito de sua escolha) e o initramfs gerado, se você não o gerou dentro do /boot. Configure o seu bootloader, reboot sua máquina e seja feliz escolhendo o SEU kernel.

 

Era isso, rápido como quem rouba…I be back soon ;), só que com mais detalhes.

Follow

Get every new post delivered to your Inbox.