Updates from February, 2012 Toggle Comment Threads | Keyboard Shortcuts

  • Tomás Augusto Müller 2:09 pm on February 28, 2012 Permalink | Reply
    Tags: benchmark, , , , JIT, , ,   

    Benchmarking NeoQuotes (Jetty + JRubyRack) 

    To perform basic HTTP benchmarks against a web application, you can start with ab – Apache HTTP server benchmarking tool. speed

    If you use Ubuntu, the installation is very simple:

    sudo apt-get install apache2-utils

    I used this tool to benchmark NeoQuotes application, testing how Jetty with JRuby-Rack are performing against multiple concurrent requests.

    First, start up Jetty with mvn jetty:run or with the command defined in project Procfile (sh target/bin/jruby -S config/jetty.rb for NeoQuotes).

    Next, execute multiple times the following command:

    ab -n 10000 -c 25 http://localhost:8080/

    where n = number of requests and c = concurrency level.

    Is worth to look to the number of requests per second, that are increasing every time the benchmark is executed. This happens thanks to JIT!

    Below some results after running ab -n 10000 -c 25 http://localhost:55012/ three times in a commodity hardware (all tests were performed on the application homepage where there is no interaction with Neo4j and no cache mechanism is configured):

    First execution:

    Time taken for tests:   73.162 seconds
    Requests per second:    136.68 [#/sec] (mean)

    Second execution:

    Time taken for tests:   67.006 seconds
    Requests per second:    149.24 [#/sec] (mean)

    Third execution:

    Time taken for tests:   65.725 seconds
    Requests per second:    152.15 [#/sec] (mean)

    Also, take a look at Min and Max threads of Jetty QueuedThreadPool, at config/jetty.rb configuration.

    Depending of your hardware and your VM configuration,the more threads you configure into min and max, the worse your throughput gets when your VM starts to reach its resource limits.

     
  • Lucas Fernando Müller 8:47 pm on February 15, 2011 Permalink | Reply
    Tags: ,   

    Projeto de interface de software 

    Quando deparado com a proposta de mudança na interface de um software, sabendo que essa mudança não está bem estruturada e avaliada pelo usuário final, recomendo que se trabalhe em um protótipo dessa nova interface, para que o usuário final então possa visualizar uma projeção e fazer suas avaliações e apontamentos direcionando melhor o trabalho antes de sua implementação.

    Sugestão

    Neste sentido, uma maneira de tornar prática e dinâmica essa tarefa, é através da utilização de ferramentas de prototipação gerando modelos wireframe e mockups de interfaces. Isso permite concentrar somente nas questões da interface – como exemplo: acessibilidade e usabilidade. Além disso, é possível discutir melhor com o usuário em cima de um modelo wireframe. Caso ele decide mudar alguma coisa, é mais fácil mudar um esboço do que um software pronto (portanto mais rápido e mais barato).

    A procura pela solução

    Assim, em uma pesquisa que realizei em busca deste tipo de software, localizei o WireframeSketcher. Suas características fecharam exatamente com a necessidade que tinha para meus projetos.

    Destaques da ferramenta

    • Pode ser utilizado como um plugin integrado a plataforma Eclipse e para aqueles que não utilizam a IDE, podem optar pela versão standalone – o WireframeSketcher Studio. Oferece suporte para Windows, Linux e Mac.

    Eclipse IDE + Wireframe Sketcher

    • Fácil, prático e rápido de ser utilizado.
    • Curva de aprendizado da ferramenta é bem rápida, sem mistérios. Possui teclas de atalho para manipulação dos componentes que facilitam na construção dos protótipos.
    • Possui um bom desempenho para todo o tamanho de projeto, do pequeno ao grande, permitindo criar módulos que podem ser reaproveitados, onde caso a raiz venha a sofrer alguma alteração ela será automaticamente exibida em todas as demais telas (Master screen).
    • Possui a opção de exportar as telas projetadas para formato PNG e PDF, agilizando a demonstração cross-plataform do projeto.
    • Apresenta ainda um recurso chamado Storyboard, que permite criar uma utilização simulada do projeto da interface, através de links criados a partir dos componentes inseridos nas interfaces.
    • Apresenta um conjunto extenso de componentes o que permite a criação de um variadade grande de projetos de interface, inclusive web e mobile (iPad, iPhone, Android).

    Palette Wireframe Sketcher

    • Permite que o próprio usuário crie novos componentes e crie sua paleta personalizada, podendo ser reutilizada em outros projetos.
    • E para quem utiliza Java há dois utilitários que facilitam o trabalho de projetar novas interfaces com base em outras existentes: swing2mockup e SWT to Mockup, dois plugins que convertem interfaces existentes em Swing e SWT para o formato XML que gera a versão wireframe para o WireframeSketcher.

    Alguns exemplos de projetos

    Abaixo o exemplo de projetos desenvolvidos através do WireframeSketcher que exemplificam suas características: iPhone, iPad.

    iPhone Wireframe

    iPad Wireframe

    O WireframeSketcher é uma ótima ferramenta para a prototipação de interfaces, recomendada!
    Para download e instruções de instalação acesse http://wireframesketcher.com/install.html.

     
  • Tomás Augusto Müller 12:36 pm on March 14, 2009 Permalink | Reply
    Tags: , ,   

    Using MySQL Workbench to design the VoiceHotel Database Model 

    In this post I will present the process for creating the MySQL database used in the VoiceHotel project, using the MySQL Workbench Community Edition, focusing on the features offered by this tool. The VoiceHotel project was the Grand Prize Winner of the Sun Students Contest in 2008, MySQL and GlassFish step.

    What is MySQL Workbench?

    mysqlWorkbenchSplashIn general terms we can say that MySQL Workbench is a tool that enables a DBA or developer in general, to create and manage visually all types of MySQL databases, from a simple database in a web application, to a even more complex, such as those in Data Warehouses or OLTP systems.

    Tool highlights

    • Visual Database Design. Accelerates the development, reducing the chance of errors in common tasks. Provides schema validation for the model, help on the use of best practices for data modeling, avoiding errors in the construction of ER diagrams or creating the database physically.
    • Forward and Reverse Engineering. Enables the creation of a complete database model from a SQL script or an existing live database, including the ER diagram with pre-arranged objects in the same. Also offers the construction of the database physically by visual modeling.
    • Change Management. MySQL Workbench includes schemas synchronization and comparison utilities. For example, a DBA can compare two live databases or compare one modeling made in MySQL Workbench and an live database, viewing the differences, with the possibility of synchronization between a model and database or vice versa.
    • Database Documentation. Includes DBDoc that enables a DBA or developer to deliver point-and-click database documentation. Models can be documented in either HTML or plain text format, and includes all the objects and models in a current MySQL Workbench session.

    MySQL Workbench is available in two versions:

    • MySQL Workbench Community Edition — In the open source GPL license.
    • MySQL Workbench Standard Edition — Available through an annual contract. Includes some additional modules and plugins. Click here for more details.

    Modeling the database

    Due to low complexity presented by the database used in the application, I will present here the three possible ways to create the database using the MySQL Workbench Community Edition. Below a picture with the completed ER diagram. The complete script for creating database can be found here.
    Modelo ER Finalizado

    Reverse engineering SQL scriptreverseengineer1

    Certainly the quickest way to create the database, but obviously you will need to have beforehand the file with the SQL statements for creating the structure of the MySQL database.

    Create a new data model (file > new), and then start importing SQL statements accessing the file menu > import > reverse engineer MySQL create script.

    reverseengineer2 In new window, select the file with the instructions to be used to model creation. When you click to continue the tool will perform some validation in SQL script and then starts the creation of the model structure. Finally, in the last step of this wizard is offered the option to automatically create a ER diagram with the tables already arranged.

    -

    reverseengineer3 With the newly created data model, you can now work freely, adding new tables, views, documenting existing structures, editing the model structure, as well as the ER diagram.

    ER Diagram

    The data model creation through the ER diagram is a great choice for cases where is necessary to model creation since the beginning, where we do not have a structure prior to import, to start a model with some pre-existing structure.
    ER Diagram - New To add a new ER diagram access the menu Model > Add diagram. Or if you prefer use the shortcut CTRL+T. For a detailed view of the options available in the ER diagram editor click on the image at your right.

    Insofar as that new objects are included in the diagram, you can edit all its related properties just double clicking the object that you want, to open the object properties editor.

    When the inspected object is a table, in addition to various options for editing columns, primary keys, foreign keys, tiggers, etc, we have a data editor, where you can generate insert statements just filling the values for the columns.
    erdiagram3
    editordata Still talking about tables, relationships between entities in the existing model, can be made fully visually, using the relationships options, located on the toolbar that is available on the left side of the interface for editing the ER diagrams.

    Schematic Editing (Advanced)

    schemata1

    The schematic editing allows the developer quick access to information and properties of the object (tables, views, routines and groups of routines), but without the visual support of the ER diagram. It is very useful when we have a structure already established in the database model and we need to maintain in some of the existing objects in a fast, easy and intuitive way, with the support of tools to validate the changes thus preventing possible inconsistencies.

    Publishing the Database Model

    After the creation of the data model, you can export the entire contents of the model to a script containing all the necessary SQL commands to create the database physically. In the Standard version of MySQL Workbench, it is possible to create the physical database, without leaving the environment.

    For the Community Edition we can use the following command line, making use of tools available in MySQL installation:

    mysql -u user -p < script.sql
    
    

    where user is the database user and -p will ask you for the password.

    Conclusion

    In this article, I presented the basic features of MySQL Workbench and there are clearly many other concepts that can be explored, as the creation of stored procedures (Functions, Triggers and Procedures), creation of views and indexes.

    MySQL Workbench is a great option for all MySQL users, from developers to more experienced users, like DBAs, etc. Counting with the option of commercial license, this is more obvious because there is a considerable increase in the number of modules and plugins, offering several features which are disabled in the Community Edition version. However, the Community Edition version is ahead of many commercial and non-commercial tools available, offering all the resources needed for modeling MySQL databases.

     
  • Tomás Augusto Müller 5:14 am on March 9, 2009 Permalink | Reply
    Tags: , ,   

    Utilizando o MySQL Workbench para criação do VoiceHotel Database Model 

    update 1: english readers can view here the translated version of this post.

    Neste post apresentarei o processo para criação da base de dados MySQL utilizada no projeto VoiceHotel, utilizando o MySQL Workbench Community Edition, focando nas funcionalidades oferecidas por esta ferramenta. O projeto VoiceHotel foi vencedor do primeiro lugar no desafio da Sun para Estudantes em 2008, etapa MySQL e Glassfish.

    O que é MySQL Workbench?

    mysqlWorkbenchSplashEm linhas gerais podemos dizer que o MySQL Workbench é uma ferramenta que possibilita um DBA ou desenvolvedores em geral, criarem e gerenciarem de forma visual todos os tipos de bases de dados MySQL, desde uma base utilizada em uma simples aplicação web, até bases mais complexas, como as existentes em sistemas de data warehouses ou OLTP.

    Destaques da ferramenta

    • Criação/Edição visual da base de dados. Acelera o desenvolvimento, diminuindo a chance de erros em tarefas comuns. Oferece validação de schemas para o modelo criado, auxiliando na utilização das melhores práticas de modelagem de dados e evitando erros na construção de diagramas ER ou criação da base fisicamente.
    • Forward Engineering e Engenharia Reversa. Possibilita a criação de um modelo completo a partir de um script SQL ou de uma base de dados existente, incluindo o diagrama ER com as tabelas pré-dispostas no mesmo. Oferece também a construção do banco de dados fisicamente através da modelagem visual.
    • Rastreamento e gerenciamento de mudanças. MySQL Workbench inclui as funcionalidades de Sincronização de Schemas e utilitários de comparação. Por exemplo, um DBA pode comparar duas bases ativas ou comparar uma modelagem feita no MySQL Workbench e uma base existente, visualizando as diferenças, com a possibilidade de sincronização entre um modelo e uma base ou vice versa.
    • Documentação. O MySQL Workbench inclui o DBDoc que auxilia no processo de documentação dos modelos e objetos existentes. Esta documentação pode apresentar-se em texto puro ou no formato Html.

    O MySQL Workbench está disponível em duas versões:

    • MySQL Workbench Community Edition — Sob a licença open source GPL.
    • MySQL Workbench Standard Edition — Disponível através de um contrato anual. Inclui alguns módulos e plugins adicionais. Clique aqui para mais detalhes.

    Modelando o Banco de Dados

    Devido a baixa complexidade apresentada pela base de dados empregada na aplicação, apresentarei aqui as três formas possíveis para a criação da base de dados utilizando o MySQL Workbench Community Edition. Abaixo uma imagem com o modelo ER finalizado. O script completo para criação do banco de dados pode ser encontrado neste link.

    Modelo ER Finalizado

    Engenharia Reversa de Script SQLreverseengineer1

    Com certeza a forma mais rápida de criar a base de dados, mas obviamente será necessário possuir de antemão o arquivo com as instruções SQL para criação da estrutura do banco de dados MySQL.

    Crie um novo modelo de dados (File > New), e inicie a importação das instruções SQL acessando o menu File > Import > Reverse Engineer MySQL Create Script.reverseengineer2

    Na nova janela, informe o arquivo com as instruções a serem utilizadas para criação do modelo. Ao clicar em continuar (Next) a ferramenta executará algumas validações no script sql e em seguida iniciará a criação da estrutura do modelo. Por último, na última etapa deste wizard é oferecida a opção de criar automaticamente um diagrama ER com as tabelas já dispostas no mesmo.
    reverseengineer3
    De posse do modelo de dados recém criado, agora você poderá trabalhar livremente, adicionando novas tabelas, visões, documentando as estruturas existentes, editar a estrutura do modelo, bem como o diagrama ER.

    Diagrama ER

    A criação do modelo de dados através do diagrama ER é uma ótima opção para os casos onde não possuímos uma estrutura prévia para importação e assim iniciar um novo modelo já com alguma estrutura pré-estabelecida, sendo necessário a criação do modelo desde o início.ER Diagram - New

    Para adicionar um novo diagrama ER no modelo de dados acesse o menu Model, opção Add Diagram. Ou se preferir utilize o atalho CTRL + T. Para uma visão detalhada das opções disponíveis no editor de diagrama ER clique na imagem ao lado.

    Na medida em que novos objetos forem incluídos no diagrama, você poderá editar todas as suas propriedades relacionadas através de um duplo clique no objeto desejado para abrir o editor de propriedades do objeto.

    Quando o objeto inspecionado for uma tabela, além das diversas opções para edição de colunas, chaves primárias, chaves estrangeiras, tiggers, etc, contamos erdiagram3editordatacom um editor de dados, onde você poderá gerar comandos de inserção de forma visual, apenas preenchendo os valores para as colunas.

    Ainda se tratando de tabelas, os relacionamentos entre as entidades existentes no modelo, podem ser feitos totalmente de forma visual, fazendo uso das opções de relacionamentos, localizados na barra de ferramentas que está disponível no lado esquerdo da interface para edição do diagrama ER.

    Edição Esquemática (avançada)schemata1

    A edição esquemática possibilita ao desenvolvedor um acesso rápido às informações e propriedades do objeto (tabelas, visões, rotinas e grupos de rotinas), mas sem o apoio visual do diagrama ER. Torna-se muito útil no momento em que temos uma estrutura já estabelecida no modelo de dados e precisamos dar manutenção em algum dos objetos existentes de forma rápida, fácil e intuitiva, contando com o apoio dos utilitários para validar as alterações prevenindo desta forma possíveis inconsistências na base.

    Publicando o Modelo de Dados

    Após a criação do modelo de dados, você poderá exportar todo o conteúdo do modelo para um script contendo todo os comandos SQL necessários para criação da base de dados fisicamente. Na versão Standard do MySQL Workbench, é possível a criação da base de dados física utilizando o próprio MySQL Workbench, sem sair do ambiente.

    Para a versão Community podemos lançar mão da seguinte linha de comando, fazendo uso dos utilitários disponíveis na instalação do MySQL:

    mysql -u usuário -p < script_exportado.sql
    
    

    onde usuário é o usuário do banco de dados e -p solicitará a senha para este usuário.

    Conclusão

    Nessa artigo, apresentei as funcionalidades básicas do MySQL Workbench e existem claramente muitos outros conceitos que podem ainda ser explorados como a criação de procedimentos armazenados (Functions, Triggers e Procedures), criação de Views e trabalhar com criação de índices.

    O MySQL Workbench é uma ótima opção para todos usuários MySQL. Desde desenvolvedores até usuários mais experientes, DBAs, etc. Com a opção da licença comercial, isto fica ainda mais evidente pois há um incremento considerável no número de módulos e plugins, oferecendo diversas funcionalidades que encontram-se desabilitadas na versão Community Edition. Contudo, a versão Community Edition está a frente de muitas ferramentas comerciais e não comerciais disponíveis no mercado, oferecendo todos os recursos necessários para modelagem de dados.

     
    • Sobre o MySQL Workbench em Português | WORDPRESS EXTENSIONS-PLUGINS-THEMES-TEMPLATES 9:30 pm on March 15, 2009 Permalink

      [...] o MySQL Workbench em Português Tomás Muller escreveu um excelente post em português sobre o uso do MySQL Workbench na modelagem de uma aplicação. Para quem prefere [...]

    • Ari 4:49 pm on March 17, 2009 Permalink

      Bacana esse artigo, gostei. Irei estudar mais sobre essa ferramenta para incorpora-la ao meu dia-adia.

    • ops 9:05 pm on February 12, 2010 Permalink

      Primeiramente parabens pelo topico. Tenho uma dúvida. Como faço o alter table pela ferramenta? Eu provavelmente estou fazendo errado, pq quando altero e "sincronizo" os registros já inseridos nas tabelas vão pro espaço. Obrigado.

    • camilo lopes 2:08 pm on February 17, 2010 Permalink

      realmente excelente, post. Mas, a ferramenta fica a desejar em varios aspectos, principalmente na conexao direta com o bd, que nao eh possivel manter. Toda vez precisa conectar para atualizar uma informacao. Meio chato isso. Acho o layout ainda desorganizado. Mas, em comparacao com outras ferramentas free o workbench está na frente. Porem nao troco o mysql maestro por ela. flw!

    • Michell 10:53 am on November 22, 2011 Permalink

      como faço instalar o workbench em meu pc? o que é necessário?

    • Tomás Augusto Müller 4:39 pm on December 8, 2011 Permalink

      @Michell,
      1. acesse: http://www.mysql.com/downloads/workbench/
      2. faça o download de acordo com o seu sistema operacional
      3. instale!

c
compose new post
j
next post/next comment
k
previous post/previous comment
r
reply
e
edit
o
show/hide comments
t
go to top
l
go to login
h
show/hide help
shift + esc
cancel
Follow

Get every new post delivered to your Inbox.

%d bloggers like this: