SQL SERVER – Identify Last User Access of Table using T-SQL Script


Publicado originalmente em Journey to SQL Authority with Pinal Dave:

During the TechEd India 2013 presentations I received a question how to identify when any table is accessed by any of the user. It seems people would like to know if the table was used in any part of query by any user. The best possible solution is to create database audit task and watch the database table access. However, sometime we all want shortcut even thought it is not accurate. Here is how you can use DMV to do so. However, please note that this DMV will get reset when database services or servers are restart. Let me know if you think I should modify this DMV and have some better alternatives.

SELECT DB_NAME(ius.[database_id]) AS [Database],
OBJECT_NAME(ius.[object_id]) AS [TableName],
MAX(ius.[last_user_lookup]) AS [last_user_lookup],
MAX(ius.[last_user_scan]) AS [last_user_scan],
MAX(ius.[last_user_seek]) AS [last_user_seek]
FROM sys.dm_db_index_usage_stats

Ver original 114 mais palavras

Transformar imagens coloridas em P&B com Python


Olá,

Neste post será abordado como converter imagens PNG em JPEG, e também transformar as imagens coloridas em escala de cinza, ou seja, em preto-e-branco.

Com uma ou poucas imagens, abrir programas gráficos como o GIMP ou Adobe Photoshop, não seria tão trabalhoso abrir uma a uma, alterar o esquema de cores e alterar o formato dos arquivos conforme necessidade. Mas quando são centenas e até milhares de imagens, este processo manual, além de demorado, se torna cansativo.

Para contornar o problema acima descrito, desenvolvi um pequeno script em Python que converte as imagens PNG para JPEG, e também converte as imagens para P&B.

Sem mais delongas, segue o pequeno script:

Download

Código

__author__ = "elexsandro"
__date__ = "$31/12/2014 12:59:21$"

from PIL import Image
import glob, os

def convertToGrayScale(path, grayfilename):
    try:
        # abre a imagem na escala de cinza
        im = Image.open(path).convert("L")
        # salva a imagem
        print 'Salvando a imagem:', grayfilename
        im.save(grayfilename)
    except:
        print 'Erro ao converter a imagem'

# Modulo principal
if __name__ == "__main__":
    # Armazena o caminho informado na variavel d
    d = raw_input('Informe o diretorio de imagens:')
    
    if not os.path.exists(d):
        raise Exception('O diretorio informado nao existe')
        
    # 'Navega' ao diretorio informado
    os.chdir(d)
    # os.path.abspath(os.curdir) tambem retorna o diretorio corrente
    print 'Diretorio corrente:', os.getcwd()

    print 'Convertendo as imagens PNG para JPEG'
    for fn in glob.glob('*.png'):
            print 'Convertendo %s para PNG', fn
            # obtem o nome do arquivo sem a extensao
            f = glob.os.path.splittext(fn)[0]
            # Abre a imagem
            imagem = Image.open(fn)

            # obtem o nome do arquivo sem a extensao
            f = glob.os.path.splittext(fn)[0]
            imagem.save(f + '.png', 'PNG')
            print f +'.png salvo com sucesso.'

    # Cria o diretorio para armazenar as imagens P&B
    os.mkdir('GrayImages')
    
    # Convertendo todas as imagens JPEG para escalas de cinza
    for fn in glob.glob('*.jpg'):
            print 'Processando:', fn

            # obtem o nome do arquivo sem a extensao
            f = glob.os.path.splitext(fn)[0]

            # Converte a imagem escala de cinza e salva no diretorio GrayImages
            convertToGrayScale(fn, 'GrayImages/' + f + '_gray.jpg')

    print 'Concluido'

Até a próxima.

Loja e aplicativos do Windows 8.1 não abrem (Resolvido)


Recentemente eu estava com problemas em abrir a Windows Store e alguns aplicativos no Windows 8.1. E depois de muita procura, acabei encontrando esse vídeo no Youtube:

Espero ter ajudado!

PS: Esse vídeo não é meu.

Utilizando os comandos SSH e SCP em instâncias AWS


Uma dúvida recorrente para quem está iniciando a jornada na cloud da Amazon Webservices, é como se conectar com uma instância Linux, ou até mesmo como efetuar a transferência de arquivos entre a máquina local e a instância na nuvem.

Neste post irei explicar o procedimento de cada um desses casos.

Para se conectar com a instância, é necessário possuir o arquivo com a chave privada do servidor (o arquivo XXX.pem) que é fornecido somente no momento que a instância é criada.

Após localizar o arquivo .pem em sua estrutura de diretórios, o mesmo deve possuir permissões de leitura somente para o dono, no caso do Linux, deve-se aplicar o seguinte comando chmod 400 <arquivo.pem>.

Depois disso para se conectar com a instância é só informar o seguinte comando

ssh -i <caminho para o arquivo.pem> ec2-user@<endereço_da_instância>

Para se tornar o usuário root o comando sudo su funciona perfeitamente.

No caso da cópia de arquivos da sua máquina local para a máquina remota, informe o seguinte comando:

scp -i <caminho_para_o_arquivo.pem> myFiles.ext ec2-user@<endereço_da_instância>:<diretorio de destino>

Até a próxima

Habilitando dispositivos Motorola no ADB em Linux


Olá, recentemente ao desenvolver um aplicativo para Android o ADB passou a não reconhecer mais meu aparelho no momento de depurações nas versões mais recentes do SDK disponibilizado pela Google.

A janela onde é feita a seleção do dispositivo onde deseja implantar o aplicativo surgia da seguinte forma:

Device Not Recognized

Após algumas pesquisas em fóruns e outros locais encontrei a seguinte solução que descrevo abaixo:

Abra uma janela do terminal e autentique com o usuário root, pois é necessário criar uma nova regra no udev.

No arquivo de regras que será criado, cada fabricante possui um ID único, conforme será especificado na propriedade ATTR{IdVendor}, veja a lista completa aqui.

Efetue login como root e crie este arquivo: /etc/udev/rules.d/51android.rules

Utilize este formato para adicionar cada fornecedor neste arquivo:
SUBSYSTEM==”usb”, ATTR{idVendor}==”<vendor>”, MODE=”0<permission>”, OWNER=”<user name>”, GROUP=”<group name>”

No meu caso como é um Motorola a configuração ficou da seguinte forma:

SUBSYSTEM==”usb”, ATTR{idVendor}==”22b8″, MODE=”0666″, OWNER=”elexsandro”, GROUP=”developers”

Salve o arquivo e execute o seguinte comando:

chmod a+r /etc/udev/rules.d/51-android.rules

A propriedade ATTR{idVendor} é o Id único de cada fornecedor conforme visto acima.

A propriedade MODE é o nível de permissão concedida  no formato octal;

A propriedade OWNER é o login do usuário que possuirá permissões administrativas sobre o dispositivo

A propriedade GROUP é o nome do grupo UNIX que possuirá permissões para gerenciar o dispositivo conforme o nível concedido na propridade MODE.

Após reinicializar o meu computador obtive o seguinte resultado:

ADB Recognize device perfect

Agora o dispositivo está pronto para testes,

Até a próxima :)

Programação orientada a objetos no ActionScript


Este post descreve os elementos do ActionScript que oferecem suporte à OOP (Programação orientada a objetos).
O capítulo não descreve princípios de OOP gerais, como design de objeto, abstração, encapsulamento, herança e
polimorfismo. Ele se concentra em como aplicar esses princípios usando o ActionScript 3.0.
Devido a raízes do ActionScript como uma linguagem de script, o suporte ao OOP do ActionScript 3.0 é opcional. Isso
fornece aos programadores flexibilidade para escolherem a melhor abordagem para projetos de vários escopos e
complexidades. Para tarefas pequenas, você pode chegar à conclusão de que usar o ActionScript com um paradigma
de programação de procedimento é tudo o que você precisa. Para projetos maiores, aplicar princípios de OOP pode
fazer com que o código fique mais fácil de ser compreendido, mantido e estendido. Continuar lendo

Introdução ao ActionScript 3.0


Vantagens do ActionScript 3.0
O ActionScript 3.0 vai além dos recursos de script de suas versões anteriores. Ele foi criado para facilitar a criação de
aplicativos altamente complexos com grandes conjuntos de dados e bases de código reutilizáveis orientadas a objetos.
Embora o ActionScript 3.0 não seja necessário para o conteúdo executado no Adobe Flash Player, ele permite
melhorias de desempenho que só estão disponíveis com a AVM2, a nova máquina virtual. O código do ActionScript
3.0 pode ser executado até 10 vezes mais rápido do que o código do ActionScript existente.
A versão antiga da AVM1 (ActionScript Virtual Machine) executa os códigos ActionScript 1.0 e ActionScript 2.0. As
versões 9 e 10 do Flash Player oferecem suporte a AVM1 para compatibilidade com conteúdo existente e herdado de
versões anteriores. Continuar lendo

%d blogueiros gostam disto: