Teste meu site no Netsparker para saber as vunerabilidades – veja os resultados

 

Relatório do Netsparker – Community Edition

Plano de Negócios para o Site de Notícias “Jornalismo Interativo”

Site Jornalismo Interativo

O Projeto Jornalismo Interativo surgiu como protótipo do Trabalho de Conclusão do Curso de Ciências da computação na Feevale. O trabalho fala sobre classificação automática de textos utilizando algoritmos de aprendisado supervisionado de máquina para a construção de um classificador. O trabalho está a disposição no link: Download PDF. E o Prostótipo no link: www.jornalismointerativo.com.br.

Como esse site tem hoje (4/8) poucos acessos, decidi fazer um Plano de negócio para transformar a aplicação em algo mais comercial. Para isso foram estudados 2 arquivos didáticos de como elaborar um plano de negócio, o primeiro é o do Sebrae Download PDF e o segundo foi desenvolvido pelo Professor Dailton Felipine e distribuido pelo site Lebooks.com.br  Download PDF.

Exemplo de START TRANSACTION operando com COMMIT e ROLLBACK para transações de risco (Php + Mysql)

para isso vou usar uma tabela simples: DROP TABLE IF EXISTS `teste`;CREATE TABLE  `teste` (  `id` int(9) NOT NULL AUTO_INCREMENT,  `nome` varchar(45) NOT NULL,  `valor` float(9,2) NOT NULL,  `total` float(9,2) NOT NULL,  `data` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,  PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1;

Tem-se o código php abaixo onde AUTOCOMMIT=0 indica que o commit será feito de maneira manual e o START TRANSACTION que indica o início da transação; então são executadas algumas inserções e alterações e aparece o primeiro COMMIT, depois aparece um ROLLBACK que desfaz todas as alterações até o primeiro COMMIT.  Utilizar a estrutura de transações é muito importante quando se pretende manter a integridade de um determinado processo, e não deixar algum processo efetuado pela metade sem que possa começa-lo novamente.

<?php

  1. mysql_connect(‘teste’,'root’, ”) or die(mysql_error()); mysql_select_db($_SESSION[db]) or die(mysql_error());
  2. mysql_query(‘SET AUTOCOMMIT=0′) or die(mysql_error());
  3. mysql_query(“START TRANSACTION”) or die(mysql_error());
  4. $sql_2 = ” INSERT INTO teste (nome, valor, total) VALUES (‘paulo’, 1, 1) “;
  5. print (mysql_query($sql_2)) ? ’2) sql executado com sucesso.
  6. ‘ : mysql_error();
  7. $sql_2 = ” INSERT INTO teste (nome, valor, total) VALUES (‘joao’, 2, 2 ) “;
  8. print (mysql_query($sql_2)) ? ’2) sql executado com sucesso.
  9. ‘ : mysql_error();
  10. $sql_1 = “UPDATE teste SET valor = 10, total = 10 WHERE id = 1 “;
  11. print (mysql_query($sql_1)) ? ’1) alterado com sucesso.
  12. ‘ : mysql_error();
  13. mysql_query(“COMMIT”) or die(mysql_error());
  14. $sql_3 = ” INSERT INTO teste (nome, valor, total) VALUES (‘bobe’, 3, 3 ) “;
  15. print (mysql_query($sql_3)) ? ’3) sql executado com sucesso.
  16. ‘ : mysql_error();
  17. $sql_4 = ” UPDATE teste SET valor = 10, total = 10 WHERE id = 2 “;
  18. print (mysql_query($sql_4)) ? ’4) alterado com sucesso.
  19. ‘ : mysql_error();
  20. $sql_5 = ” UPDATE teste SET valor = 50, total = 50 WHERE id = 3 “;
  21. print (mysql_query($sql_5)) ? ’5) alterado com sucesso.
  22. ‘ : mysql_error();
  23. mysql_query(“ROLLBACK”) or die(mysql_error());

?>

TCC – Classificação e auxilio a tomada de decisão na construção de textos – Ante Projeto – TC1 e TC2

Objetivos específicos

• Estudar técnicas de aprendizagem de máquina;
• Estudar métodos de classificação de texto;
• Estudar o framework Weka;
• Definir um domínio jornalístico;
• Desenvolver protótipo que classifique textos dentro do domínio definido;
• Desenvolver protótipo que e auxilie na tomada de decisão na construção de textos dentro do domínio definido;
• Avaliar protótipo desenvolvido;

Trabalho final: Download PDF

Site desenvolvido como protótipo: www.jornalismointerativo.com.br

Criando um clacificador para categorizar textos através de aprendizagem de máquina

Método Quantitativo:

1) Separar as palavras
2) Tirar as STOP WORDs (achar lista de stop words em português)
3) TF (term frequence) – relação de frequencia por documento.
4) DF (document frequence) – relação de quantos documentos aparecem cada palavra.
5) TFiDF (achar algorítimo que cálcula esse valor)
6) Seleciona os 10 mais frequentes (Ponto de corte)
7) criar a tabela: documentos/termos e ditar a frequencia.
8.) Montar um arquivo de entrada para treino. Processamos esse arquivo no WEka
9) Usamos o j48 para número limitado de palavras ou SVM para uma frequencia inlimitada.
10) Esse processamento vai gerar o classificador que pode ser testado usando o Weka – Process – Open File – Classify.

Triggers – Oracle ou SqlServer – Banco de Dados 2

Triggers

Triggers são blocos de código (PL/SQL, Transact-SQL, …) armazenados dentro do banco de dados, que são executados automaticamente pelo banco toda vez que uma instrução SQL (evento DML) for aplicada para uma tabela específica.

Aplicações das triggers:

  • Segurança e Integridade – Pode-se utilizar Triggers para garantir uma segurança maior no banco, pois elas podem restringir o acesso às tabelas e controlar as atualizações;
  • Auditoria – como dito anteriormente, as Triggers são executadas automaticamente, assim, podem sem utilizadas para fazer auditoria sobre acesso ao banco de dados;
  • Replicação de Dados – são excelentes para criar uma política de replicação síncrona de uma tabela para outra;
  • Integridade – a partir das Triggers podem ser criados controles mais complexos para os relacionamento das tabelas;
  • Controle de dados – Caso uma tabela tenha dados, cujo valor depende de outras tabelas, uma Trigger pode atualizar automaticamente a coluna com os valores derivados.

Dicas e precauções:

  • Use triggers para garantir a execução de comandos para uma tabela específica;
  • Evite criar triggers que dupliquem regras já definidas em CONSTRAINTS do banco;
  • ATENÇÃO: cuidado ao criar as triggers que disparem por uma instrução em uma tabela, para que ela não efetue a mesma operação na própria tabela porque isso iria disparar a trigger N vezes, travando a execução.

Em síntese, triggers são usadas para realizar tarefas relacionadas com validações, restrições de acesso, rotinas de segurança e consistência de dados, etc. Desta forma, estes controles deixam de ser executados pela aplicação e passam a ser executados pelas triggers em determinadas situações, tais como:

  • Mecanismos de validação envolvendo múltiplas tabelas;
  • Criação de conteúdo de uma coluna derivada de outras colunas da tabela;
  • Realizar análise e atualizações em outras tabelas com base em alterações e/ou inclusões da tabela atual;

Quando você for criar uma Trigger deverá definir:

  1. O nome  da trigger
  2. A Tabela para a qual a Trigger irá ser criada
  3. Quando a Trigger deverá ser disparada (INSERT, DELETE, UPDATE);
  4. A ação que a Trigger vai executar (geralmente um bloco de código PL/SQL)

A Sintaxe para criação de uma Trigger é a seguinte:

CREATE OR REPLACE TRIGGER nome_trigger 
{BEFORE | AFTER} {INSERT | UPDATE | DELETE}
ON { NOME_TABELA }
FOR EACH ROW

BEGIN
  Bloco de código PL/SQL
END;
Exemplo 1:

CREATE OR REPLACE TRIGGER OPERACAO_AUDIT
AFTER INSERT ON OPERACAO
FOR EACH ROW
BEGIN
  INSERT INTO AUDITORIA
    VALUES (SYSDATE,
            ‘REGISTRO INSERIDO NA TABELA OPERACAO’,
            ‘NOME_USUARIO’);
END;

Exemplo 2:

CREATE OR REPLACE TRIGGER CONTA_TESTE

AFTER UPDATE OF LIMITE ON CONTA

FOR EACH ROW

BEGIN

RAISE_APPLICATION_ERROR(-20500, ‘Não é possível alterar’);

END;


Pseudo registros :Old e :New

Ao trabalharmos com as Triggers de nível de linha (FOR EACH ROW), utilizamos estes dois pseudo registros, eles servem para fazer as comparações das colunas velhas ( :o ld ) com as novas ( :new ), são muito utilizadas para fazer Update nas colunas.

Exemplo 1:

CREATE OR REPLACE TRIGGER OPERACAO_AUDIT
AFTER UPDATE ON FUNCIONARIO
FOR EACH ROW
BEGIN
  INSERT INTO REG_ALT_SALARIO (DATA, USUARIO, SALARIO_ANT, SAL_ATUAL)
    VALUES (SYSDATE, ‘NOME_USUARIO’, :OLD.SALARIO, :NEW.SALARIO);
END;

Predicados Condicionais

Está parte das Triggers é bem interessante, pois dentro do corpo das Triggers abrigam três predicados importantes para a utilização de múltiplas instruções DML, são os INSERTING (inserindo), UPDATING (atualizando) e DELETING (excluindo), esses predicados possuem valores lógicos e são iniciados no momento de disparo da Trigger.
Alguns comandos importantes:

Desabilitando e habilitando uma Trigger específica

ALTER TRIGGER nome_da_trigger DISABLE;
ALTER TRIGGER nome_da_trigger ENABLE;

Desabilitando e Habilitando todas as Triggers de uma tabela

ALTER TABLE nome_tabela DISABLE ALL TRIGGERS;
ALTER TABLE nome_tabela ENABLE ALL TRIGGERS;

Compilando uma Trigger

ALTER TRIGGER nome_da_trigger COMPILE:

Eliminando uma Trigger

DROP TRIGGER nome_trigger;

Verificar no dicionário de dados as triggers do usuário

SELECT object_name,
            object_type
FROM user_objects
WHERE object_type = 'TRIGGER';

Obtendo detalhes das triggers

DESC USER_TRIGGERS

Exercícios:
1. Criar uma trigger, chamada atualiza_saldo, para atualizar o saldo da conta corrente toda vez que ser efetuada uma operação (tabela OPERACAO) relacionada à conta.

2. Criar uma trigger, chamada testa_limite, para verificar se o saldo da conta após uma determinada operação de débito não ficará menor que o limite da conta.

3. Criar uma trigger, chamada bloqueia_operacao, que proíba que sejam efetuadas operações de alteração e exclusão na tabela de OPERACAO.

Jornal colaborativo – Rede Social

Introdução:
Estou a meses pensando em fazer uma espécie de jornal colaborativo onde as pessoas se cadastram e postam notícias, básico, como qualquer aplicativo na web onde os usuários gerem conteúdo. Só que eu sinto a necessidade de agregar valor as pessoas e as notícias. Criar critérios de qualidade para uma notícia e de alguma forma gratificar as pessoas.

Tenho a intenção de tornar o site uma referência na qualificação de pessoas da comunicação. Que as pessoas coloquem em seus currículos, sou top 23 do site banco de notícias, e se sintam honradas de ter conseguido esse reconhecimento.

Como vincular valor ao texto?
O produto final são os textos, criando valor aos textos as pessoas terão valor. Mas o foco fica na informação. No gerar informação com qualidade. Então entramos no grande desafio, como vincular valor ao texto?

Num primeiro momento eu pensei em criar uma pontuação por tempo de visita em cada notícia e contabilizar, somando com o número de acessos, comentários e indicações. É interessante, mas eu não consigo visualizar a recompensa ideal para os usuários. Não sei se eles apenas tendo uma pontuação alta, irão agregar valor.

Então eu pensei em uma segunda opção. As notícias são investimentos como na bolsa de valores e cada usuário pode ter sua notícia valorizando ou desvalorizando.  Com o lucro das notícias os usuários poderão comprar links em notícias mais valorisadas e com isso, aumentar os seus acessos e valorizar cada vez mais. Lidar com dinheiro virtual é uma coisa que as pessoas se apegam bastante, elas vinculam esse aspécto a vida cotídiana delas, pois se elas podem render dinheiro virtual com uma notícia em um site, porque elas não podem gerar dinheiro real em um jornal de verdade?

Valorização das notícias:

A cada acesso, valoriza 1 centavo.

A cada comentário 10 centavos.

A cada dia sem nenhum acesso: - 10 centavos.

GERÊNCIA DE PROJETOS – Modelos de Documentos, Artigos e Exemplos

Dicas para Nota Fiscal Eletrônica com NFePHP

Vou dar algumas dicas diante das dificuldades que tive para fazer a nfe.

Primeiros passos:

1) Adquirir o certificado digital PJ – A1

2) Tendo o arquivo, exporte ele com a chave privada.

3) Configure o servidor apache com ssl(https)

4) Instale a biblioteca CURL no PHP

5) Baixe os arquivos da NFePHP – http://www.nfephp.org/

6) Configure seu ambiente (pasta config), coloque seu certificado pfx na pasta certs e montar seus scripts para usar as libs do projeto.

7) Uma boa dica, é ja entrar no grupo http://groups.google.com.br/group/nfephp para tirar dúvidas e contribuir com o pessoal.

8.) Valide seus XLM no site http://www.sefaz.rs.gov.br/NFE/NFE-VAL.aspx

Construindo Resultados com Gerenciamento de Projetos – a entrevista do PMP Ricardo Vianna Vargas

Parte 1:

  • minisar o problema
  • risco é inevitável
  • fazer projeto é correr risco ainda mais no brasil
  • PMI- 40 anos..
  • conceito de tudo é novo
  • crescimento auto
  • china explodindo
  • 7 mil alunos no brasil em gerencia de projeto
  • petrólio, telecom
  • estruturado
  • trabalho menor
  • gerenciar crise custa caro
  • o executivo brasileiro nunca tem tempo para planejar – refaser
  • escopo – risco – comunicação e recursos humanos
  • um bom gerenciamento de escopo define prazo
  • valiar trabalho q tem q ser feito, os gaps e gargalos
  • garantir o trabalho com a menor quantidade de recursos posível
  • é a reta que liga o ponto em que vc está até o ponto onde vc quer chegar
  • sintonia – cliente x equipe: diferente gera extress

Parte 2:

  • risco
  • risco pós 11 de setembro
  • custa mto caro correr risco
  • quanto custo saber do atentado do dia 11/10
  • risco é inevitável
  • brasil: politica, governo, instabilidade contratual, instabilidade nas relações governamentais: derepente mudam as regras,cenário ecomico muda, o contrato fica ultrapassado.
  • Risco cultural: – brasileiro é fazer não é planejador.
  • recursos humanos
  • gerenciar maquina é facil
  • gerenciar pessoas é difícil – gerenciar emoção, motivação
  • o que vale é o resultado
  • equipe desmotivada: perda de qualidade, perda de resultado,
  • gera re-trabalho, stress.
  • equilíbrio - máximo resultado com menor desgaste
  • processo muito mais estruturado
  • pessoas vão dar o máximo do seu pontecial e vão acreditar
  • que estão contribuindo para o sucesso.
  • liderança
  • filosofia – carência – gerencia de projetos antes pessoas formadas em exatas
  • se comunicar bem, ser claro, ser justo
  • o maior aspécto motivacional é ser justo: combino, cumpre
  • Poder
  • é a amoral
  • centro de justiça
  • postura

Parte 3:

  • ética
  • ser ético é dizer que certo prazo não da para cumprir.
  • Brasil
  • brasileiro se motiva por quase nada
  • muito menos dinehiro, gente qualificada, e muito mais projeto para atender
  • e o brasileiro faz.
  • tendo estundo + motivação(cultural brasileiro)
  • gerenciamento de Portfólio
  • construir um modelo onde vamos pegar todas as variáveis
  • ou indices críticos, técnicas (técnicas de análise de projeto)
  • se to gastando meu tempo  no que devia estar gastando
  • estratégia -> conclusão do projeto
  • to gastando meu tempo no que devia estar gastando?
  • esses projetos vão contribuir para o sucesso da empresa?
  • 1 – possivel – 2 – percistência – 3 – correr risco = mais resultado
Seguir

Get every new post delivered to your Inbox.