5) Simple check redirect (301) url example code, using Jsoup: if ("http://expected.destiny.com".equals( response.url().toString() ) ) { // Yes, my RewriteRule is OK } else { // No, my RewriteRule have errors }
* Tip: This code can help you to check Apache RewriteRule configs and automate our tests (you can use Junit and add this code into Tests code too).
O gerenciamento de projetos de software em dias
atuais pode ser considerado essencial para garantir o sucesso da implantação de
sistemas em empresas. Deste modo as normas como CMMI, MPS-BR e ISO surgiram
para orientar as empresas que pretendem iniciar o desenvolvimento de projetos
ou estejam necessitando de melhorias em processos que por ventura ja estejam
sendo executados. Destacar os pontos de diferenças e semelhanças existentes
entre estas normas, além de descrever seu funcionamento é o objetivo desta
resenha.
A adoção de qualquer norma ou recomenção tem por
objetivo dar uma solução clara a problemas decorrentes do processo de
desenvolvimento de softwares. Tornar padronizado um processo poderá gerar
tranquilidade na execução de tarefas no desenvolvimento de sistemas para
empresas. Também é importante citar que a segurança, bem como a visibilidade
positiva proporcionada por um processo organizado e com um planejamento sólido
poderá fazer com que todo este processo ganhe o status de investimento seguro,
bem como preparado para tratar possíveis riscos de modo à reduzir seus impactos
negativos, tendo vista que todo o re-trabalho em TI geralmente significa
prejuízo financeiro.
É importante também citar que ao obter um
certificado em alguma das normas citadas, uma empresa consegue atingir um
diferencial no momento em que um provável cliente iniciar processos de
comparação no mercado com outras empresas, para efetivamente efetuar a
contratação de uma delas, o nivelamento também esta presente em CMMI e MPS-BR,
no caso da ISO 20000 não existe a organização tão segmentada como as
anteriores, apesar de também ser considerada uma norma.
O processo de melhoria contínua também esta
presente em todas elas e é este processo que garante a evolução de forma
constante para que um problema detectado e solucionado em alguma fase do
desenvolvimento seja corrigido e não volte a se repetir.
A responsabilização de cada integrante do
processo é algo muito similar entre as metodologias. Cada gerência estabelecida
normalmente centraliza algumas operações e deste modo é capaz de evoluir de
forma constante, garantir a qualidade daquilo que é sua responsabilidade.
Delegar a mesma função à diferentes gerências poderá causar a perda da
qualidade desta execução à longo prazo, por esse motivo algumas gerências como
decisões, liberação e riscos estão presentes no MPS-BR, bem como requisitos,
planejamento, monitoramento e controle estã presentes no CMMI.
A maturidade é outro fator presente em todas as
normas, podemos dizer que as organizações consideradas maduras serão capazes de
atingir seus objetivos de qualidade, prazos e custos de forma consistente e
eficientes, já as organizações consideradas imaturas têm por costume criar
objetivos com muita frequência e acabam errando em sua concretização. Medir,
estabelecer metas, bem como avaliar a situação atual são tarefas que estão
presentes em CMMI, MPS-BR bem como ISO.
VANTAGENS
Uma
das vantagens no uso de CMMI é que o seu modelo de qualidade é reconhecido
internacionalmente e tem como empresas que o adotam uma seleta lista da qual
faz parte a Microsoft. A vantagem de se adotar esse modelo é gerar um
diferencial competitivo o que poderá atrair clientes internacionais.
No caso do MPS-BR, uma grande vantagem é que as
empresas conseguem atingir os níveis de maturidade mais rápido, por ser um
modelo proposto para empresas brasileiras, estaria assim mais adaptado à nossa
realidade.
No uso da ISO que é baseada em ITIL, apesar de
não haver a formalização da adoção de práticas da ITIL, cita que existe um
alinhamento com os processos definidos dentro dos livros do ITIL.
A ISO 20001 é capaz de conseguir a atenção e o
compromisso por parte da gestão sénior e também garantir a aceitação e a adoção
da gestão da mudança em toda a organização.
(CORRÊA - Artigo TI Especialistas)
DESVANTAGENS
Uma desvantagem do CMMI é relacionada ao alto
custo necessário para a sua conquista, bem como é necessário em média um tempo
maior para sua obtenção, deste modo há uma desvantagem se analisarmos as
empresas brasileiras que de forma geral não dispõe destes recursos para
investir em um processo de certificação.
Já o MPS-BR contrasta com o CMMI quando
falamos de padrões internacionais, apesar de sua estrutura estar adequada à
diversas normas internacionais ISO, o MPS-BR não é tão reconhecido
internacionalmente como o CMMI.
O ISO-20000 poderá estar limitado à apenas um
fragmento do negócio da empresa que obtém essa certificação, deste modo não é
garantido à quem contrata que os altos níveis de qualidade e processo estarão
presentes no processo de entrega do produto contratado.
O cliente deve estar ciente de que esta
certificação não garante que o provedor de serviços seja totalmente capaz de
fornecer serviços com altíssimos níveis de eficiência e eficácia, uma vez que o
escopo desta pode ser limitado a uma pequena parte do Negócio.
Segundo a psicologia, existem N maneiras de se resolver conflitos.
Dentre as 3 mais evidentes estão: O diálogo com negociações e concessões de ambas as partes, a mediação de uma terceira parte (por ex o que faz a ONU) e por fim a ruptura total de uma das partes.
- Desviar o foco principal ou diminuir a insistência em alguns momentos será recomendo, pois sendo a única saída, quando o diálogo fracassa, por alguma das partes não estar apta à isso nem a mediação será suficiente. Mas isso só deve ser feito se as suas consequências forem medidas e avaliadas previamente (por ex. a guerra arabe-israelense não gera benefícios a ninguém). O aprender deve ser priorizado, eu devo utilizar o tempo para entender todos os argumentos contrários, assim como o outro deve usar o tempo para reflexão e novas constatações que comprovem sua tese, elemento foco da contrariedade.
- No ambiente de trabalho: Precisamos de forma adulta e serena encarar esses fatores, no meio científico encarar de forma científica, não podemos realizar estudos técnicos exatos se na hora de colocá-los em pratica não temos o conhecimento científico para lidar psicologicamente com o meio.
- Na política: A ruptura não adianta, a não ser que se troque de país. A guerra é a saída mais obvia, mas ineficiente. No caso do Brasil, o atraso é perpétuo e não é de hoje. Vivemos em uma guerra interna que a nada leva. O que me conforta é acreditar no ser humano, ele evolui. As decisões do país evoluirão. Votar em palhaço, em branco ou em corrupto da na mesma, contanto que todos eles dêem condições para nossos filhos crescerem e evoluírem. Só o tempo vai resolver.
Quanto mais racionais forem as partes, mais rápida sera a evolução.
O texto universidade do século XXI trata das dificuldades enfrentadas pela universidade para adequar-se às necessidades da sociedade onde esta inserida sem que para isso perca a sua soberania sobre o caminho que o estudo científico deva seguir dentro da mesma, não ser pautada por fatores externos torna ilimitado o poder de evolução, por outro lado isolar-se do contexto local, social ou econômico é impossível e insustentável nos tempos atuais. Nas últimas décadas a passagem para a utlização do conhecimento pluriversitário acabou gerando novos desafios para a universidade, este conhecimento precisa ter uma aplicação na medida em que vai sendo gerado, ao contrário do conhecimento universiário que não possui tal pré-requisito. A sociedade atual possui problemas e dependendo do tipo de problema não pode esperar para que um conhecimento baseado em complexos estudos científicos que possam estar disponíveis para seu uso à longa data, além disso alguns mercados (como por exemplo TI), modificam suas características à uma velocidade que talvez o conhecimento universitário não consiga acompanhar, tornando-se defasado, isto é um problema pois o mercado precisa de profissionais formados e qualificados para manter-se ativo.
É consenso básico que investir dinheiro e tempo em evolução científica traz resultados, basta analisarmos o histórico da sociedade mundial para constatar que os mais impressionantes recursos hoje disponíveis são resultados do conhecimento universitário, cuja importância esta acima de qualquer questionamento. Fato é que algumas empresas e sociedade acabam pressionando e tentando definir a pauta e rumo para onde a universidade deve caminhar visando suprir suas exigências, esse fator pode ser considerado limitador da criação de alto nível, tirando até certo ponto a capacidade da universidade de inovar e criar estudos com continuidade e de grande impacto. A soberania da universidade sobre as decisões sobre o rumo dos estudos e do conhecimento universitário precisa ser respeitada.
O mundo em que vivemos possui grandes necessidades, existem setores que precisam evoluir para que a sociedade possa conseguir melhores condições de vida, podemos exemplificar o caso com a necessidade clara do mercado em suprir um número considerável de profissionais de TI ao mercado, cada vez mais estão surgindo cursos com o intuito de inserir no mercado profissionais de TI com conhecimento compatível com as exigências de mercado, o profissional que acaba sendo formado com o conhecimento pluriversitário não apenas é capaz de criar os frameworks existentes em caráter científico ou pesquisa, mas ele também precisa conhecer o que o mercado usa para poder sair produzindo e comprovando o resultado, aplicando-o para proveito imediato da sociedade. Não se pode fechar os olhos para os problemas que temos ao nosso redor, um profissional que estuda as vezes precisa trabalhar para poder pagar o próprio estudo, uma cadeia auto-sustentável é extremamente importante para manter as coisas em evolução constante (sociedade, empresa privada e universidade).
Capta-se a idéia de que o autor pretende mostrar com esse texto que os extremos não são capazes de se sustentar à longo prazo, recursos físicos são necessários para que os estudos e pesquisas aconteçam e muitas vezes esses recursos são originados da própria empresa privada, podemos pegar como exemplo a NASA que depende de recursos para realizar seus estudos e projetos, alguns deles acabam não se realizando pela falta de dinheiro e atual momento desfavorável da economia norte-americana, eles estão tentando resolver seus problemas principais. Por outro lado apenas suprir necessidades do mercado acaba congelando a evolução do conhecimento teórico, com isso diminuindo a aceleração da geração de novos recursos para neste mesmo ciclo infinito poder realimentar o mesmo mercado que tenta pautar o conhecimento universitário.
Na visão crítica referente à resolução deste problema podemos dizer que assim como na economia da atualidade precisamos criar diversos investimentos simultâneos para viabilizar a sustentabilidade de uma rentabilidade estável, no caso da universidade poderíamos usar da mesma medida, ao mesmo tempo em que a universidade poderia atender as necessidades do mercado (como por exemplo criar um curso de tecnologia com as exigências das empresas privadas), pode manter cursos com o intuito claro de pesquisa e evolução com base teórica, em alguns momentos (os momentos de experimentação) poderíamos unir os 2 cursos para uma auto-colaboração mútua, resultando em uma evolução bilateral, acreditamos que essa idéia poderia ser exposta pelo autor de forma mais objetiva, guiando o leitor à uma solução prática e útil para fomentar suas idéias sempre que for preciso haver o pensamento sobre os conhecimentos universitário e pluriversitário.
Um exemplo do mercado de TI: Dando um exemplo de mercado, quem trabalhou com TI entre 2005 e os dias atuais (mais especificamente Java EE) lembra que nesse período surgiram APIs focadas em entrega de conteúdo web r ápido, resultado de estudos universitários e científicos que eram embasados na teoria de utilizar a memória ram dos servidores de aplicação para realizar um processamento rápido (a API prevayler de prevayler.org é um exemplo), à época os bancos de dados estavam em plena evolução (tanto em termos de application servers como em foco em performance e otimização de recursos) , ou seja, o mercado estava investindo pesado no uso de bancos de dados como Oracle, Postgree, MySQL, sugiam APIs como JPA, EJB, Hibernate, Spring para otimizar o desenvolvimento além da própria performance. O resultado foi claro, esse tipo de API (como o prevayler acima citado) acabaram não gerando tanto sucesso pois o mercado não aceitou de imediato – o radicalismo de retirar um banco de dados não gerou brilho nos olhos dos desenvolvedores. O meio-termo que cito nesse caso pode ser notado quando fazemos uma análise atual do mercado de TI, onde cada vez mais http optimizers (como varnish), servidores web com processamento performático ou baseado em cache (como por exemplo Apache em versão 2.4 ou NgineX, cujo núcleo de processamento pode ser configurado baseando-se em eventos – events dinâmicos ou runtime events ao invés de estipular estaticamente número de threads e recursos ao processador ou jvm que os controlam – ex: config prefork do apache), também podemos citar os bancos de dados nosql como MongoDB ou APIs de busca como Lucene ou Elastic Search que acabam utilizando tanto a memória como um conjunto acoplado à um banco de dados relacional em backoffice. Com toda essa explicação técnica gostaríamos de mostrar que analisando o mercado de TI, podemos ver que o mercado acabou encontrando o meio termo que concluímos em nosso texto, obtendo resultados dos incialmente reconhecidos estudos científicos e universitários gerados no passado com as necessidades lógicas e de negócio existentes na empresa privada, nesse caso pudemos evoluir à outro patamar graças à junção dos dos mundos um pouco do conhecimento universitário unido ao conhecimento pluriversitário (aquele que precisa ser colocado em prática).
Referências bibliográficas:
- SANTOS, Boaventura de Souza. A universidade do século XXI: para uma
reforma democrática e emancipatória da universidade. 2 ed. São Paulo:
Cortez, 2004. p. 39-45.
- Curso de Gestão de Tecnologia da Informação - Centro Universitário Feevale - Março/2014.
O
somatório de pessoas em um mesmo objetivo configura o que chamamos de
grupo, porém apenas objetivo em comum não representa todas as ações de
um grupo. Cada grupo possui integrantes com características distintas e
por esse motivo as funções empenhadas por cada um nesse grupo também
acabam sendo distintas, encontrar a melhor posição para cada um nesse
grupo é função de um líder. A busca do objetivo em comum (do grupo)
geralmente requer a execução de diversas atividades, empenhadas por
diferentes pessoas em uma organização, garantir que todos executem seu
papel de forma gradual e organizada é o papel do líder nesse grupo.
O
líder é capaz de ver e buscar a satisfação, alinhando isso na medida
certa às recompensas intrísecas existentes no mundo dos negócios (sem
que para isso seja necessário ignorar completamente as extrísecas), não
pode deixar que o trabalho seja visto apenas como fonte de dinheiro pois
já é comprovado através de estudos que isso não gera bons resultados à
longo prazo, bonificações e advertências fazem parte do ambiente
corporativo mas não devem ser considerados a única estratégia para
buscar a satisfação dos profissionais. Compensar apenas de forma
financeira apesar de que cada profissional deva ser valorizado não pode
ser tomado como regra. Se o valor monetário for a única forma de
valorização à ser considerada, os mesmos nunca contribuirão mais que o
mínimo em uma organização, é preciso tirar o melhor de cada pessoa para
que naturalmente o reconhecimento financeiro seja concedido dentro das
condições reais de cada empresa.
Portanto,
transformar um simples agrupamento de pessoas em um grupo, com
objetivos comuns (sendo atingidos com sucesso), gerando satisfação
(econômica, profissional e motivacional) são atitudes que um líder pode
tomar para a criação de um grupo sucedido no ambiente de trabalho.
O que caracteriza um bom líder?
Um
bom líder consegue suprir ao máximo possível as necessidades econômicas
do profissional e da empresa à condições necessárias para auxiliar a
conquista da satisfação de seus liderados. Um ingênuo chefe estará à
procura de regras de como motivar um novo funcionário, enquanto o líder
eficaz estará atento para que as riquezas contidas nas necessidades de
cada um não seja drenada e se perca. Um bom líder deve fazer parte do
grupo e entender as necessidades e o que satisfaz os integrantes desse
grupo. Pessoas que estejam mais desejosas de sacrificar o próprio
interesse em benefício do bem-estar dos demais da organização, sendo
assim mais participativos e orientadores.
Como
propõe a teoria do caminho-objetivo, o líder eficaz seria, portanto
aquele que atua junto ao seu liderado no sentido de facilitar o
conhecimento de suas próprias necessidades. Um líder sucedido é capaz de
orientar o profissional a fim de que ele atinga suas metas e ao mesmo
tempo obtenha satisfação na execução de seu trabalho, é capaz de
desbloquear a sinergia motivacional existente em cada um de seus
subordinados, para isso deve estar em constante observação do grupo, não
é uma receita de bolo, entender a particularidade de cada um exige
grande técnica, conquistada com dedicação e força de vontade. Em resumo,
a principal função dos lideres é levar os outros a liderarem a si
mesmos.
Um
bom exemplo retirado de meu cotidiano é que ao análisar os casos de
líderes existentes nessas empresas por onde trabalhei, pude notar que
alguns limitam-se à bons administradores pois se preocupam apenas em
processos, atingir objetivos focados em resultado, bonificações e
divulgação de metas obtidas à outros grupos. Posso constatar que um bom
líder é aquele que se junta ao grupo, conhece o cotidiano e até a
prática daquilo que é executado pelos subordinados pois dessa maneira
poderá entender melhor as necessidades individuais de cada um
possibilitando a satisfação do grupo como um todo. Ex: Como um gestor de
tecnologia poderá obter sucesso ao guiar seus subordinados e
entendê-los se não demonstrar interesse e conhecimento na àrea onde os
mesmos atuam? Como poderá avaliar os integrantes do grupo para
incentivá-los se não conhece a prática de suas atividades? Geralmente um
líder ruim se preocupa em satisfazer apenas as peças que considera
fundamentais na organização, um bom líder estimula à todos (cada um a
seu tempo e em proporção diferente) para que descubram o líder que
existe dentro de cada um. Um líder é capaz de formar outros e acaba
conseguindo um grupo mais eficiente e preparado para atingir os
objetivos propostos.
É possível desenvolver um líder?
A
liderança existe dentro de cada um, o caminho para formar um é
estimular a auto-liderança nas pessoas (tarefa atribuída á justamente um
líder). Antigamente algumas empresas utilizavam critérios não muito
eficientes para eleger seus líderes, entre esses critérios estavam;
elevado tempo de casa, conhecimento e experiência na execução das
tarefas empenhadas pela empresa, pouco se pensava na capacidade dessa
pessoa em lidar com outras pessoas, fator determinante para a formação
de um bom líder.
O
sucesso esperado aparecerá na medida em que este líder (em formação)
conte com subordinados que conheçam bem aquilo que fazem e que possam
dirigir-se na maioria das vezes sozinhos devido a seus fortes impulsos
da realização para o trabalho.
Acredito
que uma boa recomendação para que um líder seja formado seja a sua
busca constante por tentar entender o ambiente, as atividades empenhadas
e a característica pessoal de cada um de seus subordinados. É fato que
errar assim como acertar faz parte do processo de aprendizagem e
formação. Um bom líder em um determinado grupo não necessariamente será
eficiente em outro isso por que gradualmente é preciso conhecer cada ser
humano com que se esta lidando para saber a medida como este reagirá
diante de cada situação, podendo assim dar as condições necessárias para
sua evolução (até auto-conhecimento). Como já citado anteriormente, a
dedicação e até mesmo abdicar de benefícios próprios sacrificando-se em
prol do grupo pode ajudar, tendo vista que buscar a satisfação em ver a
satisfação alheia é o que alimenta o desejo constante de evolução de um
bom líder.
Copy a jdbc driver to your application server and restart it: copy ojdbc4dms.jar /myglassfishpath/domains/domain-1/lib oasadmin restart-domain domain-1
- Configured and working Oracle database with this informations:
1) db usename = example: my_owner
2) db password = example: my_oracle_password
3) servername = example: mydatabaseip.mydomain.com
4) databasename = example:my_database
5) port: example 1523
5) custom jdbc url: example: jdbc:oracle:thin:@mydatabaseip.mydomain.com:1521:my_database
Steps:
1- By glassfish web administrator:
1.1 Open your glassfish web application and insert your admin and password:
1.2 Resources / JDBC Connection Pools / NEW:
1.3 Configure a new JDBC connection Poll, for example Oracle:
JDBC connection pool Emp_Perks-Pool created successfully.
pmd-i1:
JDBC connection pool Emp_Perks-Pool created successfully.
pmd-i2:
JDBC connection pool Emp_Perks-Pool created successfully.
Command create-jdbc-connection-pool executed successfully.
var array= new Array();
$.ajax({
type: "GET",
cache: false,
url: "http://localhost/my_application//simple-work-service-one/find-cities?country=123",
success: function(data){
if (data.status+"" == "true") {
array = data.array;
for(var i = 0; i< array.length; i++) {
$("#my-select-html-object").append("<option
value=\""+array[i].id+"\">"+array[i].name+"-"+array[i].state+"</option>");
}
}
}
});
}
</script>
Note: Json is a js native response of our service and $("#id") is a reserved function from jquery.
4)
If you execute a function loadAllCitiesOfBrazil(); a html select with
id "my-select-html-object" located on html (or jsp/jspx/php/asp/etc...)
receive all values of our webservice.
This module 'mod_expires' is used to apply a correct header to your contents. Actually it is very powerful to add max perform to your site. The browser will be access the content only at the exact moment, defined by us.
For Example:
I have a simple application on my application server, to access her, i use the url http://localhost/my_application/index.html, in front of application server has installed a apache 2.2 server.
1) With this configuration, all html files sended to client by my_application gets a Cache-Control, Date and Keep-Alived attributes correctly defined. The client do not access my_application when this attributes does not expire.
<LocationMatch "^/my_application/html/.*"> ExpiresActive On ExpiresByType text/html "access plus 3 seconds" ExpiresDefault "access plus 1 month 15 days 2 hours" </LocationMatch>
2) Open the address http://localhost/my_application/index.html with your Mozilla Firefox with Firebug component and click on "network", "all" and "header of response", you see:
3) Open another address when this match (text/html) is false, for example http://localhost/my_application/my_custom_javascript.js. See, the document will be read for browser only 1 month and 15 days last:
Cache-Control max-age=2700
Connection Keep-Alive Content-Length 0 Content-Type application/x-javascript Date Mon, 01 Nov 2012 20:38:49 GMT Expires Mon, 01 Nov 2012 20:39:08 GMT
You can use this informations for execute s.o. commands, jobs, scheduled process, low level functions, direct acess at filesystem, etc. Scalable solutions can be developed using a simple codes, see:
1) Create a new sh file example:
vi /etc/my_scripts/start_apache.sh
Content: # execute your custom command to start apache depends of version / s.o. configs, etc # /etc/init.d/httpd restart # /etc/init.d/httpd start # /etc/init.d/httpd stop # /etc/init.d/httpd # service httpd start apachectl start
2) With your script finished, go to development of our Java class:
Creating a simple java main class showing the implementation of Java Logger using the api java.util.logging.Logger. This code supports: max Length of file(s), number of files to write log, filename of output file, custom feature when logger writting, defines a Log Level, format of log message, works with one or more handlers.
import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.logging.FileHandler; import java.util.logging.Formatter; import java.util.logging.Handler; import java.util.logging.Level; import java.util.logging.LogRecord; import java.util.logging.Logger; public class LogMain { static SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); public static Logger logger = null; public static void main(String[] args) { // define a max file length final int limitMbytes = 50 ; // max number of files final int limitFiles = 1; try { // file to write my log final Handler handler = new FileHandler( "/my_logs_dir/my_log.log", ( limitMbytes * 1024 * 1024 ), limitFiles, true ) { public synchronized final void publish( final LogRecord record ) { // adding a new custom feature to my publish method System.out.println("Executing this line.."); record.setMessage( record.getMessage() ); super.publish( record ); } }; // setting a log level handler.setLevel( Level.INFO ); // A custom formatter to my logger file Formatter formatter = new Formatter() { Date dt = new Date(); @Override public String format(LogRecord record) { dt.setTime(record.getMillis()); return sdf.format(dt) + " MESSAGE OUTPUT= - " + record.getMessage() +" Level ="+record.getLevel()+"\n"; } }; handler.setFormatter( formatter ); // Add a configured handler to logger instance logger = Logger.getLogger( "the_instance_name_of_my_log" ); logger.addHandler( handler ); logger.setLevel( Level.INFO ); logger.setUseParentHandlers( true ); } catch (SecurityException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }