sexta-feira, 29 de Agosto de 2014

Functional Programming in Java / Livro


Functional Programming in Java: Harnessing the Power Of Java 8 Lambda Expressions



Download.


Divirta-se!

Divagações com Actualizações Automáticas ( Sistema ) / Debian Wheezy


Os updates em Debian Wheezy, podem ser para alguns uma enorme dor de cabeça, por isso existe uma forma de ter esses mesmos updates instalados de forma automática, sem qualquer intervenção do user ou do admin.

Ao mesmo tempo, podemos também receber um email sobre esses mesmos updates diariamente.


1. Configurar o sistema para Unattended Upgrades

Para a instalação automática dos upgrades diariamente, é necessário ser instalado o unattended-upgrades.

Ao mesmo tempo é bom ter no sistema o /usr/bin/mail, caso desejemos configurar o unattended-upgrades, para assim essas notificações serem enviadas via email, executar:

apt-get install unattended-upgrades bsd-mailx

Importa dizer que o unattended-upgrades, pode ser configurado, alterando o ficheiro /etc/apt/apt.conf.d/50unattended-upgrades, executar:

vi /etc/apt/apt.conf.d/50unattended-upgrades

A normalidade, diz que a configuração padrão é suficiente, mas se for necessário realizar qualquer tipo de alterações, deve ser lido com a máxima atenção os comentários existentes nesse mesmo ficheiro.

Vou pressupor, que desejamos especificar a origem dos upgrades, sendo que o padrão é ( stable e security ), então é possível colocar em blacklist os pacotes que não devem sofrer os updates, podemos ter o sistema de email, caso existam problemas, podemos ter o sistema de remoção de dependências não utilizadas após um update, ou até mesmo fazer com que o sistema execute um reboot automático se necessário após um update.

NOTA: as barras duplas ( // ), servem como comentários, por isso tudo o que se encontra imediatamente a seguir não será avaliado.

Vejamos ...

// Automatically upgrade packages from these origin patterns
Unattended-Upgrade::Origins-Pattern {
        // Archive or Suite based matching:
        // Note that this will silently match a different release after
        // migration to the specified archive (e.g. testing becomes the
        // new stable).
//      "o=Debian,a=stable";
//      "o=Debian,a=stable-updates";
//      "o=Debian,a=proposed-updates";
        "origin=Debian,archive=stable,label=Debian-Security";
};

// List of packages to not update
Unattended-Upgrade::Package-Blacklist {
//      "vim";
//      "libc6";
//      "libc6-dev";
//      "libc6-i686";
};

// This option allows you to control if on a unclean dpkg exit
// unattended-upgrades will automatically run
//   dpkg --force-confold --configure -a
// The default is true, to ensure updates keep getting installed
//Unattended-Upgrade::AutoFixInterruptedDpkg "false";

// Split the upgrade into the smallest possible chunks so that
// they can be interrupted with SIGUSR1. This makes the upgrade
// a bit slower but it has the benefit that shutdown while a upgrade
// is running is possible (with a small delay)
//Unattended-Upgrade::MinimalSteps "true";

// Install all unattended-upgrades when the machine is shuting down
// instead of doing it in the background while the machine is running
// This will (obviously) make shutdown slower
//Unattended-Upgrade::InstallOnShutdown "true";

// Send email to this address for problems or packages upgrades
// If empty or unset then no email is sent, make sure that you
// have a working mail setup on your system. A package that provides
// 'mailx' must be installed. E.g. "user@example.com"
//Unattended-Upgrade::Mail "root";

// Set this value to "true" to get emails only on errors. Default
// is to always send a mail if Unattended-Upgrade::Mail is set
//Unattended-Upgrade::MailOnlyOnError "true";

// Do automatic removal of new unused dependencies after the upgrade
// (equivalent to apt-get autoremove)
//Unattended-Upgrade::Remove-Unused-Dependencies "false";

// Automatically reboot *WITHOUT CONFIRMATION* if a
// the file /var/run/reboot-required is found after the upgrade
//Unattended-Upgrade::Automatic-Reboot "false";


// Use apt bandwidth limit feature, this example limits the download
// speed to 70kb/sec
//Acquire::http::Dl-Limit "70";

Seguidamente, é necessário criar o ficheiro /etc/apt/apt.conf.d/02periodic, para assim poderem ser habilitados os unattended upgrades, executar:

vi /etc/apt/apt.conf.d/02periodic

// Enable the update/upgrade script (0=disable)
APT::Periodic::Enable "1";

// Do "apt-get update" automatically every n-days (0=disable)
APT::Periodic::Update-Package-Lists "1";

// Do "apt-get upgrade --download-only" every n-days (0=disable)
APT::Periodic::Download-Upgradeable-Packages "1";

// Run the "unattended-upgrade" security upgrade script
// every n-days (0=disabled)
// Requires the package "unattended-upgrades" and will write
// a log in /var/log/unattended-upgrades
APT::Periodic::Unattended-Upgrade "1";

// Do "apt-get autoclean" every n-days (0=disable)
APT::Periodic::AutocleanInterval "7";

NOTA: mais uma vez este ficheiro é auto-explicativo.

Portanto, esta é uma tarefa bastante fácil de ser executada, sendo que os unattended upgrades, vão ser executados uma vez por dia via script no cron ( /etc/cron.daily/apt ).

O script, vai colocar os logs em /var/log/unattended-upgrades/unattended-upgrades.log.

Eis um exemplo de log imediatamente após um upgrade bem sucedido:

2014-08-07 17:49:30,878 INFO Initial blacklisted packages:
2014-08-07 17:49:30,880 INFO Starting unattended upgrades script
2014-08-07 17:49:30,880 INFO Allowed origins are: ["('Debian', 'stable')", "('Debian', 'wheezy-security')"]

[...]

2014-08-07 17:51:51,290 INFO All upgrades installed

2. Envio de notificações via email sobre os updates disponiveis

Para se poder implementar este procedimento, é necessário a instalação do apticron, o qual permite enviar notificações de email sobre os pacotes que possuem updates disponíveis, executar:

apt-get install apticron

Para se configurar o apticron, é necessário editar o ficheiro /etc/apticron/apticron.conf, executar:

vi /etc/apticron/apticron.conf

IMPORTANTE: tudo o que deve ser mudado é a directiva EMAIL, sendo por isso mesmo necessário especificar um ou mais endereços de email, sempre separados por espaço, para assim ser notificado sobre esses updates.

[...]
# set EMAIL to a space separated list of addresses which will be notified of
# impending updates
#
EMAIL="root@localhost admin@yourdomain.com"
[...]


Divirta-se!

Foxit Reader ( Produtividade ) / Linux


Foxit Reader é quanto a mim uma das melhores aplicações, muito rápida e rica em recursos de visualização de PDFs, a qual permite criar, abrir, visualizar assinar e imprimir qualquer ficheiro PDF.


Foxit Reader, tem um rápido motor de rendering e bastante preciso, fornecendo por isso mesmo, uma melhor experiência de visualização e impressão para PDF.

* Instalação

IMPORTANTE: para 64 bits, são necessários os seguintes procedimentos:

sudo apt-get install gtk2-engines-murrine:i386 libcanberra-gtk-module:i386 libcanberra-gtk0:i386 libgtk2.0-0:i386 libstdc++6:i386

cd Downloads/

tar -xvf FoxitReader-1.1.0.tar.bz2

cd 1.1-release/

./FoxitReader


Divirta-se!

Linux Hardware Compatibility Lists and Linux Drivers


A melhor BD de pesquisa / consulta para Linux.



Divirta-se!

Molecular Electronic-Structure Theory / Livro


Molecular Electronic-Structure Theory


Download.


Divirta-se!