Tyger

December 15th, 2007 by flaviocrispim

No último post escrevi sobre um curta-metragem de nome “Terminus” e corrigindo a injustiça não posso deixar de mencionar este curta-metragem do Guilherme Marcondes.

A inspiração veio do poema de Willian Blake e de mesmo nome. O cenário é a cidade de São Paulo, a metamorfose é o resultado. Com uma mescla de técnicas, juntando cenas reais, boneco animado e adicionando animação, o resultado é um dos filmes mais bonitos do youtube.

O boneco é perfeito, as animações se parecem como grifitis vivos e por último, uma trilha sonora muito legal, a parte de ser uma produção brasileira, a interpretação e ilustração do poema de Blake resultou num lindo filme, parabéns a todos os envolvidos.

Produção: Guilherme Marcondes

Terminus

December 15th, 2007 by flaviocrispim

Ontem recebi um link de um vídeo do YouTube e resolvi postar algo sobre os vídeos que tenho vista nestes últimos tempos. O link que recebi foi do curta Terminus é um filme abstrato daqueles que não se consegue explicar porque se gosta. Adorei e cada vez que tento explicar do que se trata o filme mais sinto dificuldade em explicar.

O Cômico, o bizarro, o louco e o pesadelo estão todos misturados num ambiente anos 70, com trilha sonora progressiva realizado em 8 minutos, belo filme.

“After inadvertently offending a strange entity that accosts him on his way to work, a 1970s businessman quickly finds himself in the midst if a bizarre predicament.
What follows is a rapid descent into madness, a journey both eerie and darkly humorous.
The exact nature of the businessman’s tormentor is purposefully ambiguous, lending itself to a variety of interpretations.
Is ‘Terminus’ a surreal critique of human alienation in the modern urban environment? or is the protagonist’s struggle an internal one, his mysterious stalker a manifestation of his repressed subconscious mind?
Either way, ‘Terminus’s innovative visual effects and distinctively vintage atmosphere make it a highly engrossing experience.”

Produção: SPY Films

Workflow

December 8th, 2007 by flaviocrispim

É um confiável conjunto de padrões de atividade que podem ser repetidos por uma organização simétrica de recursos, regras, informações, fluxo de informações. Agrupados em um processo de trabalho que pode ser documentado e ensinado.

Seqüência de passos necessários para que se possa atingir a automatização de um processo de negócio, de acordo com um conjunto de regras definidas.

Conceitos

Workflows podem ser relacionados com vários conceitos nos campos que estudam a natureza do trabalho. O termo workflow é mais comumente utilizado na indústria, onde pode possui significados especializados:

Processos: processo é uma noção mais específica do que um workflow, e pode ser aplicado tanto a processos físicos quanto biológicos, por exemplo. No contexto dos conceitos relacionados ao trabalho, um processo pode se distinguir de um workflow pelo fato de possui mais bem definidas as razões, as entradas e as saídas. Enquanto a noção de workflow pode ser aplicada sistematicamente para qualquer padrão de atividade.

Planejamento e Scheduling: Um plano é a descrição da lógica necessária e o parcialmente ordenado de um conjunto de atividades requeridas para atingir um determinado objetivo dadas as condições.

O Workflow pode ser visto como uma realização dos mecanismos requeridos para executar o mesmo plano várias vezes.

Motivação

Workflow é considerado um fenômeno moderno. Embora existam vários exemplos de organização racional nas realizações históricas de povos antigos, como a construção das pirâmides, a idéia de separar o trabalho de quem estuda a natureza de como o trabalho será realizado e que organizaria este trabalho de uma forma melhor, é uma idéia moderna que muitos a atribuem ao filósofo escocês Adam Smith, através a obra publicado no século XVIII: The Wealth of Nations.

Smith se opunha aos conceitos da economia mercantilista, economia este que previa o acúmulo de reservas em metais preciosos como base para sucesso econômico da sociedade. Para Smith a essência era o trabalho, e que a divisão de trabalho teria um grande aumento na produção.

Um exemplo usado por Adam Smith foi a fabricação de pinos. Um trabalhador poderia fazer somente 20 pinos por dia. Mas se dez pessoas dividisssem os quase 80 passos necessários para fazer um pino, eles poderiam fazer um total de 48.000 pinos em um dia.

Características e fenômenos

Criação do Modelo: Problemas do Workflow podem ser modelados e analizados usando gráficos.

Medição: Muitos conceitos usados para mensurar os sistemas de agendamento em operações de pesquisa são úteis para mensurar workflows gerais.

Componentes de workflow

Um workflow geralmente é descrito usando uma técnica de diagramação formal ou informal, mostrando os fluxos entre os passos do processamento. Um único passo de processamento ou componentes de um workflow podem definidos em três tipos básicos de parametros:

Descrição de entrada: a informação, material ou energia necessaria para completar o passo.

Regras de mudança, algoritmos, que podem realizados por atribuições humanas ou máquinas, ou uma combinação.

Descrição de saída: a informação, material ou energia produzida pelo passo e que prove a entrada para o próximo passo.

Os componentes só poderão ser plugados um ao outro se a saída de primeiro componente possuir a entrada mínima necessária para o próximo componente. Desta forma, a parte essencial da descrição de um componente foca somente na entrada e saída e que são descritos em termos de tipo de dados e a semântica dos dados (significado).

Os algoritmos e as regras somente precisarão ser incluídas quando existir muitas alternativas ou caminhos para tranformar um tipo de entrada em um tipo de saída.

Quando os componentes não são serviços locais e são chamados através de uma rede, como através de Webservices, caracteristicas como QoS, disponibilidade e etc precisam ser consideradas.

Workflow Application

Uma programa workflow é onde vários programas, componentes e pessoas devem se envolver no processamento das informações para completar uma instância de um processo. Um exemplo seria considerar uma ordem de compra que se move atraves de vários departamentos para autorização e uma eventual compra. As ordens podem ser tratadas como mensagens, que são colocadas em várias filas para processamento. Um processo workflow envolve constantes mudanças e correções. Componentes novos poderiam ser introduzidos na operação sem nenhuma alteração de código.

Existem duas formas de construir aplicações workflow:

Liguagem workflow – linguagem própria, define todas as iterações homem-máquina e de software.

Biblioteca (API) – bibliotecas ou interfaces para abstrair somente a coordenação do trabalho.

Linguagem Workflow

É uma linguagem própria e dedicada que descreve todo o fluxo do workflow. Desde descrever as entradas e saídas de cada ponto no workflow, como também todos os fluxos alternativos do negócio. Geralmente as linguagens workflow possuem uma notação gráfica ou xml. Para cada ponto do workflow é possível configurar uma lista de Handlers para cada mudança do trabalho.

Algumas linguagens de workflow são:

  • XPDL
  • YAWL
  • SCUFL
  • Wf-XML

Biblioteca (API)

Forma onde uma aplicação de workflow é desenvolvida usando linguagem de programação em conjunto com bibliotecas que capturam a abstração de coordenar a coordenação das tarefas do sistema.

Exemplos:

  • Windows Workflow Foundation
  • Workflow OSID

Também é possível usar linguagens desenvolvidas para BPM (Business Process Modeling) para construir workflows. Contudo, para atingir o objetivo de especificar um workflow, as notações precisam ser ajustadas para capturar o tráfego de informações, definição de rotinas entre outros.

O principal problema de usar notação BPM é que este foi criado com a intenção de capturar os processos de negócio em um alto nível de abstração, ao contrário de disso, os Workflows considera um nível de detalhes alto o suficiente para possibilitar sua execução.

Referências:
Wikipedia – Adam Smith
Wikipedia – Workflow
Workflow Patterns

Template para criação de projeto com o Maven2

December 6th, 2007 by flaviocrispim

Para criar um projeto novo usando o Maven é bem rápido, bastam alguns passos para que o projeto esteja pronto e configurado com a sua IDE preferida.

Neste post vou descrever o passo-a-passo para a criação de um projeto WAR. Os passos de execução podem precisar de pequenos ajustes para que seja executado no seu ambiente de desenvolvimento.

As características do meu projeto são: Projeto Web, Struts, jUnit.

O Maven tem a capacidade de resolver todas as dependências do projeto a partir do arquivo pom.xml e desta forma fará o download de todas as dependências, no meu caso todos os Jar´s do Strut´s e do jUnit, bem como todas suas dependências, automaticamente.

Para realizar esta tarefa o Maven pode precisar acessar seu repositório padrão, e para tanto uma conexão com a internet é necessária. Como no meu ambiente de trabalho as conexões com a internet são realizadas através de Proxy HTTP, então um passo adicional precisa ser realizado para indicar ao Maven que suas requisições utilize o Proxy configurado, e fornecendo usuário e senha, caso existam.

Não vou descrever o processo de instalação do Maven, que é bem simples. Considero que para continuar você possui o Maven2 instalado e que o diretório $MAVEN_HOME/bin esteja no PATH da máquina.

1. Proxy HTTP (Opcional)

Editar o arquivo $MAVEN_HOME/conf/settings.xml

<settings>
    …
    <proxies>
        <proxy>
            <id>optional</id>
            <active>true</active>
            <protocol>http</protocol>
            <username></username>
            <password></password>
            <host>proxy.mycomp.com</host>
            <port>8080</port>
            <nonProxyHosts>mycomp.com, localhost</nonProxyHosts>
        </proxy>
    </proxies>
    …
</settings>

2. Criando o template do projeto

Neste passo vou criar o diretório que servirá como raiz do meu projeto, seguindo uma estrutura definida qualquer:

  • #cd $USER_HOME/projetos
  • /export/home/fsantos/projetos# mkdir –p testewar/modules
  • /export/home/fsantos/projetos# cd testewar/modules
  • …/testewar/modules# mvn archetype:create -DgroupId=com.mycompany
    -DartifactId=portal -DarchetypeArtifactId=maven-archetype-webapp

Em promeiro lugar foram criados três diretórios, dois deles foram criados explicitamente pelo comando mkdir –p testewar/modules e o terceiro diretório foi criado pelo maven e o nome deste diretório será o artifactId da aplicação, que neste caso é portal.

3. Criando o workspace
  • /export/home/fsantos/projetos/testewar# mkdir –p workspaces/eclipse_33
  • /export/home/fsantos/projetos/testewar# cd workspaces/eclipse_33
  • /export/home/fsantos/projetos/testewar/workspaces/eclipse_33# pwd
    /export/home/fsantos/projetos/testewar/workspaces/eclipse_33
    (Copiar este path)

Executar o eclipse, no meu caso é o Eclipse 3.3 e indicar o path “/export/home/fsantos/projetos/testewar/workspaces/eclipse_33″ como o caminho para o workspace.

Quando o eclipse termina de carregar terá sido criado o diretório “.metadata”,
deixo o eclipse de lado por enquando e minimizo.

4. Criando os arquivos de configuração de projeto do Eclipse
  • #cd $USER_HOME/projetos/testewar/modules/portal

  • …/projetos/testewar/modules/portal# mvn -Dwtpversion=1.5 eclipse:eclipse

Ao final deste, uma estrutura de diretórios foi criada usando a arquétipo padrão do Maven. Os arquivos .classpath e .project estão prontos e com as dependências já relacionadas.

5. Configurando o projeto no Eclipse

Com o Eclipse rodando, preciso importar o projeto já criado, estes passos serão necessários:

  1. File -> Import…
  2. Import -> General -> Existing Projects into Workspace
    1. Botão Next
  3. Select root directory:
    1. Browse…
    2. Apontar para o diretório portal
  4. Botão Finish

O projeto será importado mas falta indicar o caminho do repositório do Maven para que o Eclipse possa compilar os fontes:

  1. Window -> Preferences…
  2. Na janela Preferences: buscar por Classpath variables
  3. Adicionar a variável M2_REPO com o valor $USER_HOME/.m2/repository
  4. Clicar Botão Ok
6. Adicionando Struts

Para adicionar struts no meu projeto preciso apenas editar o arquivo: $USER_HOME/projetos/testewar/modules/portal/pom.xml

<project xmlns=”http://maven.apache.org/POM/4.0.0″
xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
xsi:schemaLocation=”http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd”>
    …
    <dependencies>
        …
        <dependency>
            <groupId>org.apache.struts</groupId>
            <artifactId>struts-core</artifactId>
            <version>1.3.8</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
        …
    </dependencies>
    …
</project>

Agora as dependências com o Struts e com o jUnit já estão relacionadas e a partir de agora qualquer comando do Maven executado, o download das bibliotecas será realizado, exemplo:

  • /export/home/fsantos/projetos/testewar/modules/portal# mvn compile

Como as dependências com as bibliotecas foram adicionadas depois da criação dos arquivos do projeto (Tópico 5), o que foi feito de proppósito para tornar claro como adicionar uma dependencia a um projeto já pronto. Será necessário executar:

  • …/projetos/testewar/modules/portal# mvn eclipse:eclipse
7. Comandos do úteis (Goals)
mvn clean Limpa os diretórios de bibliotecas e de arquivos compilados
mvn compile Compila projeto
mvn eclipse:eclipse Atualiza lista de bibliotecas referenciadas pelo Eclipse
mvn install Adiciona arquivo war no repositório local do Maven
mvn deploy Adiciona arquivo war no servidor de artefatos do Maven
mvn package Gera arquivo war
mvn verify Verifica as dependências
mvn war:war Gera arquivo WAR no diretório target
mvn war:inplace Gera WAR ‘explodido’ no diretório ’src/main/webapp’, de modo que possa realizar o deploy deste usando configuração do Tomcat
.
Desvantagem: diretórios criados: ‘WEB-INF/classes’ e ‘WEB-INF/lib’ não são removidos quando é executado comando mvn clean

about


This is the about me section, you will prob. want to edit this. If you want to change the image you may do so by changing the avatar.jpg located in the NewZen images directory.

search

navigation

archives

categories