Google Developer Day 2008

Como alguns já sabem, no dia 27/06, participei do Google Developer Day 2008. Esse evento organizado pelo google e destinado aos desenvolvedores do país.

O evento foi muito bom, reuniu aproximadamente 800 pessoas, atingindo o recorde mundial, seguindo os organizadores do google.

No evento foram mostrados diversas tendências de mercado com o uso de tecnologia desenvolvida pelo google. Breve irei relatar com mais detalhes essas tecnologias e seus usos.

No mais o evento foi excelente e vale muito a pena participar, além de ganhar alguns brindes. rs

E para ver as fotos do evento acessem: Fotos Google Developer Day 2008.

Abraços.

1 comment Julho 2, 2008

Ainda vale a pena criar sistemas desktop?

Creio que muitos diretores e desenvolvedores já fizeram ou fazem esta pergunta todos os dias.

  • Será que vale a pena criar sistemas desktop com o crescimento da internet de maneira tão acelerada?

Pois bem, com o uso da internet de maneira rápida e constante, podemos dizer que muitos sistemas desktop estão sendo migrados ou contruidos para ambientes web.
Mas isso deve ser avaliado com atenção, pois o que adianta migrar/construir se o público algo não tem acesso internet rápida? Ou se o público alvo não pretende/pode acessar de um lugar diferente da máquina local?

Logo a resposta é mais simples do que imaginamos. Tudo depende dos seus clientes.
Ele determina como deve ser feito o sistema. Logo sistemas web e desktop ainda são bem vistos e usuais, tudo depende da necessidade e recurso que seu cliente dispõe.

Como já disse, o levantamento de requisitos é muito importante para definir esse passo na elaboração do sistema. Mas lembre-se, que prever o futuro também pode ser uma ótima jogada. Talvez hoje seu cliente necessite de um sistema desktop para rodar apenas na sede, mas amanhã irá necessitar de um sistema que tenha comunicação com as filiais. Tente prever a necessidade real e futura, assim poderá ser uma grande maneira de negociar novos projetos ou melhor, continuação de um projeto em andamento.

Bom desenvolvimento seja ele desktop ou web!

Abraços.

Add comment Junho 16, 2008

Data marcada…

Dia 17 de Junho (amanhã), será o dia do Firefox Download Day. O objetivo é bater o recorde mundial e fazer o Firefox 3.0 ser o software mais baixado nas 24 horas após o lançamento.

Junte-se a comunidade Firefox e ajude a bater esse recorde.

Participe e GANHE UMA WEB MELHOR!

Download Day 2008

Abraços.

Add comment Junho 16, 2008

SCJP 6.0: Detalhes do exame

Algumas pessoas me perguntaram alguns detalhes da SCJP 6.0. Então resolvi colocar um post com detalhes e a ementa do exame.

Detalhes

  • Delivered at: Delivered at: Authorized Worldwide Prometric Testing Centers
  • Prerequisites: None
  • Other exams/assignments required for this certification: Other exams/assignments required for this certification: None
  • Exam type: Exam type: Multiple choice and drag and drop
  • Number of questions: 72
  • Pass score: 65% (47 of 72 questions)
  • Time limit: 210 minutes

Exam Objectives

Section 1: Declarations, Initialization and Scoping

  • Develop code that declares classes (including abstract and all forms of nested classes), interfaces, and enums, and includes the appropriate use of package and import statements (including static imports).
  • Develop code that declares an interface. Develop code that implements or extends one or more interfaces. Develop code that declares an abstract class. Develop code that extends an abstract class.
  • Develop code that declares, initializes, and uses primitives, arrays, enums, and objects as static, instance, and local variables. Also, use legal identifiers for variable names.
  • Develop code that declares both static and non-static methods, and - if appropriate - use method names that adhere to the JavaBeans naming standards. Also develop code that declares and uses a variable-length argument list.
  • Given a code example, determine if a method is correctly overriding or overloading another method, and identify legal return values (including covariant returns), for the method.
  • Given a set of classes and superclasses, develop constructors for one or more of the classes. Given a class declaration, determine if a default constructor will be created, and if so, determine the behavior of that constructor. Given a nested or non-nested class listing, write code to instantiate the class.

Section 2: Flow Control

  • Develop code that implements an if or switch statement; and identify legal argument types for these statements.
  • Develop code that implements all forms of loops and iterators, including the use of for, the enhanced for loop (for-each), do, while, labels, break, and continue; and explain the values taken by loop counter variables during and after loop execution.
  • Develop code that makes use of assertions, and distinguish appropriate from inappropriate uses of assertions.
  • Develop code that makes use of exceptions and exception handling clauses (try, catch, finally), and declares methods and overriding methods that throw exceptions.
  • Recognize the effect of an exception arising at a specified point in a code fragment. Note that the exception may be a runtime exception, a checked exception, or an error.
  • Recognize situations that will result in any of the following being thrown: ArrayIndexOutOfBoundsException,ClassCastException, IllegalArgumentException, IllegalStateException, NullPointerException, NumberFormatException, AssertionError, ExceptionInInitializerError, StackOverflowError or NoClassDefFoundError. Understand which of these are thrown by the virtual machine and recognize situations in which others should be thrown programatically.

Section 3: API Contents

  • Develop code that uses the primitive wrapper classes (such as Boolean, Character, Double, Integer, etc.), and/or autoboxing & unboxing. Discuss the differences between the String, StringBuilder, and StringBuffer classes.
  • Given a scenario involving navigating file systems, reading from files, writing to files, or interacting with the user, develop the correct solution using the following classes (sometimes in combination), from java.io: BufferedReader, BufferedWriter, File, FileReader, FileWriter, PrintWriter, and Console.
  • Develop code that serializes and/or de-serializes objects using the following APIs from java.io: DataInputStream, DataOutputStream, FileInputStream, FileOutputStream, ObjectInputStream, ObjectOutputStream and Serializable.
  • Use standard J2SE APIs in the java.text package to correctly format or parse dates, numbers, and currency values for a specific locale; and, given a scenario, determine the appropriate methods to use if you want to use the default locale or a specific locale. Describe the purpose and use of the java.util.Locale class.
  • Write code that uses standard J2SE APIs in the java.util and java.util.regex packages to format or parse strings or streams. For strings, write code that uses the Pattern and Matcher classes and the String.split method. Recognize and use regular expression patterns for matching (limited to: . (dot), * (star), + (plus), ?, \d, \s, \w, [], ()). The use of *, +, and ? will be limited to greedy quantifiers, and the parenthesis operator will only be used as a grouping mechanism, not for capturing content during matching. For streams, write code using the Formatter and Scanner classes and the PrintWriter.format/printf methods. Recognize and use formatting parameters (limited to: %b, %c, %d, %f, %s) in format strings.

Section 4: Concurrency

  • Write code to define, instantiate, and start new threads using both java.lang.Thread and java.lang.Runnable.
  • Recognize the states in which a thread can exist, and identify ways in which a thread can transition from one state to another.
  • Given a scenario, write code that makes appropriate use of object locking to protect static or instance variables from concurrent access problems.
  • Given a scenario, write code that makes appropriate use of wait, notify, or notifyAll.

Section 5: OO Concepts

  • Develop code that implements tight encapsulation, loose coupling, and high cohesion in classes, and describe the benefits.
  • Given a scenario, develop code that demonstrates the use of polymorphism. Further, determine when casting will be necessary and recognize compiler vs. runtime errors related to object reference casting.
  • Explain the effect of modifiers on inheritance with respect to constructors, instance or static variables, and instance or static methods.
  • Given a scenario, develop code that declares and/or invokes overridden or overloaded methods and code that declares and/or invokes superclass, or overloaded constructors.
  • Develop code that implements “is-a” and/or “has-a” relationships.

Section 6: Collections / Generics

  • Given a design scenario, determine which collection classes and/or interfaces should be used to properly implement that design, including the use of the Comparable interface.
  • Distinguish between correct and incorrect overrides of corresponding hashCode and equals methods, and explain the difference between == and the equals method.
  • Write code that uses the generic versions of the Collections API, in particular, the Set, List, and Map interfaces and implementation classes. Recognize the limitations of the non-generic Collections API and how to refactor code to use the generic versions. Write code that uses the NavigableSet and NavigableMap interfaces.
  • Develop code that makes proper use of type parameters in class/interface declarations, instance variables, method arguments, and return types; and write generic methods or methods that make use of wildcard types and understand the similarities and differences between these two approaches.
  • Use capabilities in the java.util package to write code to manipulate a list by sorting, performing a binary search, or converting the list to an array. Use capabilities in the java.util package to write code to manipulate an array by sorting, performing a binary search, or converting the array to a list. Use the java.util.Comparator and java.lang.Comparable interfaces to affect the sorting of lists and arrays. Furthermore, recognize the effect of the “natural ordering” of primitive wrapper classes and java.lang.String on sorting.

Section 7: Fundamentals

  • Given a code example and a scenario, write code that uses the appropriate access modifiers, package declarations, and import statements to interact with (through access or inheritance) the code in the example.
  • Given an example of a class and a command-line, determine the expected runtime behavior.
  • Determine the effect upon object references and primitive values when they are passed into methods that perform assignments or other modifying operations on the parameters.
  • Given a code example, recognize the point at which an object becomes eligible for garbage collection, determine what is and is not guaranteed by the garbage collection system, and recognize the behaviors of the Object.finalize() method.
  • Given the fully-qualified name of a class that is deployed inside and/or outside a JAR file, construct the appropriate directory structure for that class. Given a code example and a classpath, determine whether the classpath will allow the code to compile successfully.
  • Write code that correctly applies the appropriate operators including assignment operators (limited to: =, +=, -=), arithmetic operators (limited to: +, -, *, /, %, ++, –), relational operators (limited to: <, <=, >, >=, ==, !=), the instanceof operator, logical operators (limited to: &, |, ^, !, &&, ||), and the conditional operator ( ? : ), to produce a desired result. Write code that determines the equality of two objects or two primitives.

Fonte: SCJP Overview

Abraços.

Add comment Junho 10, 2008

Java and Free Software in Brazil

O Java Developers Jornal publicou uma notícia sobre Java e Software Livre no Brasil.

A notícia tem como foco o Fórum Internacional de Software Livre (FISL) que acontece em Porto Alegre e a participação da Sun no evento, dando enfoque no desenvolvimento OpenSource baseado em Java voltados para a TV Digital.

Reportagem: Java and Free Software in Brazil

Vale a pena dar uma lida!

Abraços.

Add comment Junho 6, 2008

Web Service - Revista Java Jazz Up

A edição de Maio da Revista Java Jazz Up, apresenta como tema: “Introdução a Web Service”.

Recomendo essa leitura, principalmente para quem trabalha com web, pois na maioria das vezes utilizamos, mas não sabemos como ele realmente funciona.

Link: Revista Java Jazz Up - Maio 2008

Bom divertimento!

Add comment Junho 4, 2008

Firefox 3 pretende estabelecer recorde mundial

A Mozilla lançou um proposta ousada: Fazer o Firefox 3 ser o software mais baixado em 24 horas após o lançamento.

Firefox recorde mundial

O Firefox 3 trás diversas melhorias e novos recursos que fazem valer a pena o upgrade (veja cinco deles). Uma versão RC2 é esperada dentro de alguns dias e final para junho.

Ajude a bater esse recorde mundial!

Download Day 2008

Abraços.

Add comment Junho 3, 2008

SBQS 2008 - VII Simpósio Brasileiro de Qualidade de Software

Vai acontecer em breve o Simpósio Brasileiro de Qualidade de Software. Quem tiver oportunidade de ir vale a pena.

Inscrições e informações: Simpósio Brasileiro de Qualidade de Software.

Abraços.

Add comment Maio 30, 2008

Levantamento de Requisitos - É mesmo necessário?

Quantas vezes já nos deparamos com essas questões:
- É necessário saber com detalhes tudo que o usuário quer? Mesmo o sistema sendo simples?

E a resposta é SIM. Realmente é necessário e importante obtermos o maior número de informações que o cliente pode nos oferecer.

Imaginemos a seguinte situação: Um possível cliente procura sua empresa e apenas lhe informa que quer um sistema para a padaria dele. Digamos que você julgue isso o suficiente para a eleboração do sistema. E sendo assim, fecha o contrato com o cliente, definindo prazos e valores.
No final do prazo definido, você irá apresentar o sistema ao novo dono. E após apresentar você apenas escuta: “Mas não foi isso que pedi!”.
Aí você, para e pensa: “Pediu? Quando?”.

E isso realmente acontece no mercado. O cliente faz o pedido do sistema, mas ele não tem noção ou sabedoria para lhe passar como deve ser o sistema com detalhes, quais são as atividades que ele deve exercer, como ele deve ser controlado. Ele apenas quer e precisa de um sistema para a padaria dele.
Semelhante a charge abaixo:

Requisitos

É dever e obrigação de quem desenvolve o sistema questionar, propor, ajudar o cliente a se definir melhor e não criar expectativas fora do real.

Por isso tome bastante cuidado. Antes de começar o desenvolvimento procure saber do cliente o que realmente ele precisa e o que ele não precisa.
Não existe uma melhor maneira de realizar o levantamento de requisitos, existe sim, a que melhor adpta ao seu produto e maneira de trabalho.

Por isso, procure a melhor maneira e use. Pode ter certeza que seus custos irão diminuir e seus clientes ficarão satisfeitos.

Abraços.

2 comments Maio 29, 2008

O poder do “sudo”

Vejam o poder do comando sudo, de uma forma engraçada.

Sudo - sandwich

Abraços.

Add comment Maio 26, 2008

Previous Posts


Últimos posts

Calendário

Julho 2008
D S T Q Q S S
« Jun    
 12345
6789101112
13141516171819
20212223242526
2728293031  

Categorias

Links

Arquivos

Meta