iTask-ng e Detour E theme

Tags: , , — July 19, 2007 @ 6:20 pm

iTask-ng é um módulo para o Enlightenment simitar a um lançador do Mac OSX, podendo ser usada como lançador de aplicativos ou barra de tarefas. Veja esses screenshots de exemplo da iTask (o tema do E usado é do Detour):

screenshot1.jpg screenshot2.jpg

O tema detour pode ser obtido aqui, ou, caso prefira compilá-lo você mesmo, pode efetuar os download dos fontes via svn:

tema e17:
$ svn checkout http://detour.googlecode.com/svn/branches/e17

tema etk:
$ svn checkout http://detour.googlecode.com/svn/branches/etk

tema ewl:
$ svn checkout http://detour.googlecode.com/svn/branches/ewl

tema elicit:
$ svn checkout http://detour.googlecode.com/svn/branches/elicit

O detour é um tema completo, podemos dizer, já que ele tem temas para etk e ewl tembém. Para compilar e instalar cada tema, apenas entre no diretório e execute $ make.

Para instalar o iTask-ng você deve obter os fontes aqui. Após isso bastar descompactá-los e instalar como qualquer módulo do E17:

descompactar:

$ tar xzvf itask-ng.tar.gz

instalar:

$ cd itasl-ng/
$ ./autogen.sh
$ make
# make install

Após isso vá em menu -> configuração -> módulos para carregar e configurar o iTask.

Junto ao iTask-ng existem outros módulos, iTask (uma barra de tarefas comum) e winlist-ng (um navegador de janelas feito para substituir o padrão do e17), que podem ser obtidos e instalados do mesmo modo.

Estes três módulos pedem um compositor ativado, mas podem funcionar sem ele. Para instalar um compositor veja neste post. Após instalar o xcompmgr execute no terminal:

$ xcompmgr & (para iniciar o gerenciador do compositor)
$ enlightenment_remote -use-composite-set 1 (parahabilitar o E a usar o compositor)

Depois disso apenas reinicie o E: menu -> Enlightenment -> Reiniciar

Se você gostou deste artigo, inscreva-se em meu RSS feed!

Instalando Enlightenment DR17 CVS

Tags: , , , — @ 5:25 pm

Com as últimas alterações no Enlightenment DR17 tive alguns problemas para atualizar pelos pacotes Debian em http://edevelop.org/debian. Assim, achei melhor remover tudo e compilar o E17 eu mesmo, do CVS.

Antes de mais nada você vai precisar remover todos os pacotes Debian do E17 e EFL previamente instalados, para isso, utilize o aptitude ou synaptic. Os pacotes do edevelop.org/debian sao: enlightenment, e17, e17-desktop, e17-extras, libecore*, libetk*, libevas*, libewl*, libenhance*, libeet*, libembryo*, libefreet*. Coloquei * porque várias delas tem pacotes separados, apenas tenha certeza de remover tudo,você não precisa remover seus arquivos de configuração.

Antes de mais nada, instale as dependencias para o E. Modifique seu /etc/apt/sources.list para utilizar o debian unstable e adicione os pacotes fonte a ele: deb-src (veja apt-pinning caso deseje usar multiplas versões do Debian), depois rode os comandos:

instalando dependencias
# aptitude update
# aptitude -t unstable install gcc make automake1.9 autoconf autoconf-archive libtool gettext libc6-dev zlib1g-dev libjpeg62-dev libpng12-dev libfreetype6-dev libxrender-dev libx11-dev libxinerama-dev libxss-dev libxext-dev libxrandr-dev libxp-dev libxfixes-dev libxdamage-dev libxcursor-dev libpam0g-dev

Agora, para instalar o E17 você precisa obter os fontes via CVS:

download via CVS

cvs -z3 -d :pserver:anonymous@anoncvs.enlightenment.org:/var/cvs/e co e17

Com isso será criada uma paste em seu diretório local chamada e17, dentro deste você deverá entrar nos demais diretórios e compilar cada lib e por último o E, na seguinte ordem:

ordem de diretórios a seguir:

e17/libs/eet
e17/libs/evas
e17/libs/ecore
e17/libs/efreet
e17/libs/embryo
e17/libs/edje
e17/libs/e_dbus
e17/apps/e

Entre em cada diretório e execute os comandos a seguir:

para compilar:

$ ./autogen.sh
$ make
# make install

Mais detalhes da instalação podem ser obtidos no guia do usuário E17, em inglês.

Para facilitar este processo, principalmente se você deseja re-instalar o E periodicamente, para ficar em dia com as atualizações, Carsten “Rasterman” Haitzler, membro do time de produção, fez um script para atualizar o E quando necessário, inclusive instalando as dependências no Debian, que pode ser obtido aqui.

Uma outra opção é o script easy_e17 que pode ser obtido aqui, não cheguei a testá-lo, mas este script é atualizado com frequência e pode ser uma ótima opção.

Se você gostou deste artigo, inscreva-se em meu RSS feed!

O Fim do PHP 4

Tags: , — July 14, 2007 @ 7:28 pm

Nesta última sexta-feira foi anunciada oficialmente o fim do PHP 4 pelo php.net.

Já fazem três anos que o PHP 5 foi lançado, tendo recebido várias melhorias sobre o PHP 4, principalmente quanto a orientação a objetos, como sabemos, e com o PHP 6 a caminho, o PHP 4 será finalmente descontinuado.

PHP 5 é rápido, estável e pronto para produção.

Diz php.net

O time de desenvolvimento do PHP anunciou que o suporte ao PHP 4 continuará até o final deste ano apenas. Após 31/12/2007 não haverão mais lançamento de novas releases do PHP 4.4, porém, falhas de segurança críticas continuarão a ser reparadas até 08/08/2008.

Aproveitem o final deste ano para tornar suas aplicações compatíveis com PHP 5.

Documentação sobre migrações para PHP 5 podem ser encontradas aqui. Informações adicionais podem ser encontradas nos guias de migração para PHP 5.1 e PHP 5.2.

Fonte: http://php.net/

Se você gostou deste artigo, inscreva-se em meu RSS feed!

Funções com número variável de argumentos

Tags: , , — July 11, 2007 @ 6:25 pm

Quando você não sabe quantos parâmetros uma função deverá receber, pode utilizar uma função com número indefinido de parâmetros (geralmente documentadas como function name ([param [, param [, …]]])).

Para isto o PHP4 (e posteriores) possui três funções específicas, que obtém o número e quantidade de parâmetros enviados a função, func_num_args(), func_get_arg() e func_get_args(). Estas funções devem utilizadas dentro de sua função. Veja o código a seguir:

/*diz olá a todos os nome enviados
 */
function sayHelloToAll ()
{
    $numArgs = func_num_args();
    $argList = func_get_args ();
    for ($i = 0; $i < $numArgs; $i++)
    {
        echo "Hello {$argList[$i]}n";
    }
}
//imprime:
//'Hello Paulo'
//'Hello Diovani'
//'Hello SamuraiDio'
sayHelloToAll ('Paulo', 'Diovani', 'SamuraiDio');

Você poderá usar um foreach() para navegar entre os parâmetros obtidos em $argList, mas não é recomendável, visto que gerará um erro caso não seja passado nenhum parâmetro a função (a menos que você inicialize a variável previamente).

Caso precise declarar uma função que receba ou não apenas dois ou três parâmetros, no máximo, seria preferível utilizar uma função com argumentos não obrigatórios (post anterior), pois será mais seguro, e você poderá prever melhor o resultado de seu sistema.

Se você gostou deste artigo, inscreva-se em meu RSS feed!

Parâmetros opcionais em Funções

Tags: , , — @ 5:43 pm

Este post é um complemento para o próximo post. Como minha intenção era falar sobre funções com número de parâmetros indefinidos, achei melhor postar primeiro sobre funções com parâmetros opcionais, uma vez que, na maioria dos casos, esta solução é suficiente.

Caso precise declarar uma função que receba de 0 a n parâmetros, desde que n seja um quantidade definida, podemos utilizar funções com parâmetros opcionais, estes parâmetros terão um valor padrão (sempre uma constante, nunca uma variável) que será utilizado caso não seja passado nenhum parâmetro à função. Veja o exemplo:

function sayHello ($name = ‘SamuraiDio’)
{
    echo “Hello $name”;
}
sayHello (’Paulo Diovani’) ; //imprime ‘Hello Paulo Diovani’
sayHello (); //imprime ‘Hello SamuraiDio’

Os últimos parâmetros que devem ser os opcionais, no caso de mais de um parâmetro.

/*funciona, desde que seja passado o
 *primeiro parâmetro, pelo menos
 */
function sayHello ($name1, $name2 = ‘SamuraiDio’)
{
    echo “Hello $name”;
}
/*não funciona, pois a função esperará pelo
*segundo parâmetro,
*e para este ser informado deverá ser
*também informado o primeiro
*/
function sayHello ($name1 = ‘SamuraiDio’, $name)
{
    echo “Hello $name”;
}

Este método para declarar funções é muito útil, e geralmente usado em funções de ordenação e afins:

/*ordena o array passado em $array
*em ordem crescente.
*se o segundo parâmetro for passado
*como TRUE, o array será
*ordenado em ordem decrescente.
*/
function arrayOrder (&$array, $desc = FALSE)
{
    if ($desc == FALSE)
    {
        sort($array);
    }
    else
    {
        rsort ($array);
    }
    return ($array);
}

Esse tipo de função, com parâmetros opcionais, geralmente são documentadas da seguinte forma: array arraySort ( array array [, bool desc] )

Se você gostou deste artigo, inscreva-se em meu RSS feed!

Meu KDE

Tags: , , — July 6, 2007 @ 4:37 pm

Apenas um ScreenShot do KDE.

KDE + Super Karamba

O painel estilo Mac OSX é o KxDocker, que pode ser obtido aqui, ou por apt-get. A uma nova versão re-escrita do KxDocker com suporte a Real Transparency e Beryl/Compiz, que pode ser obtida aqui, mas ainda não testei esta. Os Widgets da área de trabalho (monitor do sistema e relógio) são providos pelo Super Karamba, que tembém pode ser instalado pelo apt-get:

instalando KxDocker e Super Karamba
# aptitude install kxdocker superkaramba

Os temas do Super Karamba que usei são o Aerio AIO e o ClockMagic.

o Aero AiO trata-se de um monitor do sistema reduzido, com suporte a varios plugins. Para rodar o aplicativo de configuração você também vai precisar do pacore python-qt3:

instalando python-qt3 bindings

# aptitude install python-qt3

Não menos importante… o Wallpaper é uma arte do Deviant Nefis, e pode ser encontrado aqui.

Se você gostou deste artigo, inscreva-se em meu RSS feed!