Monday, July 4, 2016

Norton (Internet) Security / Small Business - 22.7.0.76 causando BSOD

Tudo indica que o último update do Norton Internet Security para a versão 22.7.0.76, liberado dia 28 de junho de 2016, está provocando BSOD em 20% dos computadores, independente da versão do Windows.


Mais informações no fórum oficial:
https://community.norton.com/en/forums/norton-causing-bsod#comments

E também no blog de segurança do Google:
http://googleprojectzero.blogspot.com.br/2016/06/how-to-compromise-enterprise-endpoint.html

UPDATE 1:
O suporte da Norton no Brasil instruiu a utilizar a ferramenta de remoção disponível em http://www.symantec.com/nrt e instalar novamente. Será instalada a versão 22.6.0.142 e via live update a versão 22.7.0.76 será instalada novamente, mas desta vez, aparentemente sem causar o problema.

UPDATE2:
Problema reconhecido na página do fórum: https://community.norton.com/en/forums/norton-227-hot-issues-and-fixes

Monday, July 13, 2015

Curso: Python Patterns - Luciano Ramalho

Informações adicionais

Data: 18 e 19/07/15 (sáb e dom)

Horário: 9h às 18h

Carga horária: 16 horas

Valores do investimento:

Até 07/07: R$ 400,00

Após 07/07: R$ 450,00

Instrutor: Luciano Ramalho


Sobre o curso O objetivo desse curso é apresentar técnicas de programação orientada a objetos e padrões de projeto otimizados para as características dinâmicas da linguagem Python

A quem se destina esse workshop? Desenvolvedores Python, iniciantes ou não, com conhecimentos básicos de programação orientada a objetos.

Pré-requisitos

Conhecimentos básicos em Python.

Importante: O aluno deverá trazer seu próprio notebook e carregador.

Conteúdo do workshop

  • Objetos em Python: possibilidades e limitações
  • O Python Data Model: entendendo Python como um framework
  • Introdução aos padrões de projeto
  • O padrão "Façade" e um exemplo se sua aplicação em Django
  • Um padrão embutido em Python: Iterator
  • Borg, um padrão que substitui o clássico Singleton
  • Repensando os padrões de projeto clássicos no contexto de Python
  • Template method: auto-delegação em uma linguagem dinâmica
  • Refatorando padrões com funções de primeira classe: Strategy, Command etc.
  • Refatorando padrões com tipos de primeira classe: Abstract Factory, Factory Method etc.
Benefícios
  • Coffee breaks
  • Internet wireless
  • Material didático
  • Certificado impresso

Instrutor

Luciano Ramalho, autor do livro Fluent Python (O'Reilly, 2015), tem mais de 15 anos de experiência como desenvolvedor especializado na linguagem Python. Desenvolveu sistemas baseados em Python para grandes portais como UOL, BOL, AOL Brasil, IDG Now, e treinou equipes para a Globo.com, Titans Group, Senado Federal e Presidência da República. Palestrou várias vezes nas conferências PyCon USA, OSCON, FISL, PythonBrasil e RuPy.


Mais informações: http://www.eventick.com.br/curso-python-patterns-padroes

Friday, April 17, 2015

Docker - Debian with Apache, PHP and MySQL ou MariaDB conection




Just a simple container ready to connect to a MariaDB ou a MySQL server.

Dockerfile:



FROM debian

MAINTAINER David Kwast

RUN apt-get update && apt-get -y install apache2 mysql-client php5 php5-mysql libapache2-mod-php5 && apt-get clean

EXPOSE 80

CMD ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"]





Usage example:



docker run --name test -d -p 1080:80 -v [path_inside_host]:/var/www/

Thursday, January 15, 2015

pypyODBC on Linux with FreeTDS

Tested and working on CentOS 7 x64 with a Windows Server 2003 serving SQL Server 2000.

First, install CentOS packages:
yum install freetds tdsodbc unixODBC

Edit /etc/odbcinst.ini and add the following section:
# SQL Server ODBC
[FreeTDS]
Description=FreeTDS MSSQL Driver
Driver = /usr/lib64/libtdsodbc.so.0
* Note that the driver path may be different depending on the distribution version or architecture.


Edit /etc/freetds.conf and add the folling section:
[DATASOURCENAME]
        host = HOSTNAME or IP
        port = 1433
        tds version = 7.0
And modify the following section by adding this line:
 [global]
        client charset = UTF-8
* Note that the section name, is this case DATASOURCENAME, should be any name that you will call from your program and the tds version may be different depending on the SQL Server version that you want to connect with. And don't forget to set host and port according to your server instances.


You can test the conection with the following command line tool:
tsql -S DATASOURCENAME -U 'DOMAIN\user' -P password
* In this case above, I used domain authentication, can be different depending on SQL Server setup.


And here is a simple Python program to test the connection using pypyODBC:
import pypyodbc

c = pypyodbc.connect(ur"DRIVER={FreeTDS};Servername=DATASOURCENAME;DATABASE=DATABASENAME;UID=DOMAIN\user;PWD=password")

cursor = c.cursor()

cursor.execute( 'SELECT row FROM table' )

for row in cursor:
    print row[0],

c.close()

References:

Monday, June 3, 2013

Script VB para configurar assinatura HTML no Outlook 2010

Script:
' Command-line arguments reading
html_file_path = WScript.Arguments(0) ' path to the HTML signature file
signature_name = WScript.Arguments(1) ' signature name

' MS Word invocation
Set objWord = CreateObject("Word.Application")
' open HTML file
Set objNewSignature = objWord.Documents.Open(html_file_path, , true, false, , , , , , 7, , false)
' create Outlook signature objects
Set objSelectionDefault = objNewSignature.Range()
Set objSignatureObjects = objWord.EmailOptions.EmailSignature
Set objSignatureEntries = objSignatureObjects.EmailSignatureEntries
' configure the signature
objSignatureEntries.Add signature_name, objSelectionDefault
objSignatureObjects.NewMessageSignature = signature_name
objSignatureObjects.ReplyMessageSignature = signature_name
' close MS Word
objWord.Quit
Exemplo de uso: script.vbs "[arquivo html]"[nome da assinatura]

Monday, January 9, 2012

A Qualidade da Informação e a Inteligência Empresarial

Diariamente, em nossa rotina de trabalho, geramos e consumimos informação. Esta informação pode ser transmitida através da fala, de papéis, de computadores e até por gestos.
Cada meio de transmissão pode sofrer a ação de ruídos específicos, que se não controlados podem inviabilizar o registro da informação. Na fala, um tipo comum de ruído pode ser o barulho do ambiente. Já no papel, um pouco de sujeira em cima de uma letra ou número pode ser suficiente para invalidar todo um registro.
Além de legível, cada registro precisa estar correto. Um registro com uma informação que não represente a realidade é o mesmo, ou até pior, que a sua ausência.
A partir de um histórico de registros bem estruturado, é possível construir ou obter um sistema informatizado de Inteligência Empresarial, ou Business Intelligence. Cuja função é fornecer suporte à tomada de decisões estratégicas de uma empresa.