Importar Javascript

Categoria - Desenvolvimento, Javascript - Por - Felipe Gustavo de Lima No Comments »

Olá
Recentemente me perguntei porque não importar meus javascript’s para minha página igual é utilizado com o css, o “@import”, com isso eu deixaria mais organizado a minha “view”, porém não foi tão simples assim.

        @import "exemplo.css";

Navegando um pouco no google, me deparei com um script e acabei adaptando ele para poder utilizá-lo para importar meu javascript e meu css na minha página.
Ai vão os dois scripts.
Como são bem simples, não achei necessidade de explicá-los.
Importar JavaScript.

function ImportJS(file) {		
 
 
 
	var script = document.createElement('script');
 
	script.src = file;
 
	script.type = 'text/javascript';
 
	script.defer = true;	
 
	var head = document.getElementsByTagName('head').item(0);
 
	head.appendChild(script);
 
 
 
}

Importar Css

function ImportCSS(file) {		
 
 
 
	var script = document.createElement('link');
 
	script.href = file;
 
	script.type = 'text/css';
 
	script.rel = 'stylesheet';	
 
	var head = document.getElementsByTagName('head').item(0);
 
	head.appendChild(script);
 
 
 
}

Para aplicar em nossa página, apenas incluímos os nossos dois scripts, um que utilizei para mostar como é possível com o css também.

<script type="text/javascript" src="./js/import-js.js"></script>   
 
<script type="text/javascript" src="./js/import-css.js"></script>

E aqui chamamos as funções passando como parâmetro o caminho para o scripts e para o nosso css.

 <script type="text/javascript">  
 
  	var js1  = new ImportJS("./js/jquery-1.2.6.pack.js");  	
 
  	var js2  = new ImportJS("./js/jquery.bgiframe.js");
 
  	var js3  = new ImportJS("./js/jquery.dimensions.js");
 
  	var js4  = new ImportJS("./js/jquery.jdMenu.js"); 	
 
  	var js5  = new ImportJS("./js/jdMenu.conf.js"); 	
 
  	var css1 = new ImportCSS("./css/screen.css"); 	  	  		
 
  </script>

Utilizei para nosso exemplo um menu com jQuery, que depende de alguns plugins.
Exemplo

Adicione ->del.icio.us | Reddit | Slashdot | Digg | Facebook | Technorati | Google | StumbleUpon | Windows Live | Tailrank | Furl | Netscape | Yahoo | BlinkList

Habilitando e desabilitando opção de um select em um formulário com Jquery

Categoria - Desenvolvimento, Javascript, Tecnologia, jQuery - Por - Felipe Gustavo de Lima No Comments »

Hoje ensinarei como habilitar e desabilitar determinada opção de um select em um formulário.
Utilizarei o mesmo modo de criar formulários acessíveis.

<script src="http://www.qosmio.com.br/wp-admin/js/jquery-1.2.6.pack.js" type="text/javascript"><!--mce:0--></script>
<script src="http://www.qosmio.com.br/wp-admin/js/cmxforms.js" type="text/javascript"><!--mce:1--></script>
<script src="http://www.qosmio.com.br/wp-admin/js/disabled.js" type="text/javascript"><!--mce:2--></script>
<div class="cmxform">
 
Campos de preenchimento obrigatório. Contém<em>*</em>
 
<fieldset>
<legend>Cadastrar Níveis</legend>
<ol>
	<li>
<label for="field">Campo:<em>*</em></label>
<select>
<option value="1">Campo 1</option>
<option value="2">Campo 2</option>
<option value="3">Campo 3</option>
<option value="4">Campo 4</option>
<option value="5">Campo 5</option>
<option value="6">Nível 1</option>
<option value="7">Nível 2</option>
<option value="8">Nível 3</option>
<option value="9">Nível 4</option>
<option value="10">Nível 5</option>
<option value="11">Nível 6</option>
<option value="12">Nível 7</option>
<option value="13">Nível 8</option>
<option value="14">Nível 9</option>
<option value="15">Nível 10</option>
<option value="16">Nível 11</option>
<option value="17">Nível 12</option>
<option value="18">Nível 13</option>
<option value="19">Nível 14</option>
<option value="20">Nível 15</option>
</select></li>
	<li>
<label for="action">Ação:<em>*</em></label>
<select>
<option id="markup">-----------------</option>
<option id="enable">Cadastrar</option>
<option id="alter">Alterar</option>
<option id="delete">Excluir</option>
</select></li>
</ol>
</fieldset>
</div>

Aqui o meu Javascript

$(document).ready(function () {
// Ao terminar carregamento da pagina desabilita o campo cadastrar
$("#enable").attr("disabled","true");
 
$("select").click(function() {
 
var thisValue = $(this).val();
 
switch(thisValue)	{
 
case "1":
$("#enable").attr("disabled","true");
$("#alter").removeAttr("disabled");
$("#delete").removeAttr("disabled");
$("#markup").attr("selected","selected");
break;
 
case "2":
$("#enable").attr("disabled","true");
$("#alter").removeAttr("disabled");
$("#delete").removeAttr("disabled");
$("#markup").attr("selected","selected");
break;
 
case "3":
$("#enable").attr("disabled","true");
$("#alter").removeAttr("disabled");
$("#delete").removeAttr("disabled");
$("#markup").attr("selected","selected");
break;
 
case "4":
$("#enable").attr("disabled","true");
$("#alter").removeAttr("disabled");
$("#delete").removeAttr("disabled");
$("#markup").attr("selected","selected");
break;
 
case "5":
$("#enable").attr("disabled","true");
$("#alter").removeAttr("disabled");
$("#delete").removeAttr("disabled");
$("#markup").attr("selected","selected");
break;
 
case "6":
$("#enable").removeAttr("disabled");
$("#enable").attr("selected","selected");
$("#alter").attr("disabled","true");
$("#delete").attr("disabled","true");
break;
 
case "7":
$("#enable").removeAttr("disabled");
$("#enable").attr("selected","selected");
$("#alter").attr("disabled","true");
$("#delete").attr("disabled","true");
break;
 
case "8":
$("#enable").removeAttr("disabled");
$("#enable").attr("selected","selected");
$("#alter").attr("disabled","true");
$("#delete").attr("disabled","true");
break;
 
case "9":
$("#enable").removeAttr("disabled");
$("#enable").attr("selected","selected");
$("#alter").attr("disabled","true");
$("#delete").attr("disabled","true");
break;
 
case "10":
$("#enable").removeAttr("disabled");
$("#enable").attr("selected","selected");
$("#alter").attr("disabled","true");
$("#delete").attr("disabled","true");
break;
 
case "11":
$("#enable").removeAttr("disabled");
$("#enable").attr("selected","selected");
$("#alter").attr("disabled","true");
$("#delete").attr("disabled","true");
break;
 
case "12":
$("#enable").removeAttr("disabled");
$("#enable").attr("selected","selected");
$("#alter").attr("disabled","true");
$("#delete").attr("disabled","true");
break;
 
case "13":
$("#enable").removeAttr("disabled");
$("#enable").attr("selected","selected");
$("#alter").attr("disabled","true");
$("#delete").attr("disabled","true");
break;
 
case "14":
$("#enable").removeAttr("disabled");
$("#enable").attr("selected","selected");
$("#alter").attr("disabled","true");
$("#delete").attr("disabled","true");
break;
 
case "15":
$("#enable").removeAttr("disabled");
$("#enable").attr("selected","selected");
$("#alter").attr("disabled","true");
$("#delete").attr("disabled","true");
break;
 
case "16":
$("#enable").removeAttr("disabled");
$("#enable").attr("selected","selected");
$("#alter").attr("disabled","true");
$("#delete").attr("disabled","true");
break;
 
case "17":
$("#enable").removeAttr("disabled");
$("#enable").attr("selected","selected");
$("#alter").attr("disabled","true");
$("#delete").attr("disabled","true");
break;
 
case "18":
$("#enable").removeAttr("disabled");
$("#enable").attr("selected","selected");
$("#alter").attr("disabled","true");
$("#delete").attr("disabled","true");
break;
 
case "19":
$("#enable").removeAttr("disabled");
$("#enable").attr("selected","selected");
$("#alter").attr("disabled","true");
$("#delete").attr("disabled","true");
break;
 
case "20":
$("#enable").removeAttr("disabled");
$("#enable").attr("selected","selected");
$("#alter").attr("disabled","true");
$("#delete").attr("disabled","true");
break;
}
})
})

Exemplo

Adicione ->del.icio.us | Reddit | Slashdot | Digg | Facebook | Technorati | Google | StumbleUpon | Windows Live | Tailrank | Furl | Netscape | Yahoo | BlinkList

Upload de arquivos com mais de 50mb - PHP e JAVA(Applet)

Categoria - Desenvolvimento, Java, PHP - Por - Alessandro Rocha No Comments »

Olá

Hoje vou dar uma dica interessante para quem está precisando de um sistema para upload de arquivos relativamente grande.

O sistema chama-se Net2Ftp e permite o gerênciamento completo dos arquivos do servidor através de uma conta FTP.

Existem 3 formas de upload de arquivos:

  1. Utilizando o JAVA Upload, que é um miniaplicativo applet, que faz a transferência utilizando protocolo FTP.
  2. Utilizando Flash Upload, que é o upload feito em flash e exibe o progresso do upload em porcentagem.
  3. Utilizando o PHP, porém possui uma certa restrição de tamanho de envio, pelo fato de utilizar o protocolo HTTP, e depender de diversos fatores da rede para uma boa performance.

Neste caso, o grande diferencial é o upload usando o JAVA upload. Mas antes disso, devemos configurar o php.ini para aceitar tais configurações e o arquivo chamado settings.inc.php, localizado no diretório raiz da aplicação

$net2ftp_settings["max_filesize"] = "50000000"; // in Bytes, default 50 MB - Altere para um valor maior

Muitos provedores permitem que seja sobrescrito as configurações do arquivo php.ini da hospedagem, isso em caso de utilização de serviços de terceiros, porém caso possua sua propria estrutura de hospedagem, você pode alterar no arquivo “principal” do PHP.
Neste exemplo, alterei para valores bem altos, para não haver problemas.

max_execution_time = 9999999; Maximum execution time of each script, in seconds
 
max_input_time = 999; Maximum amount of time each script may spend parsing request data
 
memory_limit = 400MB; Maximum amount of memory a script may consume (10MB)

Mais abaixo

file_uploads = On
 
..
 
post_max_size = 250M
 
..
 
upload_max_filesize = 250M

Na verdade, o tamanho de arquivo permitido para upload pode ser bem maior que isso, porém testei apenas com arquivos de 50MB. Teoricamente não deve haver restrição para upload maior, a não ser que haja alguma restrição de tamanho no serviço contratado.

Até [ ]’ss

Adicione ->del.icio.us | Reddit | Slashdot | Digg | Facebook | Technorati | Google | StumbleUpon | Windows Live | Tailrank | Furl | Netscape | Yahoo | BlinkList

Preparando o ambiente de desenvolvimento JAVA no Debian Etch 4.0.

Categoria - Desenvolvimento, Engenharia de Software, Java, Linux, Tecnologia - Por - Felipe Gustavo de Lima No Comments »

Preparando o ambiente de desenvolvimento JAVA no Debian Etch.
Primeiramente vamos baixar os pacotes para instalação.
JDK Download
JRE Download
O JRE é necessário para instalação do Eclipse, aqui optei pela versão Eclipse Europa.
Após baixar os pacotes se logue como root, de permissão de execução no arquivos chmod +x e execute. Terminado a instalação do jdk, provavelmente ele foi instalado dentro do diretório root.

/root/jdk1.6.0_05

Agora vamos criar as variáveis de ambiente dentro do arquivo

/etc/profile
# VARIAVEIS DE AMBIENTE 
JAVA_HOME="~/jdk1.6.0_05" # JAVA 
JRE_HOME="~ /jdk1.6.0_05/jre" # JRE 
CLASSPATH="$JAVA_HOME:$JAVA_HOME/lib:$JRE_HOME/lib:." # Libraries 
MANPATH="$MANPATH:$JAVA_HOME/man" # Manuals 
JAVA_DOC="$JAVA_HOME/docs" # Docs for java 
export JAVA_HOME JRE_HOME CLASSPATH MANPATH PATH JAVA_DOC 
# PATH JAVA PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:~/jdk1.6.0_05/bin:~/jdk1.6.0_05/jre/bin" 
PATH="/usr/local/bin:/usr/bin:/bin:/usr/games:~/jdk1.6.0_05/bin:~/jdk1.6.0_05/jre/bin"

Ok feito isso, se deslogue e logue novamente e rode no konsole o seguinte comando.

debian:~/jdk1.6.0_05# java -version 
java version "1.6.0_05" 
Java(TM) SE Runtime Environment (build 1.6.0_05-b13) 
Java HotSpot(TM) Client VM (build 10.0-b19, mixed mode, sharing)

Se a versão retornada for inferior a do JDK, va até o diretório

/etc/alternatives

e apague o link simbólico apontando para o bin do java,

rm -r java

E crie um novo apontando para onde foi instalado o jdk

ln -s /root/jdk1.6.0_05/bin/java java

Feito isso rode novamente o

java -version


Agora vamos criar um arquivo java para testar.

public class HelloWorld	{ 
public static void main(String args[])	{ 
System.out.println("Hello World"); 
} 
}

Não se esqueça na hora de salvar, que o nome deve ser o mesmo da classe com a extensão .java no final.
Feito isso compile

javac HelloWorld.java

Ele criará um .class, agora é executar ele.

debian:/home/felipe/Desktop# java HelloWorld 
Hello World
Adicione ->del.icio.us | Reddit | Slashdot | Digg | Facebook | Technorati | Google | StumbleUpon | Windows Live | Tailrank | Furl | Netscape | Yahoo | BlinkList

RUP e metodologias.

Categoria - Desenvolvimento, Engenharia de Software, RUP - Por - Alessandro Rocha No Comments »

Olá leitores

Hoje em dia, existem muitas pequenas empresas de tecnologia ( entenda como software, hardware, mídia digital etc. ) e departamentos de TI, onde princípios de um bom gerenciamento técnico de suas “atividades” são completamente deixados de lado.

O fluxo de trabalho de empresas pequenas ou departamentos de T.I. geralmente não estão relacionadas à projetos ( temporais - inicio - meio - fim ), e sim manutenções constantes em projetos que surgiram apenas de uma idéia e em seguida ja sua implementação, tornando-se Franksteins . Existem exceções sem dúvida, e essas conseguem destaque diante das outras que possuem processos mal definidos em relação ao desenvolvimento de seus produtos ou serviços.

Uma empresa de tecnologia de pequeno porte ou um departamento de TI, não precisa necessariamente seguir todas as etapas do PMBOK para realizar seus projetos, mas podem extrair algumas para melhorar muito esse cenário.

Já cansei de ouvir colegas de profissão dizer que a empresa em que trabalha não possui sequer uma documentação decente em relação aos sistemas existentes, muitos deles na verdade afirmam que não existem nenhuma documentação, controle, processo de qualidade,etc. Resumindo, esses departamentos ou empresas são fabricas de Xarxixo, que criam “profissionais” que acham que para desenvolver um software ou sistema , basta sentar o rabo na cadeira e começar a programar. Para isso que existe metodologias de desenvolvimento.

Papeis são completamente ignorados nessas entidades. O analista de sistemas é obrigado muitas vezes a trocar bolinha de mouse. Isso não existe quando metodologias são incorporadas à empresa. No RUP, o analista de sistemas não desenvolve, o analista de negócios não faz analise do sistema, o desenvolvedor não faz análise do sistema nem de negócio.

O conhecimento do negócio nessa visão, fica na mão do analista/programador/servecafézinho, que é aquele sujeito que desenvolveu tudo sozinho, sem nenhuma documentação e que quando resolver sair da empresa, da uma bela preocupação para o empregador, pois esta na cabeça desse sujeito todas as regras do sistema e POG�s ( programação orientada a gambiarra ).

Quem se da mal nisso tudo é o seu sucessor, que é obrigado a desvendar os misteriosos algoritmos para fazer algo funcionar corretamente, e que muitas vezes, chega à conclusão de que é mais fácil apagar tudo e refazer do que “dar manutenção”. Mas existem soluções para se evitar isso, como o RUP.

O RUP é apoiado e utilizado por empresas reconhecidas e embora a sua aplicação seja trabalhosa, vale a pena pela organização, maior facilidade de manutenção/integração de novos módulos e rastreabilidade.

O workflow no cenário RUP inicia-se no analista de negócios. É ele é quem realiza o levantamento das necessidades do cliente e transforma essas necessidades em casos de uso de negocio.

Define também uma lista de requisitos e as classifica. A partir deste ponto esses requisitos passam para o analista de sistemas para a definição de escopo do sistema e etc.

Vamos focar no papel “analista de negócios”, mas especificamente no levantamento de requisitos do sistema, pois caso essa etapa seja feita de forma errada, é possível que o restante também seja (se o analista de sistemas e gerente do projeto forem umas topeiras e não enxergarem o erro).

Existem diversas formas de classificar os requisitos. O RUP define-as como Funcional e Não Funcional.

Um requisito funcional descreve as funcionalidades de um sistema não levando em consideração restrições físicas, e um requisito não funcional o contrário.

Exemplo:
Um cliente X precisa de um software que cadastre os seus empregados.
No caso de uso - cadastrar cliente.
Tipo de requisito - Funcional

Para este software que cadastra o cliente funcionar, será necessário um 486 com 32mb de RAM
No caso de uso - Não é possível a descrição
Tipo de requisito - Não Funcional

Os requisitos não funcionais não podem ser descritos com casos de uso. Em alguns casos isso é possível, mas especificamente para isso, o RUP dispõe da “especificação suplementar”, que é aonde requisitos não funcionais podem ser detalhados utilizando as classificações abaixo descritas, também conhecidas como FURPS (acrônimo):

  • Funcionalidade
  • Usabilidade
  • Confiabilidade
  • Desempenho
  • Suportabilidade

Abaixo segue o link onde cada tópico desse pode ser descrito com maiores detalhes.

http://www.wthreex.com/rup/process/workflow/requirem/co_req.htm

Um simples levantamento de requisitos já pode ajudar em muito na documentação e na garantia de que o sistema não perderá o seu foco. Ajuda a evitar o que aconteceu na ilustração abaixo

[ ] ‘ sss

Adicione ->del.icio.us | Reddit | Slashdot | Digg | Facebook | Technorati | Google | StumbleUpon | Windows Live | Tailrank | Furl | Netscape | Yahoo | BlinkList