Arch Linux Brasil : Reestruturação no Arch Linux Brasil
19 de Fevereiro de 2010, 0:00 - sem comentários aindaSaudações colegas,
Conforme alguns de vocês (usuários) perceberam, tivemos algumas baixas altamente significativas tanto no Arch Linux Brasil, quanto no Arch Linux.
Devido a isto, e a necessidade de melhorar os serviços prestados à comunidade de usuários do Arch Linux no Brasil, estamos mais uma vez reestruturando o projeto no quesito colaboração (mão de obra) tanto para conosco, quanto para a distribuição em si.
Desde o final de 2009, várias coisas aconteceram e tornaram um tanto penoso o trabalho para manter as coisas em ordem, tanto interno, como externo (suporte à comunidade). Desta forma, desde o dia 20 de Janeiro de 2010, estamos nos movimentando para colocar a casa em ordem.
O que foi feito?
1- Listagem dos desenvolvedores (colaboradores) inativos; 2- Contato com os inativos para saber se estavam com interesse de continuar o trabalho dentro do projeto; 3- Delegação/Nomeação de pessoas para trabalhar em áreas de interesse. Só foi visto com duas pessoas por enquanto. Os demais ainda serão contactados para tal.
E o que está sendo feito?
1- Redefinição de uma nova comissão; 2- Elaboração de Regras de funcionamento do projeto, de seus serviços e comportamento dos que compõem o mesmo; 3- Planejamento de manutenção, suporte e pendências existentes dos serviços prestados internamente e a comunidade.
Dentro de aproximadamente 2 semanas, estaremos lançando notícias sobre a movimentação do projeto e o que está sendo feito até o momento.
A Nível de esclarecimento, da antiga comissão só restou o Sr. Marcelo "kalib" Cavalcante, e devido a falta de tempo necessário para ajudar o projeto Arch Linux e Arch Linux Brasil, Kessia Pinheiro, ficou responsável pela parte financeira do projeto e ficou inativa como Trusted User. Rodrigo Flores saiu do projeto por motivos pessoais. Hugo Doria e Douglas Soares Andrade não fazem mais parte da equipe de desenvolvedores do Arch Linux. Paulo "thotypous" Matias, não usa mais Arch Linux, consequentemente, deixou seu cargo de Trusted User e saiu do projeto Arch Linux Brasil, mas continua como consultor, assim como Armando e Renato Leão.
Sérgio Berlotto - Site Pessoal : Wallpaper ArchLinux – II
19 de Fevereiro de 2010, 0:00 - sem comentários aindaAgora, alguns wallpapers que achei no VOL, muito bonitos por sinal.
Você pode indicar mais algum que tenha achado também, só comentar…
Sérgio Berlotto - Site Pessoal : Nova arte…
18 de Fevereiro de 2010, 0:00 - sem comentários aindaAgora é a vez de um cartão de visita, ao estilo Arch, com direito a logo e tudo…
Segue o download do SVG para inkscape:
Cartao de Visitas ArchLinux (1)Detalhe, a fonte utilizada foi a Papyrus ( download aqui )
Você pode utilizar a vontade, somente alterando os dados ou até utilizando-o como base para um novo cartão. Se gostou deixe um comentário aqui !
Valeu
Phillipe Smith : Vídeo aulas de Linux
18 de Fevereiro de 2010, 0:00 - sem comentários ainda>Olá a todos!!!
Um dos maiores sites de treinamentos de Linux no Brasil está disponibilizando eu seu portal mais de 100 vídeo aulas de comandos Shell e ferramentas do Linux.
Para quem não tem paciência em ficar lendo livros, tutoriais, manuais, etc., aqui está uma grande oportunidade de conhecer melhor o que esse maravilhoso sistema operacional tem a oferecer.
Confiram os vídeos em: http://www.treinalinux.com.br
Aproveitem que é grátis!!! :D
Publicado: Quinta-feira, 18 de Fevereiro, 2010.
Por: Phillipe Smith ( SmithuX )
Arch Linux Brasil : netcfg v2.5.2 - Nota: Mudanças na configuração automática de Wireless
17 de Fevereiro de 2010, 0:00 - sem comentários aindaEsta release trás um mecanismo completamente novo de configuração automática de conexões wireless/cabeada. O antigo net-auto estava legado e não foi mais incluso. Existem também várias pequenas mudanças na configuração que podem afetar algumas pessoas.
Para a nova configuração automática de conexões wireless/cabeada O novo mecanismo de conexões automáticas trás um bom suporte a roaming e se mostrará mais confiável do que o antigo setup - em particular com configurações wireless mais complicadas. Para migrar para a nova configuração automática wireless siga:
1. pacman -S testing/wpa_action 2. Insira WIRELESS_INTERFACE="" para a sua interface wireless em /etc/rc.conf 3. Adicione net-auto-wireless em seu DAEMONS=().
Nota: Os perfis wpa-config não funcionam com isto, converta-os para perfis wpa-configsection. Um exemplo está incluído em /etc/network.d/examples/
A nova configuração automática de rede cabeada utiliza uma configuração similar - Siga as instruções que foram apresentadas, levando em conta que você irá utilizar o daemon net-auto-wired e a opção de configuração WIRED_INTERFACE.
Novas funcionalidades: - net-auto-wireless/wpa_action - Roaming wireless real/conexão automática. Baseado no mesmo princípio do autowifi. Requer dependências opcionais: wpa_actiond - net-auto-wired - configuração ethernet automática. Requer dependências opcionais: ifplugd - Configurações de Interface - Seta opções para todos os perfis utilizando uma interface - Outpu Hooks - Limpeza interna & melhorias
Mudanças internas: - Utiliza wpa_supplicant para todas as configurações wireless por padrão, incluindo wep/sem segurança. Estes adicionais melhoram o suporte para a maioria dos usuários e aumenta a confiabilidade. - Usa iproute por padrão para toda configuração estática. net_tools que contém o ifconfig é efetivamente obsoleto e ainda não foi visto algum lançamento por mais de 8 anos. O 'ethernet-iproute' e os tipos de conexão 'ethernet' foram unificados para simplesmente 'ethernet'. Toda as opções continuam sendo suportadas e as configurações existentes continuarão funcionando para ambos os tipos. Um link simbólico é criado para garantir que os perfis utilizando 'ethernet-iproute' continuarão funcionando.
Mudanças na sintaxe de configuração: - net-auto e AUTO_NETWORKS está agora depreciado em favor do net-auto-wireless/net-auto-wired. - wireless: se você estava previamente especificando o driver wpa_supplicant em WPA_OPTS, você agora precisa especificar em WPA_DRIVER. - wireless: configurações baseadas em iwconfig para wep/nenhum podem ser utilizados trocando para wep-old ou none-old. Isto não deveria ser necessário e é deixado no lugar apenas para a possibilidade de drivers muito antigos que não suportem wpa_supplicant. - ethernet-iproute: Como o 'ethernet' é agora baseado no iproute, aqueles utilizando 'ethernet-iproute' podem reverter o nome. Existe um link simbólico no lugar, portanto configurações existentes deste nome continuarão funcionando. - wireless-dbus: Não suportado. A interface dbus do wpa_supplicant em particular não está bem documentada e não se encaixa bem na base de código do netcfg. Existe um link simbólico no local para que as configuraçõesutilizando o wireless-dbus continuem funcionando utilizando os scripts de conexão 'wireless'.
Download: netcfg 2.5.2 está no [core] Fonte: ftp://ftp.archlinux.org/other/netcfg/netcfg-2.5.2.tar.gz PKGBUILD: No subversion
Documentação: http://wiki.archlinux.org/index.php/Network_Profiles
Contribuições: Temos alguns grandes contribuidores para esta release: Jim Pryor: Muitas modificações internas e melhorias Thomas Bächler: Auto roaming/conexão baseado no wpa_actiond Obrigado rapazes!
Bugs: No bug tracker como sempre.
Helio Costa - hlegius : Twig – Uma outra engine de templates em PHP
17 de Fevereiro de 2010, 0:00 - sem comentários aindaFui apresentado ao Twig não há muito tempo, mas logo me interessei pela proposta do projeto: simplicidade e flexibilidade ao trabalhar com templates em PHP.
Resumidamente é um projeto criado pelo Fabien Potencier - para quem não o conhece é o criador do symfony framework – e salvo engano há rumores de que ele pretende integrar o Twig à versão 2.x do symfony removendo o PHP super verboso que rola nos templates do symfony desde seu lançamento. * carece fontes concretas
Recursos bacanas e uma sintaxe à lá Django nos templates me chamou muita atenção para não só mais olhar, mas sim, testar para ver melhor a ferramenta.
Não demorou para eu testar como ele se portaria diante de objetos no template e para minha tristeza, para ele ler um atributo, depende nada mais, nada menos do que __get() e __isset(). É possível também, assim como na JSTL ler um atributo iniciado por get. No template você deveria chamá-lo sem esse get. i.e: getFoo() no template seria apenas foo.
Imediatamente, o que vem a mente de quem trabalha com OO ? Quebra brutal de encapsulamento. Sim, __get() por mais fácil que possa parecer, quebra totalmente a segurança de uma variável membro, uma vez que os atributos da mesma tornam-se públicos.
Tentei entrar em contato com o Fabien para ver o motivo que o levou a implementar assim. Ele, bem receptivo - ironia mode on - disse-me: se tiver um patch mande-o, do contrário, peço que seja paciente.
Fiz o patch, revi algumas coisas e mantive compatibilidade com o __get() __isset() que o Twig originalmente aceita e criei um Fork do projeto no GitHub.
Features default
- Suporte a plugins
- Variáveis
- Leitura de arrays por índices int ou string
- Arrays multidimensionais
- Objetos (via __get() __isset() apenas)
- Objetos alinhados (Nested Objects) com __get() __isset() também
- Blocos de controle, loops, etc.
Mudanças
Métodos públicos começados por:
- get
- is
- has
- match
- contain
Podem ser chamados no template sem qualquer problema sem a necessidade dos métodos mágicos.
Abaixo exemplos funcionais:
//... /** * SomeVar * @var string */ private $baz; /** * Bar Object * @var Bar */ private $bar; /** * Magic String with __get * @var string */ public $magic; public function __construct() { $this->baz = "Value of Foobar::\$baz"; $this->bar = new Bar(); $this->magic = 'Magic methods still working !'; } /** * @return string */ public function getBaz() { return $this->baz; } /** * @return boolean */ public function hasBaz() { return (!empty($this->baz)) ? true : false; } private function hasIamNull() { return false; } public function fakehasFoo() { return 'I will not be displayed !'; } public function matchesWith($otherString) { return ('foo' === $otherString); } public function getBar() { return $this->bar; } // ....
No template teriamos:
<body> <h1>Meu título</h1> <p>Bar foo</p> {% if foo.hasBaz %} <p>{{ foo.getBaz }}</p> {% endif %} {% if foo.hasIamNull %} <p>{{ foo.getBaz }}</p> {% endif %} <p>{{ foo.getAbstractBaz }}</p> <p>{{ foo.getIamPublic }}</p> <p>{{ foo.fakehasFoo }}</p> <p>{{ foo.getBar.getHlegius }}</p> <p>{{ foo.getBar.getBarFoo.getTwig }}</p> <p>{{ foo.getBar.getBarFoo.tryToCallMe }}</p>
Rodrigo Flores : Últimos acontecimentos
16 de Fevereiro de 2010, 0:00 - sem comentários aindaPois é... faz tempo que não blogo . O final de 2009 e começo de 2010 foi bastante corrido: tive que terminar meu trabalho de conclusão de curso e comecei a trabalhar. Mas agora as coisas já estão mais calmas.
Finalmente me formei. Agora posso me declarar cientista da computação e já estou aprovado no mestrado, que começa mês que vem. Minha colação de grau foi na quarta feira e agora fico no aguardo da colação de gala, na qual irão meus familiares e amigos.
Em dezembro comecei a trabalhar. Estou trabalhando na agência de publicidade Sabbre fazendo o desenvolvimento de aplicações web com Ruby on Rails. Um trabalho que tem me dado motivos para gostar do que faço e que me tem feito aprender muitas coisas.
Infelizmente, tive que abrir mão de algumas coisas, principalmente de software livre. Saí da equipe de desenvolvimento do archlinux Brasil, pois não estava conseguindo tempo para me dedicar. Como não gosto de assumir compromissos que não posso cumprir, eu acabei optando por sair. Desejo boa sorte e muito sucesso a todas as pessoas que continuam por lá. Continuo agora só gerenciando a equipe de tradução do GNOME, que aliás já está em pleno ritmo de tradução para o GNOME 2.30.
Sérgio Berlotto - Site Pessoal : Wallpaper p/ ArchLinux
15 de Fevereiro de 2010, 0:00 - sem comentários aindaFeito por mim. Simples, e com transparências.
Ah, e aqui o link para o fonte (svg) do Inkscape.
Wallpaper ArchLinux SVG - Inkscape (2)Helio Costa - hlegius : Eu uso estático porque é mais rápido.
14 de Fevereiro de 2010, 0:00 - sem comentários aindaOuvi e já pude ler isto não uma, nem duas, mas sim diversas vezes. Argumentação padrão de quem defende uma “Orientação à Objetos mais estática” – se é que podemos chamar isso de OO.
Vejamos um exemplo nada científico que fiz:
Criei os seguintes exemplos:
<?php class Estatico { public static function fazAlgumaCoisa() { $i = 0; while ($i < 10000) { echo Estatico::outraCoisa(); $i++; } } public static function outraCoisa() { return "Conteúdo"; } } Estatico::fazAlgumaCoisa();
<?php class Instancia { public function fazAlgumaCoisa() { $i = 0; while ($i < 10000) { echo $this->outraCoisa(); $i++; } } public function outraCoisa() { return "Conteúdo"; } } $objInstancia = new Instancia(); $objInstancia->fazAlgumaCoisa();
Os resultados após rodar quatro vezes cada foram:
Ou seja: 91.09 ms para o estático contra 90.07 para a versão non-static. Obviamente foi apenas um teste sem qualquer relevância, pois rodei em minha máquina pessoal com várias outras aplicações rodando em background. É perceptível porém, que a diferença não é absurda que compense o uso de estático por este motivo.
Deixando a questão de “performance” de lado, partimos para questões arquitetônicas:
- Identidade
- SoC – Separation of Concerns (Principio de Separação das Responsabilidades)
- Encapsulamento
- Estado
- DRY – Don’t Repeat Yourself
- Associações – sejam elas composições ou agregações
Ao perder Identidade e Estado as possibilidades daquele método – ou da classe inteira, caso use estático em tudo – tem o leque de utilidade reduzido para:
- Service
- Facade
- Factory
- Helpers – no âmbito de serem apenas funções que realizam determinada tarefa na aplicação sem qualquer valor ao Domínio
Com isso, perdemos também o Princípio de Separação das Responsabilidades, ou seja, a classe perde o controle sobre a integridade dos dados que ela deveria controlar e proteger contra acesso ou alteração indevidos.
Listei o DRY também por um motivo simples: com métodos estáticos, perdemos a grande chance de usar as variáveis de instância da classe à favor da mesma. Exemplo:
class UsuarioEstatico { public static function login($usuario, $senha) { // valida o usuário e zaz $autenticador = new Autenticador(); $autenticador->autentica($usuario, $senha); } public static function logout($usuario) { // verifica se a sessao está aberta $autenticador = new Autenticador(); $autenticador->fechaSessaoPara($usuario); } }
class Usuario implements Autenticavel { private $autenticador; public function __construct($usuario, $senha) { // manipula os dados de entrada $this->autenticador = new Autenticador($this); } public function login() { return $this->autenticador->autentica(); } public function logout() { return $this->autenticador->fechaSessao(); } }
Repare no modelo estático: foi necessário instanciar o antenticador por duas vezes em pontos diferentes. Opa, repetiu ! Mesmo que o autenticador fosse estático, teriamos duplicação, pois teriamos que certificar que o usuário existe e tudo mais. Isso porque não comentei como ficaria o lado cliente dessa implementação estática. O cliente – seja Controller, WebService ou qualquer classe em outra camada no domínio – teria que conhecer muita coisa sobre implementação dessa classe para poder manipulá-la.
Como bônus, repare que perdemos neste caso também o Polimorfismo, uma vez que eu poderia ter esse Autenticador() como base de autenticação para qualquer tipo (Usuário, Funcionário, Gerência, Administradores…)
O uso de métodos ou funções – sim, há diferença – estáticas pode ser bem-vindo nos itens já enumerados. Alguns developers porém, ainda que nestes casos são contra o uso por achar a ideia estática demasiadamente anti-oo.
Arch Linux Brasil : mkinitcpio 0.6 utiliza o busybox em vez do klibc
13 de Fevereiro de 2010, 0:00 - sem comentários aindaO novo mkinitcpio 0.6 traz muitas mudanças, principalmente a remoção do klibc em favor da glibc e do busybox. Essa atualização deve não deverá ser sem traumas e completamente invisível para o usuário final, mas se você é paranóico você ainda pode fazer um backup de sua antiga imagem initramfs e regenerá-la imediatamente após a atualização para ter certeza. Se você utiliza um sistema de arquivos root em NFS, você precisará instalar o novo pacote mkinitcpio-nfs-utils. Se você está interessado, você pode encontrar mais detalhes sobre as mudanças no blog do Thomas Bächler.