quarta-feira, junho 29, 2005
Ultra... VNC!!!
Para quem ja teve a oportunidade de alguma vez experimentar o VNC - abreviatura de Virtual Network Computing - e que consiste em poder controlar o ambiente de trabalho de outro computador a partir de outro computador (mesmo que não saiba do que estou a falar, apercebe-se perfeitamente das extraordinárioas potencialidades deste programa). Se bem que já existem há muito tempo soluções profissionais mais conhecidas das quais a mais conhecida é o pcAnywhere da Symantec (a mesma companhia que produz os produtos da "marca" Norton), o VNC - implementado na Universidade de Cambridge, em Inglaterra é um magnífico exemplo do que um programa open-source é capaz de alcançar. Se bem que já nasceram outros projectos baseados na licença GPL - dos quais os mais conhecidos são o TightVNC e o TridiaVNC - principalmente o primeiro, de que já sou adepto há já dois anos, e que trabalha muito bem em ligações de largura de banda mais apertada como através da Internet, possibilitando-me a mim controlar o desktop da minha máquina caseira a partir da universidade, eis que me deparei hoje com o lançamento de uma nova "distribuição" de VNC, vamos chamar-lhe assim, chamada UltraVNC, na sua primeira official release (1.0.0) e por aquilo que tive oportundidade de experimentar, fiquei extremamente agradado de tal forma que já penso em largar o TightVNC e usar só o UltraVNC. O que fez tomar esta decisão drástica foi o facto desta "distribuição" ser uma súmula do melhor daquilo que todas os "VNC's" até agora já conseguiram. Vai buscar um pouco a todas. A interface é agradável, pode-se fazer login como na funcionalidade de acesso remoto do XP, usando uma conta aberta na máquina que queremos aceder, em vez de estar a especificar uma password só para uso do VNC, sei lá, como ainda não tive oportunidade de explorar por completo, que mais posso dizer ?
quinta-feira, junho 23, 2005
Contador de tráfego...
Em Windows existe um contador de tráfego que permite contabilizar separadamente entre tráfego e internacional, chamado NetCount, mas como desde há uns meses, deixei de usar o meu PC Windows para fazer de gateway para aceder à net, e passei a um sistema Linux Fedora dedicado apenas para esse serviço, deixei de poder usar esse programinha extremamente útil, também, e não percebo minimamente porquê, a versão para Linux só servir para acesso por cabo e não ser open-source. Daí que fico um grande problema, porque este mês, estou mesmo em cima de passar o limite de 4 GB internacional. Todos os meses faço o possível para nunca ter que ultrapassar este exasperado (e incompreensível) limite, mas este mês, e até porque aqui em casa são vários PC's (até o máximo de 4) a usarem a Internet partilhada torna-se muito difícil fazer qualquer espécie de controle sobre o gasto de tráfego internacional. Já andei a tentar na net programas que façam o dito controle, encontrei um, da autoria de um português, chamado CableCounter, mas que, mais uma vez não funciona para ADSL, de modo que, quando tiver tempo livre, vou deitar "mãos à obra" e tentar construir um contador de tráfego usando, claro está, a libpcap. Também já pensei fazer um plug-in no Firefox que permitisse dizer na barra de tarefas se uma página é de trafego nacional ou internacional. Mas uma coisa mais importante é, a falta de tempo, para mais, porque ainda tenho um curso para acabar (faltam duas disciplinas e projecto!) e dois exames no mês que vem! Por isso, isto fica adiado sine die.
Como se faz em Caml...
tenho andado a estudar Caml para me poder preparar condignamente para o exame da disciplina de PFL no próximo dia 14 de Julho, encontrei um resumo introdutório interessante que estou a seguir para conseguir retomar os conceitos desta linguagem, que, por pouco uso que tenha, preciso de saber para passar no exame. Deparei-me com um exercício interessante em que pede como calcular a hipotenusa de um triângulo rectângulo tomando as medidas dos catetos, de acordo com o teorema de Pitágoras: h= sqrt(a^2+b^2), sendo sqrt a raíz quadrada e ^2 elevado ao quadrado. O que é certo em que Caml não consigo criar uma função que faça isto, já tentei:
let hip_length = fun (a,b) -> sqrt (sqr a +. sqr b);;
O problema é que em CAML a função sqrt só aceita float's como argumentos, e depois outro problema é que sqr (elevado ao quadrado) só aceita int's e devolve int's, e estou a usar o operador +. que serve para somar float's, mas como o sqr só devolve int's, nao posso usar +., mas depois o sqrt so quer float's. E o problema é ? E isto é ridículo, porque pelos vistos o CAML não converte inteiros para float's automaticamente, como no C, usando um cast. Experimentei a função float_of_int, mas aquela espelunca continua a dar erro!
E eu não sei para que raio é que precisa desta #%?[]&%$# de linguagem, só serve mesmo para irritar um gajo e obrigar no pior dos casos, ficar mais um ano a pagar propinas!
Lá resolvi o malfadado problema, descobri que o Caml afinal não tem função sqr! Tive que definir manualmente usando a*a e b*b e depois, sim, a partir da soma, é que faço a conversão para float usando a função float_of_int, de forma que o código no final fica com o seguinte aspecto:
let hip_length = fun a b -> sqrt (float_of_int(a*a + b*b));;
Os parêntesis em volta do float_of_int são necessários visto por que senão nada funciona depois!!!
let hip_length = fun (a,b) -> sqrt (sqr a +. sqr b);;
O problema é que em CAML a função sqrt só aceita float's como argumentos, e depois outro problema é que sqr (elevado ao quadrado) só aceita int's e devolve int's, e estou a usar o operador +. que serve para somar float's, mas como o sqr só devolve int's, nao posso usar +., mas depois o sqrt so quer float's. E o problema é ? E isto é ridículo, porque pelos vistos o CAML não converte inteiros para float's automaticamente, como no C, usando um cast. Experimentei a função float_of_int, mas aquela espelunca continua a dar erro!
E eu não sei para que raio é que precisa desta #%?[]&%$# de linguagem, só serve mesmo para irritar um gajo e obrigar no pior dos casos, ficar mais um ano a pagar propinas!
Lá resolvi o malfadado problema, descobri que o Caml afinal não tem função sqr! Tive que definir manualmente usando a*a e b*b e depois, sim, a partir da soma, é que faço a conversão para float usando a função float_of_int, de forma que o código no final fica com o seguinte aspecto:
let hip_length = fun a b -> sqrt (float_of_int(a*a + b*b));;
Os parêntesis em volta do float_of_int são necessários visto por que senão nada funciona depois!!!
Primeiro post
Mais um blog da minha autoria, e destina-se sobretudo a relatar as minhas descobertas e novidades no mundo da informática e que são demasiados complexas para o comum dos mortais. De modo que a audiência (ou melhor dizendo, bloguesia) deste blog irá ser à partida mais reduzida, mas talvez com conteúdo bem mais relevante para quem o consulta que os seus dois blogs irmãos mais velhos :)
Subscrever:
Mensagens (Atom)