Ir para o conteúdo
ou

Software livre Brasil

Tela cheia Sugerir um artigo
 Feed RSS

Blogosfera do PSL-Ba

16 de Junho de 2009, 0:00 , por Software Livre Brasil - | 2 pessoas seguindo este artigo.

O Projeto Software Livre Bahia (PSL-BA) é um movimento aberto que busca, através da força cooperativa, disseminar na esfera estadual os ideais de liberdade difundidos pela Fundação Software Livre (FSF), possibilitando assim a democratização do acesso a informação, através dos recursos oferecidos pelo Software Livre. Esta busca tem seus alicerces fundados na colaboração de todos, formando um movimento sinérgico que converge na efetivação dos ideais de Liberdade, Igualdade, Cooperação e Fraternidade.

O Projeto Software Live Bahia é formado pela articulação de indivíduos que atuam em instituições publicas e privadas, empresas, governos ou ONGs, e demais setores da sociedade. Além disso o projeto não é subordinado a qualquer entidade ou grupo social, e não estabelece nenhuma hierarquia formal na sua estrutura interna.


Alexandro Silva: H2HC – Chamada de Trabalhos ( Call for Papers )

25 de Julho de 2010, 0:00, por Software Livre Brasil - 0sem comentários ainda

H2HC

Iniciada a chamada de tabalhos da 7a. edição da H2HC ( Hackers to Hackers ), tradicional evento brasileiro que ocorre desde 2004 ficando melhor e mais profissional a cada ano.

Hackers To Hackers Conference (H2HC) é uma conferência organizada por pessoas que trabalham ou que estão diretamente envolvidas com pesquisas e desenvolvimento na área de segurança da informação, cujo principal objetivo é permitir a disseminação, discussão e a troca de conhecimento sobre segurança da informação entre os participantes e também entre as empresas envolvidas no evento. Com treinamentos e palestras apresentadas por membros respeitados do mundo corporativo, grupos de pesquisas e comunidade underground, neste ano a conferência promete demonstrar técnicas que nunca foram vistas ou discutidas com o público anteriormente.

Contando com patrocinadores, um apoio de peso, excelentes palestras e trainamentos o evento ocorrerá dias 27 e 28 de novembro no Hotel Novotel Morumbi em São Paulo.

Informações

Prazos e submissões

Prazo máximo para submissao de propostas: 25 de Setembro de 2010
Prazo máximo para submissao de slides: 05 de Outubro de 2010
Notificação de aceitação ou reijeição: não antes de 10 de Outubro de 2010

* E-mail para submissões de propostas: rodrigo *noSPAM* kernelhacking *dot* com *

Junto com a submissão do artigo devem ser fornecidos os seguintes detalhes:

– Nome do palestrante, endereço, e-mail, número de telefone e informações gerais para contato
– Uma breve, porém informativa descrição sobre sua palestra
– Uma mini biografia do palestrante, incluindo organização, empresa e afiliações
– Tempo estimado de duração da palestra
– Tópico geral da palestra (ex.: segurança de rede, programação segura, forense computacional, etc.)
– Qualquer outro requerimento técnico para sua apresentação
– A necessidade de visto para entrada no Brasil

Maiores informações:

H2HC Conference – http://www.h2hc.org.br

Google Bookmarks Twitter Technorati Favorites Google Gmail LinkedIn Google Reader WordPress Slashdot Reddit Delicious Multiply Digg Identi.ca Share/Bookmark



Alexandro Silva: Owasp – Chamada de trabalhos AppSec Brasil 2010

24 de Julho de 2010, 0:00, por Software Livre Brasil - 0sem comentários ainda

O OWASP (Open Web Application Security Project) solicita propostas de apresentações para a conferência AppSec Brasil 2010, que ocorrerá na Fundação CPqD em Campinas, SP, de 16 a 19 de novembro de 2010. Haverá mini-cursos nos dias 16 e 17, seguidos de sessões plenárias de trilha única nos dias 18 e 19 de novembro de 2010.

Buscamos pessoas e organizações que queiram ministrar palestras sobre segurança de aplicações. Em particular destacamos os seguintes tópicos de interesse:

Modelagem de ameaças em aplicações (Application Threat Modeling)

Riscos de Negócio em Segurança de aplicações (Business Risks with Application Security)

Aplicações de Revisões de Código (Hands-on Source Code Review)

Métricas Aplicadas a Segurança de Aplicações (Metrics for Application Security)

Ferramentas e Projetos do OWASP (OWASP Tools and Projects)

Tópicos de Privacidade em Aplicações e Armazenamento de Dados (Privacy Concerns with Applications and Data Storage)

Práticas de Programação Segura (Secure Coding Practices)

Programas de Segurança para todo o Ciclo de Vida de aplicações

(Secure Development Lifecycle Programs)

Tópicos de Segurança para tecnologias específicas (AJAX, XML, Flash, etc) (Technology specific presentations on security such as AJAX, XML, etc)

Controles de Segurança para aplicações Web (Web Application Security countermeasures)

Testes de Segurança de aplicações Web (Web Application Security Testing)

Segurança de Web Services ou XML (Web Services, XML and Application Security)

A lista de tópicos não é exaustiva; outros tópicos podem ser abordados, desde que em consonância com o tema central do evento.

Para submeter uma proposta, preencha o formulário disponível em http://www.owasp.org/images/6/68/OWASP_AppSec_Brasil_2010_CFP%28pt-br%29.rtf.zip, que deve ser enviado através da página da conferência no site Easychair: http://www.easychair.org/conferences/?conf=appsecbr2010

Cada apresentação terá 45 minutos de duração, seguidos de 10 minutos para perguntas da platéia. Todas as apresentações deverão estar em conformidade com as regras definidas pelo OWASP em seu “Speaker Agreement”.

Datas importantes:

A data limite para apresentação de propostas é 17 de agosto de 2010 às 23:59, horário de Brasília.
A notificação de aceitação ocorrerá até o dia 8 de setembro de 2010.
A versão final das apresentações deverá ser enviada até o dia 30 de setembro de 2010.
A comissão organizadora da conferência pode ser contactada pelo e-mail: organizacao2010@appsecbrasil.org

Para mais informações, favor consultar as seguintes páginas:
Página da conferência: http://www.owasp.org/index.php/AppSec_Brasil_2010_(pt-br)
OWASP Speaker Agreement (em inglês): http://www.owasp.org/index.php/Speaker_Agreement
Página do OWASP: http://www.owasp.org
Página da conferência no Easychair: http://www.easychair.org/conferences/?conf=appsecbr2010
Formulário para apresentação de propostas: http://www.owasp.org/images/f/f7/OWASP_AppSec_Brasil_2010_CFP.rtf.zip

ATENÇÃO: Não serão aceitas propostas sem TODAS as informações solicitadas no formulário

Fonte:

Wagner Elias – Think Security First

Google Bookmarks Twitter Technorati Favorites Google Gmail LinkedIn Google Reader WordPress Slashdot Reddit Delicious Multiply Digg Identi.ca Share/Bookmark



Lucas Almeida Rocha: Introducing The Board

24 de Julho de 2010, 0:00, por Software Livre Brasil - 0sem comentários ainda

GUADEC 2010 is about to begin and, unfortunately, I will not attend it this year. But I think it’s a good time to introduce a small cool project I’ve been gradually working on in my (rare) spare time. I’d like to present you The Board.

What is The Board? It’s a space for quickly placing daily records: photos, video, audio, text, and more. Think of it as a combination of a note-taking space, a photo or video booth, photo album, sketching board, a digital diary, and (in the future) a nice way to quickly share stuff with your friends. Click on the image above to watch a video showing how the app works now.

The focus is to provide a quick, simple and visually engaging way of keeping small records of your day. I envision The Board as a sort of especial workspace in GNOME. Something that’s “always there” and is tightly integrated with the desktop. For now, it’s simply an app that always runs in full screen – so that I can demonstrate the idea more accurately.

Add to The Board. The Board can be used a quick note taking app. Someone is telling you a phone number you want to take note of? Switch to The Board, press “s” (or use the toolbox) and quickly write down the phone number. You have a favourite photo for the day? Switch to The Board, press “p” and select the photo file (similar thing for video and audio). Want to write down some ideas before you forget them? Switch to The Board, press “t”, and you have a nice lined note paper to write in. Want to record a quick video with a happy family moment? Switch to The Board, press “v”, and you can start recording the video. You got the idea. For now, I have only implemented simple text elements (lined paper and sticky note) and photo. There’s more coming (see “Next steps” below).

One page at a time. You don’t need to remove old things or “manage” the things on The Board. Once you filled the whole screen space, just create another page! Your previous content will be saved and can be easily accessed through the Pages toolbox. You don’t even need to worry about saving your content. The Board saves the latest content of your page every time your change it by editing, adding or removing things, etc.

What is it made of? The Board is built on top of bleeding edge GNOME platform. It’s written in Javascript using the GObject Introspection-based Gjs. The UI is fully written with Clutter and Mx (with some small bits of GTK+ and Clutter-GTK+). It’s a nice example of how you can do cool apps using the GNOME platform nowadays.

What’s the current state? The initial core code and framework is in place. But there are obviously tons of things to be done. The app is not even installable yet! I’m still sketching the API to implement plugins. Video and audio elements are not implemented yet. The graphic design is poor (as I did it myself using some random graphics from internet) and there are lots of open interaction design questions to be sorted out. In order to run the app for development purposes, you’ll need a full GTK+ 3 stack, and latest (as in git clone master) clutter, clutter-gtk, mx, gobject-introspection, and gjs. The official code is in gitorious now.

How can I help? If you want to hack on The Board, grab the code, build it and run it. Play with the app and bring ideas, fix bugs, implement new features, etc. Business as usual. If you’re an interaction designer, you can help by solving some of the hard questions still needing answers in terms of usability and user experience :-) On the graphic design front, I’d really like to have better graphics for all UI elements. I have to find a nice free (as in freedom) font to use in the UI. I’m temporarily using this funny freeware font. Users can help by giving constructive feedback on how we can make The Board more interesting, useful, and exciting. In any case, contact me and we can discuss how and what to do.

So, what are the next steps? As I said before, there are tons of things to be done. Here’s what I have in mind in terms of short-term and long-term roadmap.

Come up with a simple Plugin API. By plugins I mean either the implementation of new types of things to be added to The Board’s pages or new types of background – which can contain animations and react to user events by the way. For example, a background could be a wooden table with a light switch that can be turned on and off. Or the background can change colour depending on the current time of the day.

Integration with other apps. Basically, users should be able to add new things to The Board through existing apps. For example, An Add to the Board option in Nautilus when right-clicking image, video, audio, or text files. Similar thing with apps like EOG or F-Spot – an Add image to The Board option. Integration with web browsers would be nice too: saw an interesting image on a webpage? Just add it to The Board. Or maybe add your text selection as a sticky note in The Board. Still on the app integration front, I’m doing some work to integrate a Cheese dialog into The Board so that you can add photos and videos from webcam without having to switch apps.

Online experience. This is one area that I’m still unsure how to handle. My initial idea is that you can share anything in The Board pages. From a user perspective, you would just add something to The Board and click “Share”. On the server side, I’m thinking of having a WordPress instance with a plugin to present The Board’s custom types just like you see them in your desktop. i.e. sticky notes in The Board should look exactly the same in your “Board webpage”. The advantage of implement this as a WordPress plugin is that it would be installable in a large number of personal servers from day one. Tumblr is definitely the main inspiration in terms of online experience here as it offers a rich media blogging approach.

Anyway, you probably got the idea after reading this (maybe too) long blog post. If you got excited about The Board and want to help with code, graphics, design ideas, or just simple feedback, post a comment here or contact me directly. I’ll be hacking on The Board in my spare time as usual. But things can definitely move much faster if it gets more people involved. If you’re into writing simple and beautiful software using GNOME’s latest technologies, this should be a fun project to contribute to!



Serge Rehem: Bazedral - Pensamentos e Dicas para uma Empresa mais Colaborativa

22 de Julho de 2010, 0:00, por Software Livre Brasil - 0sem comentários ainda

Foi muito legal a apresentação feita no FISL 11. O público superou minhas expectativas, ainda mais se tratando de uma palestra as 13h. Não sei se foi por causa do título, pois achei que "Explorando a Cultura Colaborativa das Comunidades de Software Livre" já tava meio manjado e não atrairia interesse.



Estão aí os slides. Se quiser contribuir esteja à vontade para comentar. Será muito bem vindo!



Carlos José Pereira: "Esse pessoal de Piracicaba, não é mole não!!"

22 de Julho de 2010, 0:00, por Software Livre Brasil - 0sem comentários ainda


Costumo ouvir (e fazer...) muitas críticas à nossa Universidade, em especial por conta da burocracia absurda que assola nosso trabalho docente e de pesquisa, no dia-a-dia.

Mas dessa vez, devemos aplaudir de pé!! O motivo é a nomeação, feita pelo CONSU/UESC, do novo prédio da Pós-Graduação como PAVILHÃO PROF. MAX DE MENEZES.

Não tive, infelizmente, muito contato com o Max no dia a dia. Mas nesse pouco contato já dava pra sentir aquela simpatia infinita, acompanhada daquele sorriso maroto piracicabano... O cara era, simplesmente, muito gente boa!!

Vai ser bom entrar no Pavilhão Prof. Max de Menezes. Vai ser como estar perto do coração dele mais uma vez.

Tchau Max! A gente se esbarra por aí um dia desses!

Abraços!

Carlão



Wille Marcel: Pyroom

17 de Julho de 2010, 0:00, por Software Livre Brasil - 0sem comentários ainda

Tela software Pyroom

Hoje instalei o Pyroom, o objetivo dele é retirar os elementos da tela que nos distraem enquanto escrevemos. Aquele menuzinho (presente na imagem acima) aparece apenas se clicarmos com o botão direito do mouse. Além disso e do comando de ajuda (CTRL+H), o Pyroom não tem mais nenhum outro menu ou botão.

Escrevi o último post do blog (e também este) utilizando ele e me parece que cumpre bem o objetivo. Apesar de algumas notificações ainda aparecerem na tela, você não vai clicar toda hora no ícone do Instant Messenger, não vai alternar as janelas tanto quanto se estivesse num editor de texto comum e nem se preocupar com a formatação. Claro que não é garantia de concentração, no entanto pode ajudar.

Por enquanto, funciona apenas em GNU/Linux.

Site: http://pyroom.org



pedro kroger: Configuring Emacs as a Python IDE

15 de Julho de 2010, 0:00, por Software Livre Brasil - 0sem comentários ainda

Emacs is a huge beast. It can read email, play tetris, act as a file manager, display google maps, and even edit videos. It has support for many, many programming languages and has many features related to programming. Unfortunately, emacs doesn’t have a full programming environment for python out-of-the-box.

In this post I’ll show how to configure emacs to write Python programs. We want to have not only basics things like syntax highlighting, but also code completion, easy access to Python’s documentation, ability to check for common mistakes, run unit tests, debugging, and a good interactive programming environment.

This setup is based on ipython and python-mode, but it’s also possible to use roperopemacs, and the auto complete mode as we can see here. I didn’t have much luck with ropemacs in the past but I’ll try it again in the future.

Tools installation and configuration

First we should install the tools we need.

  • python-mode. There are two python modes; python.el and python-mode.el. Although python.el comes with GNU Emacs 22, I recommend you use python-mode.el since it has support for ipython. (There’s some talk about merging the two modes, but I don’t know it’s current status). Download and install python-mode.el and put the following in your .emacs:
    (require 'python-mode)
    (add-to-list 'auto-mode-alist '("\\.py\\'" . python-mode))
  • ipython. Ipython is a powerful python shell with advanced features and nice code completion. Check ipython’s website for documentation and screencasts. If you’re using debian or ubuntu, install it with:
    sudo apt-get install ipython

    To configure ipython, edit ~/.ipython/ipy_user_conf.py and add your options. I like to use ipy_greedycompleter so it will complete things like "foo".TAB.

  • ipython.el. It allows you to use python-mode with ipython. Download and install ipython.el and put the following in your .emacs:
    (require 'ipython)
  • lambda-mode. This is only for aesthetics. When you install lambda-mode.el it will display a lambda character (λ) when you type lambda:Lambda mode in emacs
    The full name “lambda” will still be there, emacs is only displaying it differently. I like lambda-mode because it makes the code look shorter, neater, and cooler. Download and install lambda-mode.el and put the following in your .emacs:

    (require 'lambda-mode)
    (add-hook 'python-mode-hook #'lambda-mode 1)

    I had to set the variable lambda-symbol to the following, but YMMV:

    (seq lambda-symbol (string (make-char 'greek-iso8859-7 107)))

    There are other ways to have pretty lambdas and pretty symbols in emacs, check the Emacs Wiki page to see which one you prefer.

  • anything. We will use anything for code completion. Download and install anything.el, anything-ipython.el, and anything-show-completion.el, and add the following to your .emacs:
    (require 'anything)
    (require 'anything-ipython)
    
    (when (require 'anything-show-completion nil t)
       (use-anything-show-completion 'anything-ipython-complete
                                     '(length initial-pattern)))
  • Change comint keys. Comint is a minor-mode to deal with interpreter commands in an emacs buffer. It’s used by many modes, including ipython. Comint uses M-p and M-n to cycle backwards and forward through input history. I prefer to use the up and down arrow keys:
    (require 'comint)
    (define-key comint-mode-map (kbd "M-") 'comint-next-input)
    (define-key comint-mode-map (kbd "M-") 'comint-previous-input)
    (define-key comint-mode-map [down] 'comint-next-matching-input-from-input)
    (define-key comint-mode-map [up] 'comint-previous-matching-input-from-input)
  • pylookup. We will use pylookup to search python’s documentation within emacs. First install the python documentation locally. If you use debian or ubuntu you can install it with one command:
    apt-get install python2.6-doc

    If the python documentation is not available as a package for your system, download it from the python website and unzip it somewhere in your computer. Then download pylookup and follow the instructions in the README file. Run pylookup.py to index the database by running:

    ./pylookup.py -u file:///usr/share/doc/python2.6-doc/html

    This command will generate a database file (pylookup.db). Naturally, you need to put the correct path for the python documentation. Next you need to add the following to your .emacs. Again, replace the values to match your system.

    (autoload 'pylookup-lookup "pylookup")
    (autoload 'pylookup-update "pylookup")
    (setq pylookup-program "~/.emacs.d/pylookup/pylookup.py")
    (setq pylookup-db-file "~/.emacs.d/pylookup/pylookup.db")
    (global-set-key "\C-ch" 'pylookup-lookup)
  • autopair. A common feature in modern editors is to insert pairs of matching elements such as parenthesis, quotes, and braces. There are many ways to do this in emacs and installing autopair.el is probably the easiest one. You can configure it to work in all modes and exclude the modes you don’t to have it activated. For instance, I have it configured to work globally, except in the lisp-mode, where I use paredit:
(autoload 'autopair-global-mode "autopair" nil t)
(autopair-global-mode)
(add-hook 'lisp-mode-hook
          #'(lambda () (setq autopair-dont-activate t)))

I also have the following to in my .emacs to make autopair work with python single and triple quotes:

(add-hook 'python-mode-hook
          #'(lambda ()
              (push '(?' . ?')
                    (getf autopair-extra-pairs :code))
              (setq autopair-handle-action-fns
                    (list #'autopair-default-handle-action
                          #'autopair-python-triple-quote-action))))
  • pep8 and pylint. These scripts are good to check your program for style errors and common mistakes. Install pylint and pep8:
    apt-get install pylint pep8

    and download and install python-pep8.el and python-pylint.el to integrate them with emacs and add the following to your .emacs:

    (require 'python-pep8)
    (require 'python-pylint)
  • delete trailing space. When you type the return key in emacs-mode it’ll invoke py-newline-and-indent. As the manual says, it “deletes the whitespace before point, inserts a newline, and takes an educated guess as to how you want the new line indented.” This is great and I love this feature, but one unintended consequence is that you may end up with blank lines with trailing spaces. Python doesn’t care, but the pep8 tool will complain. Put the following in your .emacs to delete the trailing spaces when saving a file:
    (add-hook 'before-save-hook 'delete-trailing-whitespace)
  • ipdb package. The ipdb package makes it easy to set breakpoints in the ipdb debugger. It’s easy to install it using easy_install (duh :-P ):
    easy_install ipdb
  • reimport package. reimport is a replacement for Python’s reload function that reloads all modules and sub-modules consistently. It’s useful for long-running programs and interactive development. Install it with easy_install:
    sudo easy_install reimport
  • Templates. Yasnippet is a textmate-like templates for emacs. Download it here and pet the following in your .emacs:
    (require 'yasnippet-bundle)
    (yas/initialize)
    (yas/load-directory "~/.emacs.d/my-snippets/")
  • You can also install flymake to check the syntax on the fly. I find it distracting, so I don’t use it.

    All right, these are the tools we need! Now we can go on and use these features.

    Using emacs-mode

    So now we’re ready to go. Open a python file, say test.py, type C-c ! (py-shell) to start the python interpreter. Go back to test.py (with C-x o) and type C-c C-c (py-execute-buffer) to send the whole buffer to the interpreter. In the following picture we can see how it works; it’s neat to be able to write code in one file and test it in the interpreter without the whole edit-compile-run-test cycle:

    ipython inside emacs

    Code completion

    Code completion is very useful and I find a must to be able to complete methods for both built-in and user-defined classes. For instance, if you type “os.path.” and M-tab emacs will show all methods available in os.path:

    Python code completion in emacs

    This completion method uses anything and you can use C-n and C-p to navigate through the completion items (when you’re done type return). This works for used-defined methods and functions too:

    Python code completion in emacs

    Access to documentation

    Python has excellent documentation and it’s a huge bust in productivity to be able to access the documentation without leaving the editor. By using pylookup we can type C-c h to search any term in the python documentation. For instance, if we type “os.path.basename” and then C-c h to invoke the documentation, pylookup will open the documentation page for os.path.basename using the default browser configured in emacs (usually firefox):

    Python documentation in emacs

    However, many people prefer to use w3m inside emacs to browse technical documentation. With w3m we can read the documentation without leaving emacs, making it easy to copy code snippets and not needing to switch to an external program (to much switching can kill focus). Here’s the same documentation in the above picture but using w3m this time:

    Python documentation inside emacs

    If you search for something with more than one possible answer, pylookup will ask you to choose among some possibilities, for instance, if I search for print I’ll get many options to choose from:

    Python documentation in emacs

    Code quality

    The pep8 script checks if your code follow the PEP8 style guide. You can run it inside emacs by typing M-x pep8. The key M-x ` will jump to the place in the source code where the next error occurs:

    Pep8 in emacs

    You can run pylint inside emacs with M-x pylint, it behaves in a similar way to pep8:

    Pylint in emacs

    Unit tests

    It’s possible to run unit tests inside emacs if we use the compilation mode.  Type M-x compile and replace what will appear (most likely “make -k”) with your favorite python program to run unit tests. As with pep8 and pylint (they both use the compilation mode), you can type M-x ` to navigate to the next error. In the following screenshot we can see that test_square_of_100_is_1000 is not correct:

    Run unit tests inside emacs

    Debugging

    There are many ways to debug python code. I like to use ipdb, ipython’s debugger, because it has advanced features like code completion and syntax highlighting. With the -pdb flag Ipython will go directly to the debugger when an exception is raised, instead of just printing a stack trace. (you may want to edit ~/.ipython/ipythonrc to make the change permanent).

    To set breakpoints in the regular python debugger, you need to add the following lines to your code:

    import pdb; pdb.set_trace()

    With the ipdb package we can set breakpoints in a similar way if using ipdb:

    import ipdb; ipdb.set_trace()

    I like to make emacs highlight the lines that set breakpoints, so I can easily visualize where the breakpoints are and remember to remove them from the code after I’m done debugging. I use the following code to accomplish that:

    (defun annotate-pdb ()
      (interactive)
      (highlight-lines-matching-regexp "import pdb")
      (highlight-lines-matching-regexp "pdb.set_trace()"))
    
    (add-hook 'python-mode-hook 'annotate-pdb)

    Notice in the following screenshot how the line that sets the breakpoint is highlighted and the program execution stopped at the breakpoint. I used the command n (next) to advance to the next statement:

    Debugging python with ipdb and emacs

    I have a function to add breakpoints mapped to C-c C-t so I can set breakpoints easily:

    (defun python-add-breakpoint ()
      (interactive)
      (py-newline-and-indent)
      (insert "import ipdb; ipdb.set_trace()")
      (highlight-lines-matching-regexp "^[ 	]*import ipdb; ipdb.set_trace()"))
    
    (define-key py-mode-map (kbd "C-c C-t") 'python-add-breakpoint)

    Templates

    For textmate-like templates I use yasnippet (be sure to watch its demo). With it you can define templates easily and quickly to fill things for you, like a new-style class with documentation and an __init__ method. Python doesn’t have much boilerplate, but using yasnippet can help you to write code even faster.

    Finding your way in the source code

    Emacs allows us to navigate through source code by using tags. When you see a function call you can jump to its definition with M-. (find-tag) and jump back with  M-* (pop-tag-mark). Another useful command is tags-query-replace, to rename functions, methods, etc. To use it we need to generate a TAGS file. Emacs comes with the etags command but I recommend exuberant tags:

    sudo apt-get install exuberant-ctags

    Usually I put the following code in a Makefile to generate a TAGS file for a project:

    ctags-exuberant -e -R --languages=python --exclude="__init__.py"

    Dealing with multiple files

    As we have seen, we can program in an interactive style in python-mode by sending the buffer to the python interpreter with C-c C-c. This works well for single file scripts and libraries, but no so well for more complex modules with sub-modules. For instance, if you open file4.py in the mainmodule bellow and execute it with C-c C-c it’ll fail if it depends on other submodules.

    mainmodule
    |--- __init__.py
    |--- submodule1
         |--- __init__.py
         |--- file1.py
         |--- file2.py
    |--- submodule2
         |--- __init__.py
         |--- file3.py
         |--- file4.py

    We can define a master file using the py-master-file variable; python-mode will execute the file set in the variable instead of the current buffer’s file. This variable can be set as a file variable, but I prefer not to pollute every single freaking .py file in a module with a file variable, so I use a directory variable instead. Another advantage of using directory variables in this case is that each member of a team can set the py-master-file to reflect their file system layout. Create a file called .dir-locals.el in mainmodule‘s root with the following content:

    ((python-mode . ((py-master-file . "/path/to/interactivetest.py")
                     (tags-file-name . "/path/to/TAGS"))))

    (Note that I also define the tags’ filename, so emacs’ll automatically load it when I read a python file located in this directory.)

    To make this work I use a master file called interactivetest.py in the module’s root to re-import the module with the reimport package. This file is not really part of the module and I don’t even check it under version control. Now, every time we hit C-c C-c, regardless of what file we are changing, python-mode will execute interactivetest.py again, and update the whole module. For instance, this is what I have in the interactivetest.py for my aristoxenus library:

    import reimport
    import aristoxenus
    reimport.reimport(aristoxenus)

    But I may add a few things in the interactivetest.py file to make testing things interactively easier and to be able to save it between coding sessions:

    from aristoxenus.parse import humdrum
    foo = humdrum.parse_string("**kern\n4C")

    Of course this is not a substitute for unit tests, but it’s nice to have foo available in the REPL so I can inspect it and quickly see what’s going on.

    Conclusion

    As you can see, we can have a nice programming environment for python in emacs. It may look like a lot of work, but in reality we only need to download and configure already existing packages. However, it would be nice to have a full-fledged development environment for python like slime.

    I didn’t mention many things like the emacs code browser, the git interface, and the window session manager. They are not particularly specific to python, but they contribute to turn emacs into a powerful tool for development. Maybe I’ll mention then in another post.

    I intend to make a screencast in the future showing these features, so stay tuned. Meanwhile, what do you use to develop python code?



    Aurelio A. Heckert: O que são Redes Sociais Virtuais Federadas?

    14 de Julho de 2010, 0:00, por Software Livre Brasil - 0sem comentários ainda

    Evan
    Nesse interessante artigo (traduzido) Evan Prodromou, fundador da StatusNet e criador do Identi.ca, explica o que são (ou serão) as Redes Sociais Virtuais Federadas. Uma idéia não muito nova, mas que comeou a ganhar força a pouco tempo e é de grande interesse para a comunidade do Noosfero.

    No domingo, 18 de julho de 2010, os desenvolvedores StatusNet farão parte de uma conferencia sobre Federated Social Web (redes sociais virtuais federadas). Vamos trabalhar com outros desenvolvedores de outras empresas e projetos Open Source para definir que tecnologias serão usadas para permitir que as pessoas em diferentes redes sociais conectarem-se umas com as outras, como amigos e colegas. Eu gostaria de aproveitar a oportunidade para descrever exatamente o que entendemos por Federated Social Web.

    Nós estamos evitando o termo "Open Social Web". "Open" pode significar um monte de coisas diferentes. A Federated Social Web é específica: significa que entidades distintas controlam partes do sistema, mas essas partes são conectadas com regras acordadas para uma integração agradável e útil.

    Muitos sistemas de Internet trabalham desta forma. A World Wide Web é um banco de documentos federado. Os documentos são armazenados em servidores diferentes, mas temos uma única interface limpa através de nossos navegadores. E-mail é um sistema de mensagens federado; enviamos e-mail de uma empresa para outra sem pensar duas vezes, porque a federação é muito simples e indolor (pelo menos para os usuários finais).

    A grande coisa sobre sistemas federados é que qualquer um pode participar. Qualquer pessoa, empresa ou organização pode possuir um site e fazer parte da Web. Qualquer pessoa ou empresa pode possuir e executar o seu servidor de e-mail.

    Além disso, detalhes de implementação são escondidos, e sob seu controle. Ninguém precisa se preocupar sobre como funciona seu servidor de e-mail. Suas escolhas de como executar o seu e-mail (Gmail? Sistema de email da empresa? Seu próprio site vaidoso? E-mail ISP?) São vastas. Preços por e-mail são baixíssimos porque há muita concorrência.

    Há outras grandes coisas sobre sistemas federados. Eles são extremamente robustos. Eles incentivam a inovação técnica. Eles são mais seguros.

    Mas as nossas tecnologias de redes sociais atuais não funcionam assim, não mesmo. Do ponto de vista de um site de rede social típico, se você não tiver uma conta no site, você não existe. A única maneira dos seus amigos naquele site interagirem com você é convidando você a participar do site. Apesar do fato de que existem centenas de outros sites de redes sociais na internet, quase todos funcionam como se não houvesse nenhuma outra rede social na Web.

    Esse modelo tem prevalecido no mundo dos negócios e nos governos, mas está mudando. Muitas empresas estão mantendo redes sociais para seus empregados; essa é uma maneira eficiente de compartilhar informações e se conectar com as pessoas dentro da organização. Os trabalhadores precisam se conectar a pessoas fora da organização, também. O seu patrão não vai querer hospedar uma rede social para os trabalhadores dos seus fornecedores ou seus clientes, seria melhor se eles tivessem sua própria rede social conectada com a sua.

    Há uma tendência de ver o ímpeto no sentido da federação das redes sociais virtuais como marginal (periférico e sem importância). Os primeiros usuários da Web e do e-mail provavelmente foram classificado como marginais, também. Mas o e-mail e a World Wide Web criaram uma imensa riqueza e bem-estar social para as pessoas que os usaram — muito mais do que as monolíticas, redes sociais isoladas que as sucederam.

    Por outro lado, é perigoso acreditar que essa arquitetura superior irá vencer inevitavelmente. Fazendo uma teia social federados que é onipresente, divertido, útil e vai ser um desafio. Mas eu acho que os blocos estão no lugar, ou quase no lugar, e que nós estamos passando da fase de concepção e implementação de uso real da Web pública. Amanhã vou listar os componentes de um web federados sociais, não vejo como eles, e dar uma idéia de onde estamos com os protocolos necessários para suportá-los.

    Fonte: http://status.net/2010/07/13/what-is-the-federated-social-web


    Você quer ajudar o Noosfero e o SoftwareLivre.org a entrar na nova era das redes sociais federadas? Participe do projeto e ajude a implementar!   ;-)



    Alexandro Silva: Black Hat – Palestrante apresentará roteadores xDSL vulneráveis a ataque de DNS rebinding

    13 de Julho de 2010, 0:00, por Software Livre Brasil - 0sem comentários ainda

    O pesquisador de segurança da Informação Craig Heffner da Seismic apresentará a palestra “How to Hack Millions of Routers.” na próxima edição da Black Hat que ocorrerá de 24 a 29 de julho em Las Vegas.

    Nesta palestra será apresentado um ataque capaz de invadir roteadores ADSL de vários fabricantes como Dell, Linksys, Verizon Fios entre outros. Ele está desenvolvendo um software capaz de invadir estes roteadores usando a variante de uma antiga técnica conhecida como “DNS rebinding”.

    A vulnerabilidade que permite este ataque já foi “corrigida” a anos, porém Heffner afirma que a correção não foi bem aplicada permitindo que usuários conectados tenham suas sessões captudas ( hijacking ) e suas informações roubadas.

    A falha é explorada através do DNS ( Domain Name System ), segundo Heffner será criado um site “isca” que ao ser acessado executará um script. Este script fará a captura da sessão permitindo que o atacante acesse a rede da vitima.

    A dúvida que paira no ar é como este ataque será apresentado no evento, pois os navegadores possuem ferramentas de detecção quando um site está infectado com um possível malware. O pesquisador afirma que as correções implementadas no OpenDNS e no plugin NoScript do Firefox não bloqueiam o ataque.

    Veja a lista dos equipamentos onde a invasão foi bem sucedida:

    Mas nada é fácil como parece. Para o ataque ser bem sucedido o roteador da vitima deverá possuir alguma vulnerabilidade explorável ou simplesmente estar configurado com a senha padrão do usuário admin. O que não será muito difícil de encontrar já que são pouquissimos usuários que se preocupam em alterar a senha padrão do seu roteador ou mantem o firmware do equipamento atualizado.

    Então segue a dica de ouro:

    “Mantenham o firmware dos seus routers atualizados e alterem a senha padrão do usuário admin”

    E como o próprio Heffner diz:

    “Eu não sou o primeiro a falar na Black Hat sobre DNS rebinding, nem serei o último…”

    Fonte:

    “Millions” Of Home Routers Vulnerable To Web Hack

    Referências:

    DNS rebinding
    Protecting Browsers from DNS Rebinding Attacks
    [Video] DNS Rebinding with Robert RSnake Hansen

    Google Bookmarks Twitter Technorati Favorites Google Gmail LinkedIn Google Reader WordPress Slashdot Reddit Delicious Multiply Digg Identi.ca Share/Bookmark



    Vicente Aguiar: Projetos de Lei sobre Softwares Livres no Brasil

    11 de Julho de 2010, 0:00, por Software Livre Brasil - 0sem comentários ainda

    Nesse ano de eleições, acredito que seja importante que a gente conheça melhor quais os Projetos de Lei (PL) e, consequentemente, os deputados e senadores que buscam promover  adoção de softwares livres no Brasil (no âmbito federal).

    Muitos são os projetos que dispõe sobre adoção e preferência de softwares livres, porém é importante ressaltar que, desde a elaboração do primeiro projeto em 1999, nenhum deles foi ainda aprovado.

    Por isso, aproveito também que para informar que é possível acompanharmos diretamente esses projetos e, ao meso tempo, pressionar nossos queridos deputados e senadores por meio da plataforma on-line da câmara!


    Projetos de Lei Federais

    Projeto Autor            
    Ementa              
    Data Situação
    PL-2269/1999 Dep. Walter Pinheiro PT /BA

    Dispõe sobre a utilização de programas abertos pelos entes de direito público e de direito privado sob controle acionário da administração pública.

    15/12/1999

    Aguardando Deliberação na CCTCI.


    PL-3051/2000 Dep. Werner Wanderer  PFL /PR

    Determina a preferência a sistemas e programas abertos na aquisição e uso de programas de computadores pelos órgãos da Administração Pública Federal.

    18/05/2000

    Aguardando Deliberação na CCTCI, apensado ao PL-2269/1999

    PL-4275/2001 Dep. Luiz Bittencourt - PMDB /GO

    Dispõe sobre a adoção de sistemas e programas de computador abertos pelos órgãos da Administração Pública Federal.

    14/03/2001

    Aguardando Deliberação na CCTCI, apensado ao PL-2269/1999

    PL-7120/2002 Dep. Sérgio Miranda - PCdoB /MG

    Determina a adoção, pelo Poder Público, de sistemas abertos, na oferta de facilidades e na prestação de serviços públicos por meio eletrônico.

    07/08/2002 Aguardando Deliberação na CCTCI, apensado ao PL-2269/1999
    PL-2152/2003 Dep. Coronel Alves - PL /AP

    Determina a adoção de software livre em todos os órgãos e entidades públicas federais.

    02/10/2003 Aguardando Deliberação na CCTCI, apensado ao PL-2269/1999
    PL-3684/2004 Dep. Carlos Eduardo Cadoca - PMDB /PE Dispõe sobre medidas creditícias de incentivo às empresas de desenvolvimento de programas de computador livres. 01/06/2004 Aguardando Deliberação na CCTCI.
    PL-6685/2006 Senador  Serys Slhessarenko - PT /MT

    Acrescenta os §§ 4º e 5º ao art. 5º da Lei nº 9.998, de 17 de agosto de 2000, que institui o Fundo de Universalização dos Serviços de Telecomunicações, para conceder preferência, no financiamento de equipamentos de telecomunicações, a produtos que utilizem "software aberto".

    07/03/2006 Aguardando Deliberação na CCTCI.
    PL-2469/2007 Dep. Paulo Teixeira - PT /SP

    Dispõe sobre uso do Fundo Setorial para Tecnologia da Informação - CTInfo para financiar o desenvolvimento de software livre.

    22/11/2007 Aguardando Deliberação na CCTCI, apensado ao PL-3684/2004
    PL-3070/2008 Dep. Paulo Teixeira - PT /SP Dispõe que os órgãos e entidades da Administração Pública Direta, Indireta, Autárquica, bem como os órgãos autônomos e empresas sob o controle estatal adotarão, preferencialmente, formatos abertos de arquivos para criação, armazenamento e disponibilização digital de documentos. 25/03/2008

    Aguardando Deliberação na CCTCI, apensado ao PL-2269/1999

     

    Caso então alguém conheça algum outro projeto que não esteja na tabela acima, sintam-se mais do que livre para divulgar por aqui. ;-)



    Rafael Gomes: Instalando o eAccelerator no Debian Lenny

    9 de Julho de 2010, 0:00, por Software Livre Brasil - 0sem comentários ainda

    eAccelerator é uma ferramenta sob licença livre, criada para otimizar/acelerar o uso do PHP no servidor. Ele é responsável por aumentar a performance de scripts PHP através de cache desses scripts em estados de compilados, assim esse overhead de compilação é quase completamente eliminado.

    Eu acredito que a aplicação tem que ter suporte a esse tipo de “aceleração”, pois na aplicação que precisei configurar (Moodle) tinha uma opção que explicitamente informa que usará o eAccelerator, ao invés da opção nenhum que está setada por padrão.

    A instalação é simples, efetue os passos abaixo e seja feliz:

    Será necessário o pacote php5-dev, que contém os códigos fontes do PHP5, que será usado para compilação do acelerador PHP. Digite os seguinte comando:

    # aptitude install php5-dev
    # cd /usr/local/src
    # wget http://bart.eaccelerator.net/source/0.9.6.1/eaccelerator-0.9.6.1.tar.bz2
    # tar xvjf eaccelerator-0.9.6.1.tar.bz2

    Precisamos preparar o ambiente, com os comandos abaixo iremos exportar a variável PHP_PREFIX para o ambiente, que será utilizado em outros passos:

    # export PHP_PREFIX=”/usr”
    # $PHP_PREFIX/bin/phpize

    É necessário criar o diretório, com a devida permissão, e modificar um parâmetro do kernel para o funcionamento do Eaccelerator:

    # mkdir /var/tmp/eaccelerator
    # chown www-data:www-data /var/tmp/eaccelerator
    # echo “268435456″ > /proc/sys/kernel/shmmax

    Com os comandos abaixo iremos preparar e iniciar o processo de compilação do código fonte do Eaccelerator:

    # cd eaccelerator-0.9.6.1
    # ./configure –enable-eaccelerator=shared –with-php-config=$PHP_PREFIX/bin/php-config
    # make
    # make install

    Obs : Lembre-se que é necessário o compilador gcc e binário make para execução dos passos acima.
    No Debian é possível instalar com o comando abaixo;
    # aptitude install build-essential

    Adicione no o arquivo /etc/php5/apache/php.ini o seguinte conteúdo:

    ; Eaccelerator

    extension=”eaccelerator.so”
    eaccelerator.shm_size=”256″
    eaccelerator.cache_dir=”/var/tmp/eaccelerator”
    eaccelerator.enable=”1″
    eaccelerator.optimizer=”1″
    eaccelerator.check_mtime=”1″
    eaccelerator.debug=”0″
    eaccelerator.filter=”"
    eaccelerator.shm_max=”0″
    eaccelerator.shm_ttl=”360000″
    eaccelerator.shm_prune_period=”0″
    eaccelerator.shm_only=”0″
    eaccelerator.compress=”1″
    eaccelerator.compress_level=”9”

    Após essa configuração, reinicie o apache com comando abaixo:

    # /etc/init.d/apache2 restart
    Acesse o arquivo /etc/sysctl.conf e adicione as seguintes linhas:

    # Eaccelerator
    kernel.shmmax = 268435456



    Aurelio A. Heckert: Recuperando um commit em um repositório GIT corrompido

    8 de Julho de 2010, 0:00, por Software Livre Brasil - 0sem comentários ainda

    Meu amigo Diguliu (Estagiário da Colivre que trabalha no desenvolvimento do Noosfero) é um cara muito fuçador que recentemente fez o que todo nerd faz: fode de vez algo que estava tentando melhorar. :-)

    Diguliu estava melhorando a interface de tarefas do usuário no Noosfero e eu investi algumas horas com ele nessa implementação, mas antes que ele mandasse o patch para o projeto ele teve uma grande idéia: fazer um script para retirar todos os espaços em branco em fim de linha automaticamente no código do noosfero. Naturalmente ele não estava no branch da melhoria das tarefas e mais naturalmente ainda seu script detonou vários objetos em .git/objects/ que registram commits, arquivos e outras entidades de um repositório git.

    Com a árvore local do git quebrada nada funcionava, nem mesmo um "git status", então não era possível voltar ao branch das tarefas e recuperar todo aquele trabalho. Diguliu tentou arduamente desfazer a cagada o engano, mas nem a proximidade de Terceiro (grande mestre detentor de conhecimentos sobre a vida, o universo e todas as coisas) lhe levou a solução.

    Pausa para tristeza, choro e luto.

    Dias depois, ao retornar para Salvador, decidi tentar recuperar a bagaceira o repositório local de Diguliu, armado de paciência e medo de ter que refazer tudo. Avancei! Já era possível executar um "git status", mas (claro) não foi o suficiente.

    Neste momento me lembrei de uma genial palestra proferida por Moises (grande mestre detentor de conhecimentos que responderiam todas as perguntas que você jamais terá a idéia de fazer) na sede da Colivre que apenas eu assisti. Naquela oportunidade ele falou que o git guarda cada arquivo, de cada versão, cada diretório e cada commit como objetos dentro de .git e cada objeto referenciava seus correlatos (filhos de um diretório, commit anterior, etc...). Então se eu pudesse achar o objeto do commit das tarefas, de alguma forma acharia as modificações. (sem depender do trabalho anterior de tentar recuperar o repositório) :-D

    Achei pela internet que "git-cat-file -t id" poderia me dizer o tipo do objeto. Mas que é o id? Liste .git/objects/ encontrará vários diretórios com 2 caracteres e dentro de cada um desses vários arquivos de 38 caracteres. O id é um hash hexa de 40 caracteres "dir+arquivo".

    Para pegar informações em um objeto do tipo commit basta "git-cat-file commit id"

    No commit havia a palavra Task, então com essa linha eu achei os commits e listei apenas os que poderiam me interessar:
    find .git/objects -type f | while read f; do cod=$(echo $f | sed -r 's/^.*objects.(..).(.*)$/\1\2/'); if [ $(git-cat-file -t $cod) = commit ] && ( git-cat-file commit $cod | grep -iq Task ); then echo COMMIT $cod É TASK; fi; done 2>/dev/null

    Escolhi alguns para ver em detalhe a saída de git-cat-file commit id e peguei o último commit.

    Agora é a hora da emoção. Me bastaria pegar os arquivos vinculados a esse commit. Nos detalhes dele você vê "tree" que é uma referência para a raiz do repositório contendo as modificações do commit.

    $ git cat-file commit 567da3fdeed7811bfbc2ade8512740bdfb725d82
    error: wrong index v2 file size in .git/objects/pack/pack-4f679ea236ca3d1f63ad11a4a07bc2d8ccd46b2b.idx
    tree 438af284bd6ed59ddf1b61e209f2fa1e854410ff
    parent 34593e717c723526ec7eabd8b49f1fd016f309ec
    author Rodrigo Souto  1276869876 -0300
    committer Rodrigo Souto  1276869876 -0300
    
    Multi Task Processing
      - Base interface.
      - Controller logic.
      - Graciously show/hide functions with the smooth slide of Jquery. ^^
      - (...)
      - "Beautifulnification".

    Dentre os objetos em .git/objects/ temos os do tipo "tree" (que na prática são os diretórios) e estes podem ter seu conteúdo (suas referências) listadas com git-ls-tree commit id. Dessa forma eu posso ver outros diretórios e arquivos dentro deste.

    Os arquivos são objetos do tipo "blob" e podemos recuperar seu conteúdo com git-cat-file blob id.

    Como fazer isso manualmente para toda arvore do Noosfero (ou qualquer outro projeto) seria insuportável, fiz o script cp-git-tree:

    id=$1    # The tree id
    # $2 is a directory path where tree will be copied
    echo ">> Entering on $id"
    git-ls-tree $id | while read line; do
      name="$( echo "$line" | cut -f2 )"
      data="$( echo "$line" | cut -f1 )"
      child_type=$( echo $data | cut -d' ' -f2 )
      child_id=$( echo $data | cut -d' ' -f3 )
      if [ $child_type = tree ]; then
        echo ">> Creating \"$2/$name\""
        mkdir "$2/$name"
        cp-git-tree $child_id "$2/$name"
      fi
      if [ $child_type = blob ]; then
        if [ "$(git-cat-file -t $child_id)" = "blob" ] 2>/dev/null; then
          echo ">> Copping \"$name\" ($child_id)"
          git-cat-file blob $child_id > "$2/$name"
        else
          echo ">> \"$name\" ($child_id) is not a real blob"
        fi
      fi
    done

    E executei provendo a arvore do commit:

    cp-git-tree 438af284bd6ed59ddf1b61e209f2fa1e854410ff /tmp/commit-tasks 2>/dev/null

     

    O git-cat-file e o git-ls-tree travaram (uma vez cada um) e forram mortos com killall, certamente por terem encontrado objetos corrompidos. Então posso ter perdido uma ou outra modificação (muita coisa foi feita nesse commit), mas recuperei a maior parte do trabalho.

    Agora é só revisar (por segurança) os arquivos em /tmp/commit-tasks, mover seu conteúdo para um novo repositório saudável do Noosfero, concluir as implementação e mandar o patch!



    Leonardo Couto Conrado: IPFW - Criação de regras no IPFIREWALL

    8 de Julho de 2010, 0:00, por Software Livre Brasil - 0sem comentários aindaUtilizado o FreeBSD 7.2 e o IPFW2 para este artigo.

    Inicialmente é bom informar as duas formas de funcionamento do IPFW, no que diz respeito, ao tratamento dos pacotes que trafegam por ele. Os modos em que ele pode funcionar é:

    Modo Filtro de pacotes:

    - Restringir o tráfego baseado no endereço IP de origem ou destino;
    - Restringir o tráfego através da porta (TCP ou UDP) do serviço.

    Modo Firewall statefull:

    - Herda as caracteristica do firewall filtro de pacotes e extende outras;
    - Filtro de estado de sessão;
    - Armazena o estado das conexões e filtra com base nesse estado. Na verdade, o firewall guarda o estado de todas as últimas transações efetuadas e inspecionava o tráfego para evitar pacotes ilegítimos(Evitar técnicas de ip spoofing, por exemplo).

    Primeiramente iremos abordar a construção das regras no IPFW utilizando o modo filtro de pacotes. Para isso é necessário criar um arquivo onde será colocado as nossa regras e que será aonde o IPFW irá ler as regras, para isso foi criado o arquivo abaixo:

    # mkdir -p /tools/firewall


    # touch /tools/firewall/rules.fw

    Iremos editar o arquivo rules.fw:

    vi /tools/firewall/rules.fw


    Agora iremos começar a escrever as nossas regras, mas como seria a sintaxe para escrever as regras?

    Abaixo uma breve explicação sobre a sintaxe das regras do IPFW:

    CMD [número_regra] [prob probalilidade] ação [log [logamount número] ] corpo_regra

    CMD = add, nat, set, table.
    [número_regra] = Varia de 1 a 65535 e indica a sequência em que as regras serão processadas.
    [prob probabilidade] = Define uma probabilidade para aplicar a regra. Varia de 0 a 1.
    ação =
    allow | accept | pass | permit
    Tem o mesmo sentido aceitar pacote.
    deny | drop
    Tem o mesmo sentido, descartar pacotes que correspondem a essa regra. A busca termina.
    check-state, count, deny, divert porta, fwd ip[porta], pipe número, queue número, reset, skipto número, tee porta... etc.
    [log [logamount número]] = Caso mencionada a palavra log, cada vez que um pacote coincidir com esta regra será feito um log, através do syslog.
    corpo_regra = Contém uma ou mais exigências que o pacote precisa coincidir para a regra ser atendida. Ex.: dst-ip endereço, dst-port porta, established, frag etc.

    Exemplos práticos:

    ### Liebrar udp da rede 192.168.0.0/24 para a rede 192.168.1.0/24
    add 00100 allow udp from 192.168.0.0/24 to 192.168.1.0/24 in
    ### Regra para o INPUT do trafego SSH
    add 00200 allow tcp from any to 192.168.1.1/32 22 in
    ### Regras para o INPUT do VNC da rede 192.168.1.0/24 para VNCs na rede 192.168.1.0/24
    add 00300 allow tcp from 192.168.1.0/24 to 192.168.0.0/24 5900 in setup

    Quando um pacote entra no firewall, ele é comparado com a primeira regra no conjunto de regras e avança uma regra de cada vez, que se deslocam de cima para baixo do conjunto em ordem crescente do número de seqüência das regras. Quando o pacote se adequa a seleção de parâmetros de uma regra, o campo de ação é executada e a busca do conjunto de regras termina para o pacote, Isto é referido como "o primeiro que se adequa ganha" metodo de procura. Se o pacote não corresponde a nenhuma das regras, ele é pego pela regra padrão obrigatório IPFW, número 65.535, que nega todos os pacotes e descarta-los sem qualquer resposta de volta para o remetente, a não ser que se coloque na regra para que o IPFW envie uma mensagem de resposta.




    Tiago Bortoletto Vaz: Just a record from my first jazz performance in SP

    8 de Julho de 2010, 0:00, por Software Livre Brasil - 0sem comentários ainda

    Recital SouzaLima - 2010.1

    Songs:

    * Affirmation (Jose Feliciano)
    * Breezin’ (Bob Woomack)
    * Phase dance (Pat Metheny)
    * Água de beber (Tom Jobim / Vinicius de Morais)
    * Marina (Dorival Caymi)
    * Samba de Orly (V. de Morais / Chico Buarque / Toquinho)
    * É de manhã (Caetano Veloso)
    * Coração leviano (Paulinho da Viola)
    * Pecado capital (Paulinho da Viola)
    * Folhetim (Chico Buarque)
    * É com esse que eu vou (Pedro Caetano)
    * Álibi (Djavan)
    * Capim (Djavan)

    Thanks to friends who came out to hear us // #fun :)




    Lucas Almeida Rocha: Not going to GUADEC

    8 de Julho de 2010, 0:00, por Software Livre Brasil - 0sem comentários ainda

    GNOME Group Photo

    Unfortunately, I will not attend GUADEC this year. Not a good time to be out for a week (or even a few days) as our little daughter is still demanding a lot from us – especially from Carol because of the breastfeeding. Going to GUADEC with family could be an option but we’ll be going to Brazil for a well-deserved vacation the week after the conference. Not a good timing.

    I’m sure GUADEC will be especially awesome this year, full of interesting talks and discussions about the upcoming GNOME 3 release. I’ll miss the jam session, the soccer match, the interesting chats about GNOME and life, the beer with friends, etc. But I think staying home is the right thing to do this year.

    One small wish: every year, some nice t-shirts are handed out at GUADEC from the conference organizers, GNOME Foundation, sponsoring companies, etc. I would love if someone could send me some of those t-shirts via post or through someone coming to London after the conference. Size M please!

    Have a nice GUADEC everyone!



    Tags deste artigo: nordeste psl bahia