Magic numbers…
March 30, 2007 on 10:43 am | In ibm | No CommentsPara o bem e para o mal, o sistema de messaging que tenho que usar diariamente é baseado em Lotus Notes.
Depois de várias peripécias que me fizeram perder meia dúzia de mensagens de e-mail e deixaram o “design” da base de dados completamente irreconhecível (e inutilizável), quando me estou a preparar para copiar todos os documentos para uma BD novinha em folha - um CTRL+C seguido de CTRL+V normalíssimo), deparo-me com a seguinte pérola:

Que raio de número é 2335? Ainda cheguei a pensar que fosse um número qualquer calculado com base na quantidade de memória disponível no meu PC no momento, mas nem isso pode ser porque durante o processo de cópia para o clipboard (que ainda durou uns 10 minutos) a memória livre manteve-se estável nos 500 MB…
Será este mais um exemplo de magic numbers? Parece que sim…
dnotify
March 13, 2007 on 11:25 pm | In linux, storage | No CommentsDurante a última semana o Nelson Rodrigues esteve a instalar uma máquina antiga com Debian para construir um file server que servisse como repositório de software. A ideia era deixarmos de andar sempre todos atrás dos CDs que temos espalhados por todos os cantos, e que neste momento devem ser já uns milhares largos. Para além disso, serviria também para guardar ISOs de alguns CDs (tipo W2k3, Linuxes vários, etc.) para poderem ser usadas por NFS no cluster de vmwares.Acabamos por decidir ter uma estrutura fixa e proibir as escritas a toda a gente, reservando uma share para onde toda a gente pode fazer uploads (senão ía ser complicado reunir todo o software). E rapidamente surgiu a pergunta: “e como é que vamos saber que alguém meteu um ficheiro na share de uploads e que é preciso ir lá metê-lo no sítio certo?”A resposta óbvia é que queremos ser notificados cada vez que alguém colocar alguma coisa naquela share. E uma pesquisa bem feita no google revelou a solução: dnotify. É um programita muito catita e muito simples de usar que executa um comando por cada alteração feita a uma determinada directoria (ou árvore de). O dnotify interage directamente com o kernel, não precisando do FAM para nada.Provavelmente também se podia ter usado o inotify (que toda a gente diz que é mil vezes melhor), mas a verdade é que o dnotify estava ali mesmo à mão, não tem nenhum problema no ambiente em que é usado e funciona! :)A solução final ficou com o seguinte aspecto.1. A seguinte linha é incluída num init script, imediatamente a seguir ao volume em causa estar disponíveldnotify -b -q 0 --create /opt/root/Uploads -e /etc/upload_notification.sh2. O ficheiro /etc/upload_notification.sh tem o seguinte conteúdo:#!/bin/sh/usr/sbin/sendmail -F"Software Server" -t < /etc/upload_notification.txtComo resultado, o dnotify envia uma notificação quando é criado algum ficheiro ou directoria na share em causa, mas nunca envia mais do que uma notificação a cada 10 minutos (normalmente seria uma por cada ficheiro).Claro que para ser mesmo bem feito fazia o sleep primeiro e acrescentava à notificação a listagem do conteúdo da share no momento… mas deu-me a preguiça ![]()
NTFS Alternate Data Streams
March 11, 2007 on 1:08 pm | In security, windows | No CommentsAté ontem nunca tinha ouvido falar disto.
Trata-se de uma feature do NTFS que existe desde a 1ª versão e ainda hoje se mantém. Permite que um ficheiro possua data streams alternativas, ou seja, permite acrescentar conteúdo a um ficheiro sem que o conteúdo original seja afectado. Esta feature foi incluída no NTFS para compatibilidade com o HFS da Apple.
A Wikipedia diz o seguinte sobre esta feature:
Alternate data streams allows files to be associated with more than one data stream. For example, a file such as text.txt can have an ADS with the name of text.txt:secret.txt (of form filename:ads) that can only be accessed by knowing the ADS name or by specialized directory browsing programs. Alternate streams are not detectable in the original file’s size but are lost when the original file (i.e. text.txt) is deleted with a RemoveFile or RemoveFileTransacted call (or a call that uses those calls), or when the file is copied or moved to a partition that doesn’t support ADS (e.g. a FAT partition, a floppy disk, or a network share). While ADS is a useful feature, it can also easily eat up hard disk space if unknown either through being forgotten or not being detected.
O que acontece é que é possível criar um ADS de um ficheiro executável (calc.exe) e meter lá outro ficheiro executável (type notepad.exe>calc.exe:notepad.exe) de forma a que o tamanho e nome do ficheiro visto através do Explorer (ou dir) se mantenha inalterado. Mais, é possível depois invocar o executável que está no ADS (start calc.exe:notepad.exe), efectivamente lançando um executável cuja presença é mais ou menos indetectável… De facto, em Windows 2000, o nome do processo que aparece no Task Manager é o do ficheiro original!
Quantos vírus, worms, spywares e afins é que já terão usado isto?
Um kernel linux com suporte para HFS sofre do mesmo “problema”?
Edgebox Review
March 1, 2007 on 5:13 pm | In networking, linux | 4 CommentsHá cerca de um mês atrás o João Belo da Critical Links trouxe-me uma edgeBox para eu “brincar”. Trata-se de uma solução “all-in-one” que me parece ser bem descrita nesta frase do site deles:
edgeBOX is a multi-function business gateway, that consolidates data, voice and IT services for small and medium sized organisations.
Para efeitos de demonstração arranjaram-me uma “twister box” já com o software instalado. É uma box com muito bom aspecto, com processador VIA de 1.0 GHz e sem ventoinhas. Muito sexy…
O software é baseado em linux, corre um kernel 2.6.13 e arranca a partir de uma memória flash de 512 MB. A administração é feita através de uma interface web baseada em applets Java, mas também é possível ter acesso a uma shell completa e ver como é que aquilo funciona por dentro.
Já gastei algumas horas às voltas com aquilo é há que admitir que está engraçado. A ideia é semelhante à do IPBrick da iPortalMais, mas parece-me mais bem conseguida.
A interface de configuração tenta desligar a configuração dos serviços oferecidos pela Edgebox da configuração dos produtos open-source que a constituem. Infelizmente daqui resultam algumas “pérolas” que não fazem sentido nenhum, mas percebe-se que a intenção é boa.
Por exemplo, na configuração do serviço de e-mail, há uma opção que pode ser activada que diz “SMTP Relay Support”, esta opção, ao contrário do que possa parecer à primeira vista, não serve para permitir relay para a rede local. Procurando no Help descobre-se a funcionalidade: “Checking this option means that you are allowing relay from users authenticated through POP3.”, ou seja, de facto esta opção deveria ter o nome SMTP-after-POP que é a designação que toma na gíria SMTP.
Como este há outros exemplos de contra-intuitividade, que não sendo dramáticos causam algum desconforto a quem lida com o produto pela 1ª vez.
Fiquei também com a sensação que uma grande parte do produto foi desenvolvida à imagem de requisitos específicos de um ou dois clientes grandes. Tenho dificuldade em perceber que o suporte para NAC já esteja implementado e que coisas tão simples como DNS ou IPSEC ainda tenham problemas e limitações.
No entanto, de uma forma geral parece-me um produto em condições, com um polish que outras soluções equivalentes não têm. Ainda mal testei as funcionalidades VOIP, que são o grandes estandarte da edgeBox, portanto conto vir a ficar ainda mais bem impressionado.
© procself. Este blog está alojado no FEUP Blogs.
Crie também o seu blog.
Subscreva os Artigos (RSS)
e os Comentários (RSS) do procself.