Notificações do Desktop em Python com o Libnotify O Libnotify é parte do projeto do Gnome e foi construído no topo da biblioteca do Gnome. O Python tem ligações para o Gnome e vamos aproveitá-las para criar notificações no desktop. Podemos definir o texto, imagens, urgência e criar botões personalizados em nossas notificações. Libnotify é uma biblioteca pequena e simples e é um bom lugar para começar se você nunca fez qualquer programação Gnome / Gtk. Estes exemplos irão percorrer todas as opções disponíveis. Pré-requisitos de Instalação Uma instalação base do Debian com a instalação do Gnome não exigirá que nenhum pacote especial seja instalado. Aqui estão alguns pacotes relevantes embora. Hello World Curto o suficiente, você pode digitá-lo diretamente em um interpretador python interativo. Esse é o mais curto que você pode obter um simples notificar programa. O objeto de notificação é criado e show () é imediatamente encadeado, mas o objeto nunca é armazenado ou usado novamente. Na verdade, podemos armazenar o objeto de notificação que foi criado e reutilizá-lo mais tarde chamando show () novamente no objeto. Faremos isso no resto dos exemplos. Também exploraremos as opções disponíveis. Uninitializing É sempre bom limpar coisas quando você é feito. Libnotify fornece uma função unitialize que devemos chamar sempre que nós somos feitos usando notificações. Ocultar Notificação Podemos fechar imediatamente uma notificação simplesmente chamando close (). Olá novamente Confira outro programa de notificação hello world, mas não tão simplificado quanto o primeiro exemplo do Python. Importamos a biblioteca gi. repository. Gi significa GObject Introspecção. E é a camada entre as bibliotecas do Gnome em C e ligações para outros idiomas. Uma vez que o objeto é criado e armazenado em uma variável, podemos chamar repetidamente show () no objeto para enviar a mesma notificação. Reutilizando o Objeto de Notificação Em vez de criar novos objetos de notificação para cada mensagem, você pode reutilizar o mesmo objeto. Você pode apenas chamar show () novamente, mas teria a mesma mensagem. Você pode alterar as propriedades antes de mostrá-lo novamente. Ícones e Imagens Podemos definir o ícone ea imagem para a notificação criando uma imagem de tipo GdkPixbuf. Podemos facilmente carregar um arquivo de imagem usando a função newfromfile () no objeto GdkPixbuf. Isso exigirá a importação do módulo GdkPixbuf do repositório de introspecção GObject (gi. repository). Você também pode especificar um nome de arquivo de imagem para a nova função (). Quando show () é chamado, pode haver um atraso se você usar um arquivo de imagem grande. Adicionando Botões / Ações à Notificação Se você quiser que o usuário faça algum tipo de ação como Responder existe uma maneira de adicionar um botão à notificação. Chame addaction () como no exemplo abaixo. As ações são uma parte essencial da programação do Gnome. As ações são um tópico próprio, por isso vou fornecer apenas este snippet para que você saiba que é possível usar cliques de botão na notificação para acionar ações do Gnome. Diferentes Níveis de Urgência Existem três níveis de urgência disponíveis: baixo, normal e crítico. O programa notify-send Vale a pena mencionar que já existe um programa disponível chamado notify-send. É escrito em C, mas o programa compilado faz parte do pacote libnotify-bin no Debian. É bom para scripts no shell bash. Todo o programa notify-send é um único arquivo. Para ver como isso está escrito em C, confira o código-fonte notify-send. c. Você pode até encontrar notify-send para Windows. Instale e use o programa notify-send como este. Você pode até mesmo usar uma chamada de sistema para executar apenas o programa notify-send. Enquanto isso tecnicamente funciona, não é a melhor maneira de fazer as coisas se você deseja controlar os objetos em seu código. Vamos seguir em frente para ver como fazer tudo em Python. Outros Idiomas Enquanto meus exemplos são distribuições de Debian, eu realmente gosto de Arch Linux também. O Wiki Arch Linux tem um artigo muito grande sobre o uso de libnotify. As dependências que listam podem diferir ligeiramente apenas porque o nome do pacote é diferente entre Arch Linux e Debian, mas deve ser fácil encontrar o mesmo pacote para sua distribuição. A página Wiki do Google Arch em notificações de área de trabalho cobre um aplicativo de notificação básico em mais de uma dúzia de idiomas. Libnotify é muito simples por isso é uma boa biblioteca para jogar em línguas desconhecidas. Referências A documentação do Libnotify pode ser encontrada no site do desenvolvedor do Gnome. Modd é um único binário sem dependências externas, lançado para OSX, Windows, Linux, FreeBSD, NetBSD e OpenBSD. Vá para a página de lançamentos. Faça o download do pacote para o seu sistema operacional e copie o binário para algum lugar no seu PATH. Se você tem uma instalação de trabalho Go, você também pode dizer Note que por padrão modd usa bash ou sh. Para usá-los, eles devem estar em seu PATH. Para evitar usar bash set shell exec no seu arquivo modd. conf. No Windows, uma maneira fácil de instalar bash é usar Babun. Coloque isso em um arquivo chamado modd. conf: Agora execute modd assim: A primeira vez que o modd é executado, ele irá executar os testes de todos os módulos Go. Sempre que qualquer arquivo com a extensão. go é modificado, o comando go test será executado somente no módulo de inclusão. Para evitar bombardeios bash o seguinte irá executar ir teste diretamente. Na inicialização, modd procura um arquivo chamado modd. conf no diretório atual. Este arquivo tem uma sintaxe simples mas poderosa - um ou mais blocos de comandos, cada um dos quais pode ser disparado em mudanças em arquivos correspondentes a um conjunto de padrões de arquivo. Os comandos têm dois sabores: comandos de preparação que executam e terminam (por exemplo, compilação, execução de conjuntos de teste ou execução de linters) e comandos daemon que são executados e continuam em execução (por exemplo, bancos de dados ou servidores da Web). Daemons são enviados um SIGHUP (por padrão) quando seu bloco é acionado, e são reiniciados se eles nunca sair. Os comandos Prep são executados na ordem da ocorrência. Se qualquer comando prep sai com um erro, a execução do bloco atual é interrompida imediatamente. Se todos os comandos de prep tiverem êxito, todos os daemons no bloco são reiniciados, também na ordem de ocorrência. Se vários blocos são acionados pelo mesmo conjunto de alterações, eles também são executados em ordem, de cima para baixo. Heres uma versão modificada do arquivo modd. conf eu uso quando hacking em devd. Ele executa o conjunto de testes sempre que um arquivo. go muda, cria devd sempre que um arquivo não testado é alterado e mantém uma instância de teste em execução. A variável dirmods expande para uma lista devidamente escapada de todos os diretórios que contêm arquivos alterados. Quando modd é executado pela primeira vez, isso inclui todos os diretórios contendo arquivos correspondentes. Assim, isso significa que modd irá executar todos os testes na inicialização e, em seguida, executar os testes somente para o módulo afetado sempre que há uma alteração. Há uma variável mods correspondente que contém todos os arquivos alterados. Observe o sinalizador sigterm para o comando daemon. Quando devd recebe um SIGHUP (o sinal padrão enviado por modd), ele dispara um browser livereload, em vez de sair. Isto é o que você quer quando devd está sendo usado para servir um projeto web youre hacking, mas ao desenvolver devd em si. Nós realmente queremos que ele saia e reinicie para pegar as alterações. Por isso, diremos ao modd para enviar um SIGTERM para o daemon, o que faz com que devd saia e seja reiniciado pelo modd. Padrões de exibição de arquivos O algoritmo de detecção de alterações Modds altera as alterações até que haja um intervalo na atividade do sistema de arquivos - isso significa que processos coerentes como compilação e renderização que tocam muitos arquivos provavelmente disparam comandos apenas uma vez. Os padrões correspondem, portanto, a um lote de arquivos alterados - quando a primeira correspondência de um lote é vista, o bloco é disparado. Padrões e os caminhos que coincidem contra estão sempre em forma delimitada por barra, mesmo no Windows. Os padrões de arquivo podem ser strings nus ou citados. As citações podem ser aspas simples ou duplas e a marca de cotação correspondente pode ser escapada com uma barra invertida dentro da seqüência: Padrões podem ser negados com um líder. Para padrões citados, o ponto de exclamação vai para fora das aspas. Portanto, isso corresponde a todos os arquivos recursivamente, barra aqueles com uma extensão. html e aqueles no diretório docs. Negações são aplicadas após todos os padrões positivos - ou seja, modd coleta todos os arquivos correspondentes aos padrões positivos e, em seguida, remove os arquivos correspondentes aos padrões de negação. Lista de ignorados padrão Arquivos de incômodos comuns, como diretórios de VCS, arquivos de swap e assim por diante são ignorados por padrão. Você pode listar o conjunto de padrões ignorados usando a opção - i para o comando modd. Padrões de ignorar padrão podem ser desabilitados usando o sinalizador de noignore especial, assim: Padrão de correspondência vazia Se nenhum padrão de correspondência for especificado, os comandos de preparação serão executados apenas na inicialização e os daemons serão reiniciados se eles sairem, mas nunca serão explicitamente sinalizados para reiniciar Por modd. Os padrões de arquivo suportam a seguinte sintaxe: Cada especificação de padrão de correspondência de arquivo tem um bloco associado, que está entre parênteses curvos. Os blocos contêm comandos e opções de escopo de bloco. Os comandos são scripts de shell especificados em linha no arquivo modd. conf. Eles são executados em bash (ou sh como um fallback) por padrão. O Bash pode ser ignorado e os comandos executados diretamente configurando o exec do shell. Se bash é usado, presume-se que ele esteja no caminho do usuário e herde o ambiente pai. Os comandos de linha única não precisam ser citados: As novas linhas podem ser escapadas com uma barra invertida para comandos de várias linhas: Você também pode incluir comandos em aspas simples ou duplas, permitindo especificar comandos compostos e multi-comandos. Estes podem conter qualquer coisa que você normalmente colocou em um script shell, e as mesmas convenções citando e escapando se aplicam. Todos os comandos prep em um bloco são executados em ordem antes de qualquer daemons são reiniciados. Se qualquer comando prep sai com um erro, a execução pára. As seguintes variáveis são geradas automaticamente para comandos de preparação Na primeira execução, todos os arquivos correspondem aos padrões de bloco. Na alteração subseqüente, uma lista de todos os arquivos modificados. Na primeira execução, todos os diretórios contendo arquivos correspondentes aos padrões de bloco. Na alteração subseqüente, uma lista de todos os diretórios contendo arquivos modificados. Todos os nomes de arquivo em variáveis são relativos ao diretório atual e shell-escapou por segurança. Todos os caminhos estão em forma delimitada por barra em todas as plataformas. Dado um arquivo de configuração como este, modd executará eslint em todos os arquivos. js quando iniciado e, em seguida, só executará eslint em arquivos se eles mudarem: Por padrão, os comandos prep são executados na execução inicial do modd. A opção onchange pode ser usada para ignorar a execução inicial, e só executar quando há uma alteração detectada. Daemons são executados no arranque, e são reiniciados pelo modd sempre que saem. Quando um bloco contendo um comando daemon é acionado, modd envia um sinal para o processo do daemon. Se o sinal faz com que o daemon saia, ele é imediatamente reiniciado pelo modd - no entanto, também é comum para os daemons fazerem outras coisas úteis como recarregar a configuração em resposta a sinais. O sinal padrão usado é SIGHUP, mas o sinal pode ser controlado usando flags de modificador, assim: Controlando cabeçalhos de log O Modd emite um cabeçalho curto no terminal para mostrar qual comando é responsável pela saída. Este cabeçalho é calculado a partir da primeira linha não-espaço em branco do comando - escapes de barra invertida são removidos do final da linha, os caracteres de comentário são removidos do início e os espaços em branco são removidos. Usando o fato de que o próprio shell permite comentários, você pode controlar completamente o nome de exibição do log. A única opção de bloco no momento é indir. Que controla o diretório de execução de um bloco. Modd mudará para este diretório antes de executar comandos e daemons e voltará ao diretório anterior. A especificação do diretório segue as mesmas convenções que os comandos e pode ser incluída entre aspas para abranger várias linhas. Você pode declarar variáveis como esta: As variáveis só podem ser declaradas no escopo global (isto é, não dentro de blocos). Todos os valores são strings e seguem a mesma semântica que os comandos - isto é, eles podem ter escape de terminação de linha ou ser aspas citadas. As variáveis são lidas uma vez na inicialização e é um erro para declarar novamente uma variável que já existe. Você pode usar variáveis em comandos assim: Existe uma variável de shell especial que, quando definida, determina como os comandos são executados. Valores válidos são: Quando o sinalizador - n é especificado, modd envia qualquer coisa enviada para stderr de qualquer comando prep que sai anormalmente para um notificador desktop. Como os comandos do modd são scripts de shell, você pode redirecionar ou manipular a saída para personalizar completamente o que é enviado aos notificadores conforme necessário. No momento, apoiamos o Growl no OSX e o libnotify no Linux e outros sistemas Unix. Para que Growl funcione, você precisará que o Growl esteja em execução e tenha o comando growlnotify instalado. Growlnotify é uma ferramenta adicional que você pode baixar do site oficial Growl. O Libnotify é uma estrutura de notificação geral disponível na maioria dos sistemas Unix. O Modd usa o comando notify-send para enviar notificações usando o libnotify. Você precisará usar o gerenciador de pacotes do sistema para instalar o libnotify. Os scripts usados para construir este pacote para distribuição podem ser encontrados aqui. Os pacotes externos são vendidos usando gvt. E eu uso deplist para certificar-se de todas as dependências são cobertos. The Fantastic 4: Social Recruiting8217s Top Dicas Recrutamento Social é melhor descrito como o processo de alavancar Social Media e pessoais e profissionais contatos para recrutar e contratar. A maioria dos recrutadores de sucesso e top billers capturaram o talento de uma rede social ea previsão de recrutamento social está crescendo exponencialmente todos os dias. Aqui estão 4 maneiras de construir sua rede social como uma empresa, como um recrutador individual e como um parceiro de pessoal para seus clientes: Definir seu universo de recrutamento social É importante definir primeiro quais sites de mídia social são o melhor uso do seu investimento de tempo de recrutamento social . Facebook, LinkedIn, Twitter, Google e YouTube são os mais utilizados atualmente. Dependendo da indústria de que você equipe, você pode achar que seus esforços de recrutamento social deve ser gasto em partes iguais ou talvez você tenha encontrado a maior parte do seu sucesso no LinkedIn. Seja qual for o caso, definir onde você irá concentrar seus esforços será útil para fins de gestão do tempo e mais importante ainda quando analisar o sucesso de seus esforços. Descrições de trabalho 3D. Descrições de trabalho bem escrito não deve apenas atrair, mas envolver candidatos qualificados na era digital, onde o conteúdo é rei. De acordo com Monster. A descrição do trabalho, as responsabilidades, as qualificações, a compensação, a descrição da empresa, o resumo dos benefícios, o cargo, o nome da empresa e o logotipo são necessários para comunicar uma descrição completa do cargo. No entanto, uma descrição do trabalho 3D é um resumo mais descritivo de alguns dos intangíveis sobre requisitos e destaques da empresa, que poderia incluir a visão da empresa e da missão para a comunidade pública e empresarial ou várias citações de funcionários entusiasmados. Você pode querer adicionar vídeo personalizado que envolve os candidatos com um apelo à ação para enviar currículos, direcionando-os para o seu site. Quando os candidatos são direcionados para o seu site, eles podem ver todas as ordens de trabalho abertas e com os botões de compartilhamento e os links podem ser incentivados a compartilhar outros trabalhos abertos com sua rede. Desenvolver uma equipe de distribuição de lista Top recrutadores sabem como montar uma abordagem de equipe de recrutamento social, hoje em dia referido como crowdsourcing. Eles têm habilmente definido o seu universo de recrutamento social e pode comunicar um plano sobre onde e como mais eficazmente postar Job Descriptions 3D. Uma abordagem de equipe para o alcance social pode ser bastante bem sucedida, especialmente se os membros da equipe são consistentes e dedicados ao futuro das melhores práticas de recrutamento social e investiram uma quantidade considerável de tempo construindo sua rede, além de construir uma excelente reputação em No domínio da dotação de pessoal. Compartilhe o conhecimento da indústria e peça ajuda Atrair candidatos passivos pode ser tão fácil quanto publicar notícias e informações da indústria através de sua rede de mídia social e pedir feedback e informações sobre eventos atuais e atualizações da indústria. Além disso, pedir a sua rede para obter ajuda com uma atribuição de pesquisa se o trabalho está localizado em um difícil preencher local ou uma posição temporária ou de consultoria pode atrair candidatos que foram dormentes ou fora de seu radar. Como você está aproveitando sua rede de mídia social. Adoramos seus comentários e adições a esta lista. Visite-nos em TargetRecruit. net para agendar uma demonstração ao vivo, participar de um de nossos webcasts ao vivo. Nos no Twitter TargetRecruit ou envie-nos um e-mail para infotargetrecruit. net. Compartilhe este artigo com seus amigos Entre em contato com o autor deste artigo Heather Venesile. Navegação posterior
No comments:
Post a Comment